<?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 bezwładność cieplna - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/bezwladnosc-cieplna/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/bezwladnosc-cieplna/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sun, 13 Sep 2026 18:01:52 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa bezwładność cieplna - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/bezwladnosc-cieplna/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/</link>
					<comments>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 10:11:32 +0000</pubDate>
				<category><![CDATA[Błędy budowlane]]></category>
		<category><![CDATA[Błędy instalacyjne]]></category>
		<category><![CDATA[Domy drewniane]]></category>
		<category><![CDATA[Domy szkieletowe]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty budowy domu]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy zabudowy suchej]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[błędy instalacyjne]]></category>
		<category><![CDATA[dom drewniany]]></category>
		<category><![CDATA[dom szkieletowy]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[lamele aluminiowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[projekt ozc]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4030</guid>

					<description><![CDATA[<p>Planowanie instalacji grzewczej w budynku o lekkiej konstrukcji drewnianej wymaga zupełnie innego podejścia niż w tradycyjnym budownictwie murowanym. Niska bezwładność cieplna, brak ciężkich ścian akumulujących energię oraz ryzyko przeciążenia stropów sprawiają, że standardowe schematy instalatorów często tutaj zawodzą. W tym artykule bierzemy pod lupę temat, jakim jest ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki, na które najczęściej wpadają inwestorzy. Dowiesz się, dlaczego system suchy deklasuje ciężką wylewkę, jak uniknąć kosztownego przewymiarowania rur, dlaczego optymalizacja temperatury zasilania jest kluczowa dla żywotności pompy ciepła, oraz o co dokładnie zapytać wykonawcę przed podpisaniem umowy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-frame-guide {
    --rk-navy-950: #0b2232;
    --rk-navy-900: #102f42;
    --rk-navy-800: #17465c;
    --rk-blue: #0796bd;
    --rk-cyan: #29c4da;
    --rk-orange: #ff6846;
    --rk-yellow: #f3b51b;
    --rk-green: #15936f;
    --rk-red: #d84b4b;
    --rk-purple: #6d62c8;
    --rk-ink: #102739;
    --rk-text: #40566a;
    --rk-muted: #6e8293;
    --rk-line: #d3e2e9;
    --rk-soft: #f2f7f9;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange-soft: #fff1ec;
    --rk-yellow-soft: #fff8df;
    --rk-green-soft: #eaf8f3;
    --rk-red-soft: #fff0ee;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 28px auto 68px;
    color: var(--rk-ink);
    font-family: inherit;
    font-size: 17px;
    line-height: 1.72;
  }

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

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

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

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

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

  #rk-frame-guide .rk-frame-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 76px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 5%, rgba(41, 196, 218, 0.32), transparent 29%),
      radial-gradient(circle at 5% 96%, rgba(255, 104, 70, 0.21), transparent 28%),
      linear-gradient(135deg, #0d2332 0%, #143e53 58%, #0b6680 100%);
  }

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

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

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

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

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

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

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

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

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

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

  #rk-frame-guide .rk-frame-byline a {
    text-decoration: none;
  }

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

  #rk-frame-guide .rk-frame-nav-label {
    display: inline-flex;
    align-items: center;
    padding: 7px 2px;
    color: var(--rk-navy-900);
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-nav a {
    display: inline-flex;
    min-height: 39px;
    align-items: center;
    padding: 8px 13px;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-ink);
    background: var(--rk-soft);
    font-size: 0.73rem;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none;
  }

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

  #rk-frame-guide .rk-frame-main {
    padding: 0 clamp(22px, 5vw, 66px);
  }

  #rk-frame-guide .rk-frame-section {
    scroll-margin-top: 24px;
    padding: clamp(44px, 6vw, 70px) 0;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-frame-guide .rk-frame-section:last-child {
    border-bottom: 0;
  }

  #rk-frame-guide h2,
  #rk-frame-guide h3,
  #rk-frame-guide h4 {
    color: var(--rk-ink);
    font-weight: 930;
    letter-spacing: -0.025em;
  }

  #rk-frame-guide h2 {
    max-width: 940px;
    margin: 0 0 21px;
    font-size: clamp(1.62rem, 3.3vw, 2.52rem);
    line-height: 1.12;
  }

  #rk-frame-guide h3 {
    margin: 0 0 10px;
    font-size: clamp(1.08rem, 2vw, 1.33rem);
    line-height: 1.3;
  }

  #rk-frame-guide h4 {
    margin: 0 0 7px;
    font-size: 0.98rem;
    line-height: 1.35;
  }

  #rk-frame-guide p {
    margin: 0 0 18px;
    color: var(--rk-text);
  }

  #rk-frame-guide p:last-child {
    margin-bottom: 0;
  }

  #rk-frame-guide .rk-frame-lead {
    max-width: 960px;
    color: #274356;
    font-size: 1.08rem;
    line-height: 1.78;
  }

  #rk-frame-guide ul,
  #rk-frame-guide ol {
    margin: 15px 0 0;
    padding-left: 1.25rem;
    color: var(--rk-text);
  }

  #rk-frame-guide li {
    margin: 8px 0;
  }

  #rk-frame-guide .rk-frame-answer,
  #rk-frame-guide .rk-frame-note,
  #rk-frame-guide .rk-frame-warning {
    margin: 24px 0;
    padding: 21px 23px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 0 16px 16px 0;
    background: var(--rk-cyan-soft);
  }

  #rk-frame-guide .rk-frame-note {
    border-left-color: var(--rk-yellow);
    background: var(--rk-yellow-soft);
  }

  #rk-frame-guide .rk-frame-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-orange-soft);
  }

  #rk-frame-guide .rk-frame-answer p,
  #rk-frame-guide .rk-frame-note p,
  #rk-frame-guide .rk-frame-warning p {
    color: var(--rk-ink);
  }

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

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

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

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

  #rk-frame-guide .rk-frame-card {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    box-shadow: 0 10px 25px rgba(16, 47, 66, 0.055);
  }

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

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

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

  #rk-frame-guide .rk-frame-card-purple {
    border-top-color: var(--rk-purple);
  }

  #rk-frame-guide .rk-frame-tag {
    display: inline-flex;
    margin-bottom: 11px;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-navy-900);
    background: var(--rk-cyan-soft);
    font-size: 0.67rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
  }

  #rk-frame-guide .rk-frame-step {
    position: relative;
    padding: 20px 17px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-soft);
  }

  #rk-frame-guide .rk-frame-step-num {
    display: inline-flex;
    width: 31px;
    height: 31px;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.74rem;
    font-weight: 950;
  }

  #rk-frame-guide .rk-frame-step p {
    font-size: 0.86rem;
    line-height: 1.58;
  }

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

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

  #rk-frame-guide .rk-frame-table th,
  #rk-frame-guide .rk-frame-table td {
    padding: 15px 16px;
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    vertical-align: top;
    text-align: left;
    overflow-wrap: anywhere;
  }

  #rk-frame-guide .rk-frame-table th {
    color: var(--rk-white);
    background: var(--rk-navy-900);
    font-size: 0.76rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-frame-guide .rk-frame-table td {
    color: var(--rk-text);
    background: var(--rk-white);
    font-size: 0.86rem;
    line-height: 1.58;
  }

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

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

  #rk-frame-guide .rk-frame-code-line {
    display: block;
    margin: 22px 0;
    padding: 18px 20px;
    border: 1px dashed #90adba;
    border-radius: 14px;
    color: var(--rk-navy-900);
    background: #f8fbfc;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(0.76rem, 1.5vw, 0.92rem);
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  #rk-frame-guide .rk-frame-tool {
    overflow: hidden;
    margin: 28px 0 0;
    border: 1px solid #2d586d;
    border-radius: 24px;
    color: var(--rk-white);
    background: var(--rk-navy-950);
    box-shadow: 0 20px 42px rgba(11, 34, 50, 0.2);
  }

  #rk-frame-guide .rk-frame-tool-head {
    padding: 27px clamp(20px, 4vw, 38px);
    border-bottom: 1px solid #2d586d;
    background: linear-gradient(130deg, #11384c, #17657a);
  }

  #rk-frame-guide .rk-frame-tool-kicker {
    display: block;
    margin-bottom: 7px;
    color: #6feaff;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-tool-head h3 {
    margin: 0 0 8px;
    color: var(--rk-white);
    font-size: clamp(1.4rem, 3vw, 2.1rem);
  }

  #rk-frame-guide .rk-frame-tool-head p {
    max-width: 930px;
    color: #c8e0e8;
  }

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

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

  #rk-frame-guide .rk-frame-field {
    padding: 16px;
    border: 1px solid #315a6e;
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.045);
  }

  #rk-frame-guide .rk-frame-field label {
    display: block;
    margin-bottom: 8px;
    color: #edfaff;
    font-size: 0.78rem;
    font-weight: 850;
    line-height: 1.4;
  }

  #rk-frame-guide .rk-frame-field small {
    display: block;
    margin-top: 7px;
    color: #8fb4c3;
    font-size: 0.66rem;
    line-height: 1.45;
  }

  #rk-frame-guide .rk-frame-field select {
    width: 100%;
    min-height: 47px;
    padding: 10px 36px 10px 12px;
    border: 1px solid #aac0ca;
    border-radius: 10px;
    color: var(--rk-ink);
    background: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-tool-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 20px 0 0;
  }

  #rk-frame-guide .rk-frame-reset {
    min-height: 44px;
    padding: 10px 17px;
    border: 1px solid #56798a;
    border-radius: 11px;
    color: var(--rk-white);
    background: transparent;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-frame-guide .rk-frame-reset:hover,
  #rk-frame-guide .rk-frame-reset:focus-visible {
    border-color: var(--rk-cyan);
    background: rgba(41, 196, 218, 0.11);
  }

  #rk-frame-guide .rk-frame-result {
    margin-top: 24px;
    padding: 24px;
    border: 1px solid #426a7d;
    border-radius: 19px;
    background: #143447;
  }

  #rk-frame-guide .rk-frame-status {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 15px;
    align-items: center;
    padding: 18px;
    border-left: 5px solid var(--rk-yellow);
    border-radius: 13px;
    background: rgba(243, 181, 27, 0.11);
  }

  #rk-frame-guide .rk-frame-status[data-state="complete"] {
    border-left-color: var(--rk-green);
    background: rgba(21, 147, 111, 0.14);
  }

  #rk-frame-guide .rk-frame-status[data-state="missing"] {
    border-left-color: var(--rk-red);
    background: rgba(216, 75, 75, 0.14);
  }

  #rk-frame-guide .rk-frame-status-icon {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-navy-950);
    background: var(--rk-yellow);
    font-size: 1.2rem;
    font-weight: 950;
  }

  #rk-frame-guide .rk-frame-status[data-state="complete"] .rk-frame-status-icon {
    color: var(--rk-white);
    background: var(--rk-green);
  }

  #rk-frame-guide .rk-frame-status[data-state="missing"] .rk-frame-status-icon {
    color: var(--rk-white);
    background: var(--rk-red);
  }

  #rk-frame-guide .rk-frame-status h4 {
    margin: 0 0 4px;
    color: var(--rk-white);
    font-size: 1.02rem;
  }

  #rk-frame-guide .rk-frame-status p {
    color: #c5dce5;
    font-size: 0.83rem;
    line-height: 1.55;
  }

  #rk-frame-guide .rk-frame-mark-preview {
    margin: 18px 0;
    padding: 15px 18px;
    border: 1px dashed #5d8293;
    border-radius: 12px;
    color: #dbf7fb;
    background: #0e2939;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.77rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }

  #rk-frame-guide .rk-frame-visual {
    margin: 18px 0;
    padding: 20px;
    border: 1px solid #315a6e;
    border-radius: 16px;
    background: #0f2b3b;
  }

  #rk-frame-guide .rk-frame-visual h4 {
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-layer-set {
    display: none;
    gap: 7px;
    margin-top: 15px;
  }

  #rk-frame-guide .rk-frame-layers.is-three .rk-frame-layer-three,
  #rk-frame-guide .rk-frame-layers.is-five .rk-frame-layer-five,
  #rk-frame-guide .rk-frame-layers.is-unknown .rk-frame-layer-unknown {
    display: grid;
  }

  #rk-frame-guide .rk-frame-layer-three {
    grid-template-columns: 5fr 1fr 1.2fr;
  }

  #rk-frame-guide .rk-frame-layer-five {
    grid-template-columns: 4.2fr 0.8fr 1.1fr 0.8fr 2.1fr;
  }

  #rk-frame-guide .rk-frame-layer-unknown {
    grid-template-columns: 1fr;
  }

  #rk-frame-guide .rk-frame-layer {
    display: flex;
    min-height: 86px;
    align-items: center;
    justify-content: center;
    padding: 9px;
    border-radius: 10px;
    color: var(--rk-navy-950);
    font-size: 0.68rem;
    font-weight: 900;
    line-height: 1.25;
    text-align: center;
  }

  #rk-frame-guide .rk-frame-layer-base {
    background: #d9eef3;
  }

  #rk-frame-guide .rk-frame-layer-adhesive {
    background: #f3c860;
  }

  #rk-frame-guide .rk-frame-layer-barrier {
    color: var(--rk-white);
    background: var(--rk-orange);
  }

  #rk-frame-guide .rk-frame-layer-protect {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-frame-guide .rk-frame-layer-neutral {
    color: #cfe4ec;
    background: #24495c;
  }

  #rk-frame-guide .rk-frame-visual-note {
    margin-top: 12px;
    color: #9ebdca;
    font-size: 0.72rem;
    line-height: 1.55;
  }

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

  #rk-frame-guide .rk-frame-evidence {
    padding: 18px;
    border: 1px solid #315a6e;
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.035);
  }

  #rk-frame-guide .rk-frame-evidence h4 {
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-evidence ul {
    margin-top: 8px;
    color: #c5dce5;
    font-size: 0.78rem;
    line-height: 1.5;
  }

  #rk-frame-guide .rk-frame-tool-foot {
    margin: 18px 0 0;
    color: #8fb1bf;
    font-size: 0.72rem;
    line-height: 1.55;
  }

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

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

  #rk-frame-guide .rk-frame-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    margin: 30px 0 0;
    padding: 25px;
    border-radius: 19px;
    color: var(--rk-white);
    background: linear-gradient(130deg, var(--rk-navy-900), #17556c);
  }

  #rk-frame-guide .rk-frame-cta h3 {
    margin: 0 0 7px;
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-cta p {
    color: #d2e6ed;
    font-size: 0.88rem;
    line-height: 1.6;
  }

  #rk-frame-guide .rk-frame-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 24px 0;
    counter-reset: rk-frame-check;
  }

  #rk-frame-guide .rk-frame-check {
    position: relative;
    min-height: 90px;
    padding: 18px 18px 18px 63px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-soft);
    counter-increment: rk-frame-check;
  }

  #rk-frame-guide .rk-frame-check::before {
    position: absolute;
    top: 18px;
    left: 18px;
    display: inline-flex;
    width: 31px;
    height: 31px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 950;
    content: counter(rk-frame-check);
  }

  #rk-frame-guide .rk-frame-check p {
    font-size: 0.84rem;
    line-height: 1.55;
  }

  #rk-frame-guide .rk-frame-myth {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 0;
    overflow: hidden;
    margin: 13px 0;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
  }

  #rk-frame-guide .rk-frame-myth > div {
    padding: 17px 19px;
  }

  #rk-frame-guide .rk-frame-myth > div:first-child {
    color: #882e2e;
    background: var(--rk-red-soft);
    font-weight: 900;
  }

  #rk-frame-guide .rk-frame-myth > div:last-child {
    color: var(--rk-text);
    background: var(--rk-white);
  }

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

  #rk-frame-guide .rk-frame-faq details {
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    background: var(--rk-white);
  }

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

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

  #rk-frame-guide .rk-frame-faq summary::after {
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-blue);
    font-size: 1.3rem;
    transform: translateY(-50%);
    content: "+";
  }

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

  #rk-frame-guide .rk-frame-faq-answer {
    padding: 0 20px 20px;
  }

  #rk-frame-guide .rk-frame-faq-answer p {
    font-size: 0.9rem;
  }

  #rk-frame-guide .rk-frame-sources {
    margin-top: 20px;
    padding: 20px 22px 20px 43px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-frame-guide .rk-frame-sources li {
    margin: 10px 0;
    font-size: 0.82rem;
    line-height: 1.55;
  }

  #rk-frame-guide .rk-frame-author {
    position: relative;
    scroll-margin-top: 24px;
    border-top: 1px solid var(--rk-line);
    background: #f4f9fb;
  }

  #rk-frame-guide .rk-frame-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
  }

  #rk-frame-guide .rk-frame-author-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    padding: 25px clamp(24px, 5vw, 54px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-author-head span:first-child {
    display: block;
    margin-bottom: 3px;
    color: var(--rk-blue);
    font-size: 0.67rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-author-head h2 {
    margin: 0;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
  }

  #rk-frame-guide .rk-frame-author-mark {
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--rk-navy-900);
    background: var(--rk-cyan-soft);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.05em;
  }

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

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

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

  #rk-frame-guide .rk-frame-author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

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

  #rk-frame-guide .rk-frame-author-role {
    margin-top: 8px;
    color: #b9d2dc;
    font-size: 0.78rem;
    line-height: 1.55;
  }

  #rk-frame-guide .rk-frame-author-social-label {
    margin: 25px 0 10px;
    color: #819fac;
    font-size: 0.65rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

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

  #rk-frame-guide .rk-frame-author-social a {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border: 1px solid #426375;
    border-radius: 50%;
    color: #d9edf4;
  }

  #rk-frame-guide .rk-frame-author-social a:hover,
  #rk-frame-guide .rk-frame-author-social a:focus-visible {
    border-color: var(--rk-cyan);
    color: var(--rk-white);
    background: rgba(41, 196, 218, 0.12);
  }

  #rk-frame-guide .rk-frame-author-social svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
  }

  #rk-frame-guide .rk-frame-author-main {
    padding: 34px clamp(28px, 5vw, 52px);
  }

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

  #rk-frame-guide .rk-frame-author-quote::before {
    position: absolute;
    top: 8px;
    left: 23px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 3.1rem;
    line-height: 1;
    content: "“";
  }

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

  #rk-frame-guide .rk-frame-author-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 20px;
  }

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

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

  #rk-frame-guide .rk-frame-author-panel p {
    font-size: 0.9rem;
  }

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

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

  #rk-frame-guide .rk-frame-final-wrap {
    padding: 32px clamp(22px, 5vw, 66px);
    border-top: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

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

  #rk-frame-guide .rk-frame-footnote {
    padding: 18px 24px;
    color: #718594;
    background: #eef5f7;
    font-size: 0.7rem;
    line-height: 1.55;
    text-align: center;
  }

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

  #rk-frame-guide .rk-frame-field input:focus,
  #rk-frame-guide .rk-frame-field select:focus {
    border-color: var(--rk-cyan);
    box-shadow: 0 0 0 3px rgba(41, 196, 218, 0.16);
  }

  #rk-frame-guide .rk-frame-tool-group {
    margin-bottom: 20px;
    padding: 22px;
    border: 1px solid #315a6e;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.035);
  }

  #rk-frame-guide .rk-frame-tool-group:last-child {
    margin-bottom: 0;
  }

  #rk-frame-guide .rk-frame-tool-group-head {
    display: flex;
    gap: 13px;
    align-items: flex-start;
    margin-bottom: 17px;
  }

  #rk-frame-guide .rk-frame-tool-group-num {
    display: inline-flex;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: var(--rk-navy-950);
    background: var(--rk-cyan);
    font-size: 0.76rem;
    font-weight: 950;
  }

  #rk-frame-guide .rk-frame-tool-group-head h4 {
    margin: 0 0 3px;
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-tool-group-head p {
    color: #9fc2cf;
    font-size: 0.75rem;
    line-height: 1.48;
  }

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

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

  #rk-frame-guide .rk-frame-result-card {
    min-width: 0;
    padding: 17px;
    border: 1px solid #3b6679;
    border-radius: 14px;
    background: #0f2c3c;
  }

  #rk-frame-guide .rk-frame-result-card span,
  #rk-frame-guide .rk-frame-result-card small {
    display: block;
    color: #8eb2c1;
    font-size: 0.65rem;
    line-height: 1.42;
  }

  #rk-frame-guide .rk-frame-result-card span {
    margin-bottom: 5px;
    font-weight: 900;
    letter-spacing: 0.045em;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-result-card strong {
    display: block;
    margin-bottom: 4px;
    color: var(--rk-white);
    font-size: clamp(1.12rem, 2.2vw, 1.5rem);
    line-height: 1.14;
    overflow-wrap: anywhere;
  }

  #rk-frame-guide .rk-frame-result-card.is-cyan strong {
    color: #6feaff;
  }

  #rk-frame-guide .rk-frame-result-card.is-orange strong {
    color: #ff9b7f;
  }

  #rk-frame-guide .rk-frame-result-card.is-green strong {
    color: #64d9b8;
  }

  #rk-frame-guide .rk-frame-result-card.is-danger strong {
    color: #ff9287;
  }

  #rk-frame-guide .rk-frame-section-visual {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid #315a6e;
    border-radius: 17px;
    background: #0d2939;
  }

  #rk-frame-guide .rk-frame-section-visual h4 {
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-section-visual > p {
    color: #9fc0cd;
    font-size: 0.76rem;
  }

  #rk-frame-guide .rk-frame-cross-section {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 13px;
    border: 1px solid #416c7e;
    border-radius: 14px;
    background: #f4fafc;
  }

  #rk-frame-guide .rk-frame-result-note {
    margin-top: 13px;
    padding: 14px 16px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 0 11px 11px 0;
    color: #d3e8ef;
    background: rgba(41, 196, 218, 0.08);
    font-size: 0.76rem;
    line-height: 1.55;
  }

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

  #rk-frame-guide .rk-frame-protocol article {
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-frame-guide .rk-frame-protocol span {
    display: inline-flex;
    margin-bottom: 10px;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.65rem;
    font-weight: 900;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-definition {
    display: grid;
    grid-template-columns: minmax(170px, 0.42fr) minmax(0, 1fr);
    overflow: hidden;
    margin: 13px 0;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
  }

  #rk-frame-guide .rk-frame-definition strong,
  #rk-frame-guide .rk-frame-definition div {
    padding: 16px 18px;
  }

  #rk-frame-guide .rk-frame-definition strong {
    color: var(--rk-navy-900);
    background: var(--rk-cyan-soft);
  }

  #rk-frame-guide .rk-frame-definition div {
    color: var(--rk-text);
    background: var(--rk-white);
  }

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

  #rk-frame-guide .rk-frame-mini-formula div {
    padding: 18px;
    border: 1px dashed #91acb9;
    border-radius: 14px;
    color: var(--rk-navy-900);
    background: #f8fbfc;
    text-align: center;
  }

  #rk-frame-guide .rk-frame-mini-formula strong {
    display: block;
    margin-bottom: 5px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 1.02rem;
  }

  #rk-frame-guide .rk-frame-hero-action {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin: 0 0 26px;
  }

  #rk-frame-guide .rk-frame-hero-action small {
    max-width: 520px;
    color: #bcd6df;
    font-size: 0.7rem;
    line-height: 1.5;
  }

  #rk-frame-guide .rk-frame-zone-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 18px 0;
  }

  #rk-frame-guide .rk-frame-zone-button {
    min-height: 40px;
    padding: 8px 13px;
    border: 1px solid #4c7486;
    border-radius: 999px;
    color: #e8f8fc;
    background: #173c4e;
    font-size: 0.72rem;
    font-weight: 850;
    line-height: 1.3;
    cursor: pointer;
  }

  #rk-frame-guide .rk-frame-zone-button:hover,
  #rk-frame-guide .rk-frame-zone-button:focus-visible,
  #rk-frame-guide .rk-frame-zone-button.is-active {
    border-color: var(--rk-cyan);
    color: var(--rk-navy-950);
    background: var(--rk-cyan);
  }

  #rk-frame-guide .rk-frame-decision {
    display: grid;
    grid-template-columns: minmax(170px, 0.34fr) minmax(0, 1fr);
    gap: 0;
    overflow: hidden;
    margin-top: 12px;
    border: 1px solid #416c7e;
    border-radius: 16px;
    background: #0e2b3b;
  }

  #rk-frame-guide .rk-frame-decision-state {
    display: flex;
    min-height: 150px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 22px;
    color: var(--rk-white);
    background: #17627a;
    text-align: center;
  }

  #rk-frame-guide .rk-frame-decision[data-state="exclude"] .rk-frame-decision-state {
    background: #a84736;
  }

  #rk-frame-guide .rk-frame-decision[data-state="check"] .rk-frame-decision-state {
    color: var(--rk-navy-950);
    background: var(--rk-yellow);
  }

  #rk-frame-guide .rk-frame-decision[data-state="keep"] .rk-frame-decision-state {
    background: var(--rk-green);
  }

  #rk-frame-guide .rk-frame-decision-state strong {
    display: block;
    margin-bottom: 5px;
    font-size: 1.05rem;
    line-height: 1.25;
  }

  #rk-frame-guide .rk-frame-decision-state span {
    font-size: 0.67rem;
    font-weight: 850;
    line-height: 1.4;
    opacity: 0.88;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-decision-body {
    padding: 22px;
  }

  #rk-frame-guide .rk-frame-decision-body h4 {
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-decision-body p {
    color: #bcd7e1;
    font-size: 0.81rem;
    line-height: 1.57;
  }

  #rk-frame-guide .rk-frame-decision-body ul {
    margin-top: 9px;
    color: #bcd7e1;
    font-size: 0.76rem;
    line-height: 1.5;
  }

  #rk-frame-guide .rk-frame-map-wrap {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid #315a6e;
    border-radius: 17px;
    background: #0d2939;
  }

  #rk-frame-guide .rk-frame-map-wrap h4 {
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-map-wrap > p {
    color: #9fc0cd;
    font-size: 0.76rem;
  }

  #rk-frame-guide .rk-frame-room-map {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 14px;
    border: 1px solid #416c7e;
    border-radius: 14px;
    background: #f4fafc;
  }

  #rk-frame-guide .rk-frame-map-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 13px;
    color: #b8d3dd;
    font-size: 0.69rem;
    line-height: 1.45;
  }

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

  #rk-frame-guide .rk-frame-map-legend i {
    display: inline-block;
    width: 13px;
    height: 13px;
    border-radius: 4px;
    background: var(--rk-cyan);
  }

  #rk-frame-guide .rk-frame-map-legend .is-excluded {
    background: var(--rk-orange);
  }

  #rk-frame-guide .rk-frame-map-legend .is-check {
    background: var(--rk-yellow);
  }

  #rk-frame-guide .rk-frame-capacity {
    margin-top: 16px;
    padding: 16px;
    border: 1px solid #315a6e;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.035);
  }

  #rk-frame-guide .rk-frame-capacity-head {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 9px;
    color: #d9eef5;
    font-size: 0.72rem;
    font-weight: 850;
  }

  #rk-frame-guide .rk-frame-capacity-track {
    overflow: hidden;
    height: 12px;
    border-radius: 999px;
    background: #274e61;
  }

  #rk-frame-guide .rk-frame-capacity-fill {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--rk-cyan);
    transition: width 0.2s ease;
  }

  #rk-frame-guide .rk-frame-capacity[data-state="low"] .rk-frame-capacity-fill {
    background: var(--rk-red);
  }

  #rk-frame-guide .rk-frame-capacity small {
    display: block;
    margin-top: 8px;
    color: #8eb0be;
    font-size: 0.67rem;
    line-height: 1.5;
  }

  #rk-frame-guide .rk-frame-category-table strong {
    display: inline-flex;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: 0.67rem;
    line-height: 1.3;
  }

  #rk-frame-guide .rk-frame-category-table .is-exclude {
    color: #8e3127;
    background: var(--rk-red-soft);
  }

  #rk-frame-guide .rk-frame-category-table .is-check {
    color: #775500;
    background: var(--rk-yellow-soft);
  }

  #rk-frame-guide .rk-frame-category-table .is-keep {
    color: #126a51;
    background: var(--rk-green-soft);
  }

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

  #rk-frame-guide .rk-frame-audit-panels {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
  }

  #rk-frame-guide .rk-frame-audit-panel {
    min-width: 0;
    padding: 18px;
    border: 1px solid #3d687b;
    border-top: 5px solid var(--rk-yellow);
    border-radius: 15px;
    background: #102e3e;
  }

  #rk-frame-guide .rk-frame-audit-panel[data-state="complete"] {
    border-top-color: var(--rk-green);
  }

  #rk-frame-guide .rk-frame-audit-panel[data-state="missing"] {
    border-top-color: var(--rk-red);
  }

  #rk-frame-guide .rk-frame-audit-panel span {
    display: block;
    margin-bottom: 7px;
    color: #82a9b9;
    font-size: 0.65rem;
    font-weight: 900;
    letter-spacing: 0.055em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-audit-panel strong {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-white);
    font-size: 1rem;
    line-height: 1.3;
  }

  #rk-frame-guide .rk-frame-audit-panel p {
    color: #b8d1dc;
    font-size: 0.73rem;
    line-height: 1.5;
  }

  #rk-frame-guide .rk-frame-score {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #315a6e;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.035);
  }

  #rk-frame-guide .rk-frame-score strong {
    color: var(--rk-white);
    font-size: 0.9rem;
  }

  #rk-frame-guide .rk-frame-score-track {
    overflow: hidden;
    height: 12px;
    border-radius: 999px;
    background: #274e61;
  }

  #rk-frame-guide .rk-frame-score-fill {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-orange), var(--rk-yellow), var(--rk-green));
    transition: width 0.22s ease;
  }

  #rk-frame-guide .rk-frame-house-wrap {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid #315a6e;
    border-radius: 17px;
    background: #0d2939;
  }

  #rk-frame-guide .rk-frame-house-wrap h4 {
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-house-wrap > p {
    color: #9fc0cd;
    font-size: 0.76rem;
  }

  #rk-frame-guide .rk-frame-house-svg {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 14px;
    border: 1px solid #416c7e;
    border-radius: 14px;
    background: #f4fafc;
  }

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

  #rk-frame-guide .rk-frame-level-card {
    padding: 17px;
    border: 1px solid #3b6679;
    border-radius: 14px;
    background: #102f41;
  }

  #rk-frame-guide .rk-frame-level-card span {
    display: block;
    margin-bottom: 6px;
    color: #78dff0;
    font-size: 0.65rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-frame-guide .rk-frame-level-card strong {
    display: block;
    margin-bottom: 6px;
    color: var(--rk-white);
    line-height: 1.35;
  }

  #rk-frame-guide .rk-frame-level-card p {
    color: #b9d2dc;
    font-size: 0.75rem;
    line-height: 1.55;
  }

  #rk-frame-guide .rk-frame-audit-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin-top: 18px;
  }

  #rk-frame-guide .rk-frame-audit-action {
    padding: 16px 18px;
    border-left: 4px solid var(--rk-yellow);
    border-radius: 0 12px 12px 0;
    color: #d4e8ef;
    background: rgba(243, 181, 27, 0.08);
    font-size: 0.76rem;
    line-height: 1.55;
  }

  #rk-frame-guide .rk-frame-audit-action.is-critical {
    border-left-color: var(--rk-red);
    background: rgba(216, 75, 75, 0.1);
  }

  #rk-frame-guide .rk-frame-audit-action.is-complete {
    border-left-color: var(--rk-green);
    background: rgba(21, 147, 111, 0.1);
  }

  #rk-frame-guide .rk-frame-audit-action strong {
    color: var(--rk-white);
  }

  #rk-frame-guide .rk-frame-floor-chip {
    display: inline-flex;
    margin: 4px 5px 4px 0;
    padding: 5px 9px;
    border-radius: 999px;
    color: #0b2a39;
    background: #7deaf8;
    font-size: 0.66rem;
    font-weight: 900;
    line-height: 1.3;
  }

  #rk-frame-guide .rk-frame-floor-chip.is-orange {
    color: #6d2a1c;
    background: #ffc2b2;
  }

  #rk-frame-guide .rk-frame-floor-chip.is-yellow {
    color: #624700;
    background: #ffe290;
  }

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

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

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

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

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

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

    #rk-frame-guide .rk-frame-cta .rk-frame-button {
      justify-self: start;
    }
  }

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

    #rk-frame-guide .rk-frame-shell {
      border-radius: 20px;
    }

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

    #rk-frame-guide .rk-frame-nav-label {
      width: 100%;
    }

    #rk-frame-guide .rk-frame-nav a {
      min-height: 36px;
      padding: 7px 10px;
      font-size: 0.68rem;
    }

    #rk-frame-guide .rk-frame-grid-2,
    #rk-frame-guide .rk-frame-grid-3,
    #rk-frame-guide .rk-frame-grid-4,
    #rk-frame-guide .rk-frame-steps,
    #rk-frame-guide .rk-frame-form-grid,
    #rk-frame-guide .rk-frame-evidence-grid,
    #rk-frame-guide .rk-frame-checklist,
    #rk-frame-guide .rk-frame-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-protocol,
    #rk-frame-guide .rk-frame-mini-formula {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-audit-actions,
    #rk-frame-guide .rk-frame-level-grid {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-definition {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-decision {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-decision-state {
      min-height: 105px;
    }

    #rk-frame-guide .rk-frame-layer-three,
    #rk-frame-guide .rk-frame-layer-five {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-layer {
      min-height: 54px;
    }

    #rk-frame-guide .rk-frame-myth {
      grid-template-columns: 1fr;
    }

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

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

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

    #rk-frame-guide .rk-frame-table tr {
      overflow: hidden;
      margin: 0 0 14px;
      border: 1px solid var(--rk-line);
      border-radius: 15px;
      background: var(--rk-white);
      box-shadow: 0 8px 18px rgba(16, 47, 66, 0.05);
    }

    #rk-frame-guide .rk-frame-table td,
    #rk-frame-guide .rk-frame-table tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(110px, 0.75fr) minmax(0, 1.25fr);
      gap: 12px;
      padding: 13px 14px;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white);
    }

    #rk-frame-guide .rk-frame-table td::before {
      color: var(--rk-navy-900);
      font-size: 0.69rem;
      font-weight: 900;
      line-height: 1.4;
      content: attr(data-label);
    }

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

    #rk-frame-guide .rk-frame-author-head {
      align-items: flex-start;
    }

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

    #rk-frame-guide .rk-frame-author-side {
      padding: 30px 22px;
    }

    #rk-frame-guide .rk-frame-author-main {
      padding: 28px 22px;
    }

    #rk-frame-guide .rk-frame-author-quote {
      padding: 50px 20px 20px;
    }

    #rk-frame-guide .rk-frame-author-quote::before {
      top: 8px;
      left: 20px;
    }
  }

  @media (max-width: 460px) {
    #rk-frame-guide .rk-frame-hero {
      padding: 34px 20px 31px;
    }

    #rk-frame-guide .rk-frame-main {
      padding: 0 18px;
    }

    #rk-frame-guide .rk-frame-status {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-result,
    #rk-frame-guide .rk-frame-tool-body,
    #rk-frame-guide .rk-frame-cta {
      padding: 18px;
    }

    #rk-frame-guide .rk-frame-input-grid,
    #rk-frame-guide .rk-frame-results,
    #rk-frame-guide .rk-frame-audit-panels {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-score {
      grid-template-columns: 1fr;
    }

    #rk-frame-guide .rk-frame-tool-group,
    #rk-frame-guide .rk-frame-section-visual,
    #rk-frame-guide .rk-frame-map-wrap {
      padding: 16px;
    }

    #rk-frame-guide .rk-frame-table td,
    #rk-frame-guide .rk-frame-table tbody tr:nth-child(even) td {
      grid-template-columns: 1fr;
      gap: 4px;
    }

    #rk-frame-guide .rk-frame-final-wrap {
      padding: 24px 18px;
    }
  }

  @media print {
    #rk-frame-guide .rk-frame-nav,
    #rk-frame-guide .rk-frame-tool-actions,
    #rk-frame-guide .rk-frame-cta,
    #rk-frame-guide .rk-frame-final-wrap {
      display: none !important;
    }

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

<article id="rk-frame-guide" itemscope itemtype="https://schema.org/TechArticle">
  <div class="rk-frame-shell">
    <header class="rk-frame-hero">
      <span class="rk-frame-eyebrow">Dom szkieletowy • aktualizacja 2026</span>
      <div class="rk-frame-hero-title">Podłogówka w domu szkieletowym — <span>dobór od konstrukcji, nie od etykiety</span></div>
      <p class="rk-frame-hero-lead">Parter na gruncie, drewniany strop i płyta CLT nie wymagają tego samego rozwiązania. Zobacz, kiedy sens ma system suchy, kiedy można zaprojektować podłogę z jastrychem oraz jakie dane trzeba sprawdzić, zanim wybierzesz rozstaw rur i temperaturę wody.</p>

      <div class="rk-frame-hero-tags" aria-label="Najważniejsze zagadnienia artykułu">
        <span class="rk-frame-hero-tag">parter na gruncie</span>
        <span class="rk-frame-hero-tag">strop drewniany</span>
        <span class="rk-frame-hero-tag">system suchy</span>
        <span class="rk-frame-hero-tag">system z jastrychem</span>
        <span class="rk-frame-hero-tag">audyt projektu</span>
      </div>

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

    <nav class="rk-frame-nav" aria-label="Nawigacja po wszystkich nagłówkach H2">
      <span class="rk-frame-nav-label">Na skróty — wszystkie H2</span>
      <a href="#rk-frame-szybka-odpowiedz">Szybka odpowiedź</a>
      <a href="#rk-frame-kondygnacje">Dwie różne kondygnacje</a>
      <a href="#rk-frame-roznice">Co zmienia szkielet</a>
      <a href="#rk-frame-suchy-mokry">Suchy czy mokry</a>
      <a href="#rk-frame-parter">Parter na gruncie</a>
      <a href="#rk-frame-strop">Strop drewniany</a>
      <a href="#rk-frame-konstrukcja">Nośność i ugięcia</a>
      <a href="#rk-frame-wilgoc">Wilgoć i szczelność</a>
      <a href="#rk-frame-akustyka">Akustyka i pożar</a>
      <a href="#rk-frame-termika">Strata ciepła</a>
      <a href="#rk-frame-audyt">Audyt projektu</a>
      <a href="#rk-frame-parametry">Rozstaw i temperatura</a>
      <a href="#rk-frame-okladziny">Okładziny</a>
      <a href="#rk-frame-zrodlo">Źródło ciepła</a>
      <a href="#rk-frame-sterowanie">Sterowanie</a>
      <a href="#rk-frame-kolejnosc">Kolejność prac</a>
      <a href="#rk-frame-bledy">Błędy i mity</a>
      <a href="#rk-frame-checklista">Checklista</a>
      <a href="#rk-frame-faq">FAQ</a>
      <a href="#rk-frame-zrodla">Źródła</a>
      <a href="#rk-frame-author">Autor</a>
    </nav>

    <main class="rk-frame-main">
      <section class="rk-frame-section" id="rk-frame-szybka-odpowiedz">
        <h2>Czy ogrzewanie podłogowe sprawdzi się w domu szkieletowym?</h2>
        <p class="rk-frame-lead">Tak. Ogrzewanie podłogowe może pracować bardzo dobrze w domu szkieletowym, ale nie dobiera się go z samej nazwy technologii budynku. Osobno analizuje się podłogę parteru, strop międzykondygnacyjny, straty ciepła pomieszczeń, okładziny oraz hydraulikę źródła.</p>

        <div class="rk-frame-answer">
          <p><strong>Dom szkieletowy nie oznacza automatycznie systemu suchego.</strong> Na parterze wykonanym jako podłoga na gruncie albo płyta fundamentowa może być uzasadniony system z jastrychem. Na lekkim stropie belkowym często wybiera się system suchy, lecz ostateczną decyzję wyznaczają nośność, ugięcie, drgania, akustyka, wysokość warstw i potwierdzona wydajność cieplna.</p>
        </div>

        <div class="rk-frame-grid-4">
          <article class="rk-frame-card rk-frame-card-accent">
            <span class="rk-frame-tag">Krok 1</span>
            <h3>Rozdziel kondygnacje</h3>
            <p>Parter na gruncie i strop drewniany mogą mieć zupełnie inne przekroje, masę oraz sposób przekazywania obciążeń.</p>
          </article>
          <article class="rk-frame-card rk-frame-card-accent rk-frame-card-orange">
            <span class="rk-frame-tag">Krok 2</span>
            <h3>Sprawdź konstrukcję</h3>
            <p>Ciężaru warstw, ugięcia i drgań nie ocenia się na podstawie samej powierzchni domu ani katalogowej nazwy systemu.</p>
          </article>
          <article class="rk-frame-card rk-frame-card-accent rk-frame-card-green">
            <span class="rk-frame-tag">Krok 3</span>
            <h3>Policz wymaganą moc</h3>
            <p>Strata ciepła każdego pomieszczenia musi zostać odniesiona do rzeczywiście ogrzewanej powierzchni podłogi.</p>
          </article>
          <article class="rk-frame-card rk-frame-card-accent rk-frame-card-purple">
            <span class="rk-frame-tag">Krok 4</span>
            <h3>Skoordynuj źródło</h3>
            <p>Temperatura zasilania, minimalny przepływ, moc minimalna i sterowanie muszą tworzyć jeden układ.</p>
          </article>
        </div>

        <p>Najważniejsza zasada brzmi: <strong>najpierw przekrój budowlany i obliczenia, później nazwa systemu</strong>. Szczegółowe omówienie samego stropu znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">ogrzewanie podłogowe na stropie drewnianym</a>.</p>
      </section>
 
      <section class="rk-frame-section" id="rk-frame-kondygnacje">
        <h2>Parter i piętro domu szkieletowego to często dwa różne projekty podłogi</h2>
        <p>Ściany w technologii szkieletowej nie przesądzają o konstrukcji każdej podłogi. W tym samym budynku parter może opierać się na gruncie albo płycie fundamentowej, a piętro na belkach drewnianych. Próba zastosowania jednego przekroju „dla całego domu” pomija zasadnicze różnice.</p>

        <div class="rk-frame-table-wrap">
          <table class="rk-frame-table">
            <thead>
              <tr>
                <th>Przegroda</th>
                <th>Najważniejsze pytanie</th>
                <th>Co może być odpowiednie?</th>
                <th>Co trzeba potwierdzić?</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Przegroda"><strong>Podłoga na gruncie</strong></td>
                <td data-label="Pytanie">Czy cały przekrój spełnia wymagania cieplne i wysokościowe?</td>
                <td data-label="Rozwiązanie">System z jastrychem albo rozwiązanie suche — zależnie od projektu warstw.</td>
                <td data-label="Potwierdź">Izolację, hydroizolację, dylatacje, obciążenia i poziomy posadzki.</td>
              </tr>
              <tr>
                <td data-label="Przegroda"><strong>Płyta fundamentowa</strong></td>
                <td data-label="Pytanie">W której warstwie ma pracować ogrzewanie i jaka będzie jego bezwładność?</td>
                <td data-label="Rozwiązanie">Rury w rozwiązaniu przewidzianym projektem płyty albo osobna warstwa grzewcza nad nią.</td>
                <td data-label="Potwierdź">Projekt konstrukcyjny, strefy bez rur, przebicia, izolację i logikę regulacji.</td>
              </tr>
              <tr>
                <td data-label="Przegroda"><strong>Strop belkowy</strong></td>
                <td data-label="Pytanie">Czy strop przeniesie stałe obciążenie i zachowa wymaganą sztywność?</td>
                <td data-label="Rozwiązanie">Najczęściej lekki system suchy; wariant z wylewką tylko po pełnej weryfikacji.</td>
                <td data-label="Potwierdź">Nośność, ugięcie, drgania, akustykę, ogień i wilgoć technologiczną.</td>
              </tr>
              <tr>
                <td data-label="Przegroda"><strong>CLT lub strop masywny</strong></td>
                <td data-label="Pytanie">Jak warstwy ogrzewania współpracują z płytą i połączeniami?</td>
                <td data-label="Rozwiązanie">System suchy albo mokry zaprojektowany jako kompletna nadbudowa.</td>
                <td data-label="Potwierdź">Obciążenie, akustykę, wilgoć, mocowania i dokumentację systemową.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-frame-note">
          <p><strong>Nie przenoś automatycznie rozwiązania z parteru na piętro.</strong> Jastrych, który jest racjonalny na podłodze na gruncie, może być niepotrzebnym lub niedopuszczalnym obciążeniem na stropie belkowym. Z kolei lekki system suchy nie musi być najlepszym wyborem wszędzie tylko dlatego, że budynek ma ściany szkieletowe.</p>
        </div>
      </section>

      <section class="rk-frame-section" id="rk-frame-roznice">
        <h2>Co naprawdę zmienia technologia szkieletowa?</h2>
        <p>Domy szkieletowe zwykle mają mniejszą masę akumulacyjną przegród niż budynki ciężkie, lecz nie pozwala to przypisać im jednej reakcji czasowej ani jednego sposobu sterowania. Na zachowanie cieplne wpływa komplet warstw: konstrukcja, poszycia, izolacja, jastrych lub płyty suche, okładzina i wyposażenie.</p>

        <div class="rk-frame-grid-3">
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Konstrukcja</span>
            <h3>Masa i sztywność</h3>
            <p>Lekki strop jest bardziej wrażliwy na dodatkowe obciążenia, ugięcie i drgania. Nie oznacza to jednak, że każda mokra warstwa jest zakazana.</p>
          </article>
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Fizyka budowli</span>
            <h3>Wilgoć i szczelność</h3>
            <p>Przebieg warstw kontrolujących przepływ powietrza i pary wodnej musi być ciągły, a przejścia instalacyjne — zaprojektowane.</p>
          </article>
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Eksploatacja</span>
            <h3>Szybkie zyski ciepła</h3>
            <p>Nasłonecznienie i mała akumulacja mogą szybciej podnosić temperaturę wnętrza, dlatego ważne są przepływy i logika regulacji.</p>
          </article>
        </div>

        <h3>Współczynnik U nie jest oporem cieplnym</h3>
        <p>Współczynnik przenikania ciepła <strong>U</strong> opisuje przepływ ciepła przez przegrodę przy różnicy temperatur. Im mniejsza wartość U, tym mniejsze przenikanie ciepła i — w uproszczeniu — większy opór cieplny całej przegrody. Nie należy pisać, że niski współczynnik U oznacza niski opór. Obliczenia przegród można wstępnie sprawdzić w <a href="https://budowlaneabc.gov.pl/charakterystyka-energetyczna-budynkow/kalkulatory/calc-wpc/" target="_blank" rel="nofollow noopener noreferrer">rządowym kalkulatorze współczynnika przenikania ciepła</a>.</p>

        <p>Wymagania izolacyjności cieplnej wynikają z całego układu przegrody i aktualnych warunków technicznych, a nie z popularnej reguły „dom szkieletowy potrzebuje określonej liczby centymetrów izolacji”. Tekst jednolity przepisów udostępnia <a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="nofollow noopener noreferrer">Elektroniczny Dziennik Ustaw</a>.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-suchy-mokry">
        <h2>System suchy czy mokry w domu szkieletowym?</h2>
        <p class="rk-frame-lead">Oba rozwiązania mogą być technicznie poprawne. Różnią się masą, sposobem rozprowadzania ciepła, kolejnością prac, wymaganiami podłoża i czasem potrzebnym przed ułożeniem okładziny. Nie można wybrać systemu wyłącznie z tabeli „typ budynku → gotowa odpowiedź”.</p>

        <div class="rk-frame-table-wrap">
          <table class="rk-frame-table">
            <thead>
              <tr>
                <th>Cecha</th>
                <th>System suchy</th>
                <th>System z jastrychem</th>
                <th>Wniosek projektowy</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Cecha">Obciążenie stałe</td>
                <td data-label="System suchy">Zwykle mniejsze, ale zależne od wszystkich płyt i okładziny.</td>
                <td data-label="System mokry">Zwykle większe; oblicza się je z grubości i gęstości warstw.</td>
                <td data-label="Wniosek">Porównuj kompletne przekroje, a nie tylko warstwę z rurą.</td>
              </tr>
              <tr>
                <td data-label="Cecha">Akumulacja i reakcja</td>
                <td data-label="System suchy">Zwykle mniejsza masa nad rurą i szybsza odpowiedź.</td>
                <td data-label="System mokry">Zwykle większa akumulacja i wolniejsza odpowiedź.</td>
                <td data-label="Wniosek">Czas reakcji zależy również od mocy, przepływu, okładziny i budynku.</td>
              </tr>
              <tr>
                <td data-label="Cecha">Rozprowadzenie ciepła</td>
                <td data-label="System suchy">Wymaga dobrze zaprojektowanych płyt przewodzących i kontaktu warstw.</td>
                <td data-label="System mokry">Jastrych otacza rurę i rozprowadza ciepło w swojej objętości.</td>
                <td data-label="Wniosek">Korzystaj z charakterystyki całego systemu dla konkretnego rozstawu i okładziny.</td>
              </tr>
              <tr>
                <td data-label="Cecha">Wilgoć technologiczna</td>
                <td data-label="System suchy">Brak jastrychu nie oznacza braku wszystkich procesów mokrych w budynku.</td>
                <td data-label="System mokry">Wymaga kontroli wilgotności i warunków przed zamknięciem wrażliwych warstw.</td>
                <td data-label="Wniosek">Procedurę wykonania uzgadnia się z projektem budowlanym i okładziną.</td>
              </tr>
              <tr>
                <td data-label="Cecha">Wysokość zabudowy</td>
                <td data-label="System suchy">Może być niski, lecz nie ma jednej uniwersalnej grubości.</td>
                <td data-label="System mokry">Zależy od średnicy rury, przykrycia, jastrychu i wymagań konstrukcyjnych.</td>
                <td data-label="Wniosek">Sprawdź drzwi, schody, progi i poziomy wszystkich pomieszczeń.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <p>Więcej różnic opisujemy w poradniku <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry czy suchy</a> oraz w osobnym omówieniu <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">suchego ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-parter">
        <h2>Ogrzewanie podłogowe na parterze domu szkieletowego</h2>
        <p>Na parterze najpierw ustala się, czy mamy podłogę na gruncie, płytę fundamentową, czy strop nad przestrzenią nieogrzewaną. Każdy wariant ma inną drogę przepływu ciepła, mostki, warunki wilgotnościowe i wymagania konstrukcyjne.</p>

        <h3>Podłoga na gruncie</h3>
        <p>System z rurami w jastrychu może być racjonalny, jeżeli został przewidziany w przekroju. Grubość izolacji nie wynika z technologii ścian, lecz z obliczeń całej podłogi, jej obwodu, geometrii, połączeń z fundamentem i wymagań cieplnych. Ważne są też hydroizolacja, dylatacje, warstwa brzegowa i stabilność podłoża.</p>

        <h3>Płyta fundamentowa</h3>
        <p>Rury mogą znaleźć się w rozwiązaniu zintegrowanym z płytą albo w osobnej warstwie nad nią. To dwie różne instalacje pod względem akumulacji, dostępności, kolejności prac i sterowania. Każde przejście, strefa konstrukcyjna oraz miejsce planowanego kotwienia musi zostać skoordynowane przed betonowaniem.</p>

        <h3>Strop nad przestrzenią nieogrzewaną</h3>
        <p>Trzeba sprawdzić nie tylko moc oddawaną do pomieszczenia, ale też izolacyjność w dół i ryzyko lokalnych mostków. Sama obecność ogrzewania nie zastępuje projektu cieplnego przegrody.</p>

        <div class="rk-frame-warning">
          <p><strong>Nie dobieraj izolacji z tabeli „10, 15 czy 20 cm”.</strong> Materiały o tej samej grubości mogą mieć różne właściwości, a wynik zależy od kompletnego układu. Ostateczną grubość wyznacza projekt przegrody, dostępna wysokość i wymagania budynku.</p>
        </div>
      </section>

      <section class="rk-frame-section" id="rk-frame-strop">
        <h2>Podłogówka na drewnianym stropie</h2>
        <p class="rk-frame-lead">Na stropie belkowym system suchy jest częstym wyborem, ponieważ może ograniczyć dodatkową masę i wilgoć technologiczną. Nie jest jednak automatycznie poprawny: nadal wymaga oceny nośności, ugięcia, drgań, akustyki oraz sztywności podłoża pod okładzinę.</p>

        <div class="rk-frame-grid-3">
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Warstwa grzewcza</span>
            <h3>Rura i rozdzielanie ciepła</h3>
            <p>Płyty przewodzące muszą współpracować ze średnicą rury, rozstawem i płytą rozkładającą obciążenie. Luźny kontakt pogarsza przewodzenie i może powodować odgłosy.</p>
          </article>
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Podłoże</span>
            <h3>Sztywność i płaskość</h3>
            <p>Okładzina potrzebuje podłoża o wymaganej sztywności. Szczególnie płytki wymagają kontroli ugięcia całego układu, nie tylko nośności belek.</p>
          </article>
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Przegroda</span>
            <h3>Akustyka i ogień</h3>
            <p>Warstwy podłogi uczestniczą w ochronie akustycznej i odporności ogniowej. Nie wolno usuwać ich wyłącznie po to, by zmieścić ogrzewanie.</p>
          </article>
        </div>

        <h3>Czy system suchy ma zawsze małą pojemność wodną?</h3>
        <p>Nie. Pojemność wodna wynika przede wszystkim ze średnicy wewnętrznej i całkowitej długości rur, a nie z tego, czy nad rurą znajduje się jastrych. System suchy ma zwykle mniejszą masę warstw przewodzących, lecz liczba pętli i objętość wody wymagają osobnych obliczeń.</p>

        <h3>Czy system suchy zawsze pracuje na niższej temperaturze?</h3>
        <p>Nie. Potrzebna temperatura zależy od wymaganej mocy, rozstawu, konstrukcji, płyt przewodzących, kontaktu warstw, okładziny i temperatury pomieszczenia. Typ systemu sam nie wyznacza temperatury zasilania.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-konstrukcja">
        <h2>Nośność, obciążenie, ugięcie i drgania stropu</h2>
        <p>Ocena stropu nie kończy się na stwierdzeniu, że „wytrzyma określoną liczbę kilogramów”. Konstruktor rozdziela obciążenia stałe od użytkowych, analizuje rozpiętość i przekrój belek, podparcie, połączenia, otwory oraz kryteria użytkowalności: ugięcie i drgania.</p>

        <span class="rk-frame-code-line">m<sub>A</sub> = d · ρ</span>
        <p>Orientacyjną masę powierzchniową jednorodnej warstwy można policzyć z grubości <strong>d</strong> i gęstości <strong>ρ</strong>, zachowując spójne jednostki. To tylko masa jednej warstwy — do stropu dochodzą płyty, podsypki, izolacja akustyczna, okładzina, sufity i wyposażenie.</p>

        <div class="rk-frame-mini-formula">
          <div><strong>obciążenia stałe</strong><span>warstwy podłogi, sufitu, instalacji i elementy trwale związane z budynkiem</span></div>
          <div><strong>obciążenia użytkowe</strong><span>ludzie, meble i użytkowanie przyjęte zgodnie z przeznaczeniem</span></div>
          <div><strong>użytkowalność</strong><span>ugięcie, drgania i warunki pracy przegród oraz okładzin</span></div>
        </div>

        <p>Zasady projektowania konstrukcji drewnianych obejmuje Eurokod 5. Materiał wprowadzający udostępnia <a href="https://eurocodes.jrc.ec.europa.eu/sites/default/files/2022-06/EN1995_4_Kreuzinger.pdf" target="_blank" rel="nofollow noopener noreferrer">Joint Research Centre Komisji Europejskiej</a>. Taki dokument nie zastępuje obliczeń konkretnego stropu.</p>

        <div class="rk-frame-warning">
          <p><strong>Kalkulator internetowy nie oceni bezpiecznie stropu.</strong> Bez geometrii, klasy i wilgotności drewna, schematu podparcia, połączeń, otworów oraz pełnego zestawu obciążeń wynik byłby pozornie precyzyjny. Dlatego narzędzie w tym artykule sprawdza kompletność danych, a nie nośność.</p>
        </div>
      </section>

      <section class="rk-frame-section" id="rk-frame-wilgoc">
        <h2>Wilgoć technologiczna, paroizolacja i szczelność powietrzna</h2>
        <p>W domu szkieletowym trzeba skoordynować instalację z warstwami odpowiedzialnymi za szczelność powietrzną i kontrolę przepływu pary wodnej. Ich położenie zależy od kompletnego przekroju ściany lub stropu, klimatu wewnętrznego oraz projektu fizyki budowli. Nie istnieje jedna poprawna lokalizacja „folii” dla każdego domu.</p>

        <div class="rk-frame-grid-3">
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Ciągłość</span>
            <h3>Warstwa szczelna</h3>
            <p>Przejścia rur, kabli i mocowań powinny mieć zaprojektowane uszczelnienie. Przypadkowe przebicia mogą zniszczyć ciągłość warstwy.</p>
          </article>
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Proces mokry</span>
            <h3>Kontrola wysychania</h3>
            <p>Przed zamknięciem drewna i płyt wrażliwych na wilgoć trzeba potwierdzić warunki oraz wilgotność zgodnie z projektem i technologią.</p>
          </article>
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Uruchomienie</span>
            <h3>Procedura wygrzewania</h3>
            <p>Jastrych uruchamia się według jego dokumentacji i warunków wykonania. Próba szczelności instalacji nie jest tym samym co wygrzewanie.</p>
          </article>
        </div>

        <p>Przy systemie mokrym znaczenie ma rodzaj jastrychu, grubość, warunki dojrzewania, pomiar wilgotności i wymagania okładziny. Szczegóły opisuje przewodnik <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-akustyka">
        <h2>Akustyka, odporność ogniowa i sztywność warstw</h2>
        <p>Warstwa ogrzewania nie działa w izolacji od reszty stropu. Płyty, podsypki, maty, sufity i połączenia wpływają jednocześnie na dźwięki uderzeniowe, dźwięki powietrzne, ochronę ogniową oraz zachowanie mechaniczne podłogi.</p>

        <div class="rk-frame-definition"><strong>Akustyka</strong><div>Przerwanie warstwy sprężystej, sztywne mostki przy ścianach albo mocowania przechodzące przez układ pływający mogą pogorszyć wynik całej przegrody.</div></div>
        <div class="rk-frame-definition"><strong>Ogień</strong><div>Okładziny i liczba warstw płyt mogą być częścią przebadanego lub obliczonego rozwiązania. Nie wolno dowolnie zmieniać ich grubości i sposobu mocowania.</div></div>
        <div class="rk-frame-definition"><strong>Sztywność</strong><div>Podłoże musi ograniczać odkształcenia w stopniu wymaganym przez system i okładzinę. Brak nadmiernego ugięcia belek nie gwarantuje jeszcze poprawnej pracy płytek.</div></div>

        <div class="rk-frame-note">
          <p><strong>Najlepszy przekrój jest skoordynowany wielobranżowo.</strong> Konstruktor, projektant instalacji, osoba odpowiedzialna za fizykę budowli i projektant wnętrz powinni pracować na tej samej wersji warstw oraz poziomów.</p>
        </div>
      </section>

      <section class="rk-frame-section" id="rk-frame-termika">
        <h2>Strata ciepła i powierzchnia czynna: od tego zaczyna się dobór</h2>
        <p>Wymaganą moc podłogi oblicza się dla każdego pomieszczenia. Strata ciepła salonu nie może zostać podzielona przez powierzchnię całej kondygnacji, a powierzchnia pod stałą zabudową nie powinna automatycznie zwiększać pola grzejnego.</p>

        <span class="rk-frame-code-line">q<sub>wym</sub> = Q<sub>pomieszczenia</sub> / A<sub>czynna</sub></span>

        <div class="rk-frame-mini-formula">
          <div><strong>Q<sub>pomieszczenia</sub> [W]</strong><span>projektowa strata ciepła konkretnego pomieszczenia</span></div>
          <div><strong>A<sub>czynna</sub> [m²]</strong><span>rzeczywiście ogrzewane pole bez uzgodnionych wyłączeń</span></div>
          <div><strong>q<sub>wym</sub> [W/m²]</strong><span>wymagana średnia moc z pola czynnego</span></div>
        </div>

        <p>Dopiero później sprawdza się, czy dany przekrój podłogi przy wybranym rozstawie, temperaturze wody, oporze okładziny i dopuszczalnej temperaturze powierzchni może oddać tę moc. Metodykę określania wydajności wodnych powierzchni grzewczych opisują między innymi <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2</a> i seria EN 1264.</p>

        <p>Jeżeli nie masz obliczeń, możesz wykonać wstępny bilans w naszym <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatorze strat ciepła</a>. Do ostatecznego doboru instalacji potrzebne są jednak dane pomieszczenie po pomieszczeniu.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-audyt">
        <h2>Interaktywny audyt projektu podłogówki w domu szkieletowym</h2>
        <p class="rk-frame-lead">Narzędzie nie wybiera za Ciebie systemu i nie ocenia nośności. Pokazuje, czy decyzja ma oparcie w czterech grupach danych: konstrukcji, termice, fizyce budowli oraz hydraulice. Opcjonalnie liczy wymaganą moc jednostkową z rzeczywistej straty pomieszczenia.</p>

        <div class="rk-frame-tool" id="rk-frame-audit-tool">
          <div class="rk-frame-tool-head">
            <span class="rk-frame-tool-kicker">Audyt kompletności • wynik na żywo</span>
            <h3>Sprawdź, czego jeszcze brakuje przed wyborem systemu</h3>
            <p>Wybierz konstrukcję każdej kondygnacji, etap uzgodnień i dane termiczne. Wynik nie jest świadectwem bezpieczeństwa — to uporządkowana lista decyzji potrzebnych do projektu.</p>
          </div>

          <div class="rk-frame-tool-body">
            <div class="rk-frame-tool-group">
              <div class="rk-frame-tool-group-head"><span class="rk-frame-tool-group-num">1</span><div><h4>Konstrukcja kondygnacji</h4><p>Rozdziel parter od stropu. W jednym domu mogą być potrzebne dwa różne systemy.</p></div></div>
              <div class="rk-frame-input-grid">
                <div class="rk-frame-field">
                  <label for="rk-frame-ground-type">Konstrukcja podłogi parteru</label>
                  <select id="rk-frame-ground-type">
                    <option value="ground">Podłoga na gruncie</option>
                    <option value="slab">Płyta fundamentowa</option>
                    <option value="unheated">Strop nad przestrzenią nieogrzewaną</option>
                    <option value="na">Nie dotyczy</option>
                  </select>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-ground-system">Planowany system na parterze</label>
                  <select id="rk-frame-ground-system">
                    <option value="undecided">Jeszcze nie wybrano</option>
                    <option value="wet">System z jastrychem</option>
                    <option value="dry">System suchy</option>
                    <option value="na">Nie dotyczy</option>
                  </select>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-upper-type">Konstrukcja stropu/piętra</label>
                  <select id="rk-frame-upper-type">
                    <option value="timber">Strop belkowy drewniany</option>
                    <option value="clt">Płyta CLT / strop masywny drewniany</option>
                    <option value="concrete">Strop betonowy</option>
                    <option value="none">Brak ogrzewanego piętra</option>
                  </select>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-upper-system">Planowany system na piętrze</label>
                  <select id="rk-frame-upper-system">
                    <option value="undecided">Jeszcze nie wybrano</option>
                    <option value="dry">System suchy</option>
                    <option value="wet">System z jastrychem</option>
                    <option value="na">Nie dotyczy</option>
                  </select>
                </div>
              </div>
            </div>

            <div class="rk-frame-tool-group">
              <div class="rk-frame-tool-group-head"><span class="rk-frame-tool-group-num">2</span><div><h4>Uzgodnienia projektowe</h4><p>Zaznacz „tak” tylko wtedy, gdy masz konkretny wynik lub uzgodniony detal — nie samo założenie.</p></div></div>
              <div class="rk-frame-input-grid">
                <div class="rk-frame-field">
                  <label for="rk-frame-struct-check">Konstruktor sprawdził warstwy i strop</label>
                  <select id="rk-frame-struct-check"><option value="no">Nie / jeszcze nie</option><option value="yes">Tak</option><option value="na">Nie dotyczy stropu</option></select>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-heatloss-check">Są straty ciepła dla pomieszczeń</label>
                  <select id="rk-frame-heatloss-check"><option value="no">Nie</option><option value="yes">Tak</option></select>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-covering-check">Znane są okładziny i ich opór</label>
                  <select id="rk-frame-covering-check"><option value="no">Nie</option><option value="yes">Tak</option></select>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-systemdata-check">Jest wydajność wybranego przekroju</label>
                  <select id="rk-frame-systemdata-check"><option value="no">Nie</option><option value="yes">Tak, dla rzeczywistych warunków</option></select>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-airtight-check">Skoordynowano wilgoć i szczelność</label>
                  <select id="rk-frame-airtight-check"><option value="no">Nie / jeszcze nie</option><option value="yes">Tak</option><option value="na">Nie dotyczy danego detalu</option></select>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-source-check">Znane są wymagania hydrauliczne źródła</label>
                  <select id="rk-frame-source-check"><option value="no">Nie</option><option value="yes">Tak</option></select>
                  <small>Minimalny przepływ, moc minimalna, sposób regulacji i ewentualne wymagania dotyczące pojemności.</small>
                </div>
              </div>
            </div>

            <div class="rk-frame-tool-group">
              <div class="rk-frame-tool-group-head"><span class="rk-frame-tool-group-num">3</span><div><h4>Opcjonalne sprawdzenie cieplne jednego pomieszczenia</h4><p>Wpisz dane z obliczeń i potwierdzoną moc wybranego systemu dla konkretnego rozstawu, temperatur oraz okładziny.</p></div></div>
              <div class="rk-frame-input-grid">
                <div class="rk-frame-field">
                  <label for="rk-frame-room-loss">Projektowa strata pomieszczenia [W]</label>
                  <input id="rk-frame-room-loss" type="number" min="0" step="10" value="900" inputmode="decimal">
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-active-area">Rzeczywiście ogrzewana powierzchnia [m²]</label>
                  <input id="rk-frame-active-area" type="number" min="0.1" step="0.1" value="18" inputmode="decimal">
                  <small>Bez uzgodnionych stref trwałej zabudowy i innych wyłączeń.</small>
                </div>
                <div class="rk-frame-field">
                  <label for="rk-frame-available-output">Potwierdzona moc systemu [W/m²]</label>
                  <input id="rk-frame-available-output" type="number" min="0" step="1" value="0" inputmode="decimal">
                  <small>Pozostaw 0, jeżeli nie masz charakterystyki dla swoich warunków.</small>
                </div>
              </div>
            </div>

            <div class="rk-frame-results" aria-live="polite">
              <div class="rk-frame-result-card is-cyan"><span>Wymagana moc jednostkowa</span><strong id="rk-frame-out-required">50,0 W/m²</strong><small>Q pomieszczenia ÷ powierzchnia czynna</small></div>
              <div class="rk-frame-result-card"><span>Wymagana moc pomieszczenia</span><strong id="rk-frame-out-room">900 W</strong><small>wartość wpisana z obliczeń</small></div>
              <div class="rk-frame-result-card is-green"><span>Dostępna moc całkowita</span><strong id="rk-frame-out-capacity">Nie oceniono</strong><small id="rk-frame-out-capacity-note">wpisz potwierdzoną moc systemu</small></div>
              <div class="rk-frame-result-card" id="rk-frame-margin-card"><span>Bilans względem potrzeby</span><strong id="rk-frame-out-margin">Nie oceniono</strong><small id="rk-frame-out-margin-note">brak danych systemowych</small></div>
            </div>

            <div class="rk-frame-audit-panels" aria-live="polite">
              <article class="rk-frame-audit-panel" id="rk-frame-panel-structure" data-state="missing"><span>Konstrukcja</span><strong id="rk-frame-panel-structure-title">Do uzupełnienia</strong><p id="rk-frame-panel-structure-text">Strop i warstwy wymagają weryfikacji konstrukcyjnej.</p></article>
              <article class="rk-frame-audit-panel" id="rk-frame-panel-thermal" data-state="missing"><span>Termika</span><strong id="rk-frame-panel-thermal-title">Do uzupełnienia</strong><p id="rk-frame-panel-thermal-text">Potrzebne są straty ciepła i wydajność wybranego przekroju.</p></article>
              <article class="rk-frame-audit-panel" id="rk-frame-panel-physics" data-state="missing"><span>Fizyka budowli</span><strong id="rk-frame-panel-physics-title">Do uzupełnienia</strong><p id="rk-frame-panel-physics-text">Sprawdź okładziny, wilgoć i ciągłość warstw.</p></article>
              <article class="rk-frame-audit-panel" id="rk-frame-panel-hydraulics" data-state="missing"><span>Hydraulika i sterowanie</span><strong id="rk-frame-panel-hydraulics-title">Do uzupełnienia</strong><p id="rk-frame-panel-hydraulics-text">Brakuje wymagań źródła ciepła i obiegów.</p></article>
            </div>

            <div class="rk-frame-score">
              <strong>Kompletność danych: <span id="rk-frame-score-value">0/4</span></strong>
              <div class="rk-frame-score-track" aria-hidden="true"><div class="rk-frame-score-fill" id="rk-frame-score-fill"></div></div>
              <strong id="rk-frame-score-percent">0%</strong>
            </div>

            <div class="rk-frame-house-wrap">
              <h4>Dynamiczny przekrój domu</h4>
              <p>Schemat rozdziela parter i piętro. Kolory nie są oceną bezpieczeństwa — pokazują jedynie wybrany etap decyzji.</p>
              <svg class="rk-frame-house-svg" viewBox="0 0 920 520" role="img" aria-labelledby="rk-frame-house-title rk-frame-house-desc">
                <title id="rk-frame-house-title">Schemat kondygnacji domu szkieletowego</title>
                <desc id="rk-frame-house-desc">Parter oraz piętro z opisem wybranej konstrukcji i systemu ogrzewania.</desc>
                <rect x="0" y="0" width="920" height="520" fill="#eef7fa"/>
                <path d="M125 185 L460 48 L795 185" fill="none" stroke="#143e53" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/>
                <rect x="150" y="180" width="620" height="270" rx="8" fill="#ffffff" stroke="#143e53" stroke-width="10"/>
                <rect id="rk-frame-svg-upper-band" x="175" y="215" width="570" height="88" rx="12" fill="#f3b51b" opacity="0.82"/>
                <rect id="rk-frame-svg-ground-band" x="175" y="330" width="570" height="88" rx="12" fill="#29c4da" opacity="0.82"/>
                <line x1="150" y1="316" x2="770" y2="316" stroke="#143e53" stroke-width="9"/>
                <rect x="110" y="450" width="700" height="28" rx="10" fill="#829aa5"/>
                <rect x="70" y="478" width="780" height="25" rx="10" fill="#b98658"/>
                <text x="205" y="246" fill="#0b2232" font-size="24" font-weight="900" id="rk-frame-svg-upper-title">Strop belkowy drewniany</text>
                <text x="205" y="278" fill="#0b2232" font-size="18" font-weight="700" id="rk-frame-svg-upper-system">System jeszcze nie wybrany</text>
                <text x="205" y="361" fill="#0b2232" font-size="24" font-weight="900" id="rk-frame-svg-ground-title">Podłoga na gruncie</text>
                <text x="205" y="393" fill="#0b2232" font-size="18" font-weight="700" id="rk-frame-svg-ground-system">System jeszcze nie wybrany</text>
              </svg>

              <div class="rk-frame-level-grid">
                <article class="rk-frame-level-card"><span>Parter</span><strong id="rk-frame-ground-summary-title">Podłoga na gruncie</strong><p id="rk-frame-ground-summary-text">Ustal przekrój cieplny, wysokości, izolację, wilgoć i dylatacje przed wyborem systemu.</p></article>
                <article class="rk-frame-level-card" id="rk-frame-upper-summary-card"><span>Piętro / strop</span><strong id="rk-frame-upper-summary-title">Strop belkowy drewniany</strong><p id="rk-frame-upper-summary-text">Sprawdź nośność, ugięcie, drgania, akustykę i pełny ciężar warstw.</p></article>
              </div>
            </div>

            <div class="rk-frame-audit-actions" id="rk-frame-audit-actions" aria-live="polite"></div>

            <div class="rk-frame-tool-actions">
              <button class="rk-frame-reset" type="button" id="rk-frame-reset">Przywróć dane przykładowe</button>
            </div>

            <p class="rk-frame-tool-foot">Audyt ma charakter edukacyjny. Nie wykonuje obliczeń konstrukcyjnych, projektu fizyki budowli, OZC ani obliczeń hydraulicznych. Wynik „kompletne” oznacza wyłącznie, że użytkownik zadeklarował posiadanie danej grupy informacji.</p>
          </div>
        </div>

        <div class="rk-frame-cta">
          <div>
            <h3>Audyt wskazał luki? W projekcie trzeba połączyć je na jednym rzucie</h3>
            <p>Analizator może pokazać, że na parterze można rozważyć system z jastrychem, a na drewnianym stropie brakuje oceny konstrukcyjnej. Nie zna jednak przekrojów i rozpiętości belek, ugięć, drgań, warstw akustycznych, rzeczywistych strat pomieszczeń ani hydrauliki wybranego źródła. Te elementy trzeba skoordynować w indywidualnym projekcie.</p>
          </div>
          <a class="rk-frame-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki do domu szkieletowego</a>
        </div>
      </section>
<section class="rk-frame-section" id="rk-frame-parametry">
        <h2>Rozstaw rur, moc i temperatura zasilania w domu szkieletowym</h2>
        <p>Technologia budynku nie wyznacza automatycznie rozstawu rur. Podłoga nie „wie”, czy znajduje się w domu murowanym czy szkieletowym. Jej wydajność zależy od geometrii systemu, średniej temperatury wody, temperatury pomieszczenia, oporu warstw nad rurą i dopuszczalnej temperatury powierzchni.</p>

        <h3>Rozstaw 10 czy 15 cm?</h3>
        <p>Najpierw trzeba znać wymaganą moc jednostkową. Następnie porównuje się warianty w identycznych warunkach: przy tej samej temperaturze zasilania i powrotu, tym samym przekroju podłogi oraz tej samej okładzinie. Samo stwierdzenie „pompa ciepła = 10 cm” albo „dom szkieletowy = 15 cm” nie jest metodą projektową. Zobacz osobne porównanie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawu rur 10 i 15 cm</a>.</p>

        <h3>Temperatura zasilania</h3>
        <p>Nie ma jednej optymalnej temperatury dla wszystkich domów szkieletowych. Projekt określa ją na podstawie najbardziej wymagającego pomieszczenia, charakterystyki systemu i ograniczeń okładziny. Sterowanie pogodowe może później zmniejszać temperaturę wraz ze wzrostem temperatury zewnętrznej. Więcej wyjaśniamy w artykule o <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>.</p>

        <h3>Długość pętli i opory</h3>
        <p>System suchy nie zwalnia z obliczeń hydraulicznych. Długość rury, przepływ, średnica wewnętrzna, opory rozdzielacza i dobiegów nadal wyznaczają stratę ciśnienia. Rozstaw wpływa na ilość rury w polu, ale nie zastępuje obliczenia krytycznej pętli. Pomocny jest przewodnik o <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli ogrzewania podłogowego</a>.</p>

        <div class="rk-frame-note">
          <p><strong>Nie porównuj samych temperatur zasilania.</strong> Dwa systemy przy tej samej temperaturze mogą oddawać inną moc, jeżeli różnią się rozstawem, płytami przewodzącymi, oporem okładziny albo temperaturą powrotu.</p>
        </div>
      </section>

      <section class="rk-frame-section" id="rk-frame-okladziny">
        <h2>Panele, drewno i płytki na podłogówce w domu szkieletowym</h2>
        <p>Okładzinę dobiera się jako część całego przekroju. Liczy się deklarowany opór cieplny wykończenia wraz z podkładem, dopuszczenie do ogrzewania podłogowego, ograniczenie temperatury powierzchni oraz wymagania dotyczące wilgotności i odkształceń podłoża.</p>

        <div class="rk-frame-table-wrap">
          <table class="rk-frame-table">
            <thead>
              <tr>
                <th>Okładzina</th>
                <th>Co wpływa na wymianę ciepła?</th>
                <th>Co sprawdzić przed projektem?</th>
                <th>Typowy błąd</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Okładzina"><strong>Płytki</strong></td>
                <td data-label="Wpływ">Zwykle niski opór wykończenia, ale wynik zależy też od kleju i płyt podkładowych.</td>
                <td data-label="Sprawdź">Sztywność, ugięcie, dylatacje, hydroizolację i zgodność całego układu.</td>
                <td data-label="Błąd">Założenie, że sama płytka rozwiązuje problem pracy drewnianego stropu.</td>
              </tr>
              <tr>
                <td data-label="Okładzina"><strong>Panele</strong></td>
                <td data-label="Wpływ">Opór panelu i podkładu; sposób ułożenia oraz kontakt z podłożem.</td>
                <td data-label="Sprawdź">Łączny opór, maksymalną temperaturę i wymagania montażowe konkretnego produktu.</td>
                <td data-label="Błąd">Dobór po samej grubości lub oznaczeniu „do podłogówki”.</td>
              </tr>
              <tr>
                <td data-label="Okładzina"><strong>Drewno</strong></td>
                <td data-label="Wpływ">Gatunek, grubość, budowa elementu i sposób montażu.</td>
                <td data-label="Sprawdź">Opór, wilgotność, dopuszczalne temperatury oraz stabilność wymiarową.</td>
                <td data-label="Błąd">Traktowanie każdego parkietu i każdej deski jako tej samej okładziny.</td>
              </tr>
              <tr>
                <td data-label="Okładzina"><strong>Dywan / wykładzina</strong></td>
                <td data-label="Wpływ">Łączny opór wykładziny i podkładu może wyraźnie ograniczać emisję.</td>
                <td data-label="Sprawdź">Dopuszczenie do ogrzewania i deklarowany opór kompletnego zestawu.</td>
                <td data-label="Błąd">Dodanie grubej warstwy po obliczeniu instalacji bez ponownej weryfikacji.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <p>Sam rodzaj materiału nie daje gotowej odpowiedzi. Praktyczne porównanie zawiera artykuł <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele czy płytki na ogrzewanie podłogowe</a>, a znaczenie parametru wyjaśnia poradnik o <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%C2%B2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">oporze cieplnym R</a>.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-zrodlo">
        <h2>Pompa ciepła, kocioł i bufor w domu szkieletowym</h2>
        <p>Ogrzewanie podłogowe może współpracować z pompą ciepła, kotłem kondensacyjnym i innym źródłem wody grzewczej. Źródło wpływa na preferowane temperatury, wymagany przepływ, zakres modulacji oraz sposób sterowania, ale nie wybiera za projektanta konstrukcji podłogi.</p>

        <div class="rk-frame-grid-3">
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Temperatura</span>
            <h3>Projektuj dla niskich parametrów, jeśli bilans na to pozwala</h3>
            <p>Niższa temperatura może sprzyjać sprawności źródła, ale system musi nadal pokrywać obciążenie pomieszczeń w warunkach projektowych.</p>
          </article>
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Przepływ</span>
            <h3>Nie zamykaj przypadkowo wszystkich obiegów</h3>
            <p>Źródło i pompa obiegowa mogą wymagać minimalnego przepływu. Duża liczba siłowników musi być uwzględniona w hydraulice i automatyce.</p>
          </article>
          <article class="rk-frame-card">
            <span class="rk-frame-tag">Pojemność</span>
            <h3>Bufor nie jest automatycznym dodatkiem</h3>
            <p>Potrzebę bufora ocenia się z wymagań źródła, pojemności instalacji, minimalnej mocy, defrostu i sposobu rozdzielenia obiegów.</p>
          </article>
        </div>

        <p>Lekka konstrukcja budynku sama nie jest dowodem, że bufor jest konieczny ani że można go pominąć. Podobnie system suchy nie przesądza o liczbie uruchomień sprężarki. Liczy się zachowanie całego układu: zapotrzebowanie chwilowe, modulacja, objętość wody, przepływy, histereza i sterowanie.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-sterowanie">
        <h2>Sterowanie podłogówką i zyski słoneczne</h2>
        <p>Duże przeszklenia mogą szybko zwiększać temperaturę w pomieszczeniu, szczególnie w budynku o niewielkiej masie akumulacyjnej. Nie oznacza to jednak, że najlepszym rozwiązaniem jest agresywne włączanie i wyłączanie każdej pętli.</p>

        <h3>Sterowanie pogodowe jako baza</h3>
        <p>Krzywa grzewcza dostosowuje temperaturę wody do warunków zewnętrznych. Dobrze ustawiona zmniejsza ryzyko przegrzewania i pozwala instalacji pracować stabilniej niż przy stałej, zawyżonej temperaturze zasilania.</p>

        <h3>Regulacja pomieszczeniowa</h3>
        <p>Termostaty i siłowniki mogą ograniczać dopływ ciepła w pomieszczeniach z dużymi zyskami, lecz ich działanie trzeba skoordynować z minimalnym przepływem źródła, pompą obiegową i bezwładnością zastosowanego przekroju. Sterowanie nie naprawi źle dobranej mocy ani niewyrównanej hydrauliki.</p>

        <h3>Równoważenie przepływów</h3>
        <p>Każda pętla powinna otrzymać przepływ wynikający z jej obciążenia i projektowej różnicy temperatur. Takie nastawy są ważniejsze niż arbitralne ustawienie jednakowej wartości na wszystkich rotametrach. Więcej o sensie podziału na strefy przeczytasz w artykule <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe ogrzewaniem</a>.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-kolejnosc">
        <h2>Kolejność projektowania i wykonania instalacji</h2>
        <p>Najwięcej problemów powstaje wtedy, gdy system ogrzewania jest wybierany po zamknięciu przekrojów konstrukcyjnych albo gdy instalator otrzymuje nieaktualny rzut. Bezpieczniejsza jest kolejność oparta na kolejnych uzgodnieniach.</p>

        <div class="rk-frame-steps rk-frame-steps-six">
          <article class="rk-frame-step"><span class="rk-frame-step-num">1</span><h3>Ustal konstrukcje</h3><p>Zidentyfikuj podłogę parteru, wszystkie stropy, rozpiętości, podparcia i planowane warstwy.</p></article>
          <article class="rk-frame-step"><span class="rk-frame-step-num">2</span><h3>Policz straty</h3><p>Wyznacz obciążenie cieplne każdego pomieszczenia i rzeczywistą powierzchnię czynną.</p></article>
          <article class="rk-frame-step"><span class="rk-frame-step-num">3</span><h3>Wybierz przekroje</h3><p>Porównaj system suchy i mokry pod kątem konstrukcji, wysokości, akustyki oraz wydajności.</p></article>
          <article class="rk-frame-step"><span class="rk-frame-step-num">4</span><h3>Oblicz instalację</h3><p>Dobierz rozstaw, temperatury, długości pętli, przepływy, opory i nastawy rozdzielacza.</p></article>
          <article class="rk-frame-step"><span class="rk-frame-step-num">5</span><h3>Skoordynuj detale</h3><p>Uzgodnij dylatacje, drzwi, schody, okładziny, strefy bez rur i wszystkie przebicia warstw.</p></article>
          <article class="rk-frame-step"><span class="rk-frame-step-num">6</span><h3>Wykonaj i odbierz</h3><p>Przeprowadź próbę, udokumentuj rury, kontroluj wilgotność i uruchom system zgodnie z procedurą.</p></article>
        </div>

        <h3>Co powinno znaleźć się na dokumentacji?</h3>
        <p>Rzut powinien pokazywać przebieg i numery pętli, rozstawy, strefy brzegowe, dobieg, rozdzielacz, dylatacje, powierzchnie wyłączone oraz przejścia przez przegrody. Zestawienie powinno zawierać długości, obciążenia, przepływy, straty ciśnienia i nastawy. Pełny zakres opisujemy w artykule <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt podłogówki</a>.</p>
      </section>

      <section class="rk-frame-section" id="rk-frame-bledy">
        <h2>Najczęstsze błędy i mity</h2>

        <div class="rk-frame-myth"><div>Mit: dom szkieletowy zawsze wymaga systemu suchego.</div><div><strong>Fakt:</strong> o wyborze decyduje konkretna podłoga lub strop. Na parterze może być uzasadniony jastrych, a na stropie lekkie rozwiązanie suche.</div></div>
        <div class="rk-frame-myth"><div>Mit: jastrych jest zawsze zbyt ciężki dla stropu drewnianego.</div><div><strong>Fakt:</strong> nie wolno zakładać ani dopuszczalności, ani zakazu bez obliczeń. Konstruktor ocenia pełne obciążenie, ugięcie, drgania i detale.</div></div>
        <div class="rk-frame-myth"><div>Mit: system suchy ma z definicji określoną moc i temperaturę.</div><div><strong>Fakt:</strong> wydajność zależy od całego przekroju, rozstawu, temperatur wody, okładziny i warunków pomieszczenia.</div></div>
        <div class="rk-frame-myth"><div>Mit: 10 cm rozstawu jest obowiązkowe przy pompie ciepła.</div><div><strong>Fakt:</strong> rozstaw wynika z obciążenia i charakterystyki systemu. Źródło określa preferowane warunki pracy, ale nie zastępuje obliczeń podłogi.</div></div>
        <div class="rk-frame-myth"><div>Mit: niski U oznacza niski opór cieplny.</div><div><strong>Fakt:</strong> niższy współczynnik U oznacza mniejsze przenikanie ciepła i większą izolacyjność całej przegrody.</div></div>
        <div class="rk-frame-myth"><div>Mit: lekki dom potrzebuje bufora.</div><div><strong>Fakt:</strong> potrzebę bufora ocenia się z wymagań źródła, pojemności wodnej, mocy minimalnej, przepływu i logiki sterowania.</div></div>
        <div class="rk-frame-myth"><div>Mit: termostaty naprawią przegrzewanie.</div><div><strong>Fakt:</strong> sterowanie nie zastępuje prawidłowej mocy, temperatury zasilania, równoważenia i koordynacji zysków słonecznych.</div></div>
        <div class="rk-frame-myth"><div>Mit: panele „do podłogówki” nie wymagają dalszych danych.</div><div><strong>Fakt:</strong> potrzebny jest opór całego zestawu, dopuszczalna temperatura i wymagania dotyczące podłoża oraz montażu.</div></div>
      </section>

      <section class="rk-frame-section" id="rk-frame-checklista">
        <h2>Checklista przed zamówieniem i wykonaniem podłogówki</h2>
        <p>Jeżeli któregoś punktu nie można potwierdzić, nie oznacza to automatycznie błędu — oznacza decyzję, którą trzeba podjąć przed zamknięciem warstw.</p>

        <div class="rk-frame-checklist">
          <div class="rk-frame-check"><h3>Konstrukcja każdej podłogi</h3><p>Znane są przekroje parteru, stropów, rozpiętości, podparcia i dopuszczalne warstwy.</p></div>
          <div class="rk-frame-check"><h3>Pełne obciążenia</h3><p>Konstruktor otrzymał ciężar całego przekroju, a nie tylko nazwę ogrzewania podłogowego.</p></div>
          <div class="rk-frame-check"><h3>Ugięcie i drgania</h3><p>Sprawdzono kryteria użytkowalności odpowiednie dla stropu oraz planowanej okładziny.</p></div>
          <div class="rk-frame-check"><h3>Straty pomieszczeń</h3><p>Dostępne są obciążenia cieplne osobno dla każdego pomieszczenia.</p></div>
          <div class="rk-frame-check"><h3>Powierzchnia czynna</h3><p>Rzut uwzględnia trwałą zabudowę, schody, dylatacje i inne uzgodnione strefy bez rur.</p></div>
          <div class="rk-frame-check"><h3>Charakterystyka systemu</h3><p>Moc sprawdzono dla konkretnego rozstawu, temperatur, przekroju i oporu okładziny.</p></div>
          <div class="rk-frame-check"><h3>Okładziny</h3><p>Znany jest łączny opór, ograniczenia temperatury i wymagania montażowe wykończenia.</p></div>
          <div class="rk-frame-check"><h3>Wilgoć i szczelność</h3><p>Zaplanowano ciągłość warstw, przejścia instalacyjne, wysychanie i pomiary przed zamknięciem.</p></div>
          <div class="rk-frame-check"><h3>Akustyka i ogień</h3><p>Ogrzewanie nie narusza warstw wymaganych dla ochrony akustycznej i ogniowej stropu.</p></div>
          <div class="rk-frame-check"><h3>Hydraulika</h3><p>Policzono długości, przepływy, opory, nastawy i krytyczną pętlę rozdzielacza.</p></div>
          <div class="rk-frame-check"><h3>Źródło ciepła</h3><p>Znane są minimalny przepływ, moc minimalna, zakres temperatur i wymagania producenta źródła.</p></div>
          <div class="rk-frame-check"><h3>Dokumentacja wykonawcza</h3><p>Wykonawca otrzymał aktualny rzut, a przed zakryciem rur powstanie dokumentacja powykonawcza.</p></div>
        </div>
      </section>

      <section class="rk-frame-section" id="rk-frame-faq">
        <h2>FAQ: ogrzewanie podłogowe w domu szkieletowym</h2>
        <div class="rk-frame-faq">
          <details><summary>Czy ogrzewanie podłogowe nadaje się do domu szkieletowego?</summary><div class="rk-frame-faq-answer"><p>Tak. Trzeba jednak osobno zaprojektować podłogę parteru i każdy strop, uwzględniając konstrukcję, straty ciepła, powierzchnię czynną, okładziny oraz hydraulikę źródła.</p></div></details>
          <details><summary>Czy w domu szkieletowym musi być system suchy?</summary><div class="rk-frame-faq-answer"><p>Nie. System suchy jest częstym wyborem na lekkim stropie, ale parter na gruncie lub płyta fundamentowa mogą mieć system z jastrychem. Decyzja wynika z konkretnego przekroju, a nie z technologii ścian.</p></div></details>
          <details><summary>Czy w domu szkieletowym można wykonać wylewkę?</summary><div class="rk-frame-faq-answer"><p>Można, jeśli rozwiązanie przewiduje projekt konstrukcyjny i projekt warstw. Na stropie trzeba sprawdzić pełne obciążenie, ugięcie, drgania, wilgoć technologiczną, akustykę oraz wymagania okładziny.</p></div></details>
          <details><summary>Czy jastrych cementowy jest dopuszczalny na stropie drewnianym?</summary><div class="rk-frame-faq-answer"><p>Nie da się odpowiedzieć na podstawie samej nazwy stropu. Dopuszczalność zależy od jego konstrukcji, rozpiętości, podparcia, pełnego ciężaru warstw i kryteriów użytkowalności. Potrzebna jest ocena konstruktora.</p></div></details>
          <details><summary>Czy jastrych anhydrytowy jest obowiązkowy w domu szkieletowym?</summary><div class="rk-frame-faq-answer"><p>Nie. Rodzaj jastrychu dobiera się do kompletnego rozwiązania, wymagań konstrukcyjnych, wilgotnościowych, wykonawczych i okładziny. Sama technologia szkieletowa nie narzuca anhydrytu.</p></div></details>
          <details><summary>Jaka podłogówka na parterze domu szkieletowego?</summary><div class="rk-frame-faq-answer"><p>Najpierw trzeba ustalić, czy jest to podłoga na gruncie, płyta fundamentowa czy strop nad przestrzenią nieogrzewaną. Na tej podstawie projektuje się izolację, warstwy, dylatacje oraz system suchy albo z jastrychem.</p></div></details>
          <details><summary>Jaka podłogówka na stropie drewnianym?</summary><div class="rk-frame-faq-answer"><p>Często wybiera się lekki system suchy, lecz wymaga on odpowiedniej sztywności, rozprowadzania ciepła, akustyki i zgodności z okładziną. System z wylewką jest możliwy wyłącznie po pełnej weryfikacji konstrukcyjnej.</p></div></details>
          <details><summary>Ile waży ogrzewanie podłogowe na stropie?</summary><div class="rk-frame-faq-answer"><p>Nie ma jednej wartości. Trzeba zsumować masę rur z wodą, płyt, profili lub jastrychu, izolacji, podsypek, okładziny, klejów i pozostałych warstw. Konstruktor ocenia kompletne obciążenie stałe.</p></div></details>
          <details><summary>Jaka temperatura zasilania podłogówki w domu szkieletowym?</summary><div class="rk-frame-faq-answer"><p>Temperatura wynika z wymaganej mocy, charakterystyki konkretnego systemu, rozstawu, oporu okładziny, temperatury pomieszczenia i ograniczeń powierzchni. Nie ma jednej wartości właściwej dla wszystkich domów szkieletowych.</p></div></details>
          <details><summary>Jaki rozstaw rur stosować w domu szkieletowym?</summary><div class="rk-frame-faq-answer"><p>Rozstaw dobiera się po obliczeniu straty ciepła i powierzchni czynnej, a następnie sprawdza wydajność konkretnego przekroju przy projektowych temperaturach. Technologia szkieletowa ani pompa ciepła nie wyznaczają go samodzielnie.</p></div></details>
          <details><summary>Czy pompa ciepła wymaga systemu suchego?</summary><div class="rk-frame-faq-answer"><p>Nie. Pompa ciepła może współpracować z systemem suchym i mokrym. Istotne są możliwie niskie temperatury przy pokryciu obciążenia, wymagany przepływ, pojemność instalacji, zakres modulacji i sterowanie.</p></div></details>
          <details><summary>Czy do podłogówki w domu szkieletowym potrzebny jest bufor?</summary><div class="rk-frame-faq-answer"><p>Nie zawsze. Potrzebę bufora określa się z wymagań konkretnego źródła, minimalnego przepływu, mocy minimalnej, objętości wody, sposobu odszraniania i pracy stref. Sama lekka konstrukcja nie rozstrzyga.</p></div></details>
          <details><summary>Czy warto stosować sterowanie strefowe?</summary><div class="rk-frame-faq-answer"><p>Może pomagać przy różnych zyskach słonecznych i sposobach użytkowania, ale musi być skoordynowane z hydrauliką i minimalnym przepływem źródła. Nie zastąpi prawidłowego doboru mocy, temperatury i przepływów.</p></div></details>
          <details><summary>Czy panele i drewno nadają się na suche ogrzewanie podłogowe?</summary><div class="rk-frame-faq-answer"><p>Tak, jeśli producent dopuszcza takie zastosowanie, a łączny opór okładziny z podkładem, maksymalna temperatura, wilgotność i sposób montażu są zgodne z projektem systemu.</p></div></details>
          <details><summary>Jak obliczyć wymaganą moc podłogi?</summary><div class="rk-frame-faq-answer"><p>Projektową stratę ciepła pomieszczenia w watach dzieli się przez rzeczywiście ogrzewaną powierzchnię w metrach kwadratowych. Wynik w W/m² porównuje się z wydajnością wybranego przekroju dla konkretnych temperatur i okładziny.</p></div></details>
          <details><summary>Czy paroizolacja powinna być pod ogrzewaniem podłogowym?</summary><div class="rk-frame-faq-answer"><p>Nie ma jednej odpowiedzi dla każdego przekroju. Lokalizację warstw kontrolujących parę i szczelność powietrzną określa projekt fizyki budowli. Przejścia instalacyjne muszą zachować ich ciągłość.</p></div></details>
        </div>
      </section>

      <section class="rk-frame-section" id="rk-frame-zrodla">
        <h2>Normy i źródła techniczne</h2>
        <p>Artykuł opiera się na metodyce projektowania powierzchni grzewczych, zasadach projektowania konstrukcji drewnianych i obowiązujących wymaganiach budowlanych. Dostęp do pełnej treści części norm może być płatny.</p>
        <ol class="rk-frame-sources">
          <li><a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-floor-heating-methods-for-the-determination-of-the-thermal-output-using-calculations-and-experimental-tests" target="_blank" rel="nofollow noopener noreferrer">BSI — EN 1264-2: określanie mocy cieplnej ogrzewania podłogowego</a>.</li>
          <li><a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-dimensioning-1" target="_blank" rel="nofollow noopener noreferrer">BSI — EN 1264-3: wymiarowanie wodnych systemów powierzchniowych</a>.</li>
          <li><a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-installation-1" target="_blank" rel="nofollow noopener noreferrer">BSI — EN 1264-4: wymagania instalacyjne</a>.</li>
          <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2: wyznaczanie wydajności powierzchni grzewczej i chłodzącej</a>.</li>
          <li><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3: projektowanie i wymiarowanie</a>.</li>
          <li><a href="https://eurocodes.jrc.ec.europa.eu/sites/default/files/2022-06/EN1995_4_Kreuzinger.pdf" target="_blank" rel="nofollow noopener noreferrer">Joint Research Centre — wprowadzenie do Eurokodu 5 dla konstrukcji drewnianych</a>.</li>
          <li><a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="nofollow noopener noreferrer">Elektroniczny Dziennik Ustaw — warunki techniczne, jakim powinny odpowiadać budynki</a>.</li>
          <li><a href="https://budowlaneabc.gov.pl/charakterystyka-energetyczna-budynkow/kalkulatory/calc-wpc/" target="_blank" rel="nofollow noopener noreferrer">Budowlane ABC — rządowy kalkulator współczynnika przenikania ciepła przegród</a>.</li>
        </ol>
      </section>
    </main>

    <section class="rk-frame-author" id="rk-frame-author" aria-labelledby="rk-frame-author-title">
      <input type="radio" name="rk-frame-author-tabs" id="rk-frame-author-about" checked>
      <input type="radio" name="rk-frame-author-tabs" id="rk-frame-author-exp">
      <input type="radio" name="rk-frame-author-tabs" id="rk-frame-author-sites">

      <div class="rk-frame-author-head">
        <div><span>Autor opracowania</span><h2 id="rk-frame-author-title">Robert Kucharski</h2></div>
        <span class="rk-frame-author-mark">Projektowanie HVAC • praktyka i obliczenia</span>
      </div>

      <div class="rk-frame-author-layout">
        <aside class="rk-frame-author-side">
          <div class="rk-frame-author-photo"><img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="162" height="162" loading="lazy"></div>
          <div class="rk-frame-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <div class="rk-frame-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-frame-author-social-label">Profile autora</div>
          <div class="rk-frame-author-social">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="Profil Roberta Kucharskiego na LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 3.5A2.2 2.2 0 1 1 5.2 8a2.2 2.2 0 0 1 0-4.5ZM3.3 9.5h3.8V21H3.3V9.5Zm6.2 0h3.6v1.6h.1c.5-.9 1.7-2 3.6-2 3.9 0 4.6 2.6 4.6 5.9v6h-3.8v-5.3c0-1.3 0-2.9-1.8-2.9s-2.1 1.4-2.1 2.8V21H9.5V9.5Z"/></svg></a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Profil Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M13.8 22v-8h2.7l.4-3h-3.1V9.1c0-.9.3-1.5 1.6-1.5H17V4.9c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.4-4 4.1V11H8v3h2.6v8h3.2Z"/></svg></a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Profil Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.4l7.2-8.2L2.9 2h6.3l4.4 5.8L18.9 2Zm-1.1 17.9h1.7L8.3 4H6.5l11.3 15.9Z"/></svg></a>
          </div>
        </aside>

        <div class="rk-frame-author-main">
          <blockquote class="rk-frame-author-quote"><p>W domu szkieletowym nie projektuje się „jednej podłogówki”. Projektuje się konkretne podłogi i stropy, a dopiero potem łączy ich obiegi w spójny układ hydrauliczny.</p></blockquote>

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

          <div class="rk-frame-author-panel rk-frame-author-panel-about">
            <p><strong>Robert Kucharski</strong> opracowuje projekty ogrzewania podłogowego, obliczenia strat ciepła i hydrauliki instalacji oraz materiały techniczne dla inwestorów i wykonawców. W pracy łączy bilans cieplny pomieszczeń z rzeczywistą geometrią rzutu, konstrukcją podłogi, doborem pętli, przepływami i nastawami rozdzielacza.</p>
            <p>W artykułach rozdziela wartości wynikające z norm i obliczeń od uproszczeń orientacyjnych. Szczególną uwagę poświęca ograniczeniom narzędzi internetowych: kalkulator może uporządkować dane, ale nie zastąpi oceny konstrukcji, koordynacji międzybranżowej ani projektu wykonawczego.</p>
          </div>

          <div class="rk-frame-author-panel rk-frame-author-panel-exp">
            <p>Zakres opracowań autora obejmuje projektowe straty ciepła, wydajność ogrzewania powierzchniowego, długości i podział pętli, dobór przepływów, straty ciśnienia, równoważenie hydrauliczne, dobór pomp oraz współpracę instalacji z pompami ciepła i kotłami.</p>
            <p>W budynkach o lekkiej konstrukcji kluczowe jest połączenie projektu HVAC z przekrojami stropów, wymaganiami okładzin, ochroną przed wilgocią, akustyką i ograniczeniami konstrukcyjnymi. Dlatego w tym opracowaniu nie podano uniwersalnych ciężarów, czasów reakcji ani temperatur bez określenia warunków.</p>
          </div>

          <div class="rk-frame-author-panel rk-frame-author-panel-sites">
            <p>Robert Kucharski publikuje materiały techniczne w serwisie Projekt-Ogrzewania.pl oraz współtworzy treści branżowe 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>. Wszystkie wpisy autora na tej stronie znajdziesz w <a href="https://projekt-ogrzewania.pl/author/admin3399/">archiwum Roberta Kucharskiego</a>.</p>
          </div>
        </div>
      </div>
    </section>

    <div class="rk-frame-final-wrap">
      <div class="rk-frame-cta">
        <div>
          <h3>Przełóż przekroje domu szkieletowego na konkretny projekt podłogówki</h3>
          <p>Projekt obejmie układ pętli na parterze i piętrze, rozstawy rur, długości obwodów, wymagane przepływy oraz nastawy rozdzielacza — z uwzględnieniem rzeczywistej konstrukcji podłóg i stropów.</p>
        </div>
        <a class="rk-frame-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki do domu szkieletowego</a>
      </div>
    </div>

    <div class="rk-frame-footnote">Materiał edukacyjny. Ostateczny dobór konstrukcji podłogi, obciążeń, warstw oraz parametrów instalacji powinien wynikać z dokumentacji konkretnego budynku i uzgodnień właściwych projektantów.</div>
  </div>
</article>

      
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/",
      "headline": "Ogrzewanie podłogowe w domu szkieletowym: system suchy, strop i projekt",
      "description": "Projektowanie ogrzewania podłogowego w domu szkieletowym: parter na gruncie, drewniany strop, system suchy lub z jastrychem, obciążenie, moc, hydraulika i sterowanie.",
      "inLanguage": "pl-PL",
      "datePublished": "2026-09-01",
      "dateModified": "2026-09-01",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webpage"},
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "image": {"@type": "ImageObject", "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"},
      "about": [
        "ogrzewanie podłogowe w domu szkieletowym",
        "system suchego ogrzewania podłogowego",
        "ogrzewanie podłogowe na stropie drewnianym",
        "projektowanie instalacji grzewczej"
      ],
      "keywords": "ogrzewanie podłogowe w domu szkieletowym, podłogówka w domu drewnianym, system suchy, strop drewniany, jastrych, pompa ciepła"
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webpage",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/",
      "name": "Ogrzewanie podłogowe w domu szkieletowym: system suchy, strop i projekt",
      "description": "Sprawdź, jak zaprojektować podłogówkę w domu szkieletowym: parter na gruncie, strop drewniany, system suchy lub mokry, obciążenie i sterowanie.",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#breadcrumb"},
      "primaryImageOfPage": {"@type": "ImageObject", "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"},
      "datePublished": "2026-09-01",
      "dateModified": "2026-09-01",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#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": "Ogrzewanie podłogowe w domu szkieletowym", "item": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#application",
      "name": "Interaktywny audyt projektu podłogówki w domu szkieletowym",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#rk-frame-audyt",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "Włączona obsługa JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie porządkuje dane konstrukcyjne, cieplne, wilgotnościowe i hydrauliczne dla podłogówki w domu szkieletowym oraz oblicza wymaganą moc jednostkową z podanej straty pomieszczenia i powierzchni czynnej.",
      "featureList": [
        "oddzielna analiza parteru i stropu",
        "audyt danych konstrukcyjnych",
        "audyt strat ciepła i charakterystyki systemu",
        "audyt wilgoci, szczelności i okładzin",
        "audyt hydrauliki i sterowania źródła",
        "obliczenie wymaganej mocy W/m²",
        "porównanie z mocą wpisaną z dokumentacji",
        "dynamiczny przekrój domu i lista kolejnych działań"
      ],
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#howto",
      "name": "Jak zaplanować ogrzewanie podłogowe w domu szkieletowym",
      "description": "Kolejność projektowania podłogówki z uwzględnieniem konstrukcji parteru, stropu, strat ciepła, przekrojów podłogi i hydrauliki.",
      "totalTime": "PT2H",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Ustal konstrukcję każdej podłogi", "text": "Zidentyfikuj podłogę parteru, stropy, rozpiętości, podparcia i planowane warstwy."},
        {"@type": "HowToStep", "position": 2, "name": "Policz straty ciepła pomieszczeń", "text": "Wyznacz projektową stratę ciepła i rzeczywiście ogrzewaną powierzchnię każdego pomieszczenia."},
        {"@type": "HowToStep", "position": 3, "name": "Porównaj kompletne przekroje", "text": "Oceń system suchy i system z jastrychem pod kątem obciążenia, wysokości, akustyki, wilgoci i wydajności."},
        {"@type": "HowToStep", "position": 4, "name": "Oblicz instalację", "text": "Dobierz rozstaw, temperatury, długości pętli, przepływy, straty ciśnienia oraz nastawy rozdzielacza."},
        {"@type": "HowToStep", "position": 5, "name": "Skoordynuj detale budowlane", "text": "Uzgodnij dylatacje, okładziny, strefy bez rur, poziomy, akustykę i przejścia przez warstwy szczelne."},
        {"@type": "HowToStep", "position": 6, "name": "Wykonaj próbę i dokumentację", "text": "Przeprowadź próbę instalacji, udokumentuj przebieg rur, kontroluj wilgotność i uruchom ogrzewanie zgodnie z procedurą."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#faq",
      "mainEntity": [
        {"@type": "Question", "name": "Czy ogrzewanie podłogowe nadaje się do domu szkieletowego?", "acceptedAnswer": {"@type": "Answer", "text": "Tak. Trzeba jednak osobno zaprojektować podłogę parteru i każdy strop, uwzględniając konstrukcję, straty ciepła, powierzchnię czynną, okładziny oraz hydraulikę źródła."}},
        {"@type": "Question", "name": "Czy w domu szkieletowym musi być system suchy?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. System suchy jest częstym wyborem na lekkim stropie, ale parter na gruncie lub płyta fundamentowa mogą mieć system z jastrychem. Decyzja wynika z konkretnego przekroju, a nie z technologii ścian."}},
        {"@type": "Question", "name": "Czy w domu szkieletowym można wykonać wylewkę?", "acceptedAnswer": {"@type": "Answer", "text": "Można, jeśli rozwiązanie przewiduje projekt konstrukcyjny i projekt warstw. Na stropie trzeba sprawdzić pełne obciążenie, ugięcie, drgania, wilgoć technologiczną, akustykę oraz wymagania okładziny."}},
        {"@type": "Question", "name": "Czy jastrych cementowy jest dopuszczalny na stropie drewnianym?", "acceptedAnswer": {"@type": "Answer", "text": "Nie da się odpowiedzieć na podstawie samej nazwy stropu. Dopuszczalność zależy od jego konstrukcji, rozpiętości, podparcia, pełnego ciężaru warstw i kryteriów użytkowalności. Potrzebna jest ocena konstruktora."}},
        {"@type": "Question", "name": "Czy jastrych anhydrytowy jest obowiązkowy w domu szkieletowym?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Rodzaj jastrychu dobiera się do kompletnego rozwiązania, wymagań konstrukcyjnych, wilgotnościowych, wykonawczych i okładziny. Sama technologia szkieletowa nie narzuca anhydrytu."}},
        {"@type": "Question", "name": "Jaka podłogówka na parterze domu szkieletowego?", "acceptedAnswer": {"@type": "Answer", "text": "Najpierw trzeba ustalić, czy jest to podłoga na gruncie, płyta fundamentowa czy strop nad przestrzenią nieogrzewaną. Na tej podstawie projektuje się izolację, warstwy, dylatacje oraz system suchy albo z jastrychem."}},
        {"@type": "Question", "name": "Jaka podłogówka na stropie drewnianym?", "acceptedAnswer": {"@type": "Answer", "text": "Często wybiera się lekki system suchy, lecz wymaga on odpowiedniej sztywności, rozprowadzania ciepła, akustyki i zgodności z okładziną. System z wylewką jest możliwy wyłącznie po pełnej weryfikacji konstrukcyjnej."}},
        {"@type": "Question", "name": "Ile waży ogrzewanie podłogowe na stropie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie ma jednej wartości. Trzeba zsumować masę rur z wodą, płyt, profili lub jastrychu, izolacji, podsypek, okładziny, klejów i pozostałych warstw. Konstruktor ocenia kompletne obciążenie stałe."}},
        {"@type": "Question", "name": "Jaka temperatura zasilania podłogówki w domu szkieletowym?", "acceptedAnswer": {"@type": "Answer", "text": "Temperatura wynika z wymaganej mocy, charakterystyki konkretnego systemu, rozstawu, oporu okładziny, temperatury pomieszczenia i ograniczeń powierzchni. Nie ma jednej wartości właściwej dla wszystkich domów szkieletowych."}},
        {"@type": "Question", "name": "Jaki rozstaw rur stosować w domu szkieletowym?", "acceptedAnswer": {"@type": "Answer", "text": "Rozstaw dobiera się po obliczeniu straty ciepła i powierzchni czynnej, a następnie sprawdza wydajność konkretnego przekroju przy projektowych temperaturach. Technologia szkieletowa ani pompa ciepła nie wyznaczają go samodzielnie."}},
        {"@type": "Question", "name": "Czy pompa ciepła wymaga systemu suchego?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Pompa ciepła może współpracować z systemem suchym i mokrym. Istotne są możliwie niskie temperatury przy pokryciu obciążenia, wymagany przepływ, pojemność instalacji, zakres modulacji i sterowanie."}},
        {"@type": "Question", "name": "Czy do podłogówki w domu szkieletowym potrzebny jest bufor?", "acceptedAnswer": {"@type": "Answer", "text": "Nie zawsze. Potrzebę bufora określa się z wymagań konkretnego źródła, minimalnego przepływu, mocy minimalnej, objętości wody, sposobu odszraniania i pracy stref. Sama lekka konstrukcja nie rozstrzyga."}},
        {"@type": "Question", "name": "Czy warto stosować sterowanie strefowe?", "acceptedAnswer": {"@type": "Answer", "text": "Może pomagać przy różnych zyskach słonecznych i sposobach użytkowania, ale musi być skoordynowane z hydrauliką i minimalnym przepływem źródła. Nie zastąpi prawidłowego doboru mocy, temperatury i przepływów."}},
        {"@type": "Question", "name": "Czy panele i drewno nadają się na suche ogrzewanie podłogowe?", "acceptedAnswer": {"@type": "Answer", "text": "Tak, jeśli producent dopuszcza takie zastosowanie, a łączny opór okładziny z podkładem, maksymalna temperatura, wilgotność i sposób montażu są zgodne z projektem systemu."}},
        {"@type": "Question", "name": "Jak obliczyć wymaganą moc podłogi?", "acceptedAnswer": {"@type": "Answer", "text": "Projektową stratę ciepła pomieszczenia w watach dzieli się przez rzeczywiście ogrzewaną powierzchnię w metrach kwadratowych. Wynik w W/m² porównuje się z wydajnością wybranego przekroju dla konkretnych temperatur i okładziny."}},
        {"@type": "Question", "name": "Czy paroizolacja powinna być pod ogrzewaniem podłogowym?", "acceptedAnswer": {"@type": "Answer", "text": "Nie ma jednej odpowiedzi dla każdego przekroju. Lokalizację warstw kontrolujących parę i szczelność powietrzną określa projekt fizyki budowli. Przejścia instalacyjne muszą zachować ich ciągłość."}}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "ogrzewanie podłogowe w domu szkieletowym",
        "obliczenia strat ciepła",
        "hydraulika instalacji grzewczych",
        "projektowanie pętli grzewczych",
        "dobór pomp obiegowych",
        "równoważenie hydrauliczne",
        "koordynacja instalacji HVAC"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/"
    },
    {
      "@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-frame-guide");
  if (!root) {
    return;
  }

  var fields = {
    groundType: document.getElementById("rk-frame-ground-type"),
    groundSystem: document.getElementById("rk-frame-ground-system"),
    upperType: document.getElementById("rk-frame-upper-type"),
    upperSystem: document.getElementById("rk-frame-upper-system"),
    structure: document.getElementById("rk-frame-struct-check"),
    heatloss: document.getElementById("rk-frame-heatloss-check"),
    covering: document.getElementById("rk-frame-covering-check"),
    systemData: document.getElementById("rk-frame-systemdata-check"),
    airtight: document.getElementById("rk-frame-airtight-check"),
    source: document.getElementById("rk-frame-source-check"),
    roomLoss: document.getElementById("rk-frame-room-loss"),
    activeArea: document.getElementById("rk-frame-active-area"),
    availableOutput: document.getElementById("rk-frame-available-output")
  };

  var output = {
    required: document.getElementById("rk-frame-out-required"),
    room: document.getElementById("rk-frame-out-room"),
    capacity: document.getElementById("rk-frame-out-capacity"),
    capacityNote: document.getElementById("rk-frame-out-capacity-note"),
    margin: document.getElementById("rk-frame-out-margin"),
    marginNote: document.getElementById("rk-frame-out-margin-note"),
    marginCard: document.getElementById("rk-frame-margin-card"),
    scoreValue: document.getElementById("rk-frame-score-value"),
    scoreFill: document.getElementById("rk-frame-score-fill"),
    scorePercent: document.getElementById("rk-frame-score-percent")
  };

  var panels = {
    structure: {
      box: document.getElementById("rk-frame-panel-structure"),
      title: document.getElementById("rk-frame-panel-structure-title"),
      text: document.getElementById("rk-frame-panel-structure-text")
    },
    thermal: {
      box: document.getElementById("rk-frame-panel-thermal"),
      title: document.getElementById("rk-frame-panel-thermal-title"),
      text: document.getElementById("rk-frame-panel-thermal-text")
    },
    physics: {
      box: document.getElementById("rk-frame-panel-physics"),
      title: document.getElementById("rk-frame-panel-physics-title"),
      text: document.getElementById("rk-frame-panel-physics-text")
    },
    hydraulics: {
      box: document.getElementById("rk-frame-panel-hydraulics"),
      title: document.getElementById("rk-frame-panel-hydraulics-title"),
      text: document.getElementById("rk-frame-panel-hydraulics-text")
    }
  };

  var visual = {
    groundBand: document.getElementById("rk-frame-svg-ground-band"),
    upperBand: document.getElementById("rk-frame-svg-upper-band"),
    groundTitle: document.getElementById("rk-frame-svg-ground-title"),
    groundSystem: document.getElementById("rk-frame-svg-ground-system"),
    upperTitle: document.getElementById("rk-frame-svg-upper-title"),
    upperSystem: document.getElementById("rk-frame-svg-upper-system"),
    groundSummaryTitle: document.getElementById("rk-frame-ground-summary-title"),
    groundSummaryText: document.getElementById("rk-frame-ground-summary-text"),
    upperSummaryTitle: document.getElementById("rk-frame-upper-summary-title"),
    upperSummaryText: document.getElementById("rk-frame-upper-summary-text"),
    upperSummaryCard: document.getElementById("rk-frame-upper-summary-card"),
    description: document.getElementById("rk-frame-house-desc")
  };

  var actions = document.getElementById("rk-frame-audit-actions");
  var reset = document.getElementById("rk-frame-reset");

  var groundLabels = {
    ground: "Podłoga na gruncie",
    slab: "Płyta fundamentowa",
    unheated: "Strop nad przestrzenią nieogrzewaną",
    na: "Parter nieobjęty analizą"
  };

  var upperLabels = {
    timber: "Strop belkowy drewniany",
    clt: "Płyta CLT / strop masywny drewniany",
    concrete: "Strop betonowy",
    none: "Brak ogrzewanego piętra"
  };

  var systemLabels = {
    undecided: "System jeszcze nie wybrany",
    dry: "Planowany system suchy",
    wet: "Planowany system z jastrychem",
    na: "System nie dotyczy"
  };

  function numberValue(field) {
    var value = Number(String(field.value).replace(",", "."));
    if (!Number.isFinite(value)) {
      return 0;
    }
    return value;
  }

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

  function setPanel(panel, state, title, textValue) {
    panel.box.setAttribute("data-state", state);
    panel.title.textContent = title;
    panel.text.textContent = textValue;
  }

  function actionItem(className, title, textValue) {
    var item = document.createElement("div");
    var strong = document.createElement("strong");
    var textNode = document.createTextNode(" " + textValue);
    item.className = "rk-frame-audit-action " + className;
    strong.textContent = title;
    item.appendChild(strong);
    item.appendChild(textNode);
    actions.appendChild(item);
  }

  function systemColor(value) {
    if (value === "dry") {
      return "#29c4da";
    }
    if (value === "wet") {
      return "#ff6846";
    }
    if (value === "na") {
      return "#9aabb3";
    }
    return "#f3b51b";
  }

  function groundDescription(value) {
    if (value === "slab") {
      return "Uzgodnij położenie rur, strefy konstrukcyjne, przebicia, izolację, akumulację i sposób regulacji.";
    }
    if (value === "unheated") {
      return "Sprawdź konstrukcję stropu, izolacyjność w dół, mostki, akustykę i pełne obciążenie warstw.";
    }
    if (value === "na") {
      return "Ta kondygnacja nie została objęta audytem. Wynik dotyczy pozostałych zaznaczonych części budynku.";
    }
    return "Ustal przekrój cieplny, izolację, hydroizolację, dylatacje, wysokości i stabilność podłoża.";
  }

  function upperDescription(value) {
    if (value === "clt") {
      return "Sprawdź obciążenie, połączenia, akustykę, wilgoć i sposób mocowania wszystkich warstw do płyty.";
    }
    if (value === "concrete") {
      return "Uzgodnij obciążenie, wysokość, akustykę, dylatacje i wilgoć technologiczną całego przekroju.";
    }
    if (value === "none") {
      return "Brak ogrzewanego piętra — część audytu dotycząca stropu jest traktowana jako nieobjęta zakresem.";
    }
    return "Sprawdź nośność, ugięcie, drgania, akustykę, odporność ogniową i pełny ciężar warstw.";
  }

  function updateVisual() {
    var groundType = fields.groundType.value;
    var upperType = fields.upperType.value;
    var groundSystem = fields.groundSystem.value;
    var upperSystem = fields.upperSystem.value;

    visual.groundTitle.textContent = groundLabels[groundType];
    visual.groundSystem.textContent = systemLabels[groundSystem];
    visual.upperTitle.textContent = upperLabels[upperType];
    visual.upperSystem.textContent = upperType === "none" ? "System nie dotyczy" : systemLabels[upperSystem];
    visual.groundSummaryTitle.textContent = groundLabels[groundType] + " — " + systemLabels[groundSystem].toLowerCase();
    visual.groundSummaryText.textContent = groundDescription(groundType);
    visual.upperSummaryTitle.textContent = upperLabels[upperType] + (upperType === "none" ? "" : " — " + systemLabels[upperSystem].toLowerCase());
    visual.upperSummaryText.textContent = upperDescription(upperType);
    visual.groundBand.setAttribute("fill", systemColor(groundSystem));

    if (upperType === "none") {
      visual.upperBand.setAttribute("fill", "#9aabb3");
      visual.upperBand.setAttribute("opacity", "0.25");
      visual.upperSummaryCard.style.opacity = "0.68";
    } else {
      visual.upperBand.setAttribute("fill", systemColor(upperSystem));
      visual.upperBand.setAttribute("opacity", "0.82");
      visual.upperSummaryCard.style.opacity = "1";
    }

    visual.description.textContent = groundLabels[groundType] + " z ustawieniem: " + systemLabels[groundSystem] + ". " + upperLabels[upperType] + (upperType === "none" ? "." : " z ustawieniem: " + systemLabels[upperSystem] + ".");
  }

  function updateThermalResults() {
    var loss = Math.max(0, numberValue(fields.roomLoss));
    var area = Math.max(0, numberValue(fields.activeArea));
    var available = Math.max(0, numberValue(fields.availableOutput));
    var required = 0;

    output.room.textContent = loss > 0 ? formatNumber(loss, 0) + " W" : "—";

    if (loss > 0) {
      if (area > 0) {
        required = loss / area;
        output.required.textContent = formatNumber(required, 1) + " W/m²";
      } else {
        output.required.textContent = "—";
      }
    } else {
      output.required.textContent = "—";
    }

    if (available > 0) {
      if (area > 0) {
        var capacity = available * area;
        var margin = capacity - loss;
        output.capacity.textContent = formatNumber(capacity, 0) + " W";
        output.capacityNote.textContent = formatNumber(available, 1) + " W/m² × " + formatNumber(area, 1) + " m²";

        if (loss > 0) {
          output.margin.textContent = (margin >= 0 ? "+" : "") + formatNumber(margin, 0) + " W";
          if (margin >= 0) {
            output.marginCard.className = "rk-frame-result-card is-green";
            output.marginNote.textContent = "bilans arytmetyczny nie zastępuje kontroli temperatury powierzchni";
          } else {
            output.marginCard.className = "rk-frame-result-card is-danger";
            output.marginNote.textContent = "wpisana moc nie pokrywa straty pomieszczenia";
          }
        } else {
          output.margin.textContent = "—";
          output.marginCard.className = "rk-frame-result-card";
          output.marginNote.textContent = "wpisz dodatnią stratę pomieszczenia";
        }
      } else {
        output.capacity.textContent = "—";
        output.capacityNote.textContent = "wpisz dodatnią powierzchnię czynną";
        output.margin.textContent = "—";
        output.marginCard.className = "rk-frame-result-card is-danger";
        output.marginNote.textContent = "brak poprawnej geometrii";
      }
    } else {
      output.capacity.textContent = "Nie oceniono";
      output.capacityNote.textContent = "wpisz potwierdzoną moc systemu";
      output.margin.textContent = "Nie oceniono";
      output.marginCard.className = "rk-frame-result-card";
      output.marginNote.textContent = "brak danych systemowych";
    }
  }

  function updateAudit() {
    var groundType = fields.groundType.value;
    var groundSystem = fields.groundSystem.value;
    var upperType = fields.upperType.value;
    var upperSystem = fields.upperSystem.value;
    var structureValue = fields.structure.value;
    var heatlossValue = fields.heatloss.value;
    var coveringValue = fields.covering.value;
    var systemDataValue = fields.systemData.value;
    var airtightValue = fields.airtight.value;
    var sourceValue = fields.source.value;
    var loss = Math.max(0, numberValue(fields.roomLoss));
    var area = Math.max(0, numberValue(fields.activeArea));
    var available = Math.max(0, numberValue(fields.availableOutput));
    var completeCount = 0;
    var structureState = "missing";
    var thermalState = "missing";
    var physicsState = "missing";
    var hydraulicsState = "missing";
    var groundDecided = groundSystem !== "undecided";
    var upperDecided = upperSystem !== "undecided";
    var upperPresent = upperType !== "none";
    var structuralNeeded = upperPresent;
    var wetSystem = groundSystem === "wet";
    var criticalWetStrop = false;

    if (upperPresent) {
      if (upperSystem === "wet") {
        wetSystem = true;
        if (upperType === "timber") {
          criticalWetStrop = true;
        }
        if (upperType === "clt") {
          criticalWetStrop = true;
        }
      }
    } else {
      upperDecided = true;
    }

    if (groundType === "unheated") {
      structuralNeeded = true;
    }

    if (structuralNeeded) {
      if (structureValue === "yes") {
        if (groundDecided) {
          if (upperDecided) {
            structureState = "complete";
            setPanel(panels.structure, "complete", "Dane zadeklarowane jako kompletne", "Konstrukcja i planowane typy systemów zostały wskazane. Zachowaj obliczenia oraz uzgodnione przekroje w dokumentacji.");
          } else {
            structureState = "partial";
            setPanel(panels.structure, "partial", "Konstrukcja sprawdzona, system nieustalony", "Wybierz przekrój piętra dopiero po porównaniu pełnych warstw i wydajności.");
          }
        } else {
          structureState = "partial";
          setPanel(panels.structure, "partial", "Konstrukcja sprawdzona, system nieustalony", "Wybierz przekrój parteru dopiero po porównaniu pełnych warstw i wydajności.");
        }
      } else {
        structureState = "missing";
        if (criticalWetStrop) {
          setPanel(panels.structure, "missing", "Krytyczna luka dla mokrego stropu", "Planowany jastrych na konstrukcji drewnianej wymaga sprawdzenia obciążeń, ugięcia, drgań i wszystkich warstw przez konstruktora.");
        } else {
          setPanel(panels.structure, "missing", "Brakuje oceny konstrukcyjnej", "Potwierdź obciążenia, ugięcie, drgania i komplet warstw dla stropu lub podłogi nad przestrzenią.");
        }
      }
    } else {
      if (groundDecided) {
        structureState = "complete";
        setPanel(panels.structure, "complete", "Zakres bez ogrzewanego stropu", "W audycie nie wskazano ogrzewanego piętra. Przekrój parteru nadal musi być zgodny z dokumentacją budowlaną.");
      } else {
        structureState = "partial";
        setPanel(panels.structure, "partial", "Ustal przekrój parteru", "Brak piętra nie zwalnia z zaprojektowania warstw podłogi parteru.");
      }
    }

    if (structureState === "complete") {
      completeCount += 1;
    }

    if (heatlossValue === "yes") {
      if (loss > 0) {
        if (area > 0) {
          if (systemDataValue === "yes") {
            if (available > 0) {
              thermalState = "complete";
              setPanel(panels.thermal, "complete", "Dane cieplne zadeklarowane jako kompletne", "Są straty pomieszczenia, powierzchnia czynna i wydajność systemu dla warunków, które należy zachować w projekcie.");
            } else {
              thermalState = "partial";
              setPanel(panels.thermal, "partial", "Brakuje wartości wydajności", "Zaznaczono posiadanie charakterystyki, ale nie wpisano dodatniej mocy systemu w W/m².");
            }
          } else {
            thermalState = "partial";
            setPanel(panels.thermal, "partial", "Obciążenie policzone, system niezweryfikowany", "Masz podstawę do wyznaczenia q wymaganego, lecz brakuje wydajności konkretnego przekroju dla rozstawu, temperatur i okładziny.");
          }
        } else {
          thermalState = "missing";
          setPanel(panels.thermal, "missing", "Brakuje powierzchni czynnej", "Wpisz dodatnią, rzeczywiście ogrzewaną powierzchnię pomieszczenia.");
        }
      } else {
        thermalState = "missing";
        setPanel(panels.thermal, "missing", "Brakuje straty pomieszczenia", "Wpisz dodatnią wartość Q wynikającą z obliczeń dla konkretnego pomieszczenia.");
      }
    } else {
      thermalState = "missing";
      setPanel(panels.thermal, "missing", "Brakuje obliczeń strat ciepła", "Nie dobieraj rozstawu i temperatury wyłącznie z powierzchni domu lub technologii ścian.");
    }

    if (thermalState === "complete") {
      completeCount += 1;
    }

    if (wetSystem) {
      if (coveringValue === "yes") {
        if (airtightValue === "yes") {
          physicsState = "complete";
          setPanel(panels.physics, "complete", "Okładziny i wilgoć skoordynowane", "Przy systemie mokrym zachowaj procedurę wysychania, pomiarów oraz ciągłość warstw budowlanych.");
        } else {
          physicsState = "missing";
          setPanel(panels.physics, "missing", "Mokry proces wymaga koordynacji", "Dla jastrychu potwierdź wilgoć technologiczną, warunki zamknięcia drewna i ciągłość warstw szczelnych.");
        }
      } else {
        physicsState = "missing";
        setPanel(panels.physics, "missing", "Brakuje danych okładziny", "Potwierdź opór, temperaturę, wilgotność i wymagania podłoża; przy jastrychu także plan wysychania.");
      }
    } else {
      if (coveringValue === "yes") {
        if (airtightValue === "yes") {
          physicsState = "complete";
          setPanel(panels.physics, "complete", "Dane zadeklarowane jako kompletne", "Okładziny oraz warstwy kontroli wilgoci i szczelności zostały wskazane jako uzgodnione.");
        } else if (airtightValue === "na") {
          physicsState = "complete";
          setPanel(panels.physics, "complete", "Dane zadeklarowane jako kompletne", "Okładziny są znane, a użytkownik oznaczył koordynację warstw jako nieobjętą danym detalem.");
        } else {
          physicsState = "partial";
          setPanel(panels.physics, "partial", "Okładzina znana, detal nieuzgodniony", "Sprawdź ciągłość warstw szczelnych i wszystkie przejścia instalacyjne w przekroju.");
        }
      } else {
        physicsState = "missing";
        setPanel(panels.physics, "missing", "Brakuje danych okładziny", "Bez oporu i ograniczeń wykończenia nie można potwierdzić mocy ani temperatury powierzchni.");
      }
    }

    if (physicsState === "complete") {
      completeCount += 1;
    }

    if (sourceValue === "yes") {
      hydraulicsState = "complete";
      setPanel(panels.hydraulics, "complete", "Wymagania źródła są znane", "Skoordynuj je z przepływami pętli, pompą obiegową, sterowaniem stref i zakresem temperatur.");
    } else {
      hydraulicsState = "missing";
      setPanel(panels.hydraulics, "missing", "Brakuje wymagań hydraulicznych", "Sprawdź minimalny przepływ, moc minimalną, pojemność, temperatury oraz logikę regulacji źródła.");
    }

    if (hydraulicsState === "complete") {
      completeCount += 1;
    }

    var percent = completeCount / 4 * 100;
    output.scoreValue.textContent = completeCount + "/4";
    output.scorePercent.textContent = formatNumber(percent, 0) + "%";
    output.scoreFill.style.width = String(percent) + "%";

    actions.textContent = "";

    if (structureState !== "complete") {
      if (criticalWetStrop) {
        actionItem("is-critical", "Najpierw konstruktor.", "Przed zatwierdzeniem jastrychu na drewnianym stropie potrzebne są pełne obliczenia warstw i użytkowalności.");
      } else {
        actionItem("", "Uzupełnij konstrukcję.", "Zatwierdź przekroje, obciążenia, ugięcie i drgania przed zamówieniem materiału.");
      }
    }

    if (thermalState !== "complete") {
      actionItem("", "Uzupełnij termikę.", "Policz straty pomieszczeń, powierzchnie czynne i zdobądź charakterystykę wybranego przekroju.");
    }

    if (physicsState !== "complete") {
      actionItem("", "Skoordynuj warstwy.", "Potwierdź okładziny, opór, wilgoć, szczelność, akustykę oraz kolejność zamykania przegród.");
    }

    if (hydraulicsState !== "complete") {
      actionItem("", "Sprawdź źródło i przepływy.", "Ustal wymagania źródła, oblicz pętle oraz zaplanuj pracę pompy i sterowania strefowego.");
    }

    if (completeCount === 4) {
      actionItem("is-complete", "Cztery grupy danych zadeklarowane.", "To dobry moment na weryfikację ich spójności na jednym rzucie i w zestawieniu hydraulicznym.");
      actionItem("", "Zachowaj dokumenty źródłowe.", "Wynik audytu nie potwierdza poprawności wartości — do projektu dołącz obliczenia, charakterystyki i uzgodnione przekroje.");
    }
  }

  function update() {
    updateVisual();
    updateThermalResults();
    updateAudit();
  }

  Object.keys(fields).forEach(function (key) {
    fields[key].addEventListener("input", update);
    fields[key].addEventListener("change", update);
  });

  reset.addEventListener("click", function () {
    fields.groundType.value = "ground";
    fields.groundSystem.value = "undecided";
    fields.upperType.value = "timber";
    fields.upperSystem.value = "undecided";
    fields.structure.value = "no";
    fields.heatloss.value = "no";
    fields.covering.value = "no";
    fields.systemData.value = "no";
    fields.airtight.value = "no";
    fields.source.value = "no";
    fields.roomLoss.value = "900";
    fields.activeArea.value = "18";
    fields.availableOutput.value = "0";
    update();
  });

  update();
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Grubość wylewki betonowej na ogrzewanie podłogowe.</title>
		<link>https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 14:21:33 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Posadzki i wylewki]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[grubość wylewki]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opór cieplny]]></category>
		<category><![CDATA[plastyfikator do betonu]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[posadzki]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3831</guid>

					<description><![CDATA[<p>Decyzja o montażu „podłogówki” to zaledwie początek wyzwań, z jakimi musisz się zmierzyć podczas budowy lub remontu domu. Jednym z kluczowych parametrów, który bezpośrednio wpłynie na sprawność instalacji, wysokość rachunków za energię oraz trwałość samej posadzki, jest odpowiednia grubość wylewki betonowej na ogrzewanie podłogowe. Zbyt cienka warstwa to ogromne ryzyko pęknięć i nierównomiernego rozkładu temperatur (tzw. efekt „zebry”). Z kolei zbyt masywny jastrych drastycznie zwiększy bezwładność cieplną systemu, sprawiając, że dom będzie nagrzewał się wolno, a koszty eksploatacji niepotrzebnie wzrosną. W tym artykule rozkładamy na czynniki pierwsze fizykę przenikania ciepła, tłumaczymy obowiązujące normy i podpowiadamy, jak uniknąć kosztownych błędów wykonawczych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej na ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-screed-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff6238;
    --rk-red: #d83c2f;
    --rk-green: #178265;
    --rk-green-soft: #ebf8f3;
    --rk-yellow: #f2b441;
    --rk-ink: #1d2c3a;
    --rk-text: #465a6b;
    --rk-muted: #687b89;
    --rk-line: #d9e7ed;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ef;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1480px;
    margin: 32px auto 70px;
    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.78;
  }

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

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

  #rk-screed-guide button,
  #rk-screed-guide input,
  #rk-screed-guide a,
  #rk-screed-guide summary {
    -webkit-tap-highlight-color: transparent;
  }

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

  #rk-screed-guide a:hover {
    color: var(--rk-red);
  }

  #rk-screed-guide h2,
  #rk-screed-guide h3,
  #rk-screed-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-screed-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.6vw, 2.65rem);
  }

  #rk-screed-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.18rem, 2.5vw, 1.58rem);
  }

  #rk-screed-guide h4 {
    margin-bottom: 8px;
    font-size: 1.02rem;
    letter-spacing: -0.015em;
  }

  #rk-screed-guide h2::before,
  #rk-screed-guide h2::after,
  #rk-screed-guide h3::before,
  #rk-screed-guide h3::after,
  #rk-screed-guide h4::before,
  #rk-screed-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-screed-guide p {
    margin: 0 0 1.22em;
    color: var(--rk-text);
  }

  #rk-screed-guide strong {
    color: var(--rk-dark);
  }

  #rk-screed-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-screed-guide .rk-screed-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-screed-guide .rk-screed-progress-track {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.88);
  }

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

  #rk-screed-guide .rk-screed-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 13%, rgba(255, 98, 56, 0.31), transparent 28%),
      radial-gradient(circle at 78% 78%, rgba(40, 201, 218, 0.22), transparent 33%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09647e 100%);
  }

  #rk-screed-guide .rk-screed-hero::before,
  #rk-screed-guide .rk-screed-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-screed-guide .rk-screed-hero::before {
    right: -120px;
    bottom: -175px;
    width: 400px;
    height: 400px;
    border: 58px solid rgba(255, 255, 255, 0.055);
  }

  #rk-screed-guide .rk-screed-hero::after {
    right: 145px;
    bottom: -125px;
    width: 235px;
    height: 235px;
    border: 34px solid rgba(255, 98, 56, 0.12);
  }

  #rk-screed-guide .rk-screed-badge {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-badge::before {
    content: "";
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 98, 56, 0.18);
  }

  #rk-screed-guide .rk-screed-hero h2 {
    max-width: 1040px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5.05vw, 3.85rem);
    letter-spacing: -0.055em;
  }

  #rk-screed-guide .rk-screed-hero h2 span {
    color: #83edf5;
  }

  #rk-screed-guide .rk-screed-hook {
    max-width: 930px;
    margin: 0 0 21px;
    padding: 19px 21px;
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 15px 15px 0;
    background: rgba(255, 255, 255, 0.09);
  }

  #rk-screed-guide .rk-screed-hook p,
  #rk-screed-guide .rk-screed-hook strong,
  #rk-screed-guide .rk-screed-hero-lead {
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-hook p {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.16rem);
    line-height: 1.67;
  }

  #rk-screed-guide .rk-screed-hero-lead {
    max-width: 930px;
    font-size: 1.03rem;
  }

  #rk-screed-guide .rk-screed-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 24px;
    color: #cde0e7;
    font-size: 0.72rem;
    font-weight: 770;
  }

  #rk-screed-guide .rk-screed-hero-meta span::before {
    content: "•";
    margin-right: 8px;
    color: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-author-strip {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-top: 26px;
  }

  #rk-screed-guide .rk-screed-author-strip img {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 3px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    object-fit: cover;
  }

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

  #rk-screed-guide .rk-screed-author-strip b {
    color: var(--rk-white);
    font-size: 0.88rem;
  }

  #rk-screed-guide .rk-screed-author-strip small {
    color: #cde0e7;
    font-size: 0.7rem;
    line-height: 1.45;
  }

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

  #rk-screed-guide .rk-screed-learn {
    margin-bottom: 36px;
  }

  #rk-screed-guide .rk-screed-learn > strong {
    display: block;
    margin-bottom: 16px;
    font-size: 1.12rem;
  }

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

  #rk-screed-guide .rk-screed-learn-card,
  #rk-screed-guide .rk-screed-card,
  #rk-screed-guide .rk-screed-error,
  #rk-screed-guide .rk-screed-check {
    min-width: 0;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-learn-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }

  #rk-screed-guide .rk-screed-no,
  #rk-screed-guide .rk-screed-card-icon,
  #rk-screed-guide .rk-screed-error-no,
  #rk-screed-guide .rk-screed-check-no {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-learn-card h4,
  #rk-screed-guide .rk-screed-learn-card p,
  #rk-screed-guide .rk-screed-card h4,
  #rk-screed-guide .rk-screed-card p,
  #rk-screed-guide .rk-screed-error h4,
  #rk-screed-guide .rk-screed-error p,
  #rk-screed-guide .rk-screed-check h4,
  #rk-screed-guide .rk-screed-check p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-learn-card p,
  #rk-screed-guide .rk-screed-card p,
  #rk-screed-guide .rk-screed-error p,
  #rk-screed-guide .rk-screed-check p {
    margin-top: 6px;
    font-size: 0.84rem;
    line-height: 1.58;
  }

  #rk-screed-guide .rk-screed-nav {
    margin-bottom: 46px;
    padding: 22px;
    border: 1px solid #cce4ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-nav > strong {
    display: block;
    margin-bottom: 12px;
  }

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

  #rk-screed-guide .rk-screed-nav a {
    padding: 7px 11px;
    border: 1px solid #bfdbe5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.72rem;
    text-decoration: none;
  }

  #rk-screed-guide .rk-screed-nav a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-section {
    margin-top: 64px;
  }

  #rk-screed-guide .rk-screed-section-head {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 17px;
    align-items: start;
    margin-bottom: 25px;
  }

  #rk-screed-guide .rk-screed-section-head h2,
  #rk-screed-guide .rk-screed-section-head p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-section-head p {
    margin-top: 8px;
    font-size: 0.88rem;
  }

  #rk-screed-guide .rk-screed-section-no {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    font-size: 0.78rem;
    font-weight: 900;
    box-shadow: 0 11px 23px rgba(216, 60, 47, 0.2);
  }

  #rk-screed-guide .rk-screed-answer,
  #rk-screed-guide .rk-screed-truth,
  #rk-screed-guide .rk-screed-warning,
  #rk-screed-guide .rk-screed-note,
  #rk-screed-guide .rk-screed-formula {
    margin: 24px 0;
    padding: 24px;
    border-radius: 20px;
  }

  #rk-screed-guide .rk-screed-answer {
    border: 1px solid #bde3eb;
    border-left: 6px solid var(--rk-cyan);
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-truth {
    border: 1px solid #f2c5b6;
    border-left: 6px solid var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-screed-guide .rk-screed-warning {
    border: 1px solid #f0cfd0;
    border-left: 6px solid var(--rk-red);
    background: #fff5f5;
  }

  #rk-screed-guide .rk-screed-note {
    border: 1px solid #cbe6da;
    border-left: 6px solid var(--rk-green);
    background: var(--rk-green-soft);
  }

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

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

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

  #rk-screed-guide .rk-screed-card {
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-card-icon {
    margin-bottom: 15px;
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
  }

  #rk-screed-guide .rk-screed-list {
    margin: 18px 0 24px;
    padding: 0;
    list-style: none;
  }

  #rk-screed-guide .rk-screed-list li {
    position: relative;
    margin: 9px 0;
    padding-left: 31px;
    color: var(--rk-text);
  }

  #rk-screed-guide .rk-screed-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0.08em;
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.66rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-table-wrap {
    margin: 24px 0;
  }

  #rk-screed-guide .rk-screed-table {
    width: 100%;
    border-spacing: 0;
    border-collapse: separate;
    table-layout: fixed;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    overflow: hidden;
    background: var(--rk-white);
  }

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

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

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

  #rk-screed-guide .rk-screed-table th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.76rem;
    line-height: 1.4;
  }

  #rk-screed-guide .rk-screed-table td {
    color: var(--rk-text);
    font-size: 0.8rem;
    line-height: 1.55;
  }

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

  #rk-screed-guide .rk-screed-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    margin: 25px 0 18px;
  }

  #rk-screed-guide .rk-screed-flow-step {
    min-width: 0;
    padding: 16px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.4;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-flow-step:hover,
  #rk-screed-guide .rk-screed-flow-step.is-active {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-flow-detail {
    min-height: 150px;
    padding: 23px;
    border: 1px solid #cde5ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-flow-detail h3,
  #rk-screed-guide .rk-screed-flow-detail p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-flow-detail p {
    margin-top: 9px;
  }

  #rk-screed-guide .rk-screed-formula {
    border: 1px solid #c6dce5;
    background: var(--rk-dark);
  }

  #rk-screed-guide .rk-screed-formula strong,
  #rk-screed-guide .rk-screed-formula p,
  #rk-screed-guide .rk-screed-formula code {
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-formula code {
    display: block;
    margin: 13px 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.07);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.82rem;
    line-height: 1.65;
    white-space: normal;
  }

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

  #rk-screed-guide .rk-screed-architecture {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-architecture > span {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-nodes {
    display: grid;
    gap: 8px;
    margin: 17px 0;
  }

  #rk-screed-guide .rk-screed-node {
    position: relative;
    padding: 12px;
    border: 1px solid #cbdde5;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.76rem;
    font-weight: 820;
    text-align: center;
  }

  #rk-screed-guide .rk-screed-node + .rk-screed-node::before {
    content: "↓";
    position: absolute;
    top: -16px;
    left: 50%;
    color: var(--rk-orange);
    font-size: 1rem;
    transform: translateX(-50%);
  }

  #rk-screed-guide .rk-screed-architecture p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-screed-guide .rk-screed-lab {
    overflow: hidden;
    margin: 28px 0;
    border: 1px solid #c9e1e9;
    border-radius: 25px;
    background: var(--rk-white);
    box-shadow: 0 18px 45px rgba(16, 37, 54, 0.1);
  }

  #rk-screed-guide .rk-screed-lab-head {
    padding: 25px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-screed-guide .rk-screed-lab-head h3,
  #rk-screed-guide .rk-screed-lab-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-lab-head p {
    margin-top: 8px;
    color: #cfe2e8;
    font-size: 0.87rem;
  }

  #rk-screed-guide .rk-screed-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 17px;
  }

  #rk-screed-guide .rk-screed-preset {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font: inherit;
    font-size: 0.7rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-preset:hover,
  #rk-screed-guide .rk-screed-preset.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

  #rk-screed-guide .rk-screed-lab-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.35fr);
    gap: 0;
  }

  #rk-screed-guide .rk-screed-controls {
    padding: 25px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-control {
    margin-bottom: 19px;
  }

  #rk-screed-guide .rk-screed-control:last-child {
    margin-bottom: 0;
  }

  #rk-screed-guide .rk-screed-control label {
    display: flex;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    color: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-screed-guide .rk-screed-control output {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.7rem;
  }

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

  #rk-screed-guide .rk-screed-visual {
    min-width: 0;
    padding: 25px;
  }

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

  #rk-screed-guide .rk-screed-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-result span,
  #rk-screed-guide .rk-screed-result strong {
    display: block;
  }

  #rk-screed-guide .rk-screed-result span {
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 760;
    line-height: 1.35;
  }

  #rk-screed-guide .rk-screed-result strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.28rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  #rk-screed-guide .rk-screed-chart {
    width: 100%;
    min-height: 330px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f3f8fa);
  }

  #rk-screed-guide .rk-screed-chart .rk-grid-line {
    stroke: #d9e6ec;
    stroke-width: 1;
  }

  #rk-screed-guide .rk-screed-chart .rk-axis {
    stroke: #8194a1;
    stroke-width: 1.4;
  }

  #rk-screed-guide .rk-screed-chart .rk-axis-label,
  #rk-screed-guide .rk-screed-chart .rk-tick {
    fill: #5f7381;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 11px;
  }

  #rk-screed-guide .rk-screed-chart .rk-curve {
    fill: none;
    stroke: var(--rk-blue);
    stroke-width: 5;
    stroke-linecap: round;
  }

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

  #rk-screed-guide .rk-screed-chart .rk-guide {
    stroke: var(--rk-orange);
    stroke-width: 1.5;
    stroke-dasharray: 5 5;
  }

  #rk-screed-guide .rk-screed-status {
    margin-top: 14px;
    padding: 15px;
    border-radius: 13px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    font-size: 0.78rem;
    font-weight: 760;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-status.is-ok {
    color: #07553f;
    background: #e7f8f1;
  }

  #rk-screed-guide .rk-screed-status.is-warning {
    color: #71330d;
    background: #fff1e5;
  }

  #rk-screed-guide .rk-screed-disclaimer {
    padding: 0 25px 24px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-number-input {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #bfd3dc;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 760;
  }

  #rk-screed-guide .rk-screed-number-input:focus-visible,
  #rk-screed-guide button:focus-visible,
  #rk-screed-guide a:focus-visible,
  #rk-screed-guide summary:focus-visible {
    outline: 3px solid rgba(40, 201, 218, 0.42);
    outline-offset: 3px;
  }

  #rk-screed-guide .rk-screed-plan-wrap {
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f1f7fa);
  }

  #rk-screed-guide .rk-screed-plan {
    display: block;
    width: 100%;
    min-height: 330px;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-room {
    fill: #f7fbfd;
    stroke: var(--rk-dark);
    stroke-width: 3;
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-zone {
    fill: rgba(255, 98, 56, 0.19);
    stroke: var(--rk-orange);
    stroke-width: 2;
    stroke-dasharray: 7 5;
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-glazing {
    stroke: var(--rk-blue);
    stroke-width: 9;
    stroke-linecap: round;
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-pipe-zone {
    fill: none;
    stroke: var(--rk-orange);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-pipe-main {
    fill: none;
    stroke: var(--rk-cyan);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-screed-guide .rk-screed-plan text {
    fill: var(--rk-dark);
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 13px;
    font-weight: 800;
  }

  #rk-screed-guide .rk-screed-plan-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 12px;
    color: var(--rk-muted);
    font-size: 0.7rem;
    font-weight: 780;
  }

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

  #rk-screed-guide .rk-screed-plan-legend i {
    display: inline-block;
    width: 23px;
    height: 5px;
    border-radius: 999px;
    background: var(--rk-cyan);
  }

  #rk-screed-guide .rk-screed-plan-legend .zone i {
    background: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-plan-legend .glass i {
    background: var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  #rk-screed-guide .rk-screed-metric {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-metric span,
  #rk-screed-guide .rk-screed-metric strong {
    display: block;
  }

  #rk-screed-guide .rk-screed-metric span {
    color: var(--rk-muted);
    font-size: 0.63rem;
    font-weight: 780;
    line-height: 1.35;
  }

  #rk-screed-guide .rk-screed-metric strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.05rem;
    line-height: 1.2;
  }

  #rk-screed-guide .rk-screed-status.is-warning {
    color: #7c321d;
    background: var(--rk-warm);
  }

  #rk-screed-guide .rk-screed-small {
    color: var(--rk-muted);
    font-size: 0.78rem;
    line-height: 1.62;
  }

  #rk-screed-guide .rk-screed-howto {
    display: grid;
    gap: 12px;
    margin: 25px 0;
    padding: 0;
    list-style: none;
  }

  #rk-screed-guide .rk-screed-howto-step {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-howto-step > span {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.8rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-howto-step h3,
  #rk-screed-guide .rk-screed-howto-step p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-howto-step p {
    margin-top: 7px;
    font-size: 0.87rem;
  }

  #rk-screed-guide .rk-screed-faq-list {
    display: grid;
    gap: 10px;
  }

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

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

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

  #rk-screed-guide .rk-screed-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

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

  #rk-screed-guide .rk-screed-faq-answer {
    padding: 0 20px 19px;
  }

  #rk-screed-guide .rk-screed-faq-answer p {
    margin: 0;
    font-size: 0.88rem;
  }

  #rk-screed-guide .rk-screed-sources {
    margin-top: 28px;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.76rem;
    line-height: 1.7;
  }

  #rk-screed-guide .rk-screed-sources > strong {
    display: block;
    margin-bottom: 8px;
  }

  #rk-screed-guide .rk-screed-cta {
    margin-top: 58px;
    padding: clamp(28px, 5vw, 48px);
    border-radius: 26px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 12%, rgba(255, 98, 56, 0.3), transparent 33%),
      linear-gradient(135deg, #102536, #174155);
    box-shadow: 0 20px 45px rgba(16, 37, 54, 0.16);
  }

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

  #rk-screed-guide .rk-screed-cta p {
    max-width: 880px;
  }

  #rk-screed-guide .rk-screed-cta-kicker {
    display: block;
    margin-bottom: 10px;
    color: #7af0ff;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-cta h2,
  #rk-screed-guide .rk-screed-cta h3 {
    color: #ffffff !important;
  }

  #rk-screed-guide .rk-screed-cta-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 56px;
    margin-top: 7px;
    padding: 15px 24px;
    border-radius: 14px;
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, var(--rk-orange), #f04432);
    box-shadow: 0 14px 28px rgba(216, 60, 47, 0.24);
    font-size: 0.88rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none !important;
  }

  #rk-screed-guide .rk-screed-cta-link:hover {
    color: var(--rk-white) !important;
    filter: brightness(1.06);
    transform: translateY(-1px);
  }

  #rk-screed-guide .rk-screed-cta small {
    display: block;
    margin-top: 14px;
    color: #bdd1da;
    font-size: 0.7rem;
    line-height: 1.5;
  }

  #rk-screed-guide .rk-screed-author-box {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-author-head {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
    padding: 28px;
    color: var(--rk-white);
    border-bottom: 5px solid var(--rk-cyan);
    background: var(--rk-dark);
  }

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

  #rk-screed-guide .rk-screed-author-head p {
    margin-top: 6px;
    color: #cde0e7;
    font-size: 0.82rem;
  }

  #rk-screed-guide .rk-screed-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.35);
    border-radius: 13px;
    color: #84edf5;
    background: rgba(40, 201, 218, 0.08);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  #rk-screed-guide .rk-screed-author-main {
    display: grid;
    grid-template-columns: 310px minmax(0, 1fr);
  }

  #rk-screed-guide .rk-screed-author-profile {
    padding: 32px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-screed-guide .rk-screed-author-profile img {
    width: 174px;
    height: 174px;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 16px 34px rgba(16, 37, 54, 0.14);
  }

  #rk-screed-guide .rk-screed-author-profile h4 {
    margin: 18px 0 7px;
    font-size: 1.36rem;
  }

  #rk-screed-guide .rk-screed-author-role {
    display: block;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.6;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-author-social-label {
    margin-top: 24px;
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

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

  #rk-screed-guide .rk-screed-author-social a {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid var(--rk-line);
    border-radius: 50%;
    color: var(--rk-dark);
    background: var(--rk-white);
    text-decoration: none;
    transition: transform .2s ease, border-color .2s ease, color .2s ease;
  }

  #rk-screed-guide .rk-screed-author-social a:hover {
    color: var(--rk-blue);
    border-color: var(--rk-cyan);
    transform: translateY(-2px);
  }

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

  #rk-screed-guide .rk-screed-author-content {
    min-width: 0;
    padding: 32px;
  }

  #rk-screed-guide .rk-screed-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 23px 23px 23px 61px;
    border-radius: 18px;
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-quote::before {
    content: "“";
    position: absolute;
    top: 3px;
    left: 18px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 4rem;
    line-height: 1;
  }

  #rk-screed-guide .rk-screed-quote blockquote {
    margin: 0;
    color: var(--rk-dark);
    font-size: 1.03rem;
    font-style: italic;
    font-weight: 790;
    line-height: 1.7;
  }

  #rk-screed-guide .rk-screed-tab-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--rk-line);
    border-radius: 14px 14px 0 0;
    overflow: hidden;
  }

  #rk-screed-guide .rk-screed-tab-button {
    min-width: 0;
    padding: 13px 10px;
    border: 0;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: var(--rk-soft);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-tab-button:last-child {
    border-right: 0;
  }

  #rk-screed-guide .rk-screed-tab-button.is-active {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -4px 0 var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-tab-panel {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 14px 14px;
  }

  #rk-screed-guide .rk-screed-tab-panel[hidden] {
    display: none !important;
  }

  #rk-screed-guide .rk-screed-tab-panel p {
    margin: 0;
    font-size: 0.86rem;
  }

  #rk-screed-guide .rk-screed-portals {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
  }

  #rk-screed-guide .rk-screed-portals a {
    padding: 8px 12px;
    border: 1px solid #c8dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.75rem;
    text-decoration: none;
  }

  #rk-screed-guide .rk-screed-portals a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

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

    #rk-screed-guide .rk-screed-architectures,
    #rk-screed-guide .rk-screed-card-grid.three {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-author-main {
      grid-template-columns: 260px minmax(0, 1fr);
    }
  }

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

    #rk-screed-guide .rk-screed-lab-grid,
    #rk-screed-guide .rk-screed-author-main {
      grid-template-columns: 1fr;
    }

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

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

    #rk-screed-guide .rk-screed-flow-step:last-child {
      grid-column: 1 / -1;
    }

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

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

    #rk-screed-guide .rk-screed-shell {
      border-radius: 20px;
    }

    #rk-screed-guide .rk-screed-hero,
    #rk-screed-guide .rk-screed-content {
      padding: 25px 18px;
    }

    #rk-screed-guide .rk-screed-learn-grid,
    #rk-screed-guide .rk-screed-card-grid,
    #rk-screed-guide .rk-screed-card-grid.four,
    #rk-screed-guide .rk-screed-error-grid,
    #rk-screed-guide .rk-screed-check-grid,
    #rk-screed-guide .rk-screed-results {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-section {
      margin-top: 48px;
    }

    #rk-screed-guide .rk-screed-section-head {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
    }

    #rk-screed-guide .rk-screed-section-no {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

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

    #rk-screed-guide .rk-screed-table {
      border: 0;
      background: transparent;
    }

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

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

    #rk-screed-guide .rk-screed-table td,
    #rk-screed-guide .rk-screed-table tr:last-child td {
      display: grid;
      grid-template-columns: minmax(105px, 0.42fr) minmax(0, 0.58fr);
      gap: 10px;
      padding: 13px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white) !important;
    }

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

    #rk-screed-guide .rk-screed-table td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-weight: 900;
    }

    #rk-screed-guide .rk-screed-chart {
      min-height: 265px;
    }

    #rk-screed-guide .rk-screed-plan {
      min-height: 265px;
    }

    #rk-screed-guide .rk-screed-metrics {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-howto-step {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
      padding: 16px;
    }

    #rk-screed-guide .rk-screed-howto-step > span {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-screed-guide .rk-screed-author-head {
      align-items: flex-start;
      flex-direction: column;
      padding: 22px;
    }

    #rk-screed-guide .rk-screed-author-content,
    #rk-screed-guide .rk-screed-author-profile {
      padding: 22px;
    }

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

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

    #rk-screed-guide .rk-screed-tab-button:last-child {
      border-bottom: 0;
    }

    #rk-screed-guide .rk-screed-cta-link {
      width: 100%;
    }
  }

  #rk-screed-guide .rk-screed-program-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
  }

  #rk-screed-guide .rk-screed-program-button {
    min-height: 52px;
    padding: 12px 15px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 13px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 900;
    line-height: 1.35;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-program-button:hover,
  #rk-screed-guide .rk-screed-program-button.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

  #rk-screed-guide .rk-screed-program-panel[hidden] {
    display: none !important;
  }

  #rk-screed-guide .rk-screed-program-title {
    margin: 0 0 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-dark);
    font-size: 0.88rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-select {
    width: 100%;
    min-height: 46px;
    padding: 10px 38px 10px 12px;
    border: 1px solid #bfd3dc;
    border-radius: 11px;
    color: var(--rk-dark);
    background-color: var(--rk-white);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 760;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-control-note {
    display: block;
    margin-top: 6px;
    color: var(--rk-muted);
    font-size: 0.66rem;
    line-height: 1.5;
  }

  #rk-screed-guide .rk-screed-estimate {
    position: relative;
    overflow: hidden;
    margin-bottom: 16px;
    padding: 25px;
    border-radius: 19px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 95% 0%, rgba(255, 98, 56, 0.31), transparent 36%),
      linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-screed-guide .rk-screed-estimate span,
  #rk-screed-guide .rk-screed-estimate strong,
  #rk-screed-guide .rk-screed-estimate small {
    display: block;
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-estimate span {
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-estimate strong {
    margin-top: 7px;
    font-size: clamp(2rem, 5vw, 3.45rem);
    line-height: 1;
  }

  #rk-screed-guide .rk-screed-estimate small {
    max-width: 620px;
    margin-top: 12px;
    color: #cde0e7;
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-limit-bar {
    height: 12px;
    margin: 18px 0 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
  }

  #rk-screed-guide .rk-screed-limit-fill {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-orange));
    transition: width 220ms ease;
  }

  #rk-screed-guide .rk-screed-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
  }

  #rk-screed-guide .rk-screed-result-card {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-result-card span,
  #rk-screed-guide .rk-screed-result-card strong {
    display: block;
  }

  #rk-screed-guide .rk-screed-result-card span {
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 760;
    line-height: 1.4;
  }

  #rk-screed-guide .rk-screed-result-card strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.05rem;
    line-height: 1.3;
  }

  #rk-screed-guide .rk-screed-status-list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #rk-screed-guide .rk-screed-status-list li {
    position: relative;
    margin: 7px 0;
    padding-left: 24px;
    color: var(--rk-text);
    font-size: 0.76rem;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-status-list li::before {
    content: "i";
    position: absolute;
    left: 0;
    top: 0.2em;
    display: grid;
    width: 16px;
    height: 16px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.58rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-status-list li.is-alert::before {
    content: "!";
    background: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0;
  }

  #rk-screed-guide .rk-screed-chip {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #c6dce5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.35;
  }

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

  #rk-screed-guide .rk-screed-example {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 5px solid var(--rk-cyan);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-example:nth-child(2) {
    border-top-color: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-example:nth-child(3) {
    border-top-color: var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-example h3,
  #rk-screed-guide .rk-screed-example p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-example p {
    margin-top: 8px;
    font-size: 0.8rem;
    line-height: 1.6;
  }

  #rk-screed-guide .rk-screed-example code {
    display: block;
    margin-top: 14px;
    padding: 13px;
    border-radius: 11px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.75rem;
    line-height: 1.6;
    white-space: normal;
  }

  #rk-screed-guide .rk-screed-verdict {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(220px, 0.75fr);
    gap: 22px;
    align-items: center;
    margin: 26px 0;
    padding: 26px;
    border: 1px solid #f0c7b8;
    border-radius: 22px;
    background: var(--rk-warm);
  }

  #rk-screed-guide .rk-screed-verdict h3,
  #rk-screed-guide .rk-screed-verdict p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-verdict p {
    margin-top: 8px;
  }

  #rk-screed-guide .rk-screed-verdict-mark {
    padding: 22px;
    border-radius: 17px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-orange), var(--rk-red));
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
  }

  @media (max-width: 980px) {
    #rk-screed-guide .rk-screed-example-grid,
    #rk-screed-guide .rk-screed-verdict {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 720px) {
    #rk-screed-guide .rk-screed-program-switch,
    #rk-screed-guide .rk-screed-result-grid {
      grid-template-columns: 1fr;
    }
  }

  /* Elementy charakterystyczne dla opracowania o jastrychu grzejnym */
  #rk-screed-guide .rk-screed-term-grid,
  #rk-screed-guide .rk-screed-phase-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-screed-guide .rk-screed-term,
  #rk-screed-guide .rk-screed-phase {
    min-width: 0;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-term b,
  #rk-screed-guide .rk-screed-phase b {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 0.96rem;
  }

  #rk-screed-guide .rk-screed-term p,
  #rk-screed-guide .rk-screed-phase p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.62;
  }

  #rk-screed-guide .rk-screed-phase {
    position: relative;
    padding-top: 55px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-phase::before {
    content: attr(data-step);
    position: absolute;
    top: 17px;
    left: 20px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 9px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.7rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-lab-grid {
    grid-template-columns: minmax(300px, 0.88fr) minmax(0, 1.5fr);
  }

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

  #rk-screed-guide .rk-screed-input-grid .rk-screed-control {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-cross-wrap {
    display: grid;
    grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.1fr);
    gap: 16px;
    margin-top: 17px;
  }

  #rk-screed-guide .rk-screed-cross-card,
  #rk-screed-guide .rk-screed-energy-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f2f8fa);
  }

  #rk-screed-guide .rk-screed-cross-title,
  #rk-screed-guide .rk-screed-energy-title {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-screed-guide .rk-screed-cross {
    display: block;
    width: 100%;
    min-height: 250px;
    border-radius: 12px;
    background: #fff;
  }

  #rk-screed-guide .rk-screed-cross text,
  #rk-screed-guide .rk-screed-energy-chart text {
    fill: #506777;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 11px;
    font-weight: 760;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-layer-floor {
    fill: #d9e3e7;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-layer-screed {
    fill: #c6d0d5;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-layer-insulation {
    fill: #eafcff;
    stroke: #28c9da;
    stroke-width: 1.5;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-pipe {
    fill: #ff6238;
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-dimension {
    stroke: #078fbe;
    stroke-width: 2;
    marker-start: url(#rk-screed-arrow-start);
    marker-end: url(#rk-screed-arrow-end);
  }

  #rk-screed-guide .rk-screed-energy-chart {
    display: block;
    width: 100%;
    min-height: 250px;
    border-radius: 12px;
    background: #fff;
  }

  #rk-screed-guide .rk-screed-energy-chart .rk-screed-bar {
    fill: url(#rk-screed-bar-gradient);
  }

  #rk-screed-guide .rk-screed-energy-chart .rk-screed-axis-line {
    stroke: #c8d9e1;
    stroke-width: 1;
  }

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

  #rk-screed-guide .rk-screed-result.is-accent {
    border-color: #b6e9ef;
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 14px;
    margin-top: 12px;
    color: var(--rk-muted);
    font-size: 0.67rem;
    font-weight: 760;
  }

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

  #rk-screed-guide .rk-screed-legend i {
    display: inline-block;
    width: 20px;
    height: 7px;
    border-radius: 999px;
    background: #c6d0d5;
  }

  #rk-screed-guide .rk-screed-legend .pipe i {
    background: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-legend .insulation i {
    background: var(--rk-cyan);
  }

  #rk-screed-guide .rk-screed-protocol {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
  }

  #rk-screed-guide .rk-screed-protocol-step {
    min-width: 0;
    padding: 19px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-protocol-step span {
    display: inline-flex;
    margin-bottom: 11px;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.66rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-protocol-step h3,
  #rk-screed-guide .rk-screed-protocol-step p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-protocol-step p {
    margin-top: 7px;
    font-size: 0.8rem;
  }

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

    #rk-screed-guide .rk-screed-cross-wrap {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 880px) {
    #rk-screed-guide .rk-screed-lab-grid {
      grid-template-columns: 1fr;
    }

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

  @media (max-width: 720px) {
    #rk-screed-guide .rk-screed-term-grid,
    #rk-screed-guide .rk-screed-phase-grid,
    #rk-screed-guide .rk-screed-protocol,
    #rk-screed-guide .rk-screed-input-grid,
    #rk-screed-guide .rk-screed-results {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-cross,
    #rk-screed-guide .rk-screed-energy-chart {
      min-height: 215px;
    }
  }

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

<article id="rk-screed-guide" itemscope itemtype="https://schema.org/TechArticle">
  <div class="rk-screed-shell">
    <div class="rk-screed-progress-track" aria-hidden="true"><div class="rk-screed-progress"></div></div>

    <header class="rk-screed-hero">
      <div class="rk-screed-badge">Grubość jastrychu • aktualizacja 29 sierpnia 2026 r.</div>
      <h2 itemprop="headline">Grubość wylewki betonowej na ogrzewanie podłogowe — <span>ile cm nad rurą 16 mm?</span></h2>
      <div class="rk-screed-hook">
        <p><strong>Przy rurze 16 mm warstwa o grubości całkowitej 60 mm daje 44 mm jastrychu nad górną krawędzią rury — nie 30 mm.</strong> To poprawna geometria, ale jeszcze nie potwierdzenie, że układ spełnia wymagania wybranego produktu i konstrukcji podłogi.</p>
      </div>
      <p class="rk-screed-hero-lead" itemprop="description">Przewodnik rozdziela grubość całkowitą od otuliny nad rurą, pokazuje obliczenia dla 6, 6,5, 7 i 8 cm oraz wyjaśnia, dlaczego minimum trzeba odczytać z dokumentacji konkretnego jastrychu. Interaktywny analizator sprawdza geometrię, objętość, masę i pojemność cieplną warstwy.</p>
      <div class="rk-screed-hero-meta">
        <span>Autor: Robert Kucharski</span>
        <span>ISO 11855 • EN 13813 • dokumentacja systemu</span>
        <span>Rura 16 mm: obliczenia bez błędu 60 − 16</span>
      </div>
      <div class="rk-screed-author-strip" itemprop="author" 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" width="54" height="54" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</small>
        </div>
      </div>
    </header>

    <div class="rk-screed-content">
      <div class="rk-screed-warning">
        <p><strong>Najważniejsze zastrzeżenie techniczne:</strong> artykuł i analizator kontrolują geometrię oraz skutki masowe przyjętej grubości. Nie potwierdzają nośności ani zgodności całej podłogi. Ostateczną wartość ustala się z dokumentacji konkretnego jastrychu, obciążeń, klasy, ściśliwości izolacji i układu pól.</p>
      </div>

      <div class="rk-screed-learn" aria-label="Zakres artykułu">
        <strong>Po lekturze będziesz wiedzieć:</strong>
        <div class="rk-screed-learn-grid">
          <div class="rk-screed-learn-card"><div class="rk-screed-no">01</div><div><h4>Jak policzyć otulinę rury</h4><p>Dlaczego trzeba uwzględnić średnicę przewodu oraz jego rzeczywiste podniesienie nad warstwą odniesienia.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">02</div><div><h4>Co oznacza 6, 7 i 8 cm</h4><p>Ile materiału pozostaje nad rurą 16 mm oraz jak zmieniają się masa i pojemność cieplna.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">03</div><div><h4>Skąd wziąć minimum</h4><p>Jak odróżnić przykład producenta od uniwersalnej normy i czego szukać w karcie systemu.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">04</div><div><h4>Co sprawdzić przed wylaniem</h4><p>Poziomy, obciążenia, dylatacje, zamocowanie rur i próbę szczelności przed zakryciem instalacji.</p></div></div>
        </div>
      </div>

      <nav class="rk-screed-nav" aria-label="Nawigacja po artykule">
        <strong>Przejdź do sekcji</strong>
        <div class="rk-screed-nav-links">
          <a href="#rk-screed-odpowiedz">Szybka odpowiedź</a>
          <a href="#rk-screed-pojecia">Jastrych czy beton?</a>
          <a href="#rk-screed-grubosc">Grubość</a>
          <a href="#rk-screed-kalkulator">Analizator</a>
          <a href="#rk-screed-material">CT czy CA?</a>
          <a href="#rk-screed-klasy">Klasy i λ</a>
          <a href="#rk-screed-zbrojenie">Zbrojenie</a>
          <a href="#rk-screed-dylatacje">Dylatacje</a>
          <a href="#rk-screed-przed">Przed wylaniem</a>
          <a href="#rk-screed-wykonanie">Wykonanie</a>
          <a href="#rk-screed-wygrzewanie">Wygrzewanie</a>
          <a href="#rk-screed-posadzka">Okładzina</a>
          <a href="#rk-screed-bledy">Błędy</a>
          <a href="#rk-screed-kroki">Krok po kroku</a>
          <a href="#rk-screed-faq">FAQ</a>
        </div>
      </nav>

      <section class="rk-screed-section" id="rk-screed-odpowiedz" aria-labelledby="rk-screed-h2-1">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">01</div>
          <div><h2 id="rk-screed-h2-1">Ile powinna mieć wylewka na ogrzewanie podłogowe?</h2><p>Najpierw oddziel grubość całkowitą od warstwy nad rurą.</p></div>
        </div>

        <div class="rk-screed-answer">
          <p><strong>Nie ma jednej wartości poprawnej dla każdego jastrychu.</strong> Jeżeli rura 16 mm leży bezpośrednio na warstwie odniesienia, 60 mm grubości całkowitej oznacza 44 mm nad rurą, 65 mm — 49 mm, 70 mm — 54 mm, a 80 mm — 64 mm. Jeśli systemowa listwa, mata albo klips podnosi rurę, to podniesienie trzeba dodatkowo odjąć.</p>
        </div>

        <div class="rk-screed-card-grid three">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">1</div><h4>Najpierw produkt</h4><p>Wymaganą otulinę i grubość odczytaj z aktualnej dokumentacji wybranego jastrychu oraz systemu podłogi.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">2</div><h4>Potem geometria</h4><p>Policz średnicę rury, jej podniesienie oraz warstwę nad najwyższym punktem przewodu.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">3</div><h4>Na końcu poziomy</h4><p>Sprawdź całą wysokość podłogi: izolację, jastrych, klej, okładzinę, progi i skrzydła drzwi.</p></div>
        </div>

        <div class="rk-screed-verdict">
          <div><h3>Wzór, który trzeba stosować na budowie</h3><p><strong>Otulina = grubość całkowita − średnica zewnętrzna rury − podniesienie spodu rury.</strong> Pomiar wykonuje się od tej samej warstwy odniesienia. Deklaracja „mamy 6 cm” nic nie mówi, jeśli nie wiadomo, od którego poziomu ją zmierzono.</p></div>
          <div class="rk-screed-verdict-mark">60 − 16 = 44 mm, nie 30 mm</div>
        </div>
      </section>

      <section class="rk-screed-section" id="rk-screed-pojecia" aria-labelledby="rk-screed-h2-2">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">02</div>
          <div><h2 id="rk-screed-h2-2">Beton, jastrych cementowy CT i jastrych anhydrytowy CA – co jest czym?</h2><p>Precyzyjna nazwa ułatwia zamówienie właściwego materiału i ocenę dokumentów.</p></div>
        </div>

        <p>Fraza <strong>wylewka betonowa na ogrzewanie podłogowe</strong> jest powszechnie używana przez inwestorów, lecz technicznie najczęściej opisuje <strong>jastrych cementowy</strong>, oznaczany skrótem CT. To warstwa podkładowa wykonywana na izolacji i oddzielona od konstrukcji budynku taśmą brzegową. Nie jest automatycznie tym samym co beton konstrukcyjny przeznaczony na strop, fundament albo płytę.</p>

        <div class="rk-screed-term-grid">
          <div class="rk-screed-term"><b>Jastrych cementowy – CT</b><p>Podkład na spoiwie cementowym. Może mieć konsystencję półsuchą albo płynną. Odmiana, skład i deklarowane parametry wpływają na skurcz, grubość, pielęgnację i termin nagrzewania.</p></div>
          <div class="rk-screed-term"><b>Jastrych na bazie siarczanu wapnia – CA</b><p>Potocznie nazywany anhydrytowym. Zwykle dobrze otacza rury i może ograniczać liczbę szczelin, ale nie jest rozwiązaniem automatycznie najlepszym dla każdego pomieszczenia.</p></div>
          <div class="rk-screed-term"><b>Beton konstrukcyjny</b><p>Materiał projektowany do elementów nośnych. Jego receptura, kruszywo i sposób wbudowania nie muszą odpowiadać wymaganiom cienkiej, pływającej i ogrzewanej warstwy podłogowej.</p></div>
        </div>

        <p>Jastrych grzejny działa jako płyta pływająca na warstwie izolacyjnej. Przenosi obciążenia, chroni przewody, rozprowadza energię między rurami i tworzy podłoże pod okładzinę. Jego duża masa zwiększa bezwładność: stabilizuje temperaturę, lecz spowalnia reakcję na zmianę nastaw. Dlatego strategia sterowania powinna uwzględniać budynek, źródło ciepła i <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">regulację pogodową</a>, a nie opierać się na gwałtownym włączaniu i wyłączaniu obiegów.</p>

        <div class="rk-screed-truth"><p><strong>Ważne:</strong> folia leżąca bezpośrednio pod jastrychem nie działa jak „lustro ciepła” w taki sposób jak warstwa refleksyjna przy szczelinie powietrznej. W systemie mokrym może pełnić funkcję warstwy rozdzielającej, poślizgowej, przeciwwilgociowej albo nadruku montażowego. O ograniczeniu strat w dół decyduje przede wszystkim właściwa <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">izolacja pod ogrzewaniem podłogowym</a>.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-grubosc" aria-labelledby="rk-screed-h2-3">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">03</div>
          <div><h2 id="rk-screed-h2-3">Grubość 6, 6,5, 7 i 8 cm przy rurze 16 mm</h2><p>Prosta tabela ujawnia częsty błąd w odejmowaniu średnicy przewodu.</p></div>
        </div>

        <div class="rk-screed-formula">
          <p><strong>Podstawowa zależność geometryczna:</strong></p>
          <code>c = h − d − e</code>
          <p>gdzie: <strong>c</strong> — warstwa nad rurą, <strong>h</strong> — grubość całkowita mierzona od przyjętej warstwy odniesienia, <strong>d</strong> — średnica zewnętrzna rury, <strong>e</strong> — odległość spodu rury od tej warstwy. Gdy rura 16 mm leży bezpośrednio na niej, dla 60 mm jastrychu: <strong>c = 60 − 16 − 0 = 44 mm</strong>.</p>
        </div>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Grubość całkowita</th><th>Rura</th><th>Podniesienie spodu rury</th><th>Warstwa nad rurą</th><th>Orientacyjna masa przy 2100 kg/m³</th></tr></thead>
            <tbody>
              <tr><td data-label="Grubość"><strong>60 mm</strong></td><td data-label="Rura">16 mm</td><td data-label="Podniesienie">0 mm</td><td data-label="Nad rurą"><strong>44 mm</strong></td><td data-label="Masa">około 126 kg/m²</td></tr>
              <tr><td data-label="Grubość"><strong>65 mm</strong></td><td data-label="Rura">16 mm</td><td data-label="Podniesienie">0 mm</td><td data-label="Nad rurą"><strong>49 mm</strong></td><td data-label="Masa">około 137 kg/m²</td></tr>
              <tr><td data-label="Grubość"><strong>70 mm</strong></td><td data-label="Rura">16 mm</td><td data-label="Podniesienie">0 mm</td><td data-label="Nad rurą"><strong>54 mm</strong></td><td data-label="Masa">około 147 kg/m²</td></tr>
              <tr><td data-label="Grubość"><strong>80 mm</strong></td><td data-label="Rura">16 mm</td><td data-label="Podniesienie">0 mm</td><td data-label="Nad rurą"><strong>64 mm</strong></td><td data-label="Masa">około 168 kg/m²</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-screed-note"><p><strong>Uwaga na maty i listwy:</strong> jeżeli spód rury znajduje się 5 mm nad warstwą, od każdego wyniku w kolumnie „nad rurą” odejmij kolejne 5 mm. Mierz rzeczywisty najwyższy punkt rury, a nie tylko wysokość reperu przy ścianie.</p></div>

        <h3>Co rzeczywiście wpływa na wymaganą grubość?</h3>
        <div class="rk-screed-card-grid four">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">F</div><h4>Wytrzymałość na zginanie</h4><p>Klasa F opisuje odporność na naprężenia zginające, lecz sama nie wyznacza całej konstrukcji.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">Q</div><h4>Obciążenia użytkowe</h4><p>Inaczej analizuje się sypialnię, garaż, spiżarnię z regałami i przestrzeń z ciężkim urządzeniem.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">Δ</div><h4>Ściśliwość izolacji</h4><p>Podłoże podatne ugina się pod jastrychem. Liczy się nie tylko deklaracja samej płyty, ale cały układ warstw.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">G</div><h4>Geometria i szczeliny</h4><p>Długie, wąskie lub nieregularne pola generują inne naprężenia niż zwarty prostokąt.</p></div>
        </div>

        <p>Sam gęstszy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 albo 15 cm</a> nie jest powodem, aby lokalnie pogrubiać jastrych. Rozstaw zmienia moc powierzchniową, długość przewodów i rozkład temperatur, natomiast grubość płyty ustala się według mechaniki oraz dokumentacji systemu.</p>

        <h3>Dlaczego nie podajemy jednego „minimum z normy”?</h3>
        <p>EN 13813 klasyfikuje właściwości materiałów na podkłady, lecz nie nadaje każdemu ogrzewanemu podkładowi jednej uniwersalnej grubości. Wymaganie trzeba odczytać dla wybranego wyrobu i konstrukcji. Przykładowo dokumentacja systemu <a href="https://www.uponor.com/getmedia/6acb6e75-f915-4729-bfa5-6fa8222d4164/uponor-tacker-technical-information-05-2014?disposition=attachment&amp;sitename=UponorInternational" target="_blank" rel="noopener nofollow">Uponor Tacker</a> pokazuje warianty obliczeniowe z 45 mm jastrychu cementowego nad rurą, natomiast aktualna karta <a href="https://knauf.com/api/download-center/v1/assets/ab2bf54d-e6b6-4af6-a615-8423f521a9c1?country=pl&amp;download=true" target="_blank" rel="noopener nofollow">Knauf FE 50 Largo</a> wymaga co najmniej 35 mm nad elementem grzejnym. To dwa przykłady systemowe, a nie wartości, które wolno przenosić na dowolny materiał.</p>
      </section>

      <section class="rk-screed-section" id="rk-screed-kalkulator" aria-labelledby="rk-screed-h2-4">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">04</div>
          <div><h2 id="rk-screed-h2-4">Interaktywny analizator przekroju jastrychu</h2><p>Sprawdź rzeczywistą warstwę nad rurą, wymaganą wysokość, masę i pojemność cieplną.</p></div>
        </div>

        <div class="rk-screed-lab" data-rk-screed-lab>
          <div class="rk-screed-lab-head">
            <h3>Analizator grubości i masy wylewki</h3>
            <p>Wartość minimalnej otuliny przepisz z aktualnej karty wybranego produktu. Narzędzie ocenia wyłącznie geometrię względem wpisanej wartości — nie wydaje oceny konstrukcyjnej.</p>
            <div class="rk-screed-presets" aria-label="Przykładowe grubości całkowite">
              <button class="rk-screed-preset" type="button" data-screed-preset="six">6 cm</button>
              <button class="rk-screed-preset is-active" type="button" data-screed-preset="standard">6,5 cm</button>
              <button class="rk-screed-preset" type="button" data-screed-preset="seven">7 cm</button>
              <button class="rk-screed-preset" type="button" data-screed-preset="eight">8 cm</button>
            </div>
          </div>

          <div class="rk-screed-lab-grid">
            <div class="rk-screed-controls">
              <div class="rk-screed-input-grid">
                <div class="rk-screed-control"><label for="rk-screed-total">Grubość całkowita <output id="rk-screed-total-out">65 mm</output></label><input id="rk-screed-total" type="range" min="35" max="100" step="1" value="65"></div>
                <div class="rk-screed-control"><label for="rk-screed-diameter">Średnica zewnętrzna rury <output id="rk-screed-diameter-out">16 mm</output></label><input id="rk-screed-diameter" type="range" min="10" max="25" step="1" value="16"></div>
                <div class="rk-screed-control"><label for="rk-screed-elevation">Podniesienie spodu rury <output id="rk-screed-elevation-out">0 mm</output></label><input id="rk-screed-elevation" type="range" min="0" max="20" step="1" value="0"></div>
                <div class="rk-screed-control"><label for="rk-screed-required">Minimum nad rurą z karty produktu <output id="rk-screed-required-out">45 mm</output></label><input id="rk-screed-required" type="range" min="15" max="70" step="1" value="45"></div>
                <div class="rk-screed-control"><label for="rk-screed-area">Analizowana powierzchnia <output id="rk-screed-area-out">100 m²</output></label><input id="rk-screed-area" type="range" min="5" max="300" step="1" value="100"></div>
                <div class="rk-screed-control"><label for="rk-screed-density">Gęstość wyrobu <output id="rk-screed-density-out">2100 kg/m³</output></label><input id="rk-screed-density" type="range" min="1600" max="2400" step="10" value="2100"></div>
                <div class="rk-screed-control"><label for="rk-screed-cp">Ciepło właściwe <output id="rk-screed-cp-out">0,88 kJ/kgK</output></label><input id="rk-screed-cp" type="range" min="0.70" max="1.10" step="0.01" value="0.88"></div>
                <div class="rk-screed-control"><label for="rk-screed-lambda">Przewodność λ <output id="rk-screed-lambda-out">1,40 W/mK</output></label><input id="rk-screed-lambda" type="range" min="0.60" max="2.20" step="0.05" value="1.40"></div>
              </div>
              <div class="rk-screed-status is-ok" id="rk-screed-lab-warning" role="status" aria-live="polite">Geometrycznie pozostaje 4 mm zapasu ponad wpisane minimum produktu.</div>
            </div>

            <div class="rk-screed-visual">
              <div class="rk-screed-results">
                <div class="rk-screed-result is-accent"><span>Rzeczywista warstwa nad rurą</span><strong id="rk-screed-cover-result">49 mm</strong></div>
                <div class="rk-screed-result"><span>Wymagana grubość całkowita</span><strong id="rk-screed-required-total-result">61 mm</strong></div>
                <div class="rk-screed-result"><span>Różnica względem wpisanego minimum</span><strong id="rk-screed-margin-result">+4 mm</strong></div>
                <div class="rk-screed-result"><span>Objętość brutto</span><strong id="rk-screed-volume-result">6,50 m³</strong></div>
                <div class="rk-screed-result"><span>Masa na 1 m²</span><strong id="rk-screed-load-result">137 kg/m²</strong></div>
                <div class="rk-screed-result"><span>Masa całkowita</span><strong id="rk-screed-mass-result">13,7 t</strong></div>
                <div class="rk-screed-result"><span>Pojemność na 1 K</span><strong id="rk-screed-capacity-result">3,3 kWh/K</strong></div>
                <div class="rk-screed-result"><span>Opór 1D samej warstwy</span><strong id="rk-screed-resistance-result">0,046 m²K/W</strong></div>
              </div>

              <div class="rk-screed-cross-wrap">
                <div class="rk-screed-cross-card">
                  <span class="rk-screed-cross-title">Dynamiczny przekrój — geometria poglądowa</span>
                  <svg class="rk-screed-cross" id="rk-screed-cross" viewBox="0 0 360 250" role="img" aria-labelledby="rk-screed-cross-svg-title rk-screed-cross-svg-desc">
                    <title id="rk-screed-cross-svg-title">Przekrój jastrychu z rurą ogrzewania podłogowego</title>
                    <desc id="rk-screed-cross-svg-desc">Schemat pokazuje grubość całkowitą, położenie rury i warstwę nad jej górną krawędzią.</desc>
                    <defs>
                      <marker id="rk-screed-arrow-start" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto"><path d="M8,0 L0,4 L8,8 Z" fill="#078fbe"></path></marker>
                      <marker id="rk-screed-arrow-end" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 Z" fill="#078fbe"></path></marker>
                    </defs>
                    <rect class="rk-screed-layer-floor" x="28" y="22" width="304" height="20" rx="4"></rect>
                    <rect class="rk-screed-layer-screed" id="rk-screed-svg-screed" x="28" y="42" width="304" height="148"></rect>
                    <rect class="rk-screed-layer-insulation" x="28" y="190" width="304" height="38"></rect>
                    <circle class="rk-screed-pipe" id="rk-screed-svg-pipe" cx="170" cy="161" r="18"></circle>
                    <line class="rk-screed-dimension" id="rk-screed-svg-cover-line" x1="277" y1="47" x2="277" y2="140"></line>
                    <text id="rk-screed-svg-cover-text" x="286" y="98">49 mm nad rurą</text>
                    <line class="rk-screed-dimension" id="rk-screed-svg-total-line" x1="56" y1="45" x2="56" y2="187"></line>
                    <text id="rk-screed-svg-total-text" x="65" y="118">65 mm łącznie</text>
                    <text x="38" y="36">okładzina</text><text x="38" y="73">jastrych</text><text x="38" y="215">warstwa odniesienia</text>
                  </svg>
                  <div class="rk-screed-legend"><span><i></i>jastrych</span><span class="pipe"><i></i>rura</span><span class="insulation"><i></i>warstwa odniesienia</span></div>
                </div>

                <div class="rk-screed-energy-card">
                  <span class="rk-screed-energy-title">Masa i pojemność cieplna przy zmianie grubości</span>
                  <svg class="rk-screed-energy-chart" id="rk-screed-energy-chart" viewBox="0 0 420 250" role="img" aria-labelledby="rk-screed-chart-title rk-screed-chart-desc">
                    <title id="rk-screed-chart-title">Wpływ grubości na masę jastrychu</title>
                    <desc id="rk-screed-chart-desc">Wykres pokazuje masę na metr kwadratowy dla warstw 50, 60, 70 i 80 milimetrów.</desc>
                    <defs><linearGradient id="rk-screed-bar-gradient" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#078fbe"></stop><stop offset="1" stop-color="#28c9da"></stop></linearGradient></defs>
                    <line class="rk-screed-axis-line" x1="46" y1="205" x2="396" y2="205"></line>
                    <line class="rk-screed-axis-line" x1="46" y1="30" x2="46" y2="205"></line>
                    <g id="rk-screed-bars"></g>
                    <text x="8" y="23">kg/m²</text>
                  </svg>
                </div>
              </div>
            </div>
          </div>
          <div class="rk-screed-disclaimer"><strong>Co oznacza wynik:</strong> komunikat „geometrycznie spełnia” odnosi się tylko do minimalnej warstwy nad rurą wpisanej przez użytkownika. Narzędzie nie zna klasy jastrychu, obciążeń, ściśliwości izolacji, lokalnych przewężeń, tolerancji wykonawczych, układu szczelin ani nośności stropu. Objętość jest wartością brutto bez potrącania rur i bez rezerwy technologicznej.</div>
        </div>

        <div class="rk-screed-formula">
          <p><strong>Wzory użyte w analizatorze:</strong></p>
          <code>c = h − d − e &nbsp; • &nbsp; hₘᵢₙ = d + e + cₘᵢₙ &nbsp; • &nbsp; V = A × h &nbsp; • &nbsp; m = ρ × V &nbsp; • &nbsp; C = m × cₚ / 3600 &nbsp; • &nbsp; R = h / λ</code>
          <p>Parametry ρ, cₚ i λ należy przepisać z dokumentacji wybranego wyrobu. Opór R jest prostym porównaniem jednowymiarowym samej warstwy, a nie pełnym obliczeniem wydajności podłogi według ISO 11855.</p>
        </div>

        <aside class="rk-screed-cta" aria-label="Projekt przed wykonaniem jastrychu">
          <span class="rk-screed-cta-kicker">Wynik analizatora kończy geometrię, ale nie projekt</span>
          <h3>Przed wylaniem trzeba skoordynować całą podłogę</h3>
          <p>Analizator nie zna obciążeń, ściśliwości izolacji, podziału na pola, temperatury powierzchni, oporu okładziny ani rzeczywistego przebiegu rur. Jeżeli wysokości są na granicy albo dokumentacja instalacji nie określa parametrów dla każdego pomieszczenia, korektę trzeba wykonać przed przyjazdem ekipy jastrychowej.</p>
          <a class="rk-screed-cta-link rk-screed-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt przed wykonaniem jastrychu</a>
          <small>Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </aside>
      </section>

      <section class="rk-screed-section" id="rk-screed-material" aria-labelledby="rk-screed-h2-5">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">05</div>
          <div><h2 id="rk-screed-h2-5">Wylewka cementowa czy anhydrytowa na ogrzewanie podłogowe?</h2><p>Nie ma zwycięzcy niezależnego od warunków budowy i pomieszczenia.</p></div>
        </div>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Kryterium</th><th>Jastrych cementowy CT</th><th>Jastrych na bazie siarczanu wapnia CA</th><th>Decyzja projektowa</th></tr></thead>
            <tbody>
              <tr><td data-label="Kryterium"><strong>Spoiwo</strong></td><td data-label="CT">Cement; dostępne są mieszanki półsuche, płynne i modyfikowane.</td><td data-label="CA">Siarczan wapnia; często występuje w konsystencji płynnej.</td><td data-label="Decyzja">Nie porównuj wyłącznie nazw. Sprawdź deklarację konkretnego wyrobu.</td></tr>
              <tr><td data-label="Kryterium"><strong>Skurcz i pola</strong></td><td data-label="CT">Zwykle większa wrażliwość na skurcz wysychania; ważne są pielęgnacja i układ szczelin.</td><td data-label="CA">Zwykle mniejszy skurcz i możliwość większych pól, ale granice nadal określa system i geometria.</td><td data-label="Decyzja">Plan szczelin powinien istnieć przed układaniem rur.</td></tr>
              <tr><td data-label="Kryterium"><strong>Otoczenie rur</strong></td><td data-label="CT">Zależy od konsystencji i zagęszczenia. Półsuchy materiał wymaga starannego wbudowania wokół przewodów.</td><td data-label="CA">Płynna konsystencja zwykle dobrze otacza przewody i ogranicza pustki.</td><td data-label="Decyzja">Sposób wykonania musi odpowiadać konsystencji, a nie przyzwyczajeniu ekipy.</td></tr>
              <tr><td data-label="Kryterium"><strong>Wilgoć</strong></td><td data-label="CT">Dobrze sprawdza się także w pomieszczeniach mokrych, przy poprawnej hydroizolacji i okładzinie.</td><td data-label="CA">Wymaga ścisłego przestrzegania zakresu zastosowania i ochrony przed trwałym zawilgoceniem.</td><td data-label="Decyzja">Łazienka nie zwalnia z hydroizolacji podpłytkowej niezależnie od spoiwa.</td></tr>
              <tr><td data-label="Kryterium"><strong>Przewodność cieplna λ</strong></td><td data-label="CT">Zależy od receptury, gęstości, kruszywa i wilgotności.</td><td data-label="CA">Również zależy od konkretnego produktu; nie zawsze automatycznie przewyższa każdy CT.</td><td data-label="Decyzja">Do obliczeń wpisuj wartość deklarowaną, a nie zakres znaleziony w reklamie.</td></tr>
              <tr><td data-label="Kryterium"><strong>Wygrzewanie</strong></td><td data-label="CT">Dla standardowego cementowego jastrychu PN-EN 1264-4 przewiduje rozpoczęcie nagrzewania po okresie wiązania, zwykle nie wcześniej niż po 21 dniach.</td><td data-label="CA">Dla standardowego CA norma wskazuje zwykle co najmniej 7 dni.</td><td data-label="Decyzja">Mieszanki specjalne mogą mieć inny harmonogram i zawsze wymagają instrukcji wyrobu.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-screed-note"><p><strong>„Anhydryt jest zawsze najlepszy” to zbyt mocne zdanie.</strong> Może być bardzo dobrym rozwiązaniem w suchym wnętrzu i przy dobrze zorganizowanej budowie. Cementowy CT może być lepszy przy innym harmonogramie, wilgotności, obciążeniu albo dostępności wykonawców. Szersze porównanie materiałów, wykonania i dojrzewania znajdziesz w osobnym <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodniku po wylewce na ogrzewanie podłogowe</a>; tutaj pozostajemy przy grubości i geometrii.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-klasy" aria-labelledby="rk-screed-h2-6">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">06</div>
          <div><h2 id="rk-screed-h2-6">Co oznacza CT-C20-F4, CA-C25-F5 i przewodność cieplna λ?</h2><p>Oznaczenie klasy jest punktem wyjścia, a nie kompletnym projektem warstwy.</p></div>
        </div>

        <p>Norma PN-EN 13813 klasyfikuje materiały na podkłady podłogowe. W oznaczeniu <strong>CT-C20-F4</strong> litery CT informują o spoiwie cementowym, C20 oznacza klasę wytrzymałości na ściskanie, a F4 klasę wytrzymałości na zginanie. W zapisie <strong>CA-C25-F5</strong> CA wskazuje jastrych na bazie siarczanu wapnia. Liczby nie mówią jednak, jaka grubość jest bezpieczna na konkretnej izolacji ani jak mają przebiegać szczeliny.</p>

        <div class="rk-screed-card-grid three">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">C</div><h4>Ściskanie</h4><p>Wartość C opisuje wytrzymałość próbki na ściskanie w warunkach badania. Nie zastępuje analizy płyty pływającej.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">F</div><h4>Zginanie</h4><p>Klasa F jest szczególnie ważna, gdy podłoże jest podatne, występują obciążenia punktowe lub ogranicza się grubość.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">λ</div><h4>Przewodzenie ciepła</h4><p>λ [W/(m·K)] opisuje przepływ ciepła przez materiał. Do modelu podłogi należy przyjąć wartość wiarygodnie zadeklarowaną dla produktu.</p></div>
        </div>

        <div class="rk-screed-formula">
          <p><strong>Opór cieplny samego jastrychu:</strong></p>
          <code>R<sub>jastrychu</sub> = h / λ</code>
          <p>Dla 61 mm i λ = 1,40 W/(m·K) opór wynosi około 0,044 m²K/W. Nie jest to opór całej podłogi: trzeba dodać klej, okładzinę i pozostałe warstwy znajdujące się nad rurami.</p>
        </div>

        <p>Wysoka λ może poprawić przekazywanie ciepła, ale nie „usuwa” bezwładności wynikającej z masy. Dwa jastrychy o podobnej przewodności mogą inaczej reagować, jeśli różnią się grubością i gęstością. Moc podłogi należy obliczać razem z temperaturą wody, rozstawem rur i oporem okładziny. Właśnie dlatego <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalny projekt ogrzewania podłogowego</a> powinien znać docelową konstrukcję posadzki.</p>
      </section>

      <section class="rk-screed-section" id="rk-screed-zbrojenie" aria-labelledby="rk-screed-h2-7">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">07</div>
          <div><h2 id="rk-screed-h2-7">Czy wylewkę cementową na podłogówkę trzeba zbroić?</h2><p>Odpowiedź „zawsze siatka” jest tak samo błędna jak „włókna zawsze wystarczą”.</p></div>
        </div>

        <p>Zbrojenie nie powstrzymuje skurczu chemicznego ani termicznego. Może ograniczać szerokość rys, zwiększać zdolność do przenoszenia naprężeń i pomagać utrzymać spójność pola po zarysowaniu. Skuteczność zależy od materiału, ilości, zakotwienia i przede wszystkim położenia. Siatka leżąca na izolacji pod rurami nie spełnia tej samej funkcji co zbrojenie umieszczone w zaprojektowanej strefie jastrychu.</p>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Rozwiązanie</th><th>Co może robić?</th><th>Czego nie załatwia?</th><th>Co sprawdzić?</th></tr></thead>
            <tbody>
              <tr><td data-label="Rozwiązanie"><strong>Siatka stalowa</strong></td><td data-label="Funkcja">Może kontrolować rozwój rys i współpracować z płytą po zarysowaniu.</td><td data-label="Ograniczenie">Położona przypadkowo albo dociśnięta do izolacji nie działa zgodnie z założeniem.</td><td data-label="Sprawdź">Średnicę, oczko, zakłady, dystanse, otulinę i kolizje z rurami.</td></tr>
              <tr><td data-label="Rozwiązanie"><strong>Włókna polimerowe</strong></td><td data-label="Funkcja">Mikrowłókna mogą ograniczać rysy skurczu plastycznego; inne włókna mogą mieć szerszą funkcję zadeklarowaną przez system.</td><td data-label="Ograniczenie">Nie każdy dodatek z worka zastępuje konstrukcyjną siatkę albo właściwy podział na pola.</td><td data-label="Sprawdź">Rodzaj włókna, dawkę i deklarowaną funkcję w recepturze jastrychu.</td></tr>
              <tr><td data-label="Rozwiązanie"><strong>Włókna stalowe lub makro</strong></td><td data-label="Funkcja">W zaprojektowanym systemie mogą zwiększyć ciągliwość i nośność po zarysowaniu.</td><td data-label="Ograniczenie">Nie wolno dobierać ich wyłącznie na podstawie podobieństwa nazwy.</td><td data-label="Sprawdź">Obliczenia, dokumentację wyrobu, dawkowanie i zgodność z posadzką.</td></tr>
              <tr><td data-label="Rozwiązanie"><strong>Brak dodatkowego zbrojenia</strong></td><td data-label="Funkcja">Możliwy w systemie, który dopuszcza taki układ przy właściwej klasie, grubości i geometrii.</td><td data-label="Ograniczenie">Nie zwalnia z pielęgnacji, szczelin i sprawdzenia obciążeń.</td><td data-label="Sprawdź">Jednoznaczny zapis w dokumentacji systemowej lub projekcie.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-screed-warning"><p><strong>Nie dodawaj przypadkowo wody do mieszanki, aby „lepiej się rozlała”.</strong> Zmiana wskaźnika woda–spoiwo może zwiększyć skurcz, porowatość i osłabić parametry. Plastyfikator, włókna i woda muszą należeć do kontrolowanej receptury, a nie do improwizacji na budowie.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-dylatacje" aria-labelledby="rk-screed-h2-8">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">08</div>
          <div><h2 id="rk-screed-h2-8">Dylatacje w wylewce na ogrzewaniu podłogowym</h2><p>Szczeliny należy skoordynować z geometrią pól i przebiegiem obwodów przed montażem rur.</p></div>
        </div>

        <div class="rk-screed-card-grid four">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">O</div><h4>Obwodowa</h4><p>Taśma oddziela ogrzewaną płytę od ścian, słupów, progów i innych elementów pionowych.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">K</div><h4>Konstrukcyjna</h4><p>Szczelina istniejąca w konstrukcji budynku powinna być przeniesiona przez kolejne warstwy zgodnie z projektem.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">P</div><h4>Podziałowa</h4><p>Dzieli jastrych na pola o geometrii i wielkości dopuszczonej przez materiał oraz warunki pracy.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">R</div><h4>Robocza lub kontrolna</h4><p>Wynika z etapowania i technologii. Jej funkcji nie należy mylić z pełną szczeliną ruchową.</p></div>
        </div>

        <p>Popularna zasada „dylatacja powyżej 40 m² albo przy boku dłuższym niż 8 m” nie jest przepisem działającym dla każdego jastrychu. Ważne są proporcje pola, przewężenia, kształt litery L, przejścia drzwiowe, różne temperatury, sąsiednie strefy oraz dokumentacja produktu. Długi korytarz może wymagać innego podziału niż zwarty salon o podobnej powierzchni.</p>

        <div class="rk-screed-truth"><p><strong>Pętle nie powinny przechodzić przez szczeliny ruchowe.</strong> Jeżeli przez zaprojektowaną szczelinę muszą przejść przewody przyłączeniowe, prowadzi się je w odpowiednio długich tulejach ochronnych i ogranicza liczbę takich przejść. Rozwiązanie trzeba pokazać na rzucie. Szersze omówienie zawiera poradnik o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach podłogówki</a>.</p></div>

        <h3>Co dzieje się z okładziną nad szczeliną?</h3>
        <p>Szczelinę ruchową jastrychu co do zasady odwzorowuje się w okładzinie. Przykrycie jej sztywną płytką i klejem może przenieść naprężenie na gotową podłogę. Profile, elastyczne uszczelnienia i układ fug dobiera się wspólnie z wykonawcą posadzki. Nie każda nacięta rysa w jastrychu jest natomiast szczeliną konstrukcyjną; naprawa zależy od przyczyny i aktywności pęknięcia.</p>
      </section>

      <section class="rk-screed-section" id="rk-screed-przed" aria-labelledby="rk-screed-h2-9">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">09</div>
          <div><h2 id="rk-screed-h2-9">Co sprawdzić przed wylaniem jastrychu?</h2><p>Po zakryciu rur poprawka zwykle oznacza kucie albo trwały kompromis.</p></div>
        </div>

        <div class="rk-screed-check-grid">
          <div class="rk-screed-check"><div class="rk-screed-check-no">01</div><h4>Równość i nośność podłoża</h4><p>Izolacja musi leżeć stabilnie, bez pustek i klinowania. Instalacje pod nią powinny być wyrównane warstwą, a nie przykryte przypadkowo łamiącymi się płytami.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">02</div><h4>Izolacja brzegowa</h4><p>Taśma ma tworzyć ciągłe oddzielenie także przy słupach, ościeżach, podejściach i innych elementach pionowych.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">03</div><h4>Mocowanie i przebieg rur</h4><p>Przewody nie mogą wypływać ani zmieniać rozstawu. Trasy powinny odpowiadać projektowi i pozostawać z dala od przyszłych mocowań.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">04</div><h4>Szczeliny i tuleje</h4><p>Podział pól oraz przejścia przyłączeń przez dylatacje muszą być przygotowane przed rozpoczęciem podawania mieszanki.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">05</div><h4>Próba szczelności</h4><p>Obwody trzeba napełnić, odpowietrzyć, sprawdzić i udokumentować zgodnie z PN-EN 1264-4 oraz instrukcją systemu.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">06</div><h4>Repery wysokościowe</h4><p>Poziomy powinny uwzględniać wszystkie pomieszczenia, progi, schody, odpływy i różne grubości docelowych okładzin.</p></div>
        </div>

        <h3>Jak rozumieć próbę ciśnieniową?</h3>
        <p>W typowym układzie wodnym próbę wykonuje się wodą przed przykryciem rur, przy ciśnieniu równym dwukrotności ciśnienia roboczego, nie mniejszym niż 6 bar, jeżeli dokumentacja systemu nie określa inaczej. Wynik i warunki zapisuje się w protokole. Podczas wykonywania jastrychu rury pozostawia się pod ciśnieniem, aby ograniczyć ryzyko zgniecenia i umożliwić zauważenie uszkodzenia, lecz nie oznacza to automatycznie utrzymywania pełnego ciśnienia próbnego przez cały okres dojrzewania. Szczegółowy przebieg opisuje materiał o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>.</p>

        <div class="rk-screed-warning"><p><strong>Ryzyko zamarznięcia:</strong> jeśli budynek zimą nie jest ogrzewany, próba wodna wymaga zabezpieczenia instalacji. Środek przeciwzamrożeniowy, płukanie i późniejsze napełnienie muszą być zgodne z materiałami instalacji oraz źródłem ciepła. Nie wolno zostawić wody w przewodach i liczyć, że jastrych je ochroni.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-wykonanie" aria-labelledby="rk-screed-h2-10">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">10</div>
          <div><h2 id="rk-screed-h2-10">Wykonanie i pielęgnacja wylewki na podłogówce</h2><p>Konsystencja mieszanki narzuca technologię wbudowania.</p></div>
        </div>

        <div class="rk-screed-phase-grid">
          <div class="rk-screed-phase" data-step="01"><b>Przyjęcie mieszanki</b><p>Sprawdza się zamówiony typ, klasę, czas od przygotowania, warunki otoczenia i zgodność dodatków. Niedozwolona jest korekta wodą „na oko”.</p></div>
          <div class="rk-screed-phase" data-step="02"><b>Wbudowanie</b><p>Półsuchy CT rozkłada się i zagęszcza inaczej niż płynny CT albo CA. Wałek odpowietrzający nie jest uniwersalnym narzędziem dla każdego jastrychu.</p></div>
          <div class="rk-screed-phase" data-step="03"><b>Kontrola wysokości</b><p>Grubość sprawdza się w wielu punktach. Lokalna górka nad rurą i niedobór w sąsiedztwie mogą zmienić pracę pola oraz poziomy okładzin.</p></div>
          <div class="rk-screed-phase" data-step="04"><b>Ochrona świeżej powierzchni</b><p>Przeciąg, słońce i szybkie odparowanie sprzyjają naprężeniom. Warunki pielęgnacji zależą od spoiwa i karty produktu.</p></div>
          <div class="rk-screed-phase" data-step="05"><b>Ruch i obciążanie</b><p>Termin wejścia, składowania materiałów i wykonywania ścianek nie wynika wyłącznie z tego, że powierzchnia jest twarda w dotyku.</p></div>
          <div class="rk-screed-phase" data-step="06"><b>Dokumentacja</b><p>Zachowuje się deklarację, numer partii, datę wykonania, temperaturę, protokół próby, grubości i plan pól. To materiał do odbioru i ewentualnej diagnostyki.</p></div>
        </div>

        <p>W przypadku cementowego jastrychu półsuchego kluczowe jest równomierne zagęszczenie wokół rury. Pustka powietrzna pogarsza przekazywanie ciepła i tworzy lokalnie słabszą strefę. Płynna mieszanka ma inne ryzyka: nieszczelna warstwa rozdzielająca może dopuścić do ucieczki materiału, a wypływ rur zmieni ich położenie. Prace powinny być skoordynowane z instalatorem, wykonawcą jastrychu i osobą odpowiadającą za późniejszą posadzkę.</p>

        <div class="rk-screed-note"><p><strong>28 dni nie oznacza automatycznie „suche”.</strong> Jest to charakterystyczny punkt odniesienia dla dojrzewania wielu materiałów cementowych, ale czas osiągnięcia wilgotności wymaganej pod posadzkę zależy od grubości, receptury, temperatury, wilgotności powietrza i wentylacji.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-wygrzewanie" aria-labelledby="rk-screed-h2-11">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">11</div>
          <div><h2 id="rk-screed-h2-11">Wygrzewanie wylewki na ogrzewaniu podłogowym – prawidłowa kolejność</h2><p>Należy rozdzielić cztery procesy, które często wrzuca się do jednego worka.</p></div>
        </div>

        <div class="rk-screed-protocol">
          <div class="rk-screed-protocol-step"><span>ETAP 1</span><h3>Wiązanie i pielęgnacja</h3><p>Świeży materiał osiąga wytrzymałość w warunkach określonych przez producenta. Ogrzewanie nie służy do przyspieszania pierwszej fazy.</p></div>
          <div class="rk-screed-protocol-step"><span>ETAP 2</span><h3>Nagrzewanie funkcjonalne</h3><p>Sprawdza zachowanie jastrychu grzejnego i instalacji w cyklu temperatur zgodnym z normą oraz instrukcją wyrobu.</p></div>
          <div class="rk-screed-protocol-step"><span>ETAP 3</span><h3>Suszenie do okładziny</h3><p>Wymaga wentylacji i kontroli warunków. Sam ukończony protokół funkcjonalny nie dowodzi gotowości pod parkiet albo płytki.</p></div>
          <div class="rk-screed-protocol-step"><span>ETAP 4</span><h3>Pomiar CM i odbiór</h3><p>Wilgotność sprawdza się w oznaczonych miejscach bez rur i porównuje z wymaganiem systemu posadzkowego.</p></div>
        </div>

        <h3>Modelowy protokół według PN-EN 1264-4</h3>
        <p>Dla typowego jastrychu cementowego rozpoczęcie nagrzewania funkcjonalnego następuje po co najmniej 21 dniach, a dla jastrychu na bazie siarczanu wapnia po co najmniej 7 dniach, chyba że producent wyrobu jednoznacznie dopuszcza inny termin. Procedurę zaczyna się temperaturą zasilania około 25°C utrzymywaną przez 3 dni, następnie stosuje maksymalną projektową temperaturę zasilania przez co najmniej 4 dni. Nie jest to nakaz podnoszenia temperatury zawsze o 5°C na dobę ani pozwolenie na ustawienie arbitralnych 45°C. Maksimum wynika z projektu instalacji i ograniczeń materiału.</p>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Pytanie kontrolne</th><th>Prawidłowa odpowiedź</th><th>Błędny skrót</th></tr></thead>
            <tbody>
              <tr><td data-label="Pytanie"><strong>Kiedy zacząć?</strong></td><td data-label="Prawidłowo">Po minimalnym czasie wiązania właściwym dla materiału i po potwierdzeniu wykonawcy.</td><td data-label="Błędnie">„Gdy można już chodzić”.</td></tr>
              <tr><td data-label="Pytanie"><strong>Do jakiej temperatury?</strong></td><td data-label="Prawidłowo">Do maksymalnej projektowej temperatury zasilania, w granicach wyrobu i instalacji.</td><td data-label="Błędnie">„Każdą wylewkę grzejemy do 45–55°C”.</td></tr>
              <tr><td data-label="Pytanie"><strong>Czy po protokole jest sucho?</strong></td><td data-label="Prawidłowo">Nie wiadomo bez pomiaru wilgotności i kryterium docelowej posadzki.</td><td data-label="Błędnie">„Wygrzane znaczy gotowe do klejenia”.</td></tr>
              <tr><td data-label="Pytanie"><strong>Ile schnie?</strong></td><td data-label="Prawidłowo">Zależy od wyrobu, grubości i klimatu; kontroluje się pomiarem.</td><td data-label="Błędnie">„Zawsze 1 mm na dobę”.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Przed uruchomieniem należy otworzyć wszystkie projektowane obwody, zapewnić przepływy i kontrolować temperaturę zasilania. Samo nagrzanie rozdzielacza bez przepływu przez część pętli nie jest pełnym protokołem. Warto zapisać datę, temperatury i czas każdego etapu, a po zakończeniu pozostawić dokument wykonawcy posadzki.</p>
      </section>

      <section class="rk-screed-section" id="rk-screed-posadzka" aria-labelledby="rk-screed-h2-12">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">12</div>
          <div><h2 id="rk-screed-h2-12">Wilgotność wylewki i wybór posadzki</h2><p>Najdroższe błędy często wychodzą dopiero po ułożeniu drewna, paneli albo płytek.</p></div>
        </div>

        <p>Nie istnieje jeden próg wilgotności właściwy dla każdego jastrychu i każdej okładziny. Kryterium zależy między innymi od spoiwa, ogrzewania, metody pomiaru, kleju, hydroizolacji i producenta posadzki. Wynik CM powinien być zapisany wraz z miejscem pobrania próbki. W projekcie instalacji warto wcześniej oznaczyć bezpieczne punkty pomiarowe, aby nie przewiercić rury.</p>

        <div class="rk-screed-card-grid three">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">CM</div><h4>Pomiar, nie kalendarz</h4><p>Data wykonania nie potwierdza gotowości. Należy zmierzyć wilgotność metodą wymaganą przez system posadzkowy.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">R</div><h4>Opór okładziny</h4><p>Gruba deska, podkład i warstwa kleju zwiększają opór nad rurą oraz wymaganą temperaturę wody.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">J</div><h4>Szczeliny w wykończeniu</h4><p>Dylatacje ruchowe jastrychu trzeba skoordynować z fugami, profilami i kierunkiem ułożenia okładziny.</p></div>
        </div>

        <p>Podłogi drewniane i laminowane wymagają sprawdzenia dopuszczenia na ogrzewanie podłogowe, maksymalnej temperatury powierzchni i łącznego oporu cieplnego. Porównanie systemów znajduje się w analizie <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane a panele laminowane na podłogówce</a>. Przy płytkach liczy się również zgodność kleju i zaprawy do spoinowania z podłożem ogrzewanym oraz przeniesienie zaprojektowanych szczelin.</p>

        <div class="rk-screed-note"><p><strong>Nie wierć „na pamięć”.</strong> Dokumentacja fotograficzna i rzut rur nie dają stuprocentowej pewności po zmianie skali lub punktów odniesienia. Przed wykonaniem mocowania w podłodze instalację należy zlokalizować odpowiednią metodą.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-bledy" aria-labelledby="rk-screed-h2-13">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">13</div>
          <div><h2 id="rk-screed-h2-13">Pęknięcia, odspojenia i nierówne grzanie – najczęstsze przyczyny</h2><p>Rysa jest objawem; naprawę dobiera się dopiero po rozpoznaniu mechanizmu.</p></div>
        </div>

        <div class="rk-screed-error-grid">
          <div class="rk-screed-error"><div class="rk-screed-error-no">01</div><h4>Za dużo wody</h4><p>Ułatwia rozprowadzanie, lecz może zwiększyć skurcz, segregację, porowatość i spadek wytrzymałości.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">02</div><h4>Przypadkowa grubość</h4><p>Różnice poziomu tworzą miejsca o innej sztywności, masie i czasie reakcji cieplnej.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">03</div><h4>Brak ciągłej taśmy</h4><p>Kontakt ze ścianą lub słupem blokuje swobodną pracę pola i tworzy mostek akustyczny.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">04</div><h4>Zły podział pól</h4><p>Przewężenia, naroża wewnętrzne i długie kształty bez zaplanowanej szczeliny sprzyjają rysom.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">05</div><h4>Pusta przestrzeń przy rurze</h4><p>Niedostateczne otulenie pogarsza kontakt cieplny i może osłabić miejscowo jastrych.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">06</div><h4>Zbyt szybkie wysychanie</h4><p>Przeciąg, słońce lub przedwczesne grzanie tworzą gradient wilgotności i naprężenia.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">07</div><h4>Siatka na izolacji</h4><p>Zbrojenie bez właściwego położenia nie realizuje funkcji przyjętej w projekcie.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">08</div><h4>Okładzina bez pomiaru</h4><p>Zamknięcie wilgoci może powodować odspojenie, przebarwienia, deformacje lub rozwój pleśni w warstwach.</p></div>
        </div>

        <h3>Czy każdą rysę trzeba rozkuwać?</h3>
        <p>Nie. Najpierw ocenia się szerokość, głębokość, aktywność, przebieg względem szczelin i rur, różnicę wysokości krawędzi oraz nośność podłoża. Rysa skurczowa stabilna wymaga innego postępowania niż pracująca szczelina nad przewężeniem albo pęknięcie wynikające z osiadania izolacji. Zanim zastosuje się zszywanie, żywicę, matę odprężającą albo lokalną wymianę, należy znaleźć przyczynę.</p>

        <div class="rk-screed-truth"><p><strong>Nierówna temperatura powierzchni nie musi oznaczać złej wylewki.</strong> Przyczyną może być brak przepływu, zapowietrzenie, inny rozstaw, grubsza okładzina, strefa bez rury albo błąd nastaw. Diagnostykę zaczyna się od projektu, przepływów i obrazu termicznego, nie od kucia podłogi.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-kroki" aria-labelledby="rk-screed-h2-14">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">14</div>
          <div><h2 id="rk-screed-h2-14">Jak wykonać wylewkę na ogrzewanie podłogowe – kolejność prac</h2><p>Dziesięć etapów od projektu do odbioru posadzki.</p></div>
        </div>

        <ol class="rk-screed-howto">
          <li class="rk-screed-howto-step" id="rk-screed-step-1"><span>01</span><div><h3>Ustal konstrukcję podłogi</h3><p>Wybierz jastrych, klasę, grubość, izolację, okładzinę, obciążenia i wysokości. Sprawdź nośność stropu oraz ściśliwość warstw.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-2"><span>02</span><div><h3>Zaprojektuj ogrzewanie</h3><p>Oblicz obciążenie pomieszczeń, rozstaw, temperaturę zasilania, długości pętli, przepływy i przebieg bez kolizji ze szczelinami.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-3"><span>03</span><div><h3>Przygotuj równe podłoże i izolację</h3><p>Usuń luźne elementy, wyrównaj instalacje, ułóż warstwy bez pustek i wykonaj ciągłą izolację brzegową.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-4"><span>04</span><div><h3>Ułóż i zamocuj rury</h3><p>Zachowaj projektowany rozstaw, promienie gięcia i strefy bez mocowań. Oznacz przejścia, dylatacje i punkty pomiarowe.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-5"><span>05</span><div><h3>Wykonaj próbę szczelności</h3><p>Napełnij, odpowietrz i sprawdź obwody zgodnie z normą oraz systemem. Sporządź protokół i pozostaw instalację pod właściwym ciśnieniem podczas prac.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-6"><span>06</span><div><h3>Zbuduj podział na pola</h3><p>Wykonaj szczeliny, profile i tuleje ochronne zgodnie z planem. Skoordynuj je z progami oraz przyszłą okładziną.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-7"><span>07</span><div><h3>Wbuduj mieszankę</h3><p>Kontroluj recepturę, czas, konsystencję, zagęszczenie i poziomy. Nie dolewaj wody bez zgody technologicznej.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-8"><span>08</span><div><h3>Pielęgnuj i chroń</h3><p>Ogranicz przeciąg, słońce, mróz i przedwczesne obciążenie. Realizuj wymagania właściwe dla spoiwa i produktu.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-9"><span>09</span><div><h3>Przeprowadź nagrzewanie funkcjonalne</h3><p>Po wymaganym czasie uruchom wszystkie obwody, zapisz temperatury i zachowaj maksymalną temperaturę projektową przez wymagany okres.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-10"><span>10</span><div><h3>Zmierz wilgotność i odbierz podłoże</h3><p>Wykonaj pomiar w bezpiecznych punktach, oceń rysy, równość i wytrzymałość powierzchni, a następnie przekaż protokoły wykonawcy posadzki.</p></div></li>
        </ol>
      </section>

      <section class="rk-screed-section" id="rk-screed-faq" aria-labelledby="rk-screed-h2-15">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">15</div>
          <div><h2 id="rk-screed-h2-15">FAQ – wylewka betonowa na ogrzewanie podłogowe</h2><p>Odpowiedzi na najczęstsze pytania inwestorów i wykonawców.</p></div>
        </div>

        <div class="rk-screed-faq-list">
          <details class="rk-screed-faq"><summary>Ile centymetrów wylewki powinno być nad rurą ogrzewania podłogowego?</summary><div class="rk-screed-faq-answer"><p>Nie ma jednej wartości właściwej dla wszystkich produktów i podłóg. Warstwę nad rurą ustala się na podstawie typu i klasy jastrychu, obciążenia, podatności izolacji, średnicy przewodu, geometrii pól i dokumentacji systemu. Popularne 4,5 cm jest przykładem spotykanym w części rozwiązań, a nie uniwersalną normą.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy całkowita grubość 6 cm wystarczy przy rurze 16 mm?</summary><div class="rk-screed-faq-answer"><p>Przy 60 mm całkowitej grubości nad rurą 16 mm pozostaje 44 mm. Geometrycznie można to policzyć, ale bezpieczeństwa nie da się potwierdzić bez klasy materiału, obciążenia, rodzaju izolacji, układu szczelin i instrukcji konkretnego jastrychu.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy jastrych cementowy musi mieć siatkę?</summary><div class="rk-screed-faq-answer"><p>Nie zawsze. Dopuszczalne rozwiązanie powinno wynikać z projektu lub dokumentacji systemu. Siatka, włókna i brak dodatkowego zbrojenia mają różne warunki stosowania. Siatka położona bez dystansów na izolacji nie zastępuje prawidłowo zaprojektowanego zbrojenia.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy włókna zastępują siatkę w wylewce?</summary><div class="rk-screed-faq-answer"><p>Tylko wtedy, gdy rodzaj i dawka włókien mają taką funkcję w dokumentacji systemu. Mikrowłókna ograniczające skurcz plastyczny nie są automatycznie zamiennikiem siatki konstrukcyjnej. Nie wolno oceniać wszystkich włókien jako jednego materiału.</p></div></details>
          <details class="rk-screed-faq"><summary>Co jest lepsze na podłogówkę: cement czy anhydryt?</summary><div class="rk-screed-faq-answer"><p>Oba rozwiązania mogą działać bardzo dobrze. CT jest odporny na różne warunki wilgotnościowe i dostępny w wielu odmianach. CA zwykle dobrze otacza rury i ma mniejszy skurcz. Decyzję podejmuje się według pomieszczenia, produktu, harmonogramu, obciążeń, okładziny i jakości wykonawstwa.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy anhydryt ma zawsze lepszą przewodność cieplną?</summary><div class="rk-screed-faq-answer"><p>Nie należy tego zakładać na podstawie samej nazwy spoiwa. Przewodność zależy od receptury, gęstości i wilgotności. Do obliczeń trzeba przyjąć wartość λ deklarowaną dla konkretnego wyrobu w warunkach właściwych dla projektu.</p></div></details>
          <details class="rk-screed-faq"><summary>Po ilu dniach można włączyć ogrzewanie podłogowe?</summary><div class="rk-screed-faq-answer"><p>Dla standardowego jastrychu cementowego nagrzewanie funkcjonalne według PN-EN 1264-4 rozpoczyna się zwykle nie wcześniej niż po 21 dniach, a dla jastrychu na bazie siarczanu wapnia po co najmniej 7 dniach. Produkt specjalny może mieć inny harmonogram zapisany przez producenta.</p></div></details>
          <details class="rk-screed-faq"><summary>Jak wygląda pierwsze wygrzewanie wylewki?</summary><div class="rk-screed-faq-answer"><p>Modelowo stosuje się około 25°C temperatury zasilania przez 3 dni, a następnie maksymalną projektową temperaturę zasilania przez co najmniej 4 dni. Dokładny protokół musi uwzględniać rodzaj jastrychu, instrukcję produktu i parametry instalacji.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy wygrzanie oznacza, że można układać panele lub drewno?</summary><div class="rk-screed-faq-answer"><p>Nie. Wygrzewanie funkcjonalne nie jest dowodem osiągnięcia wilgotności wymaganej przez posadzkę. Gotowość potwierdza pomiar, najczęściej metodą CM, oraz kryterium producenta jastrychu, kleju i okładziny.</p></div></details>
          <details class="rk-screed-faq"><summary>Ile schnie wylewka o grubości 6 cm?</summary><div class="rk-screed-faq-answer"><p>Nie da się wiarygodnie odpowiedzieć regułą „1 mm na dobę”. Czas zależy od receptury, spoiwa, grubości, temperatury, wilgotności i wymiany powietrza. Należy śledzić warunki, przeprowadzić wymagany protokół i zmierzyć wilgotność.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy rury mogą przechodzić przez dylatację?</summary><div class="rk-screed-faq-answer"><p>Pętla grzewcza nie powinna przechodzić z pola do pola przez szczelinę ruchową. Jeśli muszą przejść przewody przyłączeniowe, prowadzi się je w odpowiednich tulejach ochronnych zgodnie z projektem i ogranicza liczbę przejść.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy trzeba utrzymywać 6–8 bar przez cały czas schnięcia?</summary><div class="rk-screed-faq-answer"><p>Nie należy stosować takiej uniwersalnej zasady. Próbę wykonuje się przed zakryciem rur według PN-EN 1264-4 i systemu. Podczas wylewania przewody pozostają pod ciśnieniem, lecz wartość oraz czas utrzymania po pracy powinny wynikać z instrukcji i protokołu, a nie z przypadkowej liczby.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy grubsza wylewka daje cieplejszą podłogę?</summary><div class="rk-screed-faq-answer"><p>Nie automatycznie. Większa masa magazynuje więcej energii i wolniej reaguje, ale moc ustalają także temperatura wody, rozstaw rur, przepływ, opór okładziny i straty pomieszczenia. Nadmierna grubość nie naprawi źle zaprojektowanej instalacji.</p></div></details>
          <details class="rk-screed-faq"><summary>Skąd wiadomo, gdzie później można wiercić?</summary><div class="rk-screed-faq-answer"><p>Trzeba zachować projekt, zdjęcia z punktami odniesienia i dokumentację powykonawczą, a przed wierceniem zlokalizować rury. Samo zdjęcie lub rzut może być niedokładny po zmianie skali, tynkach i przesunięciu osi pomieszczenia.</p></div></details>
        </div>

        <div class="rk-screed-sources">
          <strong>Podstawa techniczna i data weryfikacji</strong>
          Opracowanie zaktualizowano 29 sierpnia 2026 r. Podstawę stanowią oficjalne karty
          <a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener nofollow">ISO 11855-5:2021 — wykonanie</a>,
          <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021 — obliczanie mocy</a>, zakres EN 13813 oraz dokumentacja wskazanych systemów Uponor i Knauf.
          Normy i przykłady producentów nie zastępują deklaracji, instrukcji i projektu konkretnego układu podłogi.
        </div>
      </section>

      <aside class="rk-screed-author-box" aria-label="Informacje o autorze" itemprop="author" itemscope itemtype="https://schema.org/Person">
        <div class="rk-screed-author-head">
          <div><h3>Autor opracowania</h3><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-screed-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-screed-author-main">
          <div class="rk-screed-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – autor opracowania" width="174" height="174" loading="lazy" itemprop="image">
            <h4 itemprop="name">Robert Kucharski</h4>
            <span class="rk-screed-author-role" itemprop="jobTitle">Projektant instalacji sanitarnych • specjalista systemów HVAC i ogrzewania podłogowego</span>
            <div class="rk-screed-author-social-label">Znajdziesz mnie również:</div>
            <div class="rk-screed-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="noopener nofollow 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"/></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow 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"/></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow 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"/></svg></a>
            </div>
          </div>
          <div class="rk-screed-author-content">
            <div class="rk-screed-quote"><blockquote>„Wylewka nie naprawi źle zaprojektowanej podłogówki. Może jedynie dobrze albo źle przenieść do pomieszczenia ciepło, które wcześniej trzeba policzyć.”</blockquote></div>
            <div class="rk-screed-tab-buttons" role="tablist" aria-label="Informacje o autorze">
              <button class="rk-screed-tab-button is-active" type="button" role="tab" aria-selected="true" aria-controls="rk-screed-author-about" id="rk-screed-author-about-tab" data-screed-author-tab="about">O autorze</button>
              <button class="rk-screed-tab-button" type="button" role="tab" aria-selected="false" aria-controls="rk-screed-author-experience" id="rk-screed-author-experience-tab" data-screed-author-tab="experience">Doświadczenie</button>
              <button class="rk-screed-tab-button" type="button" role="tab" aria-selected="false" aria-controls="rk-screed-author-portals" id="rk-screed-author-portals-tab" data-screed-author-tab="portals">Portale</button>
            </div>
            <div class="rk-screed-tab-panel" id="rk-screed-author-about" role="tabpanel" aria-labelledby="rk-screed-author-about-tab" data-screed-author-panel="about">
              <p itemprop="description">Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego i hydraulice instalacji. Łączę parametry źródła ciepła, rozstaw rur, przepływy i konstrukcję podłogi w jeden możliwy do wykonania układ.</p>
            </div>
            <div class="rk-screed-tab-panel" id="rk-screed-author-experience" role="tabpanel" aria-labelledby="rk-screed-author-experience-tab" data-screed-author-panel="experience" hidden>
              <p>Wieloletnią praktykę projektową uzupełniam tworzeniem technicznych publikacji dla inwestorów i wykonawców. Analizuję zależności między stratami budynku, temperaturą zasilania, mocą powierzchniową, rozstawem, długością pętli, przepływem, oporem hydraulicznym i bezwładnością jastrychu. W poradnikach oddzielam wymagania normowe od zwyczajów wykonawczych i materiałów sprzedażowych.</p>
            </div>
            <div class="rk-screed-tab-panel" id="rk-screed-author-portals" role="tabpanel" aria-labelledby="rk-screed-author-portals-tab" data-screed-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-screed-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>
      </aside>

      <section class="rk-screed-cta" aria-label="Końcowe zamówienie projektu ogrzewania podłogowego">
        <span class="rk-screed-cta-kicker">Zamknij wysokości przed wykonaniem podłogi</span>
        <h3>Otrzymaj projekt skoordynowany z jastrychem i okładziną</h3>
        <p>Dokumentacja określa obciążenie cieplne każdego pomieszczenia, rozstaw i przebieg rur, długości pętli, temperaturę zasilania, przepływy oraz nastawy rozdzielacza. Dzięki temu grubość podłogi, dylatacje i strefy bez rur można uzgodnić przed zakryciem instalacji.</p>
        <a class="rk-screed-cta-link rk-screed-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small>Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </section>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webpage",
      "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/",
      "name": "Grubość wylewki betonowej na ogrzewanie podłogowe — ile cm nad rurą 16 mm?",
      "description": "Jak policzyć grubość całkowitą i warstwę nad rurą 16 mm, sprawdzić masę jastrychu oraz odczytać wymaganie z dokumentacji produktu.",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "about": [
        {
          "@type": "Thing",
          "name": "Grubość jastrychu na ogrzewaniu podłogowym"
        },
        {
          "@type": "Thing",
          "name": "Warstwa jastrychu nad rurą 16 mm"
        },
        {
          "@type": "Thing",
          "name": "Masa i pojemność cieplna jastrychu"
        }
      ],
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article"
      },
      "dateModified": "2026-08-29T12:00:00+02:00",
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#breadcrumb"
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article",
      "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/",
      "headline": "Grubość wylewki betonowej na ogrzewanie podłogowe — ile cm nad rurą 16 mm?",
      "alternativeHeadline": "Grubość całkowita i otulina nad rurą ogrzewania podłogowego",
      "description": "Techniczny przewodnik po grubości jastrychu: obliczenia dla rury 16 mm, wpływ położenia przewodu, masa warstwy, wymagania produktu i kontrola przed wylaniem.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-29T12:00:00+02:00",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "copyrightYear": 2026,
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webpage"
      },
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webpage"
      },
      "wordCount": 4476,
      "proficiencyLevel": "Expert",
      "genre": [
        "poradnik techniczny",
        "ogrzewanie podłogowe",
        "budownictwo"
      ],
      "keywords": [
        "grubość wylewki betonowej na ogrzewanie podłogowe",
        "ile wylewki nad rurą 16 mm",
        "wylewka na podłogówkę 6 cm",
        "jastrych ogrzewany grubość",
        "masa wylewki na m2",
        "otulina rury ogrzewania podłogowego"
      ],
      "about": [
        {
          "@type": "DefinedTerm",
          "name": "Jastrych grzejny",
          "description": "Podkład podłogowy zawierający przewody wodnego ogrzewania powierzchniowego."
        },
        {
          "@type": "DefinedTerm",
          "name": "CT-C20-F4",
          "description": "Przykładowe oznaczenie jastrychu cementowego z klasą wytrzymałości na ściskanie C20 i na zginanie F4."
        },
        {
          "@type": "DefinedTerm",
          "name": "Nagrzewanie funkcjonalne",
          "description": "Kontrolowany cykl temperatur wykonywany po minimalnym okresie wiązania jastrychu grzejnego."
        }
      ],
      "mentions": [
        {
          "@type": "TechArticle",
          "name": "PN-EN 1264-4 – Wodne płaszczyznowe systemy ogrzewania i chłodzenia – Instalowanie"
        },
        {
          "@type": "TechArticle",
          "name": "PN-EN 13813 – Podkłady podłogowe oraz materiały do ich wykonania"
        },
        {
          "@type": "TechArticle",
          "name": "ISO 11855-5:2021 – Installation",
          "url": "https://www.iso.org/standard/74685.html"
        }
      ],
      "citation": [
        "PN-EN 1264-4: Wodne płaszczyznowe systemy ogrzewania i chłodzenia – Część 4: Instalowanie",
        "PN-EN 13813: Podkłady podłogowe oraz materiały do ich wykonania – Materiały – Właściwości i wymagania",
        "https://www.iso.org/standard/74685.html",
        "https://www.iso.org/standard/83785.html"
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#analyzer"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#faq"
        }
      ],
      "audience": {
        "@type": "Audience",
        "audienceType": "Inwestorzy, projektanci i wykonawcy ogrzewania podłogowego"
      }
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#analyzer",
      "name": "Interaktywny analizator przekroju jastrychu",
      "description": "Narzędzie oblicza warstwę jastrychu nad rurą, wymaganą grubość całkowitą, różnicę względem wartości z karty produktu, objętość, masę, pojemność cieplną i opór jednowymiarowy.",
      "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-kalkulator",
      "applicationCategory": "EngineeringApplication",
      "applicationSubCategory": "Analizator techniczny",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "featureList": [
        "Obliczanie rzeczywistej warstwy nad rurą",
        "Uwzględnienie podniesienia spodu rury",
        "Porównanie z minimum wpisanym z karty produktu",
        "Objętość i masa jastrychu",
        "Pojemność cieplna i opór jednowymiarowy",
        "Dynamiczny przekrój i wykres masy"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#howto",
      "name": "Jak przygotować podłogę i wykonać jastrych nad ogrzewaniem podłogowym",
      "description": "Dziesięć etapów od ustalenia konstrukcji podłogi do odbioru podłoża pod okładzinę.",
      "inLanguage": "pl-PL",
      "supply": [
        {
          "@type": "HowToSupply",
          "name": "Jastrych o zaprojektowanej klasie"
        },
        {
          "@type": "HowToSupply",
          "name": "Izolacja termiczna i brzegowa"
        },
        {
          "@type": "HowToSupply",
          "name": "Rury ogrzewania podłogowego"
        },
        {
          "@type": "HowToSupply",
          "name": "Profile dylatacyjne i tuleje ochronne"
        }
      ],
      "tool": [
        {
          "@type": "HowToTool",
          "name": "Narzędzia do kontroli poziomu i grubości"
        },
        {
          "@type": "HowToTool",
          "name": "Zestaw do próby ciśnieniowej"
        },
        {
          "@type": "HowToTool",
          "name": "Aparat CM do pomiaru wilgotności"
        }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Ustal konstrukcję podłogi",
          "text": "Wybierz jastrych, klasę, grubość, izolację, okładzinę, obciążenia i wysokości. Sprawdź nośność stropu oraz ściśliwość warstw.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-1"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Zaprojektuj ogrzewanie",
          "text": "Oblicz obciążenie pomieszczeń, rozstaw, temperaturę zasilania, długości pętli, przepływy i przebieg bez kolizji ze szczelinami.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-2"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Przygotuj równe podłoże i izolację",
          "text": "Usuń luźne elementy, wyrównaj instalacje, ułóż warstwy bez pustek i wykonaj ciągłą izolację brzegową.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-3"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Ułóż i zamocuj rury",
          "text": "Zachowaj projektowany rozstaw, promienie gięcia i strefy bez mocowań. Oznacz przejścia, dylatacje i punkty pomiarowe.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-4"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Wykonaj próbę szczelności",
          "text": "Napełnij, odpowietrz i sprawdź obwody zgodnie z normą oraz systemem. Sporządź protokół i pozostaw instalację pod właściwym ciśnieniem podczas prac.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-5"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Zbuduj podział na pola",
          "text": "Wykonaj szczeliny, profile i tuleje ochronne zgodnie z planem. Skoordynuj je z progami oraz przyszłą okładziną.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-6"
        },
        {
          "@type": "HowToStep",
          "position": 7,
          "name": "Wbuduj mieszankę",
          "text": "Kontroluj recepturę, czas, konsystencję, zagęszczenie i poziomy. Nie dolewaj wody bez zgody technologicznej.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-7"
        },
        {
          "@type": "HowToStep",
          "position": 8,
          "name": "Pielęgnuj i chroń",
          "text": "Ogranicz przeciąg, słońce, mróz i przedwczesne obciążenie. Realizuj wymagania właściwe dla spoiwa i produktu.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-8"
        },
        {
          "@type": "HowToStep",
          "position": 9,
          "name": "Przeprowadź nagrzewanie funkcjonalne",
          "text": "Po wymaganym czasie uruchom wszystkie obwody, zapisz temperatury i zachowaj maksymalną temperaturę projektową przez wymagany okres.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-9"
        },
        {
          "@type": "HowToStep",
          "position": 10,
          "name": "Zmierz wilgotność i odbierz podłoże",
          "text": "Wykonaj pomiar w bezpiecznych punktach, oceń rysy, równość i wytrzymałość powierzchni, a następnie przekaż protokoły wykonawcy posadzki.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-10"
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt-Ogrzewania.pl",
          "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": "Grubość wylewki betonowej",
          "item": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Ile centymetrów wylewki powinno być nad rurą ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednej wartości właściwej dla wszystkich produktów i podłóg. Warstwę nad rurą ustala się na podstawie typu i klasy jastrychu, obciążenia, podatności izolacji, średnicy przewodu, geometrii pól i dokumentacji systemu. Popularne 4,5 cm jest przykładem spotykanym w części rozwiązań, a nie uniwersalną normą."
          }
        },
        {
          "@type": "Question",
          "name": "Czy całkowita grubość 6 cm wystarczy przy rurze 16 mm?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Przy 60 mm całkowitej grubości nad rurą 16 mm pozostaje 44 mm. Geometrycznie można to policzyć, ale bezpieczeństwa nie da się potwierdzić bez klasy materiału, obciążenia, rodzaju izolacji, układu szczelin i instrukcji konkretnego jastrychu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy jastrych cementowy musi mieć siatkę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Dopuszczalne rozwiązanie powinno wynikać z projektu lub dokumentacji systemu. Siatka, włókna i brak dodatkowego zbrojenia mają różne warunki stosowania. Siatka położona bez dystansów na izolacji nie zastępuje prawidłowo zaprojektowanego zbrojenia."
          }
        },
        {
          "@type": "Question",
          "name": "Czy włókna zastępują siatkę w wylewce?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tylko wtedy, gdy rodzaj i dawka włókien mają taką funkcję w dokumentacji systemu. Mikrowłókna ograniczające skurcz plastyczny nie są automatycznie zamiennikiem siatki konstrukcyjnej. Nie wolno oceniać wszystkich włókien jako jednego materiału."
          }
        },
        {
          "@type": "Question",
          "name": "Co jest lepsze na podłogówkę: cement czy anhydryt?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Oba rozwiązania mogą działać bardzo dobrze. CT jest odporny na różne warunki wilgotnościowe i dostępny w wielu odmianach. CA zwykle dobrze otacza rury i ma mniejszy skurcz. Decyzję podejmuje się według pomieszczenia, produktu, harmonogramu, obciążeń, okładziny i jakości wykonawstwa."
          }
        },
        {
          "@type": "Question",
          "name": "Czy anhydryt ma zawsze lepszą przewodność cieplną?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy tego zakładać na podstawie samej nazwy spoiwa. Przewodność zależy od receptury, gęstości i wilgotności. Do obliczeń trzeba przyjąć wartość λ deklarowaną dla konkretnego wyrobu w warunkach właściwych dla projektu."
          }
        },
        {
          "@type": "Question",
          "name": "Po ilu dniach można włączyć ogrzewanie podłogowe?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla standardowego jastrychu cementowego nagrzewanie funkcjonalne według PN-EN 1264-4 rozpoczyna się zwykle nie wcześniej niż po 21 dniach, a dla jastrychu na bazie siarczanu wapnia po co najmniej 7 dniach. Produkt specjalny może mieć inny harmonogram zapisany przez producenta."
          }
        },
        {
          "@type": "Question",
          "name": "Jak wygląda pierwsze wygrzewanie wylewki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Modelowo stosuje się około 25°C temperatury zasilania przez 3 dni, a następnie maksymalną projektową temperaturę zasilania przez co najmniej 4 dni. Dokładny protokół musi uwzględniać rodzaj jastrychu, instrukcję produktu i parametry instalacji."
          }
        },
        {
          "@type": "Question",
          "name": "Czy wygrzanie oznacza, że można układać panele lub drewno?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Wygrzewanie funkcjonalne nie jest dowodem osiągnięcia wilgotności wymaganej przez posadzkę. Gotowość potwierdza pomiar, najczęściej metodą CM, oraz kryterium producenta jastrychu, kleju i okładziny."
          }
        },
        {
          "@type": "Question",
          "name": "Ile schnie wylewka o grubości 6 cm?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie da się wiarygodnie odpowiedzieć regułą „1 mm na dobę”. Czas zależy od receptury, spoiwa, grubości, temperatury, wilgotności i wymiany powietrza. Należy śledzić warunki, przeprowadzić wymagany protokół i zmierzyć wilgotność."
          }
        },
        {
          "@type": "Question",
          "name": "Czy rury mogą przechodzić przez dylatację?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Pętla grzewcza nie powinna przechodzić z pola do pola przez szczelinę ruchową. Jeśli muszą przejść przewody przyłączeniowe, prowadzi się je w odpowiednich tulejach ochronnych zgodnie z projektem i ogranicza liczbę przejść."
          }
        },
        {
          "@type": "Question",
          "name": "Czy trzeba utrzymywać 6–8 bar przez cały czas schnięcia?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy stosować takiej uniwersalnej zasady. Próbę wykonuje się przed zakryciem rur według PN-EN 1264-4 i systemu. Podczas wylewania przewody pozostają pod ciśnieniem, lecz wartość oraz czas utrzymania po pracy powinny wynikać z instrukcji i protokołu, a nie z przypadkowej liczby."
          }
        },
        {
          "@type": "Question",
          "name": "Czy grubsza wylewka daje cieplejszą podłogę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie automatycznie. Większa masa magazynuje więcej energii i wolniej reaguje, ale moc ustalają także temperatura wody, rozstaw rur, przepływ, opór okładziny i straty pomieszczenia. Nadmierna grubość nie naprawi źle zaprojektowanej instalacji."
          }
        },
        {
          "@type": "Question",
          "name": "Skąd wiadomo, gdzie później można wiercić?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Trzeba zachować projekt, zdjęcia z punktami odniesienia i dokumentację powykonawczą, a przed wierceniem zlokalizować rury. Samo zdjęcie lub rzut może być niedokładny po zmianie skali, tynkach i przesunięciu osi pomieszczenia."
          }
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "description": "Projektant wodnego ogrzewania podłogowego, autor technicznych opracowań i właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl oraz Sobir.pl.",
      "knowsAbout": [
        "Ogrzewanie podłogowe",
        "Jastrychy grzejne",
        "Projektowanie instalacji sanitarnych",
        "Hydraulika instalacji grzewczych",
        "Obciążenie cieplne budynków",
        "Pompy ciepła",
        "Efektywność energetyczna budynków"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ],
      "affiliation": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "owns": [
        {
          "@id": "https://projekt-ogrzewania.pl/#website"
        },
        {
          "@id": "https://remont.biz.pl/#website"
        },
        {
          "@id": "https://sobir.pl/#website"
        }
      ],
      "worksFor": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        },
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-Ogrzewania-Logo.webp"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@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"
      },
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    }
  ]
}
</script>

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

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

    function one(selector) {
      return root.querySelector(selector);
    }

    function many(selector) {
      return Array.prototype.slice.call(root.querySelectorAll(selector));
    }

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

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

    function setText(selector, content) {
      var element = one(selector);
      if (element) {
        element.textContent = content;
      }
    }

    function svgElement(name, attributes, content) {
      var element = document.createElementNS("http://www.w3.org/2000/svg", name);
      Object.keys(attributes).forEach(function (key) {
        element.setAttribute(key, String(attributes[key]));
      });
      if (typeof content === "string") {
        element.textContent = content;
      }
      return element;
    }

    var fields = {
      total: one("#rk-screed-total"),
      diameter: one("#rk-screed-diameter"),
      elevation: one("#rk-screed-elevation"),
      required: one("#rk-screed-required"),
      area: one("#rk-screed-area"),
      density: one("#rk-screed-density"),
      cp: one("#rk-screed-cp"),
      lambda: one("#rk-screed-lambda")
    };

    var presets = {
      six: { total: 60 },
      standard: { total: 65 },
      seven: { total: 70 },
      eight: { total: 80 }
    };

    function updateCrossSection(total, diameter, elevation, cover) {
      var screed = one("#rk-screed-svg-screed");
      var pipe = one("#rk-screed-svg-pipe");
      var coverLine = one("#rk-screed-svg-cover-line");
      var totalLine = one("#rk-screed-svg-total-line");
      var coverText = one("#rk-screed-svg-cover-text");
      var totalText = one("#rk-screed-svg-total-text");
      if (!screed) {
        return;
      }

      var bottom = 190;
      var height = 92 + (total - 35) / 65 * 64;
      height = Math.min(Math.max(height, 92), 156);
      var top = bottom - height;
      var scale = height / total;
      var radius = Math.max(diameter / 2 * scale, 5);
      var pipeBottom = bottom - elevation * scale;
      var pipeCenter = pipeBottom - radius;
      var pipeTop = pipeCenter - radius;

      screed.setAttribute("y", top.toFixed(1));
      screed.setAttribute("height", height.toFixed(1));
      if (pipe) {
        pipe.setAttribute("cy", pipeCenter.toFixed(1));
        pipe.setAttribute("r", radius.toFixed(1));
      }
      if (coverLine) {
        coverLine.setAttribute("y1", (top + 5).toFixed(1));
        coverLine.setAttribute("y2", Math.max(pipeTop - 5, top + 6).toFixed(1));
      }
      if (totalLine) {
        totalLine.setAttribute("y1", (top + 4).toFixed(1));
        totalLine.setAttribute("y2", (bottom - 4).toFixed(1));
      }
      if (coverText) {
        coverText.setAttribute("y", (top + Math.max(cover, 0) * scale / 2 + 4).toFixed(1));
        coverText.textContent = format(cover, 0) + " mm nad rurą";
      }
      if (totalText) {
        totalText.setAttribute("y", (top + height / 2 + 4).toFixed(1));
        totalText.textContent = format(total, 0) + " mm łącznie";
      }
    }

    function updateMassChart(density, cp) {
      var group = one("#rk-screed-bars");
      var chart = one("#rk-screed-energy-chart");
      if (!group) {
        return;
      }
      while (group.firstChild) {
        group.removeChild(group.firstChild);
      }

      var thicknesses = [50, 60, 70, 80];
      var masses = thicknesses.map(function (thickness) {
        return thickness / 1000 * density;
      });
      var maxValue = Math.max.apply(null, masses) * 1.15;

      thicknesses.forEach(function (thickness, index) {
        var mass = masses[index];
        var x = 72 + index * 82;
        var barHeight = mass / maxValue * 145;
        var y = 205 - barHeight;
        group.appendChild(svgElement("rect", {
          x: x,
          y: y.toFixed(1),
          width: 48,
          height: barHeight.toFixed(1),
          rx: 8,
          "class": "rk-screed-bar"
        }));
        group.appendChild(svgElement("text", {
          x: x + 24,
          y: y - 8,
          "text-anchor": "middle"
        }, format(mass, 0)));
        group.appendChild(svgElement("text", {
          x: x + 24,
          y: 225,
          "text-anchor": "middle"
        }, thickness + " mm"));
      });

      if (chart) {
        var capacity80 = masses[3] * cp / 3600;
        chart.setAttribute("aria-label", "Masa od " + format(masses[0], 0) + " do " + format(masses[3], 0) + " kilogramów na metr kwadratowy. Warstwa 80 milimetrów magazynuje około " + format(capacity80, 3) + " kilowatogodziny na metr kwadratowy i kelwin.");
      }
    }

    function renderAnalyzer() {
      var total = valueOf(fields.total, 65);
      var diameter = valueOf(fields.diameter, 16);
      var elevation = valueOf(fields.elevation, 0);
      var required = valueOf(fields.required, 45);
      var area = valueOf(fields.area, 100);
      var density = valueOf(fields.density, 2100);
      var cp = valueOf(fields.cp, 0.88);
      var lambda = valueOf(fields.lambda, 1.40);

      var cover = total - diameter - elevation;
      var requiredTotal = diameter + elevation + required;
      var margin = cover - required;
      var heightMetres = total / 1000;
      var volume = area * heightMetres;
      var massPerArea = heightMetres * density;
      var mass = volume * density;
      var capacity = mass * cp / 3600;
      var resistance = heightMetres / lambda;

      setText("#rk-screed-total-out", format(total, 0) + " mm");
      setText("#rk-screed-diameter-out", format(diameter, 0) + " mm");
      setText("#rk-screed-elevation-out", format(elevation, 0) + " mm");
      setText("#rk-screed-required-out", format(required, 0) + " mm");
      setText("#rk-screed-area-out", format(area, 0) + " m²");
      setText("#rk-screed-density-out", format(density, 0) + " kg/m³");
      setText("#rk-screed-cp-out", format(cp, 2) + " kJ/kgK");
      setText("#rk-screed-lambda-out", format(lambda, 2) + " W/mK");

      setText("#rk-screed-cover-result", format(cover, 0) + " mm");
      setText("#rk-screed-required-total-result", format(requiredTotal, 0) + " mm");
      setText("#rk-screed-margin-result", (margin > 0 ? "+" : "") + format(margin, 0) + " mm");
      setText("#rk-screed-volume-result", format(volume, 2) + " m³");
      setText("#rk-screed-load-result", format(massPerArea, 0) + " kg/m²");
      setText("#rk-screed-mass-result", mass >= 1000 ? format(mass / 1000, 1) + " t" : format(mass, 0) + " kg");
      setText("#rk-screed-capacity-result", format(capacity, 1) + " kWh/K");
      setText("#rk-screed-resistance-result", format(resistance, 3) + " m²K/W");

      var status = one("#rk-screed-lab-warning");
      if (status) {
        status.classList.remove("is-ok");
        status.classList.remove("is-warning");
        if (cover < 0) {
          status.textContent = "Błąd geometrii: rura z podniesieniem nie mieści się w podanej grubości całkowitej.";
          status.classList.add("is-warning");
        } else if (margin < 0) {
          status.textContent = "Geometrycznie brakuje " + format(Math.abs(margin), 0) + " mm do minimum nad rurą wpisanego z karty produktu.";
          status.classList.add("is-warning");
        } else if (massPerArea > 170) {
          status.textContent = "Wpisane minimum jest geometrycznie zachowane, ale masa przekracza 170 kg/m². Zweryfikuj nośność stropu i warstw pod jastrychem.";
          status.classList.add("is-warning");
        } else {
          status.textContent = "Geometrycznie pozostaje " + format(margin, 0) + " mm zapasu ponad wpisane minimum produktu. To nie jest ocena nośności całej podłogi.";
          status.classList.add("is-ok");
        }
      }

      updateCrossSection(total, diameter, elevation, cover);
      updateMassChart(density, cp);
    }

    Object.keys(fields).forEach(function (key) {
      var field = fields[key];
      if (!field) {
        return;
      }
      field.addEventListener("input", renderAnalyzer);
      field.addEventListener("change", renderAnalyzer);
    });

    many("[data-screed-preset]").forEach(function (button) {
      button.addEventListener("click", function () {
        var key = button.getAttribute("data-screed-preset");
        var preset = presets[key];
        if (!preset) {
          return;
        }
        Object.keys(preset).forEach(function (fieldKey) {
          if (fields[fieldKey]) {
            fields[fieldKey].value = String(preset[fieldKey]);
          }
        });
        many("[data-screed-preset]").forEach(function (item) {
          item.classList.toggle("is-active", item === button);
        });
        renderAnalyzer();
      });
    });

    many(".rk-screed-nav a").forEach(function (link) {
      link.addEventListener("click", function (event) {
        var selector = link.getAttribute("href");
        if (!selector) {
          return;
        }
        var target = root.querySelector(selector);
        if (target) {
          event.preventDefault();
          target.scrollIntoView({ behavior: "smooth", block: "start" });
        }
      });
    });

    var tabButtons = many("[data-screed-author-tab]");
    var tabPanels = many("[data-screed-author-panel]");

    function activateAuthorTab(key) {
      tabButtons.forEach(function (button) {
        var active = button.getAttribute("data-screed-author-tab") === key;
        button.classList.toggle("is-active", active);
        button.setAttribute("aria-selected", active ? "true" : "false");
        button.tabIndex = active ? 0 : -1;
      });
      tabPanels.forEach(function (panel) {
        var active = panel.getAttribute("data-screed-author-panel") === key;
        panel.hidden = !active;
      });
    }

    tabButtons.forEach(function (button, index) {
      button.addEventListener("click", function () {
        activateAuthorTab(button.getAttribute("data-screed-author-tab"));
      });
      button.addEventListener("keydown", function (event) {
        if (event.key !== "ArrowRight") {
          if (event.key !== "ArrowLeft") {
            return;
          }
        }
        event.preventDefault();
        var movement = event.key === "ArrowRight" ? 1 : -1;
        var nextIndex = (index + movement + tabButtons.length) % tabButtons.length;
        var nextButton = tabButtons[nextIndex];
        activateAuthorTab(nextButton.getAttribute("data-screed-author-tab"));
        nextButton.focus();
      });
    });

    var progress = one(".rk-screed-progress");

    function updateProgress() {
      if (!progress) {
        return;
      }
      var articleTop = root.getBoundingClientRect().top + window.scrollY;
      var articleHeight = root.offsetHeight - window.innerHeight;
      var travelled = window.scrollY - articleTop;
      var percentage = articleHeight > 0 ? travelled / articleHeight * 100 : 0;
      percentage = Math.min(Math.max(percentage, 0), 100);
      progress.style.width = percentage.toFixed(2) + "%";
    }

    window.addEventListener("scroll", updateProgress, { passive: true });
    window.addEventListener("resize", updateProgress);
    renderAnalyzer();
    activateAuthorTab("about");
    updateProgress();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initScreedGuide);
  } else {
    initScreedGuide();
  }
  window.setTimeout(initScreedGuide, 500);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej na ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Krzywa grzewcza w ogrzewaniu podłogowym – jak ustawić ją bez błędów?</title>
		<link>https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 06 Jan 2026 10:25:59 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kocioł gazowy]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Regulacja instalacji]]></category>
		<category><![CDATA[Termomodernizacja]]></category>
		<category><![CDATA[automatyka c.o.]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[regulacja ogrzewania]]></category>
		<category><![CDATA[sterowanie pogodowe]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3069</guid>

					<description><![CDATA[<p>Krzywa grzewcza w ogrzewaniu podłogowym to temat, który decyduje nie tylko o komforcie cieplnym, ale też o realnych kosztach eksploatacji domu. W artykule pokazujemy, dlaczego to właśnie algorytm sterujący, a nie sama instalacja, jest kluczem do efektywnego ogrzewania. Krok po kroku wyjaśniamy, jak działa krzywa grzewcza, jak dobrać jej parametry do rodzaju budynku oraz jak ją prawidłowo stroić w praktyce, aby uniknąć przegrzewania, niedogrzania i niepotrzebnych strat energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza w ogrzewaniu podłogowym – jak ustawić ją bez błędów?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-curve-guide {
    --rk-curve-navy: #123247;
    --rk-curve-navy-deep: #0b2536;
    --rk-curve-teal: #0e7787;
    --rk-curve-cyan: #5fdef0;
    --rk-curve-orange: #ff7a21;
    --rk-curve-green: #248c68;
    --rk-curve-red: #c64b48;
    --rk-curve-amber: #b77812;
    --rk-curve-ink: #173246;
    --rk-curve-muted: #5d7180;
    --rk-curve-line: #d7e1e7;
    --rk-curve-soft: #f3f7f9;
    --rk-curve-white: #ffffff;
    --rk-curve-shadow: 0 18px 48px rgba(13, 43, 60, 0.12);
    color: var(--rk-curve-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.72;
    overflow-x: hidden;
  }

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

  #rk-curve-guide .rk-curve-shell {
    width: min(1240px, 100%);
    margin: 0 auto;
  }

  #rk-curve-guide a {
    color: #087a9f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
  }

  #rk-curve-guide a:hover {
    color: #055d79;
  }

  #rk-curve-guide p,
  #rk-curve-guide ul,
  #rk-curve-guide ol {
    margin: 0 0 1.1rem;
  }

  #rk-curve-guide strong {
    color: inherit;
  }

  #rk-curve-guide .rk-curve-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(42px, 6vw, 78px);
    border-radius: 32px;
    background:
      radial-gradient(circle at 90% 112%, rgba(95, 222, 240, 0.16) 0 150px, transparent 151px),
      radial-gradient(circle at 90% 112%, transparent 0 205px, rgba(95, 222, 240, 0.09) 206px 275px, transparent 276px),
      linear-gradient(115deg, #122f43 0%, #123c4f 56%, #0d5b63 100%);
    color: #ffffff;
    box-shadow: var(--rk-curve-shadow);
  }

  #rk-curve-guide .rk-curve-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: -120px;
    bottom: -180px;
    width: 440px;
    height: 440px;
    border-radius: 50%;
    background: rgba(255, 122, 33, 0.10);
    filter: blur(2px);
  }

  #rk-curve-guide .rk-curve-hero-inner {
    position: relative;
    z-index: 1;
  }

  #rk-curve-guide .rk-curve-kicker,
  #rk-curve-guide .rk-curve-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--rk-curve-orange);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-curve-guide .rk-curve-kicker::before,
  #rk-curve-guide .rk-curve-eyebrow::before {
    content: "";
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: currentColor;
  }

  #rk-curve-guide .rk-curve-hero-title {
    max-width: 1110px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.55rem, 6.1vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.98;
    text-wrap: balance;
  }

  #rk-curve-guide .rk-curve-hero-title span {
    color: var(--rk-curve-cyan);
  }

  #rk-curve-guide .rk-curve-hero-lead {
    max-width: 1050px;
    margin: 30px 0 0;
    color: #eef9fc;
    font-size: clamp(1.05rem, 2vw, 1.34rem);
    line-height: 1.62;
  }

  #rk-curve-guide .rk-curve-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin: 28px 0 0;
  }

  #rk-curve-guide .rk-curve-hero-tag {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 17px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1.3;
  }

  #rk-curve-guide .rk-curve-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin: 34px 0 0;
    color: #e5f0f4;
    font-size: 0.85rem;
    font-weight: 700;
  }

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

  #rk-curve-guide .rk-curve-hero-metric {
    min-width: 0;
    padding: 22px 24px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 19px;
    background: rgba(255, 255, 255, 0.08);
    color: #eff9fb;
    backdrop-filter: blur(5px);
  }

  #rk-curve-guide .rk-curve-hero-metric b {
    display: block;
    margin-bottom: 7px;
    color: #ffffff;
    font-size: 1.02rem;
    line-height: 1.3;
  }

  #rk-curve-guide .rk-curve-hero-metric span {
    display: block;
    color: #e2f1f5;
    font-size: 0.88rem;
    line-height: 1.55;
  }

  #rk-curve-guide .rk-curve-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0;
    padding: 22px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(18, 50, 71, 0.07);
  }

  #rk-curve-guide .rk-curve-shortcuts-label {
    display: block;
    flex-basis: 100%;
    color: var(--rk-curve-navy);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-curve-guide .rk-curve-shortcuts a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 7px 13px;
    border: 1px solid #cbd9e1;
    border-radius: 999px;
    background: var(--rk-curve-soft);
    color: var(--rk-curve-navy);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-curve-guide .rk-curve-shortcuts a:hover {
    border-color: var(--rk-curve-teal);
    background: #e8f6f8;
    color: #075f6b;
  }

  #rk-curve-guide .rk-curve-section,
  #rk-curve-guide .rk-curve-author {
    margin: 24px 0;
    padding: clamp(30px, 5vw, 62px);
    border: 1px solid var(--rk-curve-line);
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 14px 42px rgba(18, 50, 71, 0.07);
    scroll-margin-top: 28px;
  }

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

  #rk-curve-guide .rk-curve-section-dark {
    border-color: #234c61;
    background:
      radial-gradient(circle at 105% 100%, rgba(95, 222, 240, 0.12) 0 190px, transparent 191px),
      linear-gradient(135deg, #102d40, #0e4854);
    color: #eff8fb;
  }

  #rk-curve-guide .rk-curve-section-dark .rk-curve-section-title,
  #rk-curve-guide .rk-curve-section-dark h3,
  #rk-curve-guide .rk-curve-section-dark strong {
    color: #ffffff;
  }

  #rk-curve-guide .rk-curve-section-dark .rk-curve-lead,
  #rk-curve-guide .rk-curve-section-dark p,
  #rk-curve-guide .rk-curve-section-dark li {
    color: #e3f0f4;
  }

  #rk-curve-guide .rk-curve-section-title,
  #rk-curve-guide .rk-curve-author-title {
    max-width: 1010px;
    margin: 0 0 18px;
    color: var(--rk-curve-navy);
    font-size: clamp(1.8rem, 3.7vw, 3.05rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.12;
    text-wrap: balance;
  }

  #rk-curve-guide .rk-curve-lead {
    max-width: 1040px;
    color: #314c5e;
    font-size: 1.08rem;
    line-height: 1.75;
  }

  #rk-curve-guide .rk-curve-answer {
    margin: 24px 0;
    padding: 26px 28px;
    border-left: 6px solid var(--rk-curve-cyan);
    border-radius: 8px 20px 20px 8px;
    background: var(--rk-curve-navy);
    color: #ffffff;
  }

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

  #rk-curve-guide .rk-curve-answer p {
    margin: 0;
    color: #ffffff;
    font-size: 1.06rem;
  }

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

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

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

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

  #rk-curve-guide .rk-curve-card {
    min-width: 0;
    padding: 23px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-curve-ink);
  }

  #rk-curve-guide .rk-curve-card h3 {
    margin: 0 0 10px;
    color: var(--rk-curve-navy);
    font-size: 1.06rem;
    line-height: 1.35;
  }

  #rk-curve-guide .rk-curve-card p,
  #rk-curve-guide .rk-curve-card li {
    color: #3e5869;
    font-size: 0.92rem;
    line-height: 1.65;
  }

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

  #rk-curve-guide .rk-curve-card-number {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: #dff8fb;
    color: #086678;
    font-size: 0.85rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-callout,
  #rk-curve-guide .rk-curve-note,
  #rk-curve-guide .rk-curve-warning {
    margin: 24px 0 0;
    padding: 20px 22px;
    border-radius: 16px;
    color: #274657;
    font-size: 0.94rem;
    line-height: 1.68;
  }

  #rk-curve-guide .rk-curve-callout {
    border: 1px solid #b9e7ed;
    background: #eaf9fb;
  }

  #rk-curve-guide .rk-curve-note {
    border: 1px solid #d7e1e7;
    background: #ffffff;
  }

  #rk-curve-guide .rk-curve-warning {
    border: 1px solid #efd0a1;
    background: #fff6e9;
  }

  #rk-curve-guide .rk-curve-tool {
    overflow: hidden;
    margin: 28px 0 0;
    border: 1px solid #aacbd2;
    border-radius: 26px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(15, 66, 78, 0.12);
  }

  #rk-curve-guide .rk-curve-tool-head {
    padding: 28px clamp(22px, 4vw, 40px);
    background: linear-gradient(125deg, var(--rk-curve-navy), #0d5962);
    color: #ffffff;
  }

  #rk-curve-guide .rk-curve-tool-head .rk-curve-eyebrow {
    color: #ffad73;
  }

  #rk-curve-guide .rk-curve-tool-head h3 {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: clamp(1.35rem, 3vw, 2.05rem);
    line-height: 1.2;
  }

  #rk-curve-guide .rk-curve-tool-head p {
    max-width: 920px;
    margin: 0;
    color: #e9f7fa;
    font-size: 0.94rem;
  }

  #rk-curve-guide .rk-curve-tool-body {
    padding: clamp(22px, 4vw, 40px);
  }

  #rk-curve-guide .rk-curve-control-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
  }

  #rk-curve-guide .rk-curve-control {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 18px;
    background: var(--rk-curve-soft);
  }

  #rk-curve-guide .rk-curve-control-label {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-curve-navy);
    font-size: 0.84rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-segmented {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  #rk-curve-guide .rk-curve-segmented button {
    min-width: 0;
    min-height: 48px;
    padding: 9px 12px;
    border: 1px solid #bfd0d9;
    border-radius: 13px;
    background: #ffffff;
    color: var(--rk-curve-navy);
    font: inherit;
    font-size: 0.84rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
  }

  #rk-curve-guide .rk-curve-segmented button:hover {
    transform: translateY(-1px);
    border-color: var(--rk-curve-teal);
  }

  #rk-curve-guide .rk-curve-segmented button[aria-pressed="true"] {
    border-color: var(--rk-curve-navy);
    background: var(--rk-curve-navy);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(18, 50, 71, 0.18);
  }

  #rk-curve-guide .rk-curve-state-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin: 0 0 22px;
    padding: 20px;
    border: 1px solid #b9e7ed;
    border-radius: 18px;
    background: #eaf9fb;
  }

  #rk-curve-guide .rk-curve-state-dot {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--rk-curve-green);
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-state-summary[data-flow="closed"] {
    border-color: #e5c4c2;
    background: #fff1f0;
  }

  #rk-curve-guide .rk-curve-state-summary[data-flow="closed"] .rk-curve-state-dot {
    background: var(--rk-curve-red);
  }

  #rk-curve-guide .rk-curve-state-summary strong {
    display: block;
    margin-bottom: 2px;
    color: var(--rk-curve-navy);
    font-size: 1.05rem;
  }

  #rk-curve-guide .rk-curve-state-summary p {
    margin: 0;
    color: #405c6d;
    font-size: 0.91rem;
    line-height: 1.55;
  }

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

  #rk-curve-guide .rk-curve-flow-step {
    position: relative;
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-curve-ink);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  }

  #rk-curve-guide .rk-curve-flow-step.is-active {
    border-color: #64c7d2;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-curve-guide .rk-curve-flow-step.is-rest {
    background: #f7f9fa;
  }

  #rk-curve-guide .rk-curve-flow-top {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-bottom: 14px;
  }

  #rk-curve-guide .rk-curve-flow-icon {
    display: grid;
    flex: 0 0 52px;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: #e6f7f9;
    color: #087083;
  }

  #rk-curve-guide .rk-curve-flow-icon svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
  }

  #rk-curve-guide .rk-curve-flow-number {
    display: block;
    color: var(--rk-curve-orange);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-curve-guide .rk-curve-flow-step h4 {
    margin: 2px 0 0;
    color: var(--rk-curve-navy);
    font-size: 1rem;
    line-height: 1.25;
  }

  #rk-curve-guide .rk-curve-flow-value {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    margin-bottom: 10px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #dff6e9;
    color: #176a4e;
    font-size: 0.77rem;
    font-weight: 900;
    line-height: 1.2;
  }

  #rk-curve-guide .rk-curve-flow-value.is-off {
    background: #eef1f3;
    color: #5c6e79;
  }

  #rk-curve-guide .rk-curve-flow-value.is-closed {
    background: #fde7e6;
    color: #9c3936;
  }

  #rk-curve-guide .rk-curve-flow-copy {
    margin: 0;
    color: #405b6c;
    font-size: 0.87rem;
    line-height: 1.6;
  }

  #rk-curve-guide .rk-curve-tool-disclaimer {
    margin: 22px 0 0;
    padding: 17px 19px;
    border: 1px solid #efd0a1;
    border-radius: 15px;
    background: #fff6e9;
    color: #5f4a2c;
    font-size: 0.86rem;
    line-height: 1.6;
  }

  #rk-curve-guide .rk-curve-compare-table,
  #rk-curve-guide .rk-curve-diagnostic-table {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-curve-line);
    border-radius: 20px;
    background: #ffffff;
  }

  #rk-curve-guide .rk-curve-table-row {
    display: grid;
    grid-template-columns: minmax(150px, 0.8fr) repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--rk-curve-line);
  }

  #rk-curve-guide .rk-curve-table-row:first-child {
    border-top: 0;
  }

  #rk-curve-guide .rk-curve-table-row > div {
    min-width: 0;
    padding: 18px 20px;
    border-left: 1px solid var(--rk-curve-line);
    color: #3b5667;
    font-size: 0.89rem;
    line-height: 1.58;
  }

  #rk-curve-guide .rk-curve-table-row > div:first-child {
    border-left: 0;
  }

  #rk-curve-guide .rk-curve-table-head {
    background: var(--rk-curve-navy);
  }

  #rk-curve-guide .rk-curve-table-head > div {
    color: #ffffff;
    font-weight: 850;
  }

  #rk-curve-guide .rk-curve-table-label {
    background: #f2f6f8;
    color: var(--rk-curve-navy) !important;
    font-weight: 850;
  }

  #rk-curve-guide .rk-curve-diagnostic-table .rk-curve-table-row {
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1fr) minmax(0, 1.15fr);
  }

  #rk-curve-guide .rk-curve-spec-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-curve-guide .rk-curve-spec {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-curve-guide .rk-curve-spec-mark {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #daf4f7;
    color: #0b7180;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-spec strong {
    display: block;
    margin-bottom: 4px;
    color: var(--rk-curve-navy);
    font-size: 0.94rem;
  }

  #rk-curve-guide .rk-curve-spec span {
    display: block;
    color: #4b6474;
    font-size: 0.84rem;
    line-height: 1.55;
  }

  #rk-curve-guide .rk-curve-chain {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
    margin: 26px 0;
  }

  #rk-curve-guide .rk-curve-chain-item {
    position: relative;
    min-width: 0;
    padding: 19px 15px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 17px;
    background: #ffffff;
    color: var(--rk-curve-ink);
    text-align: center;
  }

  #rk-curve-guide .rk-curve-chain-item::after {
    content: "→";
    position: absolute;
    top: 50%;
    right: -15px;
    z-index: 2;
    width: 18px;
    color: var(--rk-curve-orange);
    font-size: 1.15rem;
    font-weight: 900;
    line-height: 1;
    transform: translateY(-50%);
  }

  #rk-curve-guide .rk-curve-chain-item:last-child::after {
    display: none;
  }

  #rk-curve-guide .rk-curve-chain-item strong {
    display: block;
    color: var(--rk-curve-navy);
    font-size: 0.9rem;
    line-height: 1.35;
  }

  #rk-curve-guide .rk-curve-chain-item span {
    display: block;
    margin-top: 5px;
    color: #56707f;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-curve-guide .rk-curve-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
    counter-reset: rk-curve-step;
  }

  #rk-curve-guide .rk-curve-step {
    position: relative;
    min-width: 0;
    padding: 21px 21px 21px 67px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 19px;
    background: #ffffff;
    color: var(--rk-curve-ink);
    counter-increment: rk-curve-step;
  }

  #rk-curve-guide .rk-curve-step::before {
    content: counter(rk-curve-step);
    position: absolute;
    top: 20px;
    left: 20px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--rk-curve-navy);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-step h3 {
    margin: 0 0 7px;
    color: var(--rk-curve-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-curve-guide .rk-curve-step p {
    margin: 0;
    color: #435e6f;
    font-size: 0.88rem;
    line-height: 1.6;
  }

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

  #rk-curve-guide .rk-curve-mistake {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    min-width: 0;
    padding: 19px;
    border: 1px solid #ead4d2;
    border-radius: 17px;
    background: #fff7f6;
  }

  #rk-curve-guide .rk-curve-mistake-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-curve-red);
    color: #ffffff;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-mistake strong {
    color: #7e302e;
    font-size: 0.94rem;
  }

  #rk-curve-guide .rk-curve-mistake p {
    margin: 4px 0 0;
    color: #5f4d4c;
    font-size: 0.85rem;
    line-height: 1.55;
  }

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

  #rk-curve-guide .rk-curve-checklist-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 17px;
    background: #ffffff;
    color: #425d6e;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  #rk-curve-guide .rk-curve-checklist-item > span {
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    border-radius: 50%;
    background: #dff6e9;
    color: var(--rk-curve-green);
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-checklist-item strong {
    color: var(--rk-curve-navy);
    font-size: 0.92rem;
  }

  #rk-curve-guide .rk-curve-formula {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 18px;
    align-items: stretch;
    margin: 24px 0;
  }

  #rk-curve-guide .rk-curve-formula-box {
    display: grid;
    place-items: center;
    min-height: 170px;
    padding: 24px;
    border-radius: 20px;
    background: var(--rk-curve-navy);
    color: #ffffff;
    text-align: center;
  }

  #rk-curve-guide .rk-curve-formula-box strong {
    display: block;
    color: var(--rk-curve-cyan);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.25;
  }

  #rk-curve-guide .rk-curve-formula-box span {
    display: block;
    margin-top: 8px;
    color: #dcecf2;
    font-size: 0.82rem;
  }

  #rk-curve-guide .rk-curve-formula-copy {
    padding: 23px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 20px;
    background: #ffffff;
    color: #3f596a;
  }

  #rk-curve-guide .rk-curve-formula-copy h3 {
    margin: 0 0 9px;
    color: var(--rk-curve-navy);
    font-size: 1.08rem;
  }

  #rk-curve-guide .rk-curve-formula-copy p:last-child {
    margin-bottom: 0;
  }

  #rk-curve-guide .rk-curve-cta {
    margin: 32px 0 0;
    padding: clamp(27px, 4vw, 42px);
    border-radius: 24px;
    background:
      radial-gradient(circle at 100% 110%, rgba(95, 222, 240, 0.14) 0 130px, transparent 131px),
      linear-gradient(125deg, var(--rk-curve-navy), #0b5761);
    color: #ffffff;
    box-shadow: 0 18px 45px rgba(11, 45, 62, 0.18);
  }

  #rk-curve-guide .rk-curve-cta-title {
    max-width: 930px;
    margin: 0 0 12px;
    color: #ffffff;
    font-size: clamp(1.45rem, 3.2vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.16;
  }

  #rk-curve-guide .rk-curve-cta p {
    max-width: 980px;
    margin-bottom: 20px;
    color: #e7f3f6;
  }

  #rk-curve-guide .rk-curve-cta-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 52px;
    padding: 12px 20px;
    border: 2px solid var(--rk-curve-orange);
    border-radius: 12px;
    background: var(--rk-curve-orange);
    color: #ffffff !important;
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 10px 22px rgba(255, 122, 33, 0.22);
  }

  #rk-curve-guide .rk-curve-cta-button:hover {
    border-color: #ff9652;
    background: #ff9652;
    color: #ffffff !important;
  }

  #rk-curve-guide .rk-curve-link-disclosure {
    display: block;
    margin-top: 13px;
    color: #cfe1e6;
    font-size: 0.72rem;
    line-height: 1.45;
  }

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

  #rk-curve-guide .rk-curve-source-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-curve-guide .rk-curve-source-card a {
    display: inline-block;
    color: var(--rk-curve-navy);
    font-size: 0.93rem;
    font-weight: 900;
    line-height: 1.45;
  }

  #rk-curve-guide .rk-curve-source-card p {
    margin: 8px 0 0;
    color: #516a79;
    font-size: 0.83rem;
    line-height: 1.55;
  }

  #rk-curve-guide .rk-curve-responsibility {
    margin-top: 20px;
    padding: 21px;
    border: 1px solid #d7e1e7;
    border-radius: 18px;
    background: #ffffff;
    color: #405a6b;
    font-size: 0.87rem;
    line-height: 1.62;
  }

  #rk-curve-guide .rk-curve-responsibility p:last-child {
    margin-bottom: 0;
  }

  #rk-curve-guide .rk-curve-faq details {
    overflow: hidden;
    margin: 12px 0;
    border: 1px solid var(--rk-curve-line);
    border-radius: 16px;
    background: #ffffff;
  }

  #rk-curve-guide .rk-curve-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-curve-navy);
    font-size: 0.96rem;
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

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

  #rk-curve-guide .rk-curve-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-curve-teal);
    font-size: 1.4rem;
    font-weight: 700;
    transform: translateY(-50%);
  }

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

  #rk-curve-guide .rk-curve-faq-answer {
    padding: 0 20px 18px;
    color: #415c6d;
    font-size: 0.9rem;
    line-height: 1.65;
  }

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

  #rk-curve-guide .rk-curve-author {
    background:
      radial-gradient(circle at 98% 100%, rgba(95, 222, 240, 0.12) 0 150px, transparent 151px),
      linear-gradient(130deg, #102d40, #113f4e);
    color: #eaf4f7;
  }

  #rk-curve-guide .rk-curve-author .rk-curve-eyebrow {
    color: #ff9a57;
  }

  #rk-curve-guide .rk-curve-author-title {
    color: #ffffff;
  }

  #rk-curve-guide .rk-curve-author-layout {
    display: grid;
    grid-template-columns: minmax(210px, 0.34fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin-top: 25px;
  }

  #rk-curve-guide .rk-curve-author-side {
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.07);
    text-align: center;
  }

  #rk-curve-guide .rk-curve-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 16px;
    overflow: hidden;
    border: 4px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: #ffffff;
  }

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

  #rk-curve-guide .rk-curve-author-name a {
    color: #ffffff;
    font-size: 1.12rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-author-role {
    margin: 7px 0 13px;
    color: #dbeaf0;
    font-size: 0.82rem;
    line-height: 1.5;
  }

  #rk-curve-guide .rk-curve-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
  }

  #rk-curve-guide .rk-curve-author-social a {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-curve-guide .rk-curve-author-main p {
    color: #dcecf1;
    font-size: 0.92rem;
  }

  #rk-curve-guide .rk-curve-author-main a {
    color: var(--rk-curve-cyan);
  }

  #rk-curve-guide .rk-curve-author-quote {
    margin-bottom: 21px;
    padding: 22px;
    border-left: 5px solid var(--rk-curve-cyan);
    border-radius: 7px 17px 17px 7px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 1.03rem;
    font-weight: 750;
    line-height: 1.6;
  }

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

  #rk-curve-guide .rk-curve-author-fact {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.06);
    color: #d7e8ed;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-curve-guide .rk-curve-author-fact strong {
    display: block;
    margin-bottom: 4px;
    color: #ffffff;
    font-size: 0.8rem;
  }

  #rk-curve-guide .rk-curve-tool-tabs,
  #rk-curve-guide .rk-curve-graphic-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 22px;
  }

  #rk-curve-guide .rk-curve-tool-tabs button,
  #rk-curve-guide .rk-curve-graphic-controls button {
    min-height: 44px;
    padding: 9px 15px;
    border: 1px solid #bdd0d8;
    border-radius: 999px;
    background: #ffffff;
    color: var(--rk-curve-navy);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
  }

  #rk-curve-guide .rk-curve-tool-tabs button[aria-selected="true"],
  #rk-curve-guide .rk-curve-graphic-controls button[aria-pressed="true"] {
    border-color: var(--rk-curve-navy);
    background: var(--rk-curve-navy);
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(18, 50, 71, 0.18);
  }

  #rk-curve-guide .rk-curve-panel[hidden],
  #rk-curve-guide .rk-curve-is-hidden {
    display: none !important;
  }

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

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

  #rk-curve-guide .rk-curve-field {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 16px;
    background: var(--rk-curve-soft);
  }

  #rk-curve-guide .rk-curve-field label,
  #rk-curve-guide .rk-curve-field-label {
    display: block;
    margin: 0 0 7px;
    color: var(--rk-curve-navy);
    font-size: 0.79rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-curve-guide .rk-curve-field input,
  #rk-curve-guide .rk-curve-field select,
  #rk-curve-guide .rk-curve-loop-row input,
  #rk-curve-guide .rk-curve-curve-row input {
    width: 100%;
    min-height: 47px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #b9cbd4;
    border-radius: 11px;
    background: #ffffff;
    color: #173246;
    font: inherit;
    font-size: 0.91rem;
    line-height: 1.2;
  }

  #rk-curve-guide .rk-curve-field input:focus,
  #rk-curve-guide .rk-curve-field select:focus,
  #rk-curve-guide .rk-curve-loop-row input:focus,
  #rk-curve-guide .rk-curve-curve-row input:focus {
    outline: 3px solid rgba(95, 222, 240, 0.34);
    border-color: var(--rk-curve-teal);
  }

  #rk-curve-guide .rk-curve-field-help {
    display: block;
    margin-top: 7px;
    color: #5c7180;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  #rk-curve-guide .rk-curve-tool-subtitle {
    margin: 26px 0 10px;
    color: var(--rk-curve-navy);
    font-size: 1.12rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-curve-guide .rk-curve-loop-editor,
  #rk-curve-guide .rk-curve-curve-editor {
    margin: 18px 0;
    padding: 18px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 18px;
    background: var(--rk-curve-soft);
  }

  #rk-curve-guide .rk-curve-loop-row,
  #rk-curve-guide .rk-curve-curve-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 0.46fr) auto;
    gap: 9px;
    align-items: end;
    margin-top: 10px;
  }

  #rk-curve-guide .rk-curve-curve-row {
    grid-template-columns: 42px repeat(2, minmax(110px, 1fr));
  }

  #rk-curve-guide .rk-curve-loop-row:first-child,
  #rk-curve-guide .rk-curve-curve-row:first-child {
    margin-top: 0;
  }

  #rk-curve-guide .rk-curve-loop-cell label,
  #rk-curve-guide .rk-curve-curve-cell label {
    display: block;
    margin-bottom: 5px;
    color: #496371;
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-curve-guide .rk-curve-remove-loop,
  #rk-curve-guide .rk-curve-add-loop {
    min-height: 45px;
    padding: 9px 13px;
    border: 1px solid #c7d5dc;
    border-radius: 11px;
    background: #ffffff;
    color: var(--rk-curve-navy);
    font: inherit;
    font-size: 0.77rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-curve-guide .rk-curve-remove-loop {
    width: 45px;
    padding: 8px;
    color: #9b3b38;
  }

  #rk-curve-guide .rk-curve-add-loop {
    margin-top: 13px;
    border-color: #86cdd5;
    background: #eaf9fb;
    color: #075f6b;
  }

  #rk-curve-guide .rk-curve-calc-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 20px;
    align-items: start;
  }

  #rk-curve-guide .rk-curve-results {
    min-width: 0;
  }

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

  #rk-curve-guide .rk-curve-result {
    min-width: 0;
    padding: 17px;
    border: 1px solid #b8dce1;
    border-radius: 16px;
    background: #effbfc;
  }

  #rk-curve-guide .rk-curve-result span {
    display: block;
    color: #4c6876;
    font-size: 0.7rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-curve-guide .rk-curve-result strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-curve-navy);
    font-size: clamp(1.2rem, 2.5vw, 1.7rem);
    line-height: 1.2;
  }

  #rk-curve-guide .rk-curve-breakdown {
    padding: 18px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-curve-guide .rk-curve-breakdown-title {
    display: block;
    margin-bottom: 12px;
    color: var(--rk-curve-navy);
    font-size: 0.86rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-break-row {
    display: grid;
    grid-template-columns: minmax(104px, 0.62fr) minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    margin: 9px 0;
    color: #496371;
    font-size: 0.73rem;
    line-height: 1.35;
  }

  #rk-curve-guide .rk-curve-break-row strong,
  #rk-curve-guide .rk-curve-curve-row > strong {
    color: var(--rk-curve-navy);
  }

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

  #rk-curve-guide .rk-curve-break-track {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eef1;
  }

  #rk-curve-guide .rk-curve-break-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-curve-teal), var(--rk-curve-cyan));
  }

  #rk-curve-guide .rk-curve-chart-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-curve-guide .rk-curve-chart-title {
    margin: 0 0 11px;
    color: var(--rk-curve-navy);
    font-size: 0.95rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-chart-wrap {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border-radius: 13px;
    background: #f8fbfc;
  }

  #rk-curve-guide .rk-curve-chart-wrap svg {
    display: block;
    width: 100%;
    height: auto;
    min-height: 310px;
  }

  #rk-curve-guide .rk-curve-chart-grid-line {
    stroke: #dbe5ea;
    stroke-width: 1;
  }

  #rk-curve-guide .rk-curve-chart-axis {
    stroke: #6f8592;
    stroke-width: 1.4;
  }

  #rk-curve-guide .rk-curve-system-path {
    fill: none;
    stroke: var(--rk-curve-teal);
    stroke-width: 4;
  }

  #rk-curve-guide .rk-curve-device-path {
    fill: none;
    stroke: var(--rk-curve-orange);
    stroke-width: 4;
  }

  #rk-curve-guide .rk-curve-design-point {
    fill: var(--rk-curve-navy);
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-curve-guide .rk-curve-operating-point {
    fill: var(--rk-curve-orange);
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-curve-guide .rk-curve-chart-tick,
  #rk-curve-guide .rk-curve-chart-label {
    fill: #55707f;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
  }

  #rk-curve-guide .rk-curve-chart-label {
    fill: var(--rk-curve-navy);
    font-size: 13px;
    font-weight: 800;
  }

  #rk-curve-guide .rk-curve-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    margin-top: 12px;
    color: #536d7b;
    font-size: 0.69rem;
    font-weight: 800;
  }

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

  #rk-curve-guide .rk-curve-legend i {
    display: inline-block;
    width: 25px;
    height: 4px;
    border-radius: 999px;
    background: var(--rk-curve-teal);
  }

  #rk-curve-guide .rk-curve-legend .is-pump i {
    background: var(--rk-curve-orange);
  }

  #rk-curve-guide .rk-curve-legend .is-point i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-curve-navy);
  }

  #rk-curve-guide .rk-curve-status {
    margin: 15px 0 0;
    padding: 15px 17px;
    border: 1px solid #b8dce1;
    border-radius: 14px;
    background: #effbfc;
    color: #315261;
    font-size: 0.79rem;
    line-height: 1.55;
  }

  #rk-curve-guide .rk-curve-status.is-warning {
    border-color: #efd0a1;
    background: #fff6e9;
    color: #664d2b;
  }

  #rk-curve-guide .rk-curve-status.is-bad {
    border-color: #e6c2c0;
    background: #fff2f1;
    color: #743b38;
  }

  #rk-curve-guide .rk-curve-status.is-good {
    border-color: #b8ddce;
    background: #eefaf5;
    color: #245d48;
  }

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

  #rk-curve-guide .rk-curve-hydraulic-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-curve-line);
    border-radius: 18px;
    background: #ffffff;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
  }

  #rk-curve-guide .rk-curve-hydraulic-card.is-active {
    border-color: #5fc6d1;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-curve-guide .rk-curve-hydraulic-card.is-muted {
    opacity: 0.58;
    background: #f3f6f7;
  }

  #rk-curve-guide .rk-curve-hydraulic-number {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: #ddf6f8;
    color: #086878;
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-hydraulic-card h3 {
    margin: 0 0 8px;
    color: var(--rk-curve-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-curve-guide .rk-curve-hydraulic-value {
    display: inline-flex;
    min-height: 29px;
    align-items: center;
    margin: 0 0 9px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #eef4f6;
    color: #3f5e6d;
    font-size: 0.71rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-hydraulic-card.is-active .rk-curve-hydraulic-value {
    background: #dff6e9;
    color: #21664e;
  }

  #rk-curve-guide .rk-curve-hydraulic-card p {
    margin: 0;
    color: #466171;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-curve-guide .rk-curve-graphic-result {
    margin-top: 16px;
    padding: 20px;
    border-left: 5px solid var(--rk-curve-cyan);
    border-radius: 8px 16px 16px 8px;
    background: var(--rk-curve-navy);
    color: #ffffff;
  }

  #rk-curve-guide .rk-curve-graphic-result strong {
    display: block;
    margin-bottom: 5px;
    color: #ffffff;
  }

  #rk-curve-guide .rk-curve-graphic-result p {
    margin: 0;
    color: #e8f5f8;
    font-size: 0.87rem;
  }

  #rk-curve-guide .rk-curve-equation {
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
  }

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

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

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

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

    #rk-curve-guide .rk-curve-chain-item::after {
      display: none;
    }

    #rk-curve-guide .rk-curve-calc-layout {
      grid-template-columns: 1fr;
    }
  }

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

    #rk-curve-guide .rk-curve-hero {
      border-radius: 24px;
    }

    #rk-curve-guide .rk-curve-hero-metrics,
    #rk-curve-guide .rk-curve-grid-3,
    #rk-curve-guide .rk-curve-source-grid,
    #rk-curve-guide .rk-curve-author-facts {
      grid-template-columns: 1fr;
    }

    #rk-curve-guide .rk-curve-control-grid,
    #rk-curve-guide .rk-curve-formula,
    #rk-curve-guide .rk-curve-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-curve-guide .rk-curve-author-side {
      max-width: 430px;
    }

    #rk-curve-guide .rk-curve-field-grid-3,
    #rk-curve-guide .rk-curve-hydraulic-grid {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 700px) {
    #rk-curve-guide .rk-curve-section,
    #rk-curve-guide .rk-curve-author {
      border-radius: 22px;
    }

    #rk-curve-guide .rk-curve-grid-2,
    #rk-curve-guide .rk-curve-grid-4,
    #rk-curve-guide .rk-curve-flow-grid,
    #rk-curve-guide .rk-curve-spec-grid,
    #rk-curve-guide .rk-curve-steps,
    #rk-curve-guide .rk-curve-mistakes,
    #rk-curve-guide .rk-curve-checklist,
    #rk-curve-guide .rk-curve-chain {
      grid-template-columns: 1fr;
    }

    #rk-curve-guide .rk-curve-field-grid,
    #rk-curve-guide .rk-curve-result-grid {
      grid-template-columns: 1fr;
    }

    #rk-curve-guide .rk-curve-table-row,
    #rk-curve-guide .rk-curve-diagnostic-table .rk-curve-table-row {
      display: block;
      padding: 8px 0;
      border-top: 8px solid var(--rk-curve-soft);
    }

    #rk-curve-guide .rk-curve-table-row:first-child {
      display: none;
    }

    #rk-curve-guide .rk-curve-table-row > div {
      display: grid;
      grid-template-columns: minmax(104px, 0.42fr) minmax(0, 1fr);
      gap: 10px;
      padding: 12px 15px;
      border: 0;
    }

    #rk-curve-guide .rk-curve-table-row > div::before {
      content: attr(data-label);
      color: var(--rk-curve-navy);
      font-size: 0.76rem;
      font-weight: 900;
      line-height: 1.45;
    }

    #rk-curve-guide .rk-curve-table-label {
      background: #eef4f6;
    }

    #rk-curve-guide .rk-curve-loop-row {
      grid-template-columns: minmax(0, 1fr) minmax(100px, 0.6fr) auto;
    }
  }

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

    #rk-curve-guide .rk-curve-hero {
      padding: 34px 22px;
      border-radius: 20px;
    }

    #rk-curve-guide .rk-curve-hero-title {
      font-size: clamp(2.25rem, 12vw, 3.5rem);
      letter-spacing: -0.05em;
    }

    #rk-curve-guide .rk-curve-hero-lead {
      margin-top: 23px;
    }

    #rk-curve-guide .rk-curve-hero-tag {
      min-height: 38px;
      padding: 7px 12px;
      font-size: 0.75rem;
    }

    #rk-curve-guide .rk-curve-byline {
      display: grid;
      gap: 7px;
    }

    #rk-curve-guide .rk-curve-hero-metric {
      padding: 19px;
    }

    #rk-curve-guide .rk-curve-shortcuts {
      padding: 17px;
      border-radius: 18px;
    }

    #rk-curve-guide .rk-curve-shortcuts a {
      font-size: 0.72rem;
    }

    #rk-curve-guide .rk-curve-section,
    #rk-curve-guide .rk-curve-author {
      padding: 28px 19px;
    }

    #rk-curve-guide .rk-curve-answer,
    #rk-curve-guide .rk-curve-card,
    #rk-curve-guide .rk-curve-flow-step {
      padding: 20px;
    }

    #rk-curve-guide .rk-curve-tool-head,
    #rk-curve-guide .rk-curve-tool-body {
      padding: 22px 17px;
    }

    #rk-curve-guide .rk-curve-segmented {
      grid-template-columns: 1fr;
    }

    #rk-curve-guide .rk-curve-state-summary {
      grid-template-columns: 1fr;
    }

    #rk-curve-guide .rk-curve-state-dot {
      width: 44px;
      height: 44px;
    }

    #rk-curve-guide .rk-curve-step {
      padding: 66px 19px 19px;
    }

    #rk-curve-guide .rk-curve-step::before {
      top: 19px;
      left: 19px;
    }

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

    #rk-curve-guide .rk-curve-table-row > div {
      grid-template-columns: 1fr;
      gap: 4px;
    }

    #rk-curve-guide .rk-curve-loop-row,
    #rk-curve-guide .rk-curve-curve-row {
      grid-template-columns: 1fr;
      padding: 13px;
      border: 1px solid var(--rk-curve-line);
      border-radius: 14px;
      background: #ffffff;
    }

    #rk-curve-guide .rk-curve-remove-loop {
      width: 100%;
    }

    #rk-curve-guide .rk-curve-chart-wrap svg {
      min-height: 260px;
    }

    #rk-curve-guide .rk-curve-break-row {
      grid-template-columns: 1fr auto;
    }

    #rk-curve-guide .rk-curve-break-track {
      grid-column: 1 / -1;
      grid-row: 2;
    }
  }

  @media print {
    #rk-curve-guide .rk-curve-shortcuts,
    #rk-curve-guide .rk-curve-control-grid {
      display: none !important;
    }

    #rk-curve-guide .rk-curve-section,
    #rk-curve-guide .rk-curve-author,
    #rk-curve-guide .rk-curve-hero {
      break-inside: avoid;
      box-shadow: none;
    }

    #rk-curve-guide .rk-curve-faq details {
      break-inside: avoid;
    }

    #rk-curve-guide .rk-curve-faq details:not([open]) .rk-curve-faq-answer {
      display: block;
    }
  }

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

  #rk-curve-guide .rk-curve-field input.rk-curve-range {
    width: 100%;
    min-height: 10px;
    height: 10px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #dce8ed;
    accent-color: var(--rk-curve-orange);
    cursor: pointer;
  }

  #rk-curve-guide .rk-curve-field input.rk-curve-range:focus {
    outline: 3px solid rgba(95, 222, 240, 0.34);
    outline-offset: 5px;
  }

  #rk-curve-guide .rk-curve-control-label {
    display: block;
    margin: 22px 0 10px;
    color: var(--rk-curve-navy);
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-curve-guide .rk-curve-limit-line {
    stroke: #ad6f13;
    stroke-width: 2;
    stroke-dasharray: 7 6;
  }

  #rk-curve-guide .rk-curve-limit-label {
    fill: #8a5914;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 11px;
    font-weight: 800;
  }

  #rk-curve-guide .rk-curve-current-guide {
    stroke: #8da0aa;
    stroke-width: 1.5;
    stroke-dasharray: 3 5;
  }

  #rk-curve-guide .rk-curve-section-dark .rk-curve-card {
    border-color: #cbd9e1;
    background: #ffffff;
    color: #173246;
  }

  #rk-curve-guide .rk-curve-section-dark .rk-curve-card h3 {
    color: #123247;
  }

  #rk-curve-guide .rk-curve-section-dark .rk-curve-card p,
  #rk-curve-guide .rk-curve-section-dark .rk-curve-card li {
    color: #3e5869;
  }

  #rk-curve-guide .rk-curve-section-dark .rk-curve-card a {
    color: #087a9f;
  }

  #rk-curve-guide button:focus-visible,
  #rk-curve-guide a:focus-visible,
  #rk-curve-guide summary:focus-visible {
    outline: 3px solid var(--rk-curve-cyan);
    outline-offset: 3px;
  }

  @media (max-width: 520px) {
    #rk-curve-guide .rk-curve-chart-card {
      padding: 12px;
    }

    #rk-curve-guide .rk-curve-chart-wrap svg {
      min-height: 235px;
    }

    #rk-curve-guide .rk-curve-graphic-controls button {
      width: 100%;
    }
  }

</style>

<article id="rk-curve-guide" aria-labelledby="rk-curve-visual-title">
  <div class="rk-curve-shell">
    <header class="rk-curve-hero">
      <div class="rk-curve-hero-inner">
        <span class="rk-curve-kicker">Sterowanie pogodowe · bez uniwersalnych nastaw</span>
        <div class="rk-curve-hero-title" id="rk-curve-visual-title">Dwa punkty zamiast jednej <span>„magicznej” liczby</span></div>
        <p class="rk-curve-hero-lead">Krzywa grzewcza łączy temperaturę zewnętrzną z wymaganą temperaturą wody, ale jej numer nie jest uniwersalny. Punkt obliczeniowy wynika z budynku i podłogi, sposób wprowadzania danych — ze sterownika, a końcowa korekta — z obserwacji stabilnie pracującej instalacji.</p>

        <div class="rk-curve-hero-tags" aria-label="Zakres poradnika">
          <span class="rk-curve-hero-tag">nachylenie i przesunięcie</span>
          <span class="rk-curve-hero-tag">model dwóch punktów</span>
          <span class="rk-curve-hero-tag">temperatura zasilania</span>
          <span class="rk-curve-hero-tag">pompa ciepła i kocioł</span>
          <span class="rk-curve-hero-tag">strojenie bez zgadywania</span>
        </div>

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

        <div class="rk-curve-hero-metrics" aria-label="Trzy warstwy poprawnej krzywej grzewczej">
          <div class="rk-curve-hero-metric">
            <b>Punkt projektowy</b>
            <span>OZC, powierzchnia czynna, konstrukcja podłogi i okładzina wyznaczają wymagany parametr w warunkach obliczeniowych.</span>
          </div>
          <div class="rk-curve-hero-metric">
            <b>Algorytm sterownika</b>
            <span>Nachylenie 0,3, punkty charakterystyki albo temperatura bazowa mogą oznaczać różne modele zależnie od producenta.</span>
          </div>
          <div class="rk-curve-hero-metric">
            <b>Strojenie w budynku</b>
            <span>Korektę wykonuje się małymi krokami po sprawdzeniu przepływów, czujników, harmonogramu i wpływu regulatorów pokojowych.</span>
          </div>
        </div>
      </div>
    </header>

    <nav class="rk-curve-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-curve-shortcuts-label">Na skróty</span>
      <a href="#rk-curve-answer">Czym jest krzywa?</a>
      <a href="#rk-curve-chart">Wykres interaktywny</a>
      <a href="#rk-curve-parameters">Parametry krzywej</a>
      <a href="#rk-curve-factors">Temperatura zasilania</a>
      <a href="#rk-curve-design">Punkt obliczeniowy</a>
      <a href="#rk-curve-sources">Pompa ciepła i kocioł</a>
      <a href="#rk-curve-graphic">Grafika edukacyjna</a>
      <a href="#rk-curve-inertia">Bezwładność i czujnik</a>
      <a href="#rk-curve-room-control">Termostat i strefy</a>
      <a href="#rk-curve-tuning">Strojenie krok po kroku</a>
      <a href="#rk-curve-symptoms">Korekta objawów</a>
      <a href="#rk-curve-hydraulics">Hydraulika</a>
      <a href="#rk-curve-flooring">Okładzina podłogi</a>
      <a href="#rk-curve-efficiency">Rachunki i sprawność</a>
      <a href="#rk-curve-errors">Najczęstsze błędy</a>
      <a href="#rk-curve-checklist">Lista kontrolna</a>
      <a href="#rk-curve-conclusions">Wnioski</a>
      <a href="#rk-curve-references">Źródła</a>
      <a href="#rk-curve-faq">FAQ</a>
      <a href="#rk-curve-author">Autor</a>
    </nav>

    <section class="rk-curve-section" id="rk-curve-answer">
      <span class="rk-curve-eyebrow">Odpowiedź w 30 sekund</span>
      <h2 class="rk-curve-section-title">Czym jest krzywa grzewcza w ogrzewaniu podłogowym?</h2>
      <div class="rk-curve-answer">
        <span class="rk-curve-answer-label">Najkrótsza poprawna definicja</span>
        <p><strong>Krzywa grzewcza określa zadaną temperaturę zasilania obiegu w zależności od temperatury zewnętrznej. Im zimniej na zewnątrz, tym większej mocy potrzebuje budynek i zazwyczaj tym wyższa jest wymagana temperatura wody. Właściwa charakterystyka ma zapewnić komfort bez niepotrzebnego przegrzewania wody.</strong></p>
      </div>

      <div class="rk-curve-grid-4">
        <article class="rk-curve-card">
          <span class="rk-curve-card-number">1</span>
          <h3>Oś pozioma</h3>
          <p>Pokazuje temperaturę zewnętrzną. W lewo znajdują się warunki coraz chłodniejsze, w prawo — łagodniejsze.</p>
        </article>
        <article class="rk-curve-card">
          <span class="rk-curve-card-number">2</span>
          <h3>Oś pionowa</h3>
          <p>Pokazuje zadaną temperaturę zasilania obiegu. Nie jest to automatycznie temperatura powierzchni podłogi ani pokoju.</p>
        </article>
        <article class="rk-curve-card">
          <span class="rk-curve-card-number">3</span>
          <h3>Linia lub krzywa</h3>
          <p>Łączy warunki zewnętrzne z parametrem wody. Jej przebieg zależy od modelu matematycznego zastosowanego w regulatorze.</p>
        </article>
        <article class="rk-curve-card">
          <span class="rk-curve-card-number">4</span>
          <h3>Ograniczenia</h3>
          <p>Minimum, maksimum, granica grzania, wpływ pomieszczenia i harmonogram mogą zmienić wynik samej charakterystyki.</p>
        </article>
      </div>

      <p>Krzywa jest podstawowym elementem <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowania pogodowego ogrzewaniem podłogowym</a>. Czujnik zewnętrzny nie przewiduje przyszłej pogody. Pozwala jednak regulatorowi zmieniać temperaturę wody, zanim masywna podłoga i powietrze w domu zdążą w pełni odpowiedzieć na zmianę strat ciepła.</p>

      <div class="rk-curve-callout"><strong>Krzywa nie określa bezpośrednio mocy sprężarki, przepływu pętli ani temperatury każdego pokoju.</strong> Źródło ciepła, pompa obiegowa, rozdzielacz, podłoga i regulatory pokojowe tworzą kolejne warstwy jednego systemu.</div>
    </section>

    <section class="rk-curve-section rk-curve-section-soft" id="rk-curve-chart">
      <span class="rk-curve-eyebrow">Model dwóch punktów i porównanie korekt</span>
      <h2 class="rk-curve-section-title">Interaktywny wykres krzywej grzewczej</h2>
      <p class="rk-curve-lead">Wprowadź dwa punkty odniesienia, ograniczenia zasilania i granicę grzania. Następnie wybierz temperaturę zewnętrzną lub porównaj zmianę nachylenia z równoległym przesunięciem całej linii.</p>

      <div class="rk-curve-tool" id="rk-curve-chart-tool">
        <div class="rk-curve-tool-head">
          <span class="rk-curve-eyebrow">Edukacyjny model liniowy</span>
          <h3>Zobacz, jak dwa punkty budują charakterystykę</h3>
          <p>Narzędzie nie przelicza wartości „slope” konkretnej marki. Pokazuje geometrię krzywej oraz wynik modelu dwupunktowego, który można porównać z dokumentacją własnego regulatora.</p>
        </div>

        <div class="rk-curve-tool-body">
          <div class="rk-curve-field-grid rk-curve-field-grid-3">
            <div class="rk-curve-field">
              <label for="rk-curve-cold-outdoor">Zimny punkt — temperatura zewnętrzna</label>
              <input id="rk-curve-cold-outdoor" type="number" min="-30" max="0" step="1" value="-20" inputmode="decimal">
              <span class="rk-curve-field-help">Najczęściej temperatura obliczeniowa przyjęta w projekcie, nie wartość wybrana z pamięci.</span>
            </div>
            <div class="rk-curve-field">
              <label for="rk-curve-cold-supply">Zimny punkt — temperatura zasilania</label>
              <input id="rk-curve-cold-supply" type="number" min="20" max="55" step="0.5" value="35" inputmode="decimal">
              <span class="rk-curve-field-help">Projektowy parametr obiegu przy temperaturze obliczeniowej.</span>
            </div>
            <div class="rk-curve-field">
              <label for="rk-curve-mild-outdoor">Łagodny punkt — temperatura zewnętrzna</label>
              <input id="rk-curve-mild-outdoor" type="number" min="1" max="18" step="1" value="10" inputmode="decimal">
              <span class="rk-curve-field-help">Punkt opisujący pracę przy niewielkim zapotrzebowaniu na ciepło.</span>
            </div>
            <div class="rk-curve-field">
              <label for="rk-curve-mild-supply">Łagodny punkt — temperatura zasilania</label>
              <input id="rk-curve-mild-supply" type="number" min="18" max="40" step="0.5" value="24" inputmode="decimal">
              <span class="rk-curve-field-help">Wartość odniesienia, nie uniwersalna nastawa dla każdego domu.</span>
            </div>
            <div class="rk-curve-field">
              <label for="rk-curve-min-supply">Minimalna temperatura zasilania</label>
              <input id="rk-curve-min-supply" type="number" min="15" max="35" step="0.5" value="22" inputmode="decimal">
              <span class="rk-curve-field-help">Dolne ograniczenie tylko wtedy, gdy regulator i instalacja go wymagają.</span>
            </div>
            <div class="rk-curve-field">
              <label for="rk-curve-max-supply">Maksymalna temperatura zasilania</label>
              <input id="rk-curve-max-supply" type="number" min="25" max="60" step="0.5" value="40" inputmode="decimal">
              <span class="rk-curve-field-help">Ograniczenie powinno respektować projekt, podłogę, okładzinę i źródło.</span>
            </div>
          </div>

          <div class="rk-curve-field-grid">
            <div class="rk-curve-field">
              <label for="rk-curve-heating-limit">Granica wyłączenia ogrzewania</label>
              <input id="rk-curve-heating-limit" type="number" min="5" max="22" step="0.5" value="16" inputmode="decimal">
              <span class="rk-curve-field-help">Powyżej tej temperatury model oznacza obieg jako wyłączony. Rzeczywista logika zależy od sterownika.</span>
            </div>
            <div class="rk-curve-field">
              <label for="rk-curve-current-outdoor">Analizowana temperatura zewnętrzna: <strong id="rk-curve-current-label">−10°C</strong></label>
              <input class="rk-curve-range" id="rk-curve-current-outdoor" type="range" min="-25" max="20" step="1" value="-10">
              <span class="rk-curve-field-help">Przesuń suwak, aby zobaczyć punkt pracy na wykresie.</span>
            </div>
          </div>

          <span class="rk-curve-control-label">Porównaj z krzywą bazową</span>
          <div class="rk-curve-graphic-controls" role="group" aria-label="Wybierz porównanie zmiany krzywej">
            <button type="button" data-rk-curve-mode="base" aria-pressed="true">Bez porównania</button>
            <button type="button" data-rk-curve-mode="steeper" aria-pressed="false">Większe nachylenie</button>
            <button type="button" data-rk-curve-mode="flatter" aria-pressed="false">Mniejsze nachylenie</button>
            <button type="button" data-rk-curve-mode="up" aria-pressed="false">Przesunięcie +2 K</button>
            <button type="button" data-rk-curve-mode="down" aria-pressed="false">Przesunięcie −2 K</button>
          </div>

          <div class="rk-curve-calc-layout">
            <div class="rk-curve-chart-card">
              <div class="rk-curve-chart-title">Temperatura zasilania w funkcji temperatury zewnętrznej</div>
              <div class="rk-curve-chart-wrap">
                <svg id="rk-curve-svg" viewBox="0 0 800 430" role="img" aria-labelledby="rk-curve-svg-title rk-curve-svg-desc">
                  <title id="rk-curve-svg-title">Interaktywny wykres krzywej grzewczej</title>
                  <desc id="rk-curve-svg-desc">Wykres pokazuje bazową i opcjonalną porównawczą temperaturę zasilania zależną od temperatury zewnętrznej.</desc>
                </svg>
              </div>
              <div class="rk-curve-legend" aria-label="Legenda wykresu">
                <span><i></i>krzywa bazowa</span>
                <span class="is-pump" id="rk-curve-compare-legend"><i></i>krzywa porównawcza</span>
                <span class="is-point"><i></i>aktualny punkt</span>
              </div>
            </div>

            <div class="rk-curve-results" aria-live="polite">
              <div class="rk-curve-result-grid">
                <div class="rk-curve-result"><span>Temperatura zewnętrzna</span><strong id="rk-curve-result-outdoor">−10°C</strong></div>
                <div class="rk-curve-result"><span>Krzywa bazowa — zasilanie</span><strong id="rk-curve-result-base">31,3°C</strong></div>
                <div class="rk-curve-result"><span>Krzywa porównawcza</span><strong id="rk-curve-result-compare">—</strong></div>
                <div class="rk-curve-result"><span>Stan modelu</span><strong id="rk-curve-result-state">Zakres liniowy</strong></div>
              </div>

              <div class="rk-curve-breakdown">
                <span class="rk-curve-breakdown-title">Jak powstał wynik?</span>
                <p id="rk-curve-equation-copy">Model interpoluje temperaturę pomiędzy zimnym i łagodnym punktem, a następnie stosuje ograniczenia minimum, maksimum i granicę grzania.</p>
              </div>
              <div class="rk-curve-status" id="rk-curve-chart-status">Dane tworzą poprawną malejącą charakterystykę: wraz ze wzrostem temperatury zewnętrznej temperatura zasilania spada.</div>
            </div>
          </div>

          <div class="rk-curve-tool-disclaimer"><strong>Granica modelu:</strong> wynik jest edukacyjną interpolacją dwóch punktów. Nie stanowi nastawy konkretnej pompy ciepła lub kotła, nie uwzględnia nieliniowości algorytmu producenta, wpływu pomieszczenia, prognozy pogody, dynamiki budynku ani ograniczeń serwisowych.</div>
        </div>
      </div>
    </section>

    <section class="rk-curve-section" id="rk-curve-parameters">
      <span class="rk-curve-eyebrow">Pięć ustawień, które często są mylone</span>
      <h2 class="rk-curve-section-title">Nachylenie, przesunięcie, minimum, maksimum i granica grzania</h2>
      <p class="rk-curve-lead">Regulator może opisywać charakterystykę liczbą nachylenia, dwoma punktami, temperaturą bazową albo własnym zestawem parametrów. Dlatego przed zmianą ustawień trzeba odczytać instrukcję dokładnego modelu.</p>

      <div class="rk-curve-grid-3">
        <article class="rk-curve-card"><h3>Nachylenie</h3><p>Zmienia różnicę pomiędzy zimną i łagodną częścią charakterystyki. Korekta jest zwykle coraz bardziej widoczna wraz ze spadkiem temperatury zewnętrznej.</p></article>
        <article class="rk-curve-card"><h3>Przesunięcie równoległe</h3><p>Podnosi albo obniża cały przebieg w przybliżeniu o podobną wartość. Nie każdy regulator realizuje offset dokładnie w ten sam sposób.</p></article>
        <article class="rk-curve-card"><h3>Temperatura minimalna</h3><p>Ogranicza obniżanie parametru wody. Zbyt wysoka może powodować przegrzewanie w łagodnych warunkach i częste wyłączanie źródła.</p></article>
        <article class="rk-curve-card"><h3>Temperatura maksymalna</h3><p>Chroni układ przed przekroczeniem przyjętego parametru, ale nie zastępuje prawidłowego projektu i zabezpieczeń urządzenia.</p></article>
        <article class="rk-curve-card"><h3>Granica grzania</h3><p>Określa temperaturę zewnętrzną, powyżej której ogrzewanie może zostać zatrzymane. Należy uwzględnić bezwładność i zyski budynku.</p></article>
        <article class="rk-curve-card"><h3>Wpływ temperatury pokojowej</h3><p>W wybranych systemach pomiar wewnętrzny koryguje wynik pogodowy. Jego waga, ograniczenia i sposób działania są właściwością sterownika.</p></article>
      </div>

      <div class="rk-curve-warning"><strong>„Krzywa 0,3” nie jest samodzielną specyfikacją.</strong> Bez nazwy urządzenia, trybu regulacji, temperatury projektowej, punktu bazowego i ograniczeń nie da się stwierdzić, jaką temperaturę zasilania regulator rzeczywiście wyznaczy.</div>
    </section>

    <section class="rk-curve-section rk-curve-section-soft" id="rk-curve-factors">
      <span class="rk-curve-eyebrow">Od strat budynku do emisji podłogi</span>
      <h2 class="rk-curve-section-title">Od czego zależy temperatura zasilania podłogówki?</h2>
      <p class="rk-curve-lead">Metraż nie wystarcza. Dwa domy o tej samej powierzchni mogą potrzebować innej mocy i innej temperatury wody, ponieważ różnią się izolacją, wentylacją, przeszkleniami, geometrią pętli oraz wykończeniem podłogi.</p>

      <div class="rk-curve-spec-grid">
        <div class="rk-curve-spec"><span class="rk-curve-spec-mark">1</span><div><strong>Obciążenie cieplne pomieszczeń</strong><span>Wynik <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego OZC</a> określa moc wymaganą przy przyjętych warunkach wewnętrznych i zewnętrznych.</span></div></div>
        <div class="rk-curve-spec"><span class="rk-curve-spec-mark">2</span><div><strong>Rzeczywista powierzchnia czynna</strong><span>Stałe zabudowy i obszary bez rur ograniczają powierzchnię, przez którą można przekazać ciepło do pomieszczenia.</span></div></div>
        <div class="rk-curve-spec"><span class="rk-curve-spec-mark">3</span><div><strong>Rozstaw i średnica rur</strong><span><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">Rozstaw rur 10 czy 15 cm</a> wpływa na relację pomiędzy temperaturą czynnika, mocą i równomiernością powierzchni.</span></div></div>
        <div class="rk-curve-spec"><span class="rk-curve-spec-mark">4</span><div><strong>Konstrukcja warstw</strong><span>Położenie rur, rodzaj jastrychu, grubości oraz przewodzenie materiałów zmieniają opór pomiędzy wodą i pomieszczeniem.</span></div></div>
        <div class="rk-curve-spec"><span class="rk-curve-spec-mark">5</span><div><strong>Okładzina podłogowa</strong><span>Płytki, winyl, laminat i drewno mają inne opory oraz ograniczenia temperaturowe. Liczy się kompletny układ wykończenia.</span></div></div>
        <div class="rk-curve-spec"><span class="rk-curve-spec-mark">6</span><div><strong>Przepływ i projektowe ΔT</strong><span>Moc jest przenoszona przez wodę. <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">Różnica temperatur zasilania i powrotu</a> oraz przepływy muszą być ze sobą zgodne.</span></div></div>
      </div>

      <div class="rk-curve-callout"><strong>Temperatury zasilania nie oblicza się przez podzielenie całkowitej mocy przez metraż i dodanie jednego oporu okładziny.</strong> Potrzebny jest model emisji systemu uwzględniający konstrukcję, temperaturę średnią czynnika, powierzchnię, strumień ciepła i ograniczenia temperatury podłogi.</div>
    </section>

    <section class="rk-curve-section" id="rk-curve-design">
      <span class="rk-curve-eyebrow">Punkt, który powinien istnieć przed pierwszym uruchomieniem</span>
      <h2 class="rk-curve-section-title">Jak projekt wyznacza punkt obliczeniowy krzywej?</h2>
      <p class="rk-curve-lead">Projektowy punkt łączy temperaturę zewnętrzną przyjętą dla lokalizacji z temperaturą zasilania wystarczającą do pokrycia obciążeń wszystkich pomieszczeń. Najtrudniejsze pomieszczenie może wyznaczyć wspólny parametr obiegu, a pozostałe pętle są równoważone przepływem i geometrią.</p>

      <div class="rk-curve-chain" aria-label="Kolejność wyznaczania punktu obliczeniowego">
        <div class="rk-curve-chain-item"><strong>Warunki obliczeniowe</strong><span>lokalizacja i temperatura wewnętrzna</span></div>
        <div class="rk-curve-chain-item"><strong>OZC pomieszczeń</strong><span>wymagana moc</span></div>
        <div class="rk-curve-chain-item"><strong>Projekt podłogi</strong><span>powierzchnia, rozstaw i okładzina</span></div>
        <div class="rk-curve-chain-item"><strong>Temperatura i przepływ</strong><span>spójny punkt pracy</span></div>
        <div class="rk-curve-chain-item"><strong>Nastawa regulatora</strong><span>odwzorowanie według instrukcji</span></div>
      </div>

      <div class="rk-curve-grid-3">
        <article class="rk-curve-card"><h3>Temperatura obliczeniowa nie jest wszędzie taka sama</h3><p>Wynika z przyjętej metody, lokalizacji i dokumentacji projektu. Wartość −20°C może być właściwym założeniem dla konkretnego zadania, ale nie jest automatyczną temperaturą całej Polski.</p></article>
        <article class="rk-curve-card"><h3>Najwyższa temperatura nie jest celem</h3><p>Projekt powinien zapewnić wymaganą moc przy możliwie niskim, lecz wystarczającym parametrze oraz z zachowaniem dopuszczalnej temperatury powierzchni i materiałów.</p></article>
        <article class="rk-curve-card"><h3>Strojenie nie zastępuje obliczeń</h3><p>Jeżeli podłoga nie ma wymaganej powierzchni lub mocy, podnoszenie krzywej może przekroczyć ograniczenia, a nadal nie rozwiązać problemu komfortu.</p></article>
      </div>

      <p>Szerszą kolejność obliczeń pokazuje poradnik o <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekcie ogrzewania podłogowego z pompą ciepła</a>, natomiast dobór geometrii wyjaśnia materiał o <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">planowaniu pętli grzewczych</a>.</p>

      <div class="rk-curve-cta">
        <div class="rk-curve-cta-title">Sterownik może ustawić tylko tak niską temperaturę, na jaką pozwala zaprojektowana podłoga</div>
        <p>Obciążenia pomieszczeń, powierzchnie czynne, rozstaw rur, opory okładzin, długości pętli i przepływy określają temperaturę wody potrzebną w warunkach obliczeniowych. Dopiero ten punkt pozwala świadomie ustawić i później korygować krzywą grzewczą.</p>
        <a class="rk-curve-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki z obliczoną temperaturą zasilania</a>
        <small class="rk-curve-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-curve-section rk-curve-section-dark" id="rk-curve-sources">
      <span class="rk-curve-eyebrow">Ta sama fizyka, inna logika urządzenia</span>
      <h2 class="rk-curve-section-title">Krzywa grzewcza z pompą ciepła i kotłem — co się różni?</h2>
      <p class="rk-curve-lead">Oba źródła mogą korzystać z regulacji pogodowej, lecz różnią się zakresem modulacji, sprawnością przy określonych temperaturach, minimalnym przepływem, pojemnością wodną i reakcją na mały odbiór. Krzywa musi być częścią całej konfiguracji, a nie odizolowanym suwakiem.</p>

      <div class="rk-curve-grid-2">
        <article class="rk-curve-card">
          <h3>Pompa ciepła</h3>
          <ul>
            <li>temperatura zasilania wpływa na warunki pracy i osiąganą sprawność,</li>
            <li>trzeba respektować wymagania minimalnego przepływu i objętości wody,</li>
            <li>ważna jest minimalna moc dostępna w aktualnych warunkach,</li>
            <li>zamknięcie stref może zmniejszyć odbiór i skrócić cykle pracy,</li>
            <li>odszranianie i zabezpieczenia zależą od dokładnego modelu.</li>
          </ul>
        </article>
        <article class="rk-curve-card">
          <h3>Kocioł gazowy</h3>
          <ul>
            <li>regulator może sterować temperaturą wody i mocą palnika,</li>
            <li>znaczenie ma zakres modulacji oraz hydraulika obiegu,</li>
            <li>zbyt mały odbiór również może powodować częste cykle,</li>
            <li>układ mieszający może mieć własną, oddzielną charakterystykę,</li>
            <li>logika styku on/off różni się od komunikacji cyfrowej.</li>
          </ul>
        </article>
      </div>

      <div class="rk-curve-callout"><strong>Nie przepisuj liczby nachylenia pomiędzy urządzeniami.</strong> Nawet przy tym samym budynku dwa sterowniki mogą wymagać innego sposobu wprowadzenia punktów, poziomu krzywej, temperatury bazowej lub wpływu pokojowego. Punktem wspólnym są wymagane temperatury wody, nie nazwa parametru w menu.</div>

      <p>Przy pompie ciepła warto osobno przeanalizować <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">zasadę doboru urządzenia</a>, a przy układach rozdzielonych także rzeczywistą funkcję <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufora ciepła w podłogówce</a>. Bufor nie jest automatycznie wymagany tylko dlatego, że instalacja ma pogodówkę lub termostaty.</p>
    </section>

    <section class="rk-curve-section" id="rk-curve-graphic">
      <span class="rk-curve-eyebrow">Interaktywna grafika edukacyjna</span>
      <h2 class="rk-curve-section-title">Jak czujnik, regulator, źródło i podłoga reagują na pogodę?</h2>
      <p class="rk-curve-lead">Wybierz scenariusz. Sześć niezależnych modułów pokaże, który element mierzy temperaturę, który wyznacza parametr wody, który dostarcza energię oraz dlaczego pomieszczenie nie reaguje w tej samej chwili co elektronika.</p>

      <div class="rk-curve-tool" id="rk-curve-system-tool">
        <div class="rk-curve-tool-head">
          <span class="rk-curve-eyebrow">Od elewacji do temperatury pokoju</span>
          <h3>Prześledź reakcję całego układu</h3>
          <p>Moduły opisują zależności, nie uniwersalne czasy ani parametry. Dokładne sekwencje wynikają z konstrukcji budynku i dokumentacji urządzeń.</p>
        </div>
        <div class="rk-curve-tool-body">
          <div class="rk-curve-graphic-controls" role="group" aria-label="Wybierz scenariusz pracy regulacji pogodowej">
            <button type="button" data-rk-curve-system="colder" aria-pressed="true">Na zewnątrz robi się zimniej</button>
            <button type="button" data-rk-curve-system="sun" aria-pressed="false">Słońce ogrzewa salon</button>
            <button type="button" data-rk-curve-system="high" aria-pressed="false">Krzywa jest za wysoka</button>
            <button type="button" data-rk-curve-system="zones" aria-pressed="false">Większość pętli się zamyka</button>
          </div>

          <div class="rk-curve-hydraulic-grid" aria-live="polite">
            <article class="rk-curve-hydraulic-card is-active" data-rk-curve-component="sensor">
              <span class="rk-curve-hydraulic-number">1</span><h3>Czujnik zewnętrzny</h3>
              <span class="rk-curve-hydraulic-value" data-rk-curve-component-value="">Rejestruje spadek temperatury</span>
              <p data-rk-curve-component-copy="">Mierzy warunki przy elewacji. Nie mierzy strat budynku ani temperatury posadzki.</p>
            </article>
            <article class="rk-curve-hydraulic-card is-active" data-rk-curve-component="controller">
              <span class="rk-curve-hydraulic-number">2</span><h3>Regulator pogodowy</h3>
              <span class="rk-curve-hydraulic-value" data-rk-curve-component-value="">Wyznacza wyższą wartość zadaną</span>
              <p data-rk-curve-component-copy="">Korzysta z krzywej, ograniczeń i dodatkowych korekt. Nie naprawia błędnej hydrauliki.</p>
            </article>
            <article class="rk-curve-hydraulic-card is-active" data-rk-curve-component="source">
              <span class="rk-curve-hydraulic-number">3</span><h3>Źródło ciepła</h3>
              <span class="rk-curve-hydraulic-value" data-rk-curve-component-value="">Podąża do nowej temperatury</span>
              <p data-rk-curve-component-copy="">Moduluje lub cyklicznie pracuje według własnej automatyki, dostępnej mocy i zabezpieczeń.</p>
            </article>
            <article class="rk-curve-hydraulic-card is-active" data-rk-curve-component="flow">
              <span class="rk-curve-hydraulic-number">4</span><h3>Pompa i przepływy</h3>
              <span class="rk-curve-hydraulic-value" data-rk-curve-component-value="">Transportują energię</span>
              <p data-rk-curve-component-copy="">Rozdział wody zależy od pompy, oporów i nastaw pętli, a nie od samej linii na wykresie.</p>
            </article>
            <article class="rk-curve-hydraulic-card is-active" data-rk-curve-component="floor">
              <span class="rk-curve-hydraulic-number">5</span><h3>Podłoga</h3>
              <span class="rk-curve-hydraulic-value" data-rk-curve-component-value="">Zmienia emisję z opóźnieniem</span>
              <p data-rk-curve-component-copy="">Woda ogrzewa konstrukcję, która akumuluje energię i przekazuje ją do pomieszczenia.</p>
            </article>
            <article class="rk-curve-hydraulic-card is-active" data-rk-curve-component="room">
              <span class="rk-curve-hydraulic-number">6</span><h3>Pomieszczenie</h3>
              <span class="rk-curve-hydraulic-value" data-rk-curve-component-value="">Dąży do nowej równowagi</span>
              <p data-rk-curve-component-copy="">Temperatura zależy jednocześnie od podłogi, strat, wentylacji, słońca i zysków wewnętrznych.</p>
            </article>
          </div>

          <div class="rk-curve-graphic-result" id="rk-curve-system-result" role="status" aria-live="polite">
            <strong>Spadek temperatury zewnętrznej zmienia wartość zadaną wody, a nie temperaturę pokoju bezpośrednio.</strong>
            <p>Efekt przechodzi przez źródło, przepływ i akumulującą podłogę. Dlatego regulator może odpowiedzieć natychmiast, lecz nowa równowaga cieplna wymaga czasu.</p>
          </div>
          <div class="rk-curve-tool-disclaimer"><strong>Nie jest to symulator czasowy.</strong> Grafika nie podaje liczby godzin, procentu modulacji ani temperatury wynikowej, ponieważ te wartości wymagają danych konkretnego budynku i urządzeń.</div>
        </div>
      </div>
    </section>

    <section class="rk-curve-section rk-curve-section-soft" id="rk-curve-inertia">
      <span class="rk-curve-eyebrow">Elektronika reaguje szybciej niż budynek</span>
      <h2 class="rk-curve-section-title">Bezwładność podłogówki i lokalizacja czujnika zewnętrznego</h2>
      <p class="rk-curve-lead">Czas reakcji nie jest jedną stałą. Zależy od rodzaju systemu, masy i grubości warstw, położenia rur, okładziny, temperatury wody, mocy chwilowej, izolacji oraz zysków w pomieszczeniu.</p>

      <div class="rk-curve-grid-2">
        <article class="rk-curve-card">
          <h3>Co oznacza bezwładność?</h3>
          <p>Po podniesieniu temperatury zasilania część energii najpierw zwiększa temperaturę konstrukcji. Po obniżeniu lub zamknięciu przepływu posadzka nadal oddaje wcześniej zgromadzone ciepło. Dlatego nie należy oceniać korekty po kilku godzinach.</p>
          <p>Szersze wyjaśnienie znajduje się w poradniku o <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej ogrzewania podłogowego</a>.</p>
        </article>
        <article class="rk-curve-card">
          <h3>Gdzie zamontować czujnik?</h3>
          <p>Miejsce należy wybrać według instrukcji producenta: poza bezpośrednim słońcem, wyrzutniami, nawiewami, otwieranymi oknami i lokalnymi źródłami ciepła. Elewacja i wysokość montażu muszą odpowiadać wymaganiom dokładnego urządzenia.</p>
          <p>Nie wpisujemy uniwersalnej ściany ani wysokości, ponieważ obudowa, osłona radiacyjna i zalecenia montażowe różnią się między systemami.</p>
        </article>
      </div>

      <div class="rk-curve-callout"><strong>Do strojenia potrzebny jest stabilny okres, nie sztywne „48 godzin”.</strong> Po zmianie trzeba poczekać wystarczająco długo, aby odróżnić reakcję budynku od krótkiej zmiany pogody, słońca, wietrzenia albo harmonogramu. Czas obserwacji dobiera się do bezwładności i warunków.</div>
    </section>

    <section class="rk-curve-section" id="rk-curve-room-control">
      <span class="rk-curve-eyebrow">Regulacja nadrzędna i lokalne ograniczenie</span>
      <h2 class="rk-curve-section-title">Krzywa grzewcza a termostat pokojowy i sterowanie strefowe</h2>
      <p class="rk-curve-lead">Pogodówka ustala temperaturę wody dla obiegu. Termostat pokojowy może korygować wartość zadaną, zgłaszać zapotrzebowanie albo zamykać przypisaną strefę — zależnie od systemu. Te funkcje trzeba rozdzielić.</p>

      <div class="rk-curve-compare-table" role="table" aria-label="Porównanie regulacji pogodowej i pokojowej">
        <div class="rk-curve-table-row rk-curve-table-head" role="row"><div role="columnheader">Warstwa</div><div role="columnheader">Co kontroluje</div><div role="columnheader">Czego nie zastępuje</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Warstwa" role="cell">Regulator pogodowy</div><div data-label="Kontroluje" role="cell">Wyznacza parametr zasilania w zależności od temperatury zewnętrznej i dodatkowych ustawień.</div><div data-label="Nie zastępuje" role="cell">Projektowych przepływów, równoważenia pętli i mocy powierzchni grzewczej.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Warstwa" role="cell">Wpływ pokojowy</div><div data-label="Kontroluje" role="cell">Może przesuwać wartość zadaną obiegu na podstawie reprezentatywnej temperatury wewnętrznej.</div><div data-label="Nie zastępuje" role="cell">Poprawnej lokalizacji czujnika oraz podstawowej charakterystyki pogodowej.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Warstwa" role="cell">Termostat strefowy</div><div data-label="Kontroluje" role="cell">Otwiera albo zamyka jeden lub kilka zaworów przypisanych do strefy.</div><div data-label="Nie zastępuje" role="cell">Minimalnego przepływu źródła, nastaw pompy i kontroli temperatury wody.</div></div>
      </div>

      <p>Przed strojeniem warto ustalić rolę <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatu w ogrzewaniu podłogowym</a> i przeczytać, kiedy <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe podłogówki</a> pomaga, a kiedy zmienia warunki hydrauliczne. Na czas testów nie należy mechanicznie zdejmować siłowników ani wymuszać otwarcia bez sprawdzenia instrukcji i bezpiecznego trybu urządzeń.</p>
    </section>

    <section class="rk-curve-section rk-curve-section-soft" id="rk-curve-tuning">
      <span class="rk-curve-eyebrow">Jedna kontrolowana zmiana naraz</span>
      <h2 class="rk-curve-section-title">Jak ustawić krzywą grzewczą krok po kroku?</h2>
      <p class="rk-curve-lead">Celem nie jest najniższy numer w menu. Celem jest najniższa charakterystyka, która przy projektowych przepływach i dopuszczalnych temperaturach zapewnia komfort w całym wymaganym zakresie pogody.</p>

      <div class="rk-curve-steps">
        <article class="rk-curve-step"><h3>Zapisz stan początkowy</h3><p>Zanotuj tryb pracy, punkty lub nachylenie, przesunięcie, minimum, maksimum, granicę grzania, wpływ pokojowy, harmonogram i ustawienia pomp.</p></article>
        <article class="rk-curve-step"><h3>Sprawdź dokumentację sterownika</h3><p>Ustal, co dokładnie oznaczają parametry, której strefy lub obiegu dotyczą i czy urządzenie używa linii, krzywej nieliniowej albo dwóch punktów.</p></article>
        <article class="rk-curve-step"><h3>Potwierdź przepływy projektowe</h3><p>Otwórz wymagane obiegi zgodnie z bezpieczną procedurą i sprawdź <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">nastawy rotametrów</a>. Nie stroi się krzywej na niezrównoważonym rozdzielaczu.</p></article>
        <article class="rk-curve-step"><h3>Usuń zakłócające harmonogramy</h3><p>Na czas obserwacji utrzymuj możliwie stałe wymagania. Zanotuj słońce, kominek, intensywne gotowanie, długie wietrzenie i inne zyski.</p></article>
        <article class="rk-curve-step"><h3>Ustaw punkt startowy</h3><p>Przenieś do sterownika parametry wynikające z projektu oraz instrukcji. Gdy brakuje projektu, użyj ostrożnej wartości zalecanej przez producenta jako punktu do dalszej weryfikacji, nie jako wyniku końcowego.</p></article>
        <article class="rk-curve-step"><h3>Obserwuj temperaturę reprezentatywną</h3><p>Mierz w pomieszczeniu, które nie jest chwilowo dogrzewane słońcem lub urządzeniami i którego pętla ma potwierdzony przepływ.</p></article>
        <article class="rk-curve-step"><h3>Koryguj jeden parametr</h3><p>Zmiana jednocześnie nachylenia, offsetu, harmonogramu i przepływu uniemożliwia ustalenie, która korekta zadziałała.</p></article>
        <article class="rk-curve-step"><h3>Poczekaj na miarodajny efekt</h3><p>Uwzględnij bezwładność oraz stabilność pogody. Porównuj podobne warunki i prowadź dziennik zamiast zmieniać nastawy każdego ranka.</p></article>
      </div>
    </section>

    <section class="rk-curve-section" id="rk-curve-symptoms">
      <span class="rk-curve-eyebrow">Macierz obserwacji, nie automatyczna diagnoza</span>
      <h2 class="rk-curve-section-title">Jak korygować krzywą na podstawie objawów?</h2>
      <p class="rk-curve-lead">Objaw można powiązać z geometrią charakterystyki dopiero po sprawdzeniu pomiarów, przepływów, harmonogramów i ograniczeń. Tabela pokazuje kierunek analizy, a nie gotową nastawę dla nieznanej instalacji.</p>

      <div class="rk-curve-diagnostic-table" role="table" aria-label="Objawy i możliwe korekty krzywej grzewczej">
        <div class="rk-curve-table-row rk-curve-table-head" role="row"><div role="columnheader">Zaobserwowany stan</div><div role="columnheader">Możliwy związek z krzywą</div><div role="columnheader">Co najpierw wykluczyć</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Stan" role="cell">Za chłodno przy odwilży i mrozie</div><div data-label="Krzywa" role="cell">Cały przebieg może być ustawiony za nisko; do analizy jest przesunięcie lub oba punkty.</div><div data-label="Najpierw wyklucz" role="cell">Błędny pomiar, harmonogram, zamknięte zawory, zbyt małe przepływy i ograniczenie maksymalnej temperatury.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Stan" role="cell">Dobrze przy dodatniej temperaturze, chłodno podczas mrozu</div><div data-label="Krzywa" role="cell">Zimny punkt może być za niski albo charakterystyka za płaska.</div><div data-label="Najpierw wyklucz" role="cell">Niedobór mocy podłogi, ograniczenie źródła, spadek przepływu i nieprawidłowy punkt obliczeniowy.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Stan" role="cell">Dobrze przy odwilży, za ciepło podczas mrozu</div><div data-label="Krzywa" role="cell">Zimny punkt może być za wysoki albo charakterystyka zbyt stroma.</div><div data-label="Najpierw wyklucz" role="cell">Zyski słoneczne, kominek, zmianę sposobu użytkowania i silny wpływ regulatora pokojowego.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Stan" role="cell">Za ciepło głównie w łagodną pogodę</div><div data-label="Krzywa" role="cell">Łagodny punkt, minimum zasilania lub granica grzania mogą być ustawione za wysoko.</div><div data-label="Najpierw wyklucz" role="cell">Zyski wewnętrzne, nieprawidłowy czujnik zewnętrzny i pracę dodatkowego źródła.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Stan" role="cell">Jedne pokoje zimne, inne przegrzane</div><div data-label="Krzywa" role="cell">Jedna wspólna krzywa rzadko jest jedyną przyczyną różnicy pomieszczeń.</div><div data-label="Najpierw wyklucz" role="cell">OZC pomieszczeń, powierzchnie czynne, rozstaw, okładziny, przepływy i pomylone pętle.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Stan" role="cell">Źródło często się włącza i wyłącza</div><div data-label="Krzywa" role="cell">Za wysoka wartość zadana może pogarszać sytuację, ale nie jest jedyną przyczyną.</div><div data-label="Najpierw wyklucz" role="cell">Minimalną moc, przepływ, objętość wody, zamykanie stref, histerezę i logikę sterowania.</div></div>
      </div>

      <div class="rk-curve-note"><strong>Nie koryguj całej instalacji pod jeden chwilowo zimny pokój.</strong> Jeżeli pozostałe pomieszczenia mają poprawną temperaturę, najpierw sprawdź ten obieg i możliwość oddania wymaganej mocy.</div>
    </section>

    <section class="rk-curve-section rk-curve-section-soft" id="rk-curve-hydraulics">
      <span class="rk-curve-eyebrow">Krzywa mówi „jaka temperatura”, hydraulika — „czy energia dotrze”</span>
      <h2 class="rk-curve-section-title">Co sprawdzić w hydraulice przed zmianą ustawień?</h2>
      <p class="rk-curve-lead">Podniesienie temperatury zasilania nie skompensuje dowolnie małego przepływu, zapowietrzenia, zabrudzenia, zablokowanego zaworu lub nieprawidłowej pracy pompy. Najpierw trzeba oddzielić błąd dystrybucji od błędu regulatora.</p>

      <div class="rk-curve-grid-3">
        <article class="rk-curve-card"><h3>Przepływy pętli</h3><p>Porównaj odczyty z projektem przy znanych stanach zaworów. Nie ustawiaj jednakowego przepływu na każdej pętli i nie przyjmuj jednego zakresu dla całego domu.</p></article>
        <article class="rk-curve-card"><h3>Pompa obiegowa</h3><p>Sprawdź punkt pracy, tryb regulacji oraz zachowanie przy zmianie liczby otwartych gałęzi. Pomaga poradnik o <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">doborze pompy obiegowej do podłogówki</a>.</p></article>
        <article class="rk-curve-card"><h3>Stan zaworów</h3><p>Potwierdź wkładki, siłowniki i przypisanie stref. Czas ruchu <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> nie oznacza natychmiastowej zmiany przepływu.</p></article>
        <article class="rk-curve-card"><h3>Temperatury rzeczywiste</h3><p>Odczytaj zasilanie i powrót w ustalonym stanie. Wartość zadana regulatora nie zawsze jest równa chwilowej temperaturze zmierzonej na przewodzie.</p></article>
        <article class="rk-curve-card"><h3>Filtry i powietrze</h3><p>Zabrudzenie, powietrze i niedostateczne ciśnienie statyczne mogą ograniczyć obieg oraz powodować hałas, którego nie naprawi zmiana nachylenia.</p></article>
        <article class="rk-curve-card"><h3>Stan częściowego obciążenia</h3><p>Jeśli termostaty zamykają pętle, sprawdź minimalny czynny przepływ i odbiór energii. Nie zakładaj automatycznie, że potrzebny jest bypass lub bufor.</p></article>
      </div>
    </section>

    <section class="rk-curve-section" id="rk-curve-flooring">
      <span class="rk-curve-eyebrow">Opór okładziny zmienia możliwości emitera</span>
      <h2 class="rk-curve-section-title">Jak okładzina podłogi wpływa na krzywą?</h2>
      <p class="rk-curve-lead">Większy opór pomiędzy jastrychem a pomieszczeniem może wymagać wyższej temperatury średniej czynnika do przekazania tej samej mocy. Nie oznacza to jednak stałej korekty o 2, 3 lub 4 K dla każdej zamiany materiału.</p>

      <div class="rk-curve-grid-3">
        <article class="rk-curve-card"><h3>Płytki i kamień</h3><p>Zwykle tworzą układ o małym oporze, lecz liczą się również klej, grubość, rozstaw i konstrukcja pod spodem.</p></article>
        <article class="rk-curve-card"><h3>Panele i winyl</h3><p>Należy zsumować opór produktu i podkładu oraz sprawdzić dopuszczenie producenta do ogrzewania podłogowego i limit temperatury.</p></article>
        <article class="rk-curve-card"><h3>Drewno</h3><p>Gatunek, konstrukcja deski, grubość, klejenie i wymagania producenta wpływają na opór oraz ograniczenia. Zobacz <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">dobór drewna na ogrzewanie podłogowe</a>.</p></article>
      </div>

      <p>Jeżeli wykończenie zostanie zmienione po wykonaniu projektu, trzeba ponownie sprawdzić wymaganą moc, temperaturę powierzchni oraz parametr wody. Szczegóły opisuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak okładzina wpływa na wydajność podłogówki</a>.</p>

      <div class="rk-curve-warning"><strong>Nie podnoś automatycznie przesunięcia krzywej po zmianie okładziny.</strong> Najpierw sprawdź jej deklarowany opór, dopuszczalną temperaturę, zapas mocy powierzchni i warunki gwarancji.</div>
    </section>

    <section class="rk-curve-section rk-curve-section-soft" id="rk-curve-efficiency">
      <span class="rk-curve-eyebrow">Najniższa skuteczna, nie najniższa możliwa</span>
      <h2 class="rk-curve-section-title">Czy niższa krzywa zawsze oznacza niższe rachunki?</h2>
      <p class="rk-curve-lead">Niższa temperatura wody może poprawić warunki pracy źródła i ograniczyć straty dystrybucji, ale tylko wtedy, gdy instalacja nadal pokrywa zapotrzebowanie. Nie istnieje jeden procent wzrostu COP lub spadku kosztów przypisany każdemu obniżeniu o 1°C.</p>

      <div class="rk-curve-compare-table" role="table" aria-label="Wpływ obniżania krzywej na sprawność i komfort">
        <div class="rk-curve-table-row rk-curve-table-head" role="row"><div role="columnheader">Sytuacja</div><div role="columnheader">Możliwy efekt</div><div role="columnheader">Ryzyko</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Sytuacja" role="cell">Krzywa była zawyżona</div><div data-label="Efekt" role="cell">Mniej przegrzewania, łagodniejsza praca źródła i mniejsza potrzeba zamykania stref.</div><div data-label="Ryzyko" role="cell">Zbyt szybka korekta może zostać błędnie oceniona przed ustabilizowaniem podłogi.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Sytuacja" role="cell">Krzywa jest już blisko minimum</div><div data-label="Efekt" role="cell">Dalsze obniżenie może nie dać istotnej korzyści albo wydłużyć pracę przy podobnym zużyciu.</div><div data-label="Ryzyko" role="cell">Niedogrzanie najtrudniejszego pomieszczenia i uruchomienie droższego źródła pomocniczego.</div></div>
        <div class="rk-curve-table-row" role="row"><div class="rk-curve-table-label" data-label="Sytuacja" role="cell">Przepływy są nieprawidłowe</div><div data-label="Efekt" role="cell">Zmiana krzywej może przesunąć temperaturę całego domu, ale nie wyrówna dystrybucji.</div><div data-label="Ryzyko" role="cell">Przegrzanie poprawnych pomieszczeń w próbie dogrzania jednego słabego obiegu.</div></div>
      </div>

      <div class="rk-curve-answer"><span class="rk-curve-answer-label">Dlaczego nie dodajemy kalkulatora oszczędności?</span><p><strong>Rzeczywisty wynik zależy od modelu źródła, temperatur dolnego i górnego źródła, pogody, taryfy, modulacji, hydrauliki, nastaw oraz zachowania użytkowników. Kalkulator mnożący rachunek przez stałe 2,5% na każdy stopień tworzyłby pozorną dokładność.</strong></p></div>
    </section>

    <section class="rk-curve-section" id="rk-curve-errors">
      <span class="rk-curve-eyebrow">Błędy, które zniekształcają wynik strojenia</span>
      <h2 class="rk-curve-section-title">Najczęstsze błędy podczas strojenia krzywej</h2>
      <div class="rk-curve-mistakes">
        <div class="rk-curve-mistake"><span class="rk-curve-mistake-icon">!</span><div><strong>Kopiowanie numeru z internetu</strong><p>Nie wiadomo, czy urządzenie używa tej samej skali, punktu bazowego i ograniczeń.</p></div></div>
        <div class="rk-curve-mistake"><span class="rk-curve-mistake-icon">!</span><div><strong>Zmiana kilku ustawień jednocześnie</strong><p>Nie da się ustalić, czy zadziałało nachylenie, offset, przepływ, harmonogram czy termostat.</p></div></div>
        <div class="rk-curve-mistake"><span class="rk-curve-mistake-icon">!</span><div><strong>Ocena po kilku godzinach</strong><p>Posadzka i budynek mogą nadal reagować na poprzedni stan oraz zmianę pogody.</p></div></div>
        <div class="rk-curve-mistake"><span class="rk-curve-mistake-icon">!</span><div><strong>Strojenie przy pozamykanych pętlach</strong><p>Termostaty zasłaniają reakcję obiegu i jednocześnie zmieniają przepływ widziany przez źródło.</p></div></div>
        <div class="rk-curve-mistake"><span class="rk-curve-mistake-icon">!</span><div><strong>Brak zapisu ustawień</strong><p>Po kilku korektach użytkownik nie zna wartości bazowych i nie potrafi wrócić do stabilnego stanu.</p></div></div>
        <div class="rk-curve-mistake"><span class="rk-curve-mistake-icon">!</span><div><strong>Korygowanie pod jeden pokój</strong><p>Problem lokalny może wynikać z projektu pętli, przepływu, okładziny albo wyjątkowych strat.</p></div></div>
        <div class="rk-curve-mistake"><span class="rk-curve-mistake-icon">!</span><div><strong>Ignorowanie limitów materiałów</strong><p>Podnoszenie temperatury bez sprawdzenia podłogi i okładziny może naruszyć ograniczenia techniczne.</p></div></div>
        <div class="rk-curve-mistake"><span class="rk-curve-mistake-icon">!</span><div><strong>Mylenie zadanej z rzeczywistą</strong><p>Temperatura na ekranie, zasilaniu, powrocie i powierzchni podłogi opisuje różne miejsca układu.</p></div></div>
      </div>
    </section>

    <section class="rk-curve-section rk-curve-section-soft" id="rk-curve-checklist">
      <span class="rk-curve-eyebrow">Przed pierwszą i każdą kolejną korektą</span>
      <h2 class="rk-curve-section-title">Lista kontrolna ustawienia krzywej</h2>
      <p class="rk-curve-lead">Jeśli brakuje kilku odpowiedzi, najpierw uzupełnij dokumentację lub diagnostykę. Krzywa nie powinna być pierwszym narzędziem do naprawiania każdego problemu z ogrzewaniem.</p>

      <div class="rk-curve-checklist">
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Model i instrukcja regulatora</strong><br>Czy wiadomo, jak urządzenie definiuje krzywą, poziom i punkty?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Temperatura obliczeniowa</strong><br>Czy pochodzi z projektu dla lokalizacji i przyjętej metody?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Projektowa temperatura zasilania</strong><br>Czy wynika z OZC, konstrukcji podłogi i wymaganej mocy?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Minimum i maksimum</strong><br>Czy ograniczenia są zgodne z podłogą, okładziną i źródłem?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Granica grzania</strong><br>Czy jej wpływ na komfort w okresie przejściowym został sprawdzony?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Czujnik zewnętrzny</strong><br>Czy jest zamontowany i odczytuje zgodnie z instrukcją?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Przepływy pętli</strong><br>Czy odpowiadają wartościom projektowym przy znanym stanie zaworów?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Pompa obiegowa</strong><br>Czy jej tryb i punkt pracy odpowiadają aktualnej hydraulice?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Termostaty i siłowniki</strong><br>Czy ich wpływ jest znany i kontrolowany podczas obserwacji?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Pomieszczenie referencyjne</strong><br>Czy pomiar nie jest chwilowo zakłócany słońcem lub urządzeniami?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Stabilne warunki</strong><br>Czy od ostatniej korekty upłynął czas odpowiedni dla konstrukcji?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Jedna zmiana naraz</strong><br>Czy pozostałe parametry pozostają niezmienione podczas testu?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Dziennik obserwacji</strong><br>Czy zapisujesz pogodę, temperatury, zmieniony parametr i czas reakcji?</div></div>
        <div class="rk-curve-checklist-item"><span>✓</span><div><strong>Możliwość powrotu</strong><br>Czy zapisano stan bazowy i wiadomo, jak bezpiecznie go przywrócić?</div></div>
      </div>
    </section>

    <section class="rk-curve-section" id="rk-curve-conclusions">
      <span class="rk-curve-eyebrow">Wnioski projektanta</span>
      <h2 class="rk-curve-section-title">Wnioski — jak znaleźć najniższą skuteczną krzywą?</h2>
      <p class="rk-curve-lead">Najpierw wyznacz projektowy punkt pracy podłogi, potem odwzoruj go w logice konkretnego sterownika, sprawdź przepływy i dopiero wtedy wykonuj niewielkie korekty. Najniższa skuteczna krzywa to taka, która zapewnia komfort również w trudnych warunkach, bez przekraczania ograniczeń i bez destabilizowania źródła.</p>

      <div class="rk-curve-grid-3">
        <article class="rk-curve-card"><h3>Projekt wyznacza granice</h3><p>OZC, geometria i okładzina określają, jaką moc podłoga może oddać przy dopuszczalnych temperaturach.</p></article>
        <article class="rk-curve-card"><h3>Sterownik odwzorowuje zależność</h3><p>Nachylenie, offset albo dwa punkty są tylko sposobem zapisania wymaganej charakterystyki w konkretnym urządzeniu.</p></article>
        <article class="rk-curve-card"><h3>Budynek pozwala ją dostroić</h3><p>Obserwacja w stabilnych warunkach pomaga skorygować model, ale nie zastępuje równoważenia i danych projektowych.</p></article>
      </div>

      <div class="rk-curve-answer"><span class="rk-curve-answer-label">Reguła końcowa</span><p><strong>Nie szukaj w internecie jednej „najlepszej krzywej do podłogówki”. Szukaj wymaganych temperatur wody dla własnego budynku, sprawdź sposób ich wprowadzania w sterowniku i zmieniaj tylko jeden parametr po uzyskaniu miarodajnej obserwacji.</strong></p></div>

      <div class="rk-curve-cta">
        <div class="rk-curve-cta-title">Zaprojektuj temperaturę wody, pętle i przepływy jako jeden układ</div>
        <p>Kompletny projekt ogrzewania podłogowego łączy obciążenia pomieszczeń, powierzchnie czynne, rozstaw, długości pętli, przepływy, opory, nastawy rozdzielacza i projektową temperaturę zasilania. Dzięki temu krzywa startuje od danych, a nie od losowego numeru.</p>
        <a class="rk-curve-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów kompletny projekt ogrzewania podłogowego</a>
        <small class="rk-curve-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-curve-section" id="rk-curve-references">
      <span class="rk-curve-eyebrow">Podstawa techniczna i granice narzędzia</span>
      <h2 class="rk-curve-section-title">Źródła i zakres odpowiedzialności</h2>
      <p class="rk-curve-lead">Normy dotyczące systemów płaszczyznowych opisują wyznaczanie mocy, projektowanie i wymiarowanie, a norma automatyki budynkowej porządkuje funkcje sterowania. Nie ustanawiają jednego nachylenia, offsetu, czasu oczekiwania ani temperatury zasilania dla każdego domu.</p>

      <div class="rk-curve-source-grid">
        <article class="rk-curve-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 opisującej procedury wyznaczania strumienia ciepła, temperatur i zależności charakterystycznych wodnych systemów powierzchniowych.</p></article>
        <article class="rk-curve-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 ustanawiającej metodę projektowania oraz wymiarowania wbudowanych systemów ogrzewania i chłodzenia.</p></article>
        <article class="rk-curve-source-card"><a href="https://www.iso.org/standard/65883.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52120-1:2021 — automatyka budynkowa i efektywność energetyczna</a><p>Oficjalna karta normy porządkującej funkcje regulacji oraz metody oceny ich wpływu. We wrześniu 2026 r. dokument jest oznaczony przez ISO jako przeznaczony do rewizji.</p></article>
        <article class="rk-curve-source-card"><a href="https://library.mitsubishielectric.co.uk/pdf/book/Ecodan_FTC6_PAC-IF07_1-3_B-E_Instruction_Book_BT79R180H01" target="_blank" rel="nofollow noopener noreferrer">Mitsubishi Electric — dokumentacja regulatora Ecodan FTC6</a><p>Przykład oficjalnej instrukcji konkretnego systemu. Nastawy, tryby, ograniczenia i sekwencje należy zawsze sprawdzać dla dokładnego modelu urządzenia.</p></article>
      </div>

      <div class="rk-curve-responsibility">
        <p><strong>Zakres odpowiedzialności:</strong> artykuł, wykres i grafika mają charakter edukacyjny. Nie są projektem wykonawczym, konfiguracją serwisową, instrukcją producenta, pomiarem instalacji ani gwarancją temperatury, sprawności lub oszczędności.</p>
        <p><strong>Model wykresu:</strong> narzędzie korzysta z liniowej interpolacji dwóch punktów i jawnych ograniczeń. Algorytm rzeczywistego regulatora może być nieliniowy, używać uśredniania, korekty pokojowej, prognozy, adaptacji lub innych funkcji.</p>
        <p><strong>Aktualność:</strong> stan techniczny materiału zweryfikowano 10 września 2026 r. Status norm i dokumentacja urządzeń mogą ulec zmianie.</p>
      </div>
    </section>

    <section class="rk-curve-section rk-curve-section-soft" id="rk-curve-faq">
      <span class="rk-curve-eyebrow">Najczęstsze pytania inwestorów i instalatorów</span>
      <h2 class="rk-curve-section-title">FAQ — krzywa grzewcza w podłogówce</h2>
      <div class="rk-curve-faq">
        <details><summary>Jaka krzywa grzewcza jest najlepsza do ogrzewania podłogowego?</summary><div class="rk-curve-faq-answer"><p>Nie istnieje jedna najlepsza wartość. Krzywa musi odpowiadać projektowemu obciążeniu budynku, mocy podłogi, okładzinie, przepływom i algorytmowi konkretnego sterownika. Wartość startowa z instrukcji wymaga późniejszej weryfikacji.</p></div></details>
        <details><summary>Co oznacza krzywa grzewcza 0,3?</summary><div class="rk-curve-faq-answer"><p>Bez wskazania producenta i pozostałych ustawień nie da się tego jednoznacznie określić. Liczba może opisywać nachylenie według własnego modelu urządzenia, a wynik zależy również od poziomu, temperatury bazowej, minimum, maksimum i wpływu pokojowego.</p></div></details>
        <details><summary>Jak ustawić krzywą grzewczą przy pompie ciepła i podłogówce?</summary><div class="rk-curve-faq-answer"><p>Należy zacząć od projektowej temperatury zasilania przy obliczeniowej temperaturze zewnętrznej, odwzorować ją zgodnie z instrukcją regulatora, sprawdzić przepływy i obserwować budynek w stabilnych warunkach. Korekty wykonuje się pojedynczo i z zachowaniem wymagań urządzenia.</p></div></details>
        <details><summary>Czym różni się nachylenie od przesunięcia krzywej?</summary><div class="rk-curve-faq-answer"><p>Nachylenie zmienia różnicę pomiędzy zimną i łagodną częścią charakterystyki. Przesunięcie podnosi albo obniża cały przebieg w przybliżeniu równolegle. Dokładny sposób realizacji obu funkcji trzeba sprawdzić w instrukcji sterownika.</p></div></details>
        <details><summary>Kiedy zwiększyć nachylenie krzywej grzewczej?</summary><div class="rk-curve-faq-answer"><p>Można je analizować, gdy przy łagodnej pogodzie jest poprawnie, a niedobór pojawia się wraz z silnym mrozem. Najpierw trzeba wykluczyć brak mocy podłogi, niewłaściwy przepływ, ograniczenie źródła, błędny czujnik i zamknięte pętle.</p></div></details>
        <details><summary>Kiedy zmienić przesunięcie krzywej?</summary><div class="rk-curve-faq-answer"><p>Przesunięcie może być właściwym kierunkiem, gdy podobne odchylenie temperatury występuje w szerokim zakresie pogody. Nie należy jednak podawać uniwersalnej korekty w kelwinach bez obserwacji i znajomości algorytmu urządzenia.</p></div></details>
        <details><summary>Dlaczego podłoga jest chłodna w dotyku, mimo że w domu jest ciepło?</summary><div class="rk-curve-faq-answer"><p>W dobrze ocieplonym budynku podłoga może potrzebować niewielkiej nadwyżki temperatury ponad pomieszczenie. Jeżeli bilans cieplny jest zachowany, powierzchnia nie musi być wyraźnie ciepła w dotyku. Odczucie nie jest pomiarem mocy instalacji.</p></div></details>
        <details><summary>Czy można ustawić osobną krzywą dla łazienki?</summary><div class="rk-curve-faq-answer"><p>Pojedyncza pętla na wspólnym obiegu zwykle korzysta z tej samej temperatury zasilania. Oddzielna krzywa wymaga niezależnie regulowanego obiegu lub funkcji przewidzianej przez system. Komfort łazienki powinien być uwzględniony przede wszystkim w projekcie powierzchni i mocy.</p></div></details>
        <details><summary>Czy termostaty pokojowe wykluczają regulację pogodową?</summary><div class="rk-curve-faq-answer"><p>Nie. Mogą pełnić funkcję korekty, ograniczenia lokalnego albo sygnału zapotrzebowania. Trzeba jednak sprawdzić, czy zamykanie pętli nie narusza wymaganego przepływu i czy termostaty nie maskują zawyżonej krzywej.</p></div></details>
        <details><summary>Jak długo czekać po zmianie krzywej?</summary><div class="rk-curve-faq-answer"><p>Nie ma jednego czasu dla każdej podłogi. Należy uwzględnić bezwładność konstrukcji i stabilność warunków. Miarodajna ocena wymaga, aby efekt poprzedniej nastawy nie mieszał się z krótką zmianą pogody, nasłonecznienia lub sposobu użytkowania.</p></div></details>
      </div>
    </section>

    <section class="rk-curve-author" id="rk-curve-author">
      <span class="rk-curve-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-curve-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-curve-author-layout">
        <aside class="rk-curve-author-side">
          <div class="rk-curve-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i specjalista HVAC" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-curve-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-curve-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-curve-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-curve-author-main">
          <div class="rk-curve-author-quote">„Krzywa grzewcza nie jest numerem do skopiowania. Jest sposobem odwzorowania temperatur wody, których potrzebuje konkretny budynek i konkretnie zaprojektowana podłoga.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały techniczne dla inwestorów i wykonawców. Łączy obciążenia pomieszczeń, konstrukcję przegród, powierzchnie czynne, rozstawy, temperatury wody, przepływy i wymagania źródła ciepła.</p>
          <p>W tej aktualizacji usunięto uniwersalne nachylenia przypisane do klas budynku, stały procent poprawy SCOP, uproszczone obliczenie temperatury z powierzchni, jedną liczbę przepływu dla pomp ciepła oraz obowiązkowy bufor przy sterowaniu strefowym.</p>
          <p>Interaktywny wykres jawnie wykorzystuje dwa punkty i ograniczenia, dzięki czemu nie udaje algorytmu konkretnej marki. Grafika edukacyjna rozdziela pomiar pogody, obliczenie wartości zadanej, pracę źródła, hydraulikę, akumulację podłogi i efekt w pomieszczeniu.</p>
          <p>Autor publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego</a>.</p>
          <div class="rk-curve-author-facts">
            <div class="rk-curve-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, regulacja pogodowa i hydraulika</div>
            <div class="rk-curve-author-fact"><strong>Metoda pracy</strong>OZC, projektowe temperatury, przepływy i dokumentacja urządzeń</div>
            <div class="rk-curve-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 10 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>


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

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

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

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

  function clamp(value, minimum, maximum) {
    return Math.min(maximum, Math.max(minimum, value));
  }

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

  function formatTemperature(value, digits) {
    var text = formatNumber(value, digits);
    return text.replace("-", "−") + "°C";
  }

  function setPressed(buttons, activeButton) {
    buttons.forEach(function (button) {
      button.setAttribute("aria-pressed", button === activeButton ? "true" : "false");
    });
  }

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

  function getCurveData() {
    return {
      coldOutdoor: numberValue("rk-curve-cold-outdoor", -20),
      coldSupply: numberValue("rk-curve-cold-supply", 35),
      mildOutdoor: numberValue("rk-curve-mild-outdoor", 10),
      mildSupply: numberValue("rk-curve-mild-supply", 24),
      minSupply: numberValue("rk-curve-min-supply", 22),
      maxSupply: numberValue("rk-curve-max-supply", 40),
      heatingLimit: numberValue("rk-curve-heating-limit", 16),
      currentOutdoor: numberValue("rk-curve-current-outdoor", -10)
    };
  }

  function adjustedSupplies(data, mode) {
    var cold = data.coldSupply;
    var mild = data.mildSupply;
    if (mode === "steeper") {
      cold += 2;
    }
    if (mode === "flatter") {
      cold -= 2;
    }
    if (mode === "up") {
      cold += 2;
      mild += 2;
    }
    if (mode === "down") {
      cold -= 2;
      mild -= 2;
    }
    return { cold: cold, mild: mild };
  }

  function rawCurveValue(outdoor, data, mode) {
    var supplies = adjustedSupplies(data, mode);
    var span = data.mildOutdoor - data.coldOutdoor;
    var ratio = (outdoor - data.coldOutdoor) / span;
    return supplies.cold + ratio * (supplies.mild - supplies.cold);
  }

  function curveValue(outdoor, data, mode) {
    var raw = rawCurveValue(outdoor, data, mode);
    var limited = clamp(raw, data.minSupply, data.maxSupply);
    var state = "linear";
    if (raw < data.minSupply) {
      state = "minimum";
    }
    if (raw > data.maxSupply) {
      state = "maximum";
    }
    if (outdoor >= data.heatingLimit) {
      state = "off";
    }
    return {
      raw: raw,
      limited: limited,
      state: state,
      off: state === "off"
    };
  }

  function stateLabel(state) {
    if (state === "minimum") {
      return "Ograniczenie minimum";
    }
    if (state === "maximum") {
      return "Ograniczenie maksimum";
    }
    if (state === "off") {
      return "Ogrzewanie wyłączone";
    }
    return "Zakres liniowy";
  }

  function modeLabel(mode) {
    if (mode === "steeper") {
      return "większe nachylenie";
    }
    if (mode === "flatter") {
      return "mniejsze nachylenie";
    }
    if (mode === "up") {
      return "przesunięcie +2 K";
    }
    if (mode === "down") {
      return "przesunięcie −2 K";
    }
    return "krzywa bazowa";
  }

  function renderChart(data) {
    var svg = document.getElementById("rk-curve-svg");
    var left = 68;
    var right = 770;
    var top = 28;
    var bottom = 365;
    var xMinimum = Math.min(-25, Math.floor(data.coldOutdoor / 5) * 5);
    var xMaximum = 20;
    var yMinimum = Math.min(15, Math.floor((data.minSupply - 3) / 5) * 5);
    var highestSupply = Math.max(data.maxSupply, data.coldSupply + 4, data.mildSupply + 4);
    var yMaximum = Math.max(45, Math.ceil(highestSupply / 5) * 5);
    var pathEnd = Math.min(xMaximum, data.heatingLimit);
    var x;
    var y;

    function chartX(value) {
      return left + (value - xMinimum) / (xMaximum - xMinimum) * (right - left);
    }

    function chartY(value) {
      return bottom - (value - yMinimum) / (yMaximum - yMinimum) * (bottom - top);
    }

    function addPath(mode, cssClass) {
      var points = [];
      var outdoor = xMinimum;
      var value;
      while (outdoor < pathEnd) {
        value = clamp(rawCurveValue(outdoor, data, mode), data.minSupply, data.maxSupply);
        points.push((points.length === 0 ? "M" : "L") + chartX(outdoor).toFixed(2) + " " + chartY(value).toFixed(2));
        outdoor += 0.5;
      }
      value = clamp(rawCurveValue(pathEnd, data, mode), data.minSupply, data.maxSupply);
      points.push((points.length === 0 ? "M" : "L") + chartX(pathEnd).toFixed(2) + " " + chartY(value).toFixed(2));
      svg.appendChild(svgElement("path", { "class": cssClass, d: points.join(" ") }));
    }

    function addPoint(outdoor, supply, cssClass, radius) {
      if (outdoor < xMinimum) {
        return;
      }
      if (outdoor > xMaximum) {
        return;
      }
      svg.appendChild(svgElement("circle", {
        "class": cssClass,
        cx: chartX(outdoor),
        cy: chartY(supply),
        r: radius
      }));
    }

    if (!svg) {
      return;
    }
    svg.replaceChildren();
    svg.appendChild(svgElement("title", { id: "rk-curve-svg-title" }, "Interaktywny wykres krzywej grzewczej"));
    svg.appendChild(svgElement("desc", { id: "rk-curve-svg-desc" }, "Bazowa i opcjonalna porównawcza temperatura zasilania w zależności od temperatury zewnętrznej."));

    x = Math.ceil(xMinimum / 5) * 5;
    while (x <= xMaximum) {
      svg.appendChild(svgElement("line", {
        "class": "rk-curve-chart-grid-line",
        x1: chartX(x),
        y1: top,
        x2: chartX(x),
        y2: bottom
      }));
      svg.appendChild(svgElement("text", {
        "class": "rk-curve-chart-tick",
        x: chartX(x),
        y: bottom + 23,
        "text-anchor": "middle"
      }, String(x).replace("-", "−")));
      x += 5;
    }

    y = Math.ceil(yMinimum / 5) * 5;
    while (y <= yMaximum) {
      svg.appendChild(svgElement("line", {
        "class": "rk-curve-chart-grid-line",
        x1: left,
        y1: chartY(y),
        x2: right,
        y2: chartY(y)
      }));
      svg.appendChild(svgElement("text", {
        "class": "rk-curve-chart-tick",
        x: left - 12,
        y: chartY(y) + 4,
        "text-anchor": "end"
      }, String(y)));
      y += 5;
    }

    svg.appendChild(svgElement("line", {
      "class": "rk-curve-chart-axis",
      x1: left,
      y1: bottom,
      x2: right,
      y2: bottom
    }));
    svg.appendChild(svgElement("line", {
      "class": "rk-curve-chart-axis",
      x1: left,
      y1: top,
      x2: left,
      y2: bottom
    }));

    if (data.heatingLimit >= xMinimum) {
      if (data.heatingLimit <= xMaximum) {
        svg.appendChild(svgElement("line", {
          "class": "rk-curve-limit-line",
          x1: chartX(data.heatingLimit),
          y1: top,
          x2: chartX(data.heatingLimit),
          y2: bottom
        }));
        svg.appendChild(svgElement("text", {
          "class": "rk-curve-limit-label",
          x: chartX(data.heatingLimit) - 7,
          y: top + 16,
          "text-anchor": "end"
        }, "granica grzania"));
      }
    }

    svg.appendChild(svgElement("line", {
      "class": "rk-curve-current-guide",
      x1: chartX(clamp(data.currentOutdoor, xMinimum, xMaximum)),
      y1: top,
      x2: chartX(clamp(data.currentOutdoor, xMinimum, xMaximum)),
      y2: bottom
    }));

    addPath("base", "rk-curve-system-path");
    if (compareMode !== "base") {
      addPath(compareMode, "rk-curve-device-path");
    }

    addPoint(data.coldOutdoor, clamp(data.coldSupply, data.minSupply, data.maxSupply), "rk-curve-design-point", 6);
    addPoint(data.mildOutdoor, clamp(data.mildSupply, data.minSupply, data.maxSupply), "rk-curve-design-point", 6);

    var currentBase = curveValue(data.currentOutdoor, data, "base");
    if (!currentBase.off) {
      addPoint(data.currentOutdoor, currentBase.limited, "rk-curve-operating-point", 7);
    }

    svg.appendChild(svgElement("text", {
      "class": "rk-curve-chart-label",
      x: (left + right) / 2,
      y: 415,
      "text-anchor": "middle"
    }, "Temperatura zewnętrzna [°C]"));
    svg.appendChild(svgElement("text", {
      "class": "rk-curve-chart-label",
      x: 17,
      y: (top + bottom) / 2,
      "text-anchor": "middle",
      transform: "rotate(-90 17 " + (top + bottom) / 2 + ")"
    }, "Temperatura zasilania [°C]"));
  }

  function renderCurve() {
    var data = getCurveData();
    var status = document.getElementById("rk-curve-chart-status");
    var currentLabel = document.getElementById("rk-curve-current-label");
    var baseResult = curveValue(data.currentOutdoor, data, "base");
    var compareResult = curveValue(data.currentOutdoor, data, compareMode);
    var resultCompare = document.getElementById("rk-curve-result-compare");
    var compareLegend = document.getElementById("rk-curve-compare-legend");
    var equationCopy = document.getElementById("rk-curve-equation-copy");
    var valid = true;

    if (data.coldOutdoor >= data.mildOutdoor) {
      valid = false;
    }
    if (data.minSupply > data.maxSupply) {
      valid = false;
    }

    if (currentLabel) {
      currentLabel.textContent = formatTemperature(data.currentOutdoor, 0);
    }
    document.getElementById("rk-curve-result-outdoor").textContent = formatTemperature(data.currentOutdoor, 0);

    status.classList.remove("is-bad");
    status.classList.remove("is-warning");
    status.classList.remove("is-good");

    if (!valid) {
      document.getElementById("rk-curve-result-base").textContent = "—";
      resultCompare.textContent = "—";
      document.getElementById("rk-curve-result-state").textContent = "Popraw dane";
      equationCopy.textContent = "Zimny punkt zewnętrzny musi być niższy od łagodnego, a minimum zasilania nie może przekraczać maksimum.";
      status.classList.add("is-bad");
      status.textContent = "Nie można zbudować charakterystyki. Sprawdź kolejność temperatur zewnętrznych oraz ograniczenia temperatury zasilania.";
      return;
    }

    if (baseResult.off) {
      document.getElementById("rk-curve-result-base").textContent = "wyłączone";
    } else {
      document.getElementById("rk-curve-result-base").textContent = formatTemperature(baseResult.limited, 1);
    }
    document.getElementById("rk-curve-result-state").textContent = stateLabel(baseResult.state);

    if (compareMode === "base") {
      resultCompare.textContent = "—";
      compareLegend.classList.add("rk-curve-is-hidden");
    } else {
      compareLegend.classList.remove("rk-curve-is-hidden");
      if (compareResult.off) {
        resultCompare.textContent = "wyłączone";
      } else {
        resultCompare.textContent = formatTemperature(compareResult.limited, 1);
      }
    }

    if (baseResult.off) {
      equationCopy.textContent = "Analizowana temperatura osiągnęła granicę grzania. Model oznacza obieg jako wyłączony; rzeczywisty regulator może stosować histerezę, uśrednianie lub inną logikę.";
    } else {
      equationCopy.textContent = "Interpolacja daje " + formatTemperature(baseResult.raw, 1) + ". Po zastosowaniu minimum " + formatTemperature(data.minSupply, 1) + " i maksimum " + formatTemperature(data.maxSupply, 1) + " wynik wynosi " + formatTemperature(baseResult.limited, 1) + ".";
    }

    if (data.coldSupply <= data.mildSupply) {
      status.classList.add("is-warning");
      status.textContent = "Dane tworzą nietypową charakterystykę: temperatura zasilania nie spada wraz z ociepleniem. Sprawdź wpisane punkty i instrukcję regulatora.";
    } else {
      status.classList.add("is-good");
      status.textContent = "Dane tworzą malejącą charakterystykę. Wybrany wariant „" + modeLabel(compareMode) + "” pokazuje zmianę geometrii, a nie gotową nastawę konkretnej marki.";
    }

    renderChart(data);
  }

  var systemStates = {
    colder: {
      resultTitle: "Spadek temperatury zewnętrznej zmienia wartość zadaną wody, a nie temperaturę pokoju bezpośrednio.",
      resultCopy: "Efekt przechodzi przez źródło, przepływ i akumulującą podłogę. Regulator może odpowiedzieć od razu, lecz nowa równowaga cieplna budynku wymaga czasu.",
      components: {
        sensor: { value: "Rejestruje spadek temperatury", copy: "Mierzy warunki przy elewacji. Nie mierzy strat budynku ani temperatury posadzki.", active: true },
        controller: { value: "Wyznacza wyższą wartość zadaną", copy: "Korzysta z krzywej, ograniczeń i dodatkowych korekt. Nie naprawia błędnej hydrauliki.", active: true },
        source: { value: "Podąża do nowej temperatury", copy: "Moduluje lub cyklicznie pracuje według własnej automatyki, dostępnej mocy i zabezpieczeń.", active: true },
        flow: { value: "Transportują energię", copy: "Rozdział wody zależy od pompy, oporów i nastaw pętli, a nie od samej linii na wykresie.", active: true },
        floor: { value: "Zmienia emisję z opóźnieniem", copy: "Woda ogrzewa konstrukcję, która akumuluje energię i przekazuje ją do pomieszczenia.", active: true },
        room: { value: "Dąży do nowej równowagi", copy: "Temperatura zależy jednocześnie od podłogi, strat, wentylacji, słońca i zysków wewnętrznych.", active: true }
      }
    },
    sun: {
      resultTitle: "Pogodówka nie widzi bezpośrednio słońca wpadającego do salonu.",
      resultCopy: "Lokalny zysk może przegrzać jedno pomieszczenie mimo poprawnej krzywej dla całego obiegu. Reakcję zapewnia bilans budynku, ewentualna korekta pokojowa lub sterowanie strefowe, lecz podłoga nadal oddaje zgromadzone ciepło.",
      components: {
        sensor: { value: "Mierzy pogodę przy elewacji", copy: "Nie rozpoznaje bezpośrednio lokalnego nasłonecznienia za szybą ani pracy urządzeń w pokoju.", active: false },
        controller: { value: "Utrzymuje wynik krzywej", copy: "Bez informacji z pomieszczenia nie ma podstawy, aby skorygować wyłącznie salon.", active: false },
        source: { value: "Obsługuje aktywny obieg", copy: "Może nadal dostarczać ciepło do innych pomieszczeń, które nie otrzymują zysków słonecznych.", active: false },
        flow: { value: "Zależą od zaworów i pompy", copy: "Przepływ salonu zmieni się dopiero po działaniu właściwego regulatora lub zaworu.", active: false },
        floor: { value: "Oddaje zgromadzoną energię", copy: "Ograniczenie nowego dopływu ciepła nie usuwa energii, która znajduje się już w konstrukcji.", active: true },
        room: { value: "Otrzymuje dodatkowy zysk", copy: "Temperatura może wzrosnąć od słońca mimo niezmienionej temperatury zewnętrznej.", active: true }
      }
    },
    high: {
      resultTitle: "Zbyt wysoka krzywa dostarcza nadmierny parametr do całego obiegu.",
      resultCopy: "Termostaty mogą ograniczać objaw przez zamykanie pętli, ale nie obniżają samej temperatury wytwarzanej przez źródło. Warto najpierw potwierdzić, czy przegrzewanie ma charakter ogólny i powtarzalny.",
      components: {
        sensor: { value: "Pomiar może być prawidłowy", copy: "Poprawny odczyt zewnętrzny nie gwarantuje, że nachylenie, przesunięcie i limity są dobrze dobrane.", active: false },
        controller: { value: "Wyznacza za wysoką wartość", copy: "Błąd może dotyczyć poziomu, nachylenia, punktu bazowego, minimum albo dodatkowej korekty.", active: true },
        source: { value: "Podgrzewa wodę wyżej niż potrzeba", copy: "Rzeczywisty skutek zależy od modulacji, ograniczeń i sposobu pracy urządzenia.", active: true },
        flow: { value: "Rozprowadzają cieplejszą wodę", copy: "Prawidłowe przepływy nie skompensują trwale zawyżonego parametru dla całego obiegu.", active: true },
        floor: { value: "Akumuluje więcej energii", copy: "Po korekcie krzywej konstrukcja potrzebuje czasu, aby oddać wcześniejszy nadmiar.", active: true },
        room: { value: "Przegrzewa się szerzej", copy: "Jeżeli objaw występuje w wielu pomieszczeniach przy różnej pogodzie, analizuje się przesunięcie całej krzywej.", active: true }
      }
    },
    zones: {
      resultTitle: "Zamykanie pętli zmienia hydraulikę, ale nie przelicza automatycznie krzywej grzewczej.",
      resultCopy: "Pompa i źródło widzą mniejszy czynny układ. Trzeba sprawdzić minimalny przepływ, najmniejszy odbiór mocy, logikę pompy oraz wymagania urządzenia zamiast zakładać obowiązkowy schemat dla każdego domu.",
      components: {
        sensor: { value: "Odczyt pogody bez zmian", copy: "Stan siłowników nie zmienia mierzonej temperatury zewnętrznej.", active: false },
        controller: { value: "Krzywa może pozostać taka sama", copy: "Oddzielna automatyka strefowa zamyka zawory, o ile nie przekazuje nadrzędnej korekty do źródła.", active: false },
        source: { value: "Ma mniejszy odbiór do obsługi", copy: "Minimalna moc, objętość wody, przepływ i sekwencja wyłączenia wymagają weryfikacji.", active: true },
        flow: { value: "Punkt pracy się przesuwa", copy: "Rzeczywisty przepływ zależy od trybu pompy, charakterystyki zaworów i oporów otwartych gałęzi.", active: true },
        floor: { value: "Czynne zostają wybrane strefy", copy: "Zamknięte podłogi nadal przez pewien czas oddają wcześniej zgromadzone ciepło.", active: true },
        room: { value: "Temperatury reagują nierównocześnie", copy: "Wymiana ciepła między pokojami oraz bezwładność ograniczają szybkość i skalę różnic.", active: true }
      }
    }
  };

  function renderSystem(key) {
    var state = systemStates[key];
    var result = document.getElementById("rk-curve-system-result");
    if (!state) {
      return;
    }

    Object.keys(state.components).forEach(function (componentKey) {
      var card = root.querySelector('[data-rk-curve-component="' + componentKey + '"]');
      var value;
      var copy;
      var item = state.components[componentKey];
      if (!card) {
        return;
      }
      value = card.querySelector("[data-rk-curve-component-value]");
      copy = card.querySelector("[data-rk-curve-component-copy]");
      if (value) {
        value.textContent = item.value;
      }
      if (copy) {
        copy.textContent = item.copy;
      }
      card.classList.remove("is-active");
      card.classList.remove("is-muted");
      if (item.active) {
        card.classList.add("is-active");
      } else {
        card.classList.add("is-muted");
      }
    });

    if (result) {
      result.replaceChildren();
      var title = document.createElement("strong");
      var copy = document.createElement("p");
      title.textContent = state.resultTitle;
      copy.textContent = state.resultCopy;
      result.appendChild(title);
      result.appendChild(copy);
    }
  }

  var curveInputs = Array.prototype.slice.call(root.querySelectorAll("#rk-curve-chart-tool input"));
  curveInputs.forEach(function (input) {
    input.addEventListener("input", renderCurve);
    input.addEventListener("change", renderCurve);
  });

  var compareButtons = Array.prototype.slice.call(root.querySelectorAll("[data-rk-curve-mode]"));
  compareButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      compareMode = button.getAttribute("data-rk-curve-mode");
      setPressed(compareButtons, button);
      renderCurve();
    });
  });

  var systemButtons = Array.prototype.slice.call(root.querySelectorAll("[data-rk-curve-system]"));
  systemButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      setPressed(systemButtons, button);
      renderSystem(button.getAttribute("data-rk-curve-system"));
    });
  });

  renderCurve();
  renderSystem("colder");
}());
</script>


<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "description": "Profesjonalne projektowanie ogrzewania podłogowego i poradniki techniczne HVAC.",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://projekt-ogrzewania.pl/?s={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@id": "https://projekt-ogrzewania.pl/#logo"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#logo",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "width": 1024,
      "height": 1024,
      "caption": "Projekt Ogrzewania"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "krzywa grzewcza",
        "sterowanie pogodowe",
        "pompy ciepła",
        "hydraulika instalacji",
        "projektowe obciążenie cieplne"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/01/Krzywa-grzewcza-w-ogrzewaniu-podlogowym.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/01/Krzywa-grzewcza-w-ogrzewaniu-podlogowym.webp",
      "width": 945,
      "height": 945,
      "caption": "Krzywa grzewcza w ogrzewaniu podłogowym",
      "representativeOfPage": true,
      "inLanguage": "pl-PL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Poradniki",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Krzywa grzewcza w ogrzewaniu podłogowym",
          "item": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webpage",
      "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/",
      "name": "Krzywa grzewcza w ogrzewaniu podłogowym – jak ją ustawić i korygować bez zgadywania?",
      "description": "Krzywa grzewcza w ogrzewaniu podłogowym: sprawdź, jak ustawić nachylenie, przesunięcie i temperaturę zasilania oraz poprawnie stroić układ bez błędów.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#primaryimage"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article"
      },
      "datePublished": "2026-01-06T10:25:59+00:00",
      "dateModified": "2026-09-10",
      "inLanguage": "pl-PL",
      "potentialAction": {
        "@type": "ReadAction",
        "target": [
          "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
        ]
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webpage"
      },
      "headline": "Krzywa grzewcza w ogrzewaniu podłogowym – jak ją ustawić i korygować bez zgadywania?",
      "alternativeHeadline": "Nachylenie, przesunięcie, temperatura zasilania i strojenie pogodówki krok po kroku",
      "description": "Techniczny poradnik o wyznaczaniu, wprowadzaniu i strojeniu krzywej grzewczej podłogówki z interaktywnym wykresem dwóch punktów i modułową grafiką pracy systemu.",
      "image": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#primaryimage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "datePublished": "2026-01-06T10:25:59+00:00",
      "dateModified": "2026-09-10",
      "inLanguage": "pl-PL",
      "timeRequired": "PT30M",
      "wordCount": 4186,
      "isAccessibleForFree": true,
      "copyrightYear": 2026,
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "articleSection": [
        "Czym jest krzywa grzewcza",
        "Interaktywny wykres krzywej",
        "Nachylenie i przesunięcie",
        "Temperatura zasilania podłogówki",
        "Projektowy punkt obliczeniowy",
        "Pompa ciepła i kocioł",
        "Bezwładność i czujnik zewnętrzny",
        "Termostat i sterowanie strefowe",
        "Strojenie krok po kroku",
        "Objawy błędnej krzywej",
        "Hydraulika i okładzina",
        "Sprawność i rachunki",
        "FAQ"
      ],
      "keywords": [
        "krzywa grzewcza w ogrzewaniu podłogowym",
        "jaka krzywa grzewcza do podłogówki",
        "jak ustawić krzywą grzewczą",
        "nachylenie krzywej grzewczej do podłogówki",
        "przesunięcie krzywej grzewczej",
        "krzywa grzewcza pompa ciepła podłogówka",
        "jaka krzywa grzewcza do pompy ciepła",
        "krzywa grzewcza 0,3 co oznacza",
        "temperatura zasilania podłogówki przy -20°C",
        "krzywa grzewcza a termostat pokojowy",
        "krzywa grzewcza za wysoka objawy",
        "krzywa grzewcza za niska objawy",
        "korekta krzywej grzewczej"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Krzywa grzewcza"
        },
        {
          "@type": "Thing",
          "name": "Ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Sterowanie pogodowe"
        }
      ],
      "mentions": [
        {
          "@type": "Thing",
          "name": "Temperatura zasilania"
        },
        {
          "@type": "Thing",
          "name": "Nachylenie krzywej grzewczej"
        },
        {
          "@type": "Thing",
          "name": "Przesunięcie równoległe"
        },
        {
          "@type": "Thing",
          "name": "Pompa ciepła"
        },
        {
          "@type": "Thing",
          "name": "Termostat pokojowy"
        },
        {
          "@type": "Thing",
          "name": "Równoważenie hydrauliczne"
        }
      ],
      "citation": [
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html",
        "https://www.iso.org/standard/65883.html",
        "https://library.mitsubishielectric.co.uk/pdf/book/Ecodan_FTC6_PAC-IF07_1-3_B-E_Instruction_Book_BT79R180H01"
      ],
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "#rk-curve-answer .rk-curve-answer",
          "#rk-curve-design .rk-curve-lead",
          "#rk-curve-conclusions .rk-curve-answer"
        ]
      },
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#curve-chart"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#system-graphic"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#checklist"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#faq"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#curve-chart",
      "name": "Interaktywny wykres krzywej grzewczej z dwóch punktów",
      "description": "Edukacyjny model liniowy pokazujący bazową krzywą, nachylenie, przesunięcie, minimum, maksimum, granicę grzania i analizowany punkt pracy.",
      "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-chart",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC and building controls",
      "operatingSystem": "Any",
      "browserRequirements": "Przeglądarka internetowa z obsługą JavaScript i SVG",
      "softwareVersion": "1.0",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article"
      },
      "featureList": [
        "Definicja zimnego i łagodnego punktu krzywej",
        "Ograniczenie minimalnej i maksymalnej temperatury zasilania",
        "Granica wyłączenia ogrzewania",
        "Porównanie większego i mniejszego nachylenia",
        "Porównanie przesunięcia równoległego o 2 K",
        "Dynamiczny punkt dla wybranej temperatury zewnętrznej"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#system-graphic",
      "name": "Interaktywna grafika reakcji regulacji pogodowej",
      "description": "Modułowa grafika pokazująca role czujnika zewnętrznego, regulatora, źródła ciepła, pompy i przepływów, podłogi oraz pomieszczenia w czterech scenariuszach.",
      "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-graphic",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC and building physics",
      "operatingSystem": "Any",
      "browserRequirements": "Przeglądarka internetowa z obsługą JavaScript",
      "softwareVersion": "1.0",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article"
      },
      "featureList": [
        "Scenariusz spadku temperatury zewnętrznej",
        "Scenariusz zysku słonecznego w salonie",
        "Scenariusz zbyt wysokiej krzywej",
        "Scenariusz zamknięcia większości pętli",
        "Sześć oddzielnych modułów instalacji",
        "Responsywny układ bez nakładania elementów"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#howto",
      "name": "Jak ustawić krzywą grzewczą ogrzewania podłogowego krok po kroku",
      "description": "Kolejność przygotowania, obserwacji i pojedynczych korekt krzywej grzewczej po sprawdzeniu dokumentacji oraz hydrauliki.",
      "inLanguage": "pl-PL",
      "supply": [
        {
          "@type": "HowToSupply",
          "name": "Projekt ogrzewania podłogowego i OZC"
        },
        {
          "@type": "HowToSupply",
          "name": "Dokumentacja regulatora i źródła ciepła"
        },
        {
          "@type": "HowToSupply",
          "name": "Projektowe przepływy pętli"
        }
      ],
      "tool": [
        {
          "@type": "HowToTool",
          "name": "Odczyt czujnika temperatury zewnętrznej"
        },
        {
          "@type": "HowToTool",
          "name": "Termometr w reprezentatywnym pomieszczeniu"
        },
        {
          "@type": "HowToTool",
          "name": "Dziennik ustawień i obserwacji"
        }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Zapisz stan początkowy",
          "text": "Zanotuj tryb pracy, parametry krzywej, ograniczenia, harmonogram oraz ustawienia pomp.",
          "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-tuning"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Sprawdź dokumentację sterownika",
          "text": "Ustal znaczenie parametrów, zakres obiegu i model charakterystyki stosowany przez urządzenie.",
          "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-tuning"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Potwierdź przepływy projektowe",
          "text": "Sprawdź nastawy rozdzielacza przy znanym i bezpiecznym stanie zaworów.",
          "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-tuning"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Usuń zakłócające harmonogramy",
          "text": "Na czas obserwacji utrzymuj możliwie stałe wymagania i notuj istotne zyski ciepła.",
          "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-tuning"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Ustaw punkt startowy",
          "text": "Przenieś do sterownika parametry wynikające z projektu i instrukcji dokładnego modelu.",
          "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-tuning"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Obserwuj temperaturę reprezentatywną",
          "text": "Wybierz pomieszczenie bez chwilowego wpływu słońca lub urządzeń i z potwierdzonym przepływem.",
          "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-tuning"
        },
        {
          "@type": "HowToStep",
          "position": 7,
          "name": "Koryguj jeden parametr",
          "text": "Zmieniaj tylko jedno ustawienie, aby można było przypisać mu zaobserwowany efekt.",
          "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-tuning"
        },
        {
          "@type": "HowToStep",
          "position": 8,
          "name": "Poczekaj na miarodajny efekt",
          "text": "Uwzględnij bezwładność konstrukcji, stabilność pogody i porównuj podobne warunki.",
          "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-tuning"
        }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#checklist",
      "name": "Lista kontrolna ustawienia krzywej grzewczej",
      "numberOfItems": 14,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Model i instrukcja regulatora"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Temperatura obliczeniowa"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Projektowa temperatura zasilania"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Minimum i maksimum temperatury"
        },
        {
          "@type": "ListItem",
          "position": 5,
          "name": "Granica grzania"
        },
        {
          "@type": "ListItem",
          "position": 6,
          "name": "Czujnik zewnętrzny"
        },
        {
          "@type": "ListItem",
          "position": 7,
          "name": "Przepływy pętli"
        },
        {
          "@type": "ListItem",
          "position": 8,
          "name": "Pompa obiegowa"
        },
        {
          "@type": "ListItem",
          "position": 9,
          "name": "Termostaty i siłowniki"
        },
        {
          "@type": "ListItem",
          "position": 10,
          "name": "Pomieszczenie referencyjne"
        },
        {
          "@type": "ListItem",
          "position": 11,
          "name": "Stabilne warunki obserwacji"
        },
        {
          "@type": "ListItem",
          "position": 12,
          "name": "Jedna zmiana naraz"
        },
        {
          "@type": "ListItem",
          "position": 13,
          "name": "Dziennik obserwacji"
        },
        {
          "@type": "ListItem",
          "position": 14,
          "name": "Możliwość powrotu do stanu bazowego"
        }
      ],
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article"
      }
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#faq",
      "url": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#rk-curve-faq",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webpage"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jaka krzywa grzewcza jest najlepsza do ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie istnieje jedna najlepsza wartość. Krzywa musi odpowiadać projektowemu obciążeniu budynku, mocy podłogi, okładzinie, przepływom i algorytmowi konkretnego sterownika. Wartość startowa z instrukcji wymaga późniejszej weryfikacji."
          }
        },
        {
          "@type": "Question",
          "name": "Co oznacza krzywa grzewcza 0,3?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Bez wskazania producenta i pozostałych ustawień nie da się tego jednoznacznie określić. Liczba może opisywać nachylenie według własnego modelu urządzenia, a wynik zależy również od poziomu, temperatury bazowej, minimum, maksimum i wpływu pokojowego."
          }
        },
        {
          "@type": "Question",
          "name": "Jak ustawić krzywą grzewczą przy pompie ciepła i podłogówce?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Należy zacząć od projektowej temperatury zasilania przy obliczeniowej temperaturze zewnętrznej, odwzorować ją zgodnie z instrukcją regulatora, sprawdzić przepływy i obserwować budynek w stabilnych warunkach. Korekty wykonuje się pojedynczo i z zachowaniem wymagań urządzenia."
          }
        },
        {
          "@type": "Question",
          "name": "Czym różni się nachylenie od przesunięcia krzywej?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nachylenie zmienia różnicę pomiędzy zimną i łagodną częścią charakterystyki. Przesunięcie podnosi albo obniża cały przebieg w przybliżeniu równolegle. Dokładny sposób realizacji obu funkcji trzeba sprawdzić w instrukcji sterownika."
          }
        },
        {
          "@type": "Question",
          "name": "Kiedy zwiększyć nachylenie krzywej grzewczej?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Można je analizować, gdy przy łagodnej pogodzie jest poprawnie, a niedobór pojawia się wraz z silnym mrozem. Najpierw trzeba wykluczyć brak mocy podłogi, niewłaściwy przepływ, ograniczenie źródła, błędny czujnik i zamknięte pętle."
          }
        },
        {
          "@type": "Question",
          "name": "Kiedy zmienić przesunięcie krzywej?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Przesunięcie może być właściwym kierunkiem, gdy podobne odchylenie temperatury występuje w szerokim zakresie pogody. Nie należy jednak podawać uniwersalnej korekty w kelwinach bez obserwacji i znajomości algorytmu urządzenia."
          }
        },
        {
          "@type": "Question",
          "name": "Dlaczego podłoga jest chłodna w dotyku, mimo że w domu jest ciepło?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "W dobrze ocieplonym budynku podłoga może potrzebować niewielkiej nadwyżki temperatury ponad pomieszczenie. Jeżeli bilans cieplny jest zachowany, powierzchnia nie musi być wyraźnie ciepła w dotyku. Odczucie nie jest pomiarem mocy instalacji."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można ustawić osobną krzywą dla łazienki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Pojedyncza pętla na wspólnym obiegu zwykle korzysta z tej samej temperatury zasilania. Oddzielna krzywa wymaga niezależnie regulowanego obiegu lub funkcji przewidzianej przez system. Komfort łazienki powinien być uwzględniony przede wszystkim w projekcie powierzchni i mocy."
          }
        },
        {
          "@type": "Question",
          "name": "Czy termostaty pokojowe wykluczają regulację pogodową?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Mogą pełnić funkcję korekty, ograniczenia lokalnego albo sygnału zapotrzebowania. Trzeba jednak sprawdzić, czy zamykanie pętli nie narusza wymaganego przepływu i czy termostaty nie maskują zawyżonej krzywej."
          }
        },
        {
          "@type": "Question",
          "name": "Jak długo czekać po zmianie krzywej?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednego czasu dla każdej podłogi. Należy uwzględnić bezwładność konstrukcji i stabilność warunków. Miarodajna ocena wymaga, aby efekt poprzedniej nastawy nie mieszał się z krótką zmianą pogody, nasłonecznienia lub sposobu użytkowania."
          }
        }
      ]
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza w ogrzewaniu podłogowym – jak ustawić ją bez błędów?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe a pasywne zyski ciepła.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 30 Dec 2025 11:28:18 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[bilans cieplny]]></category>
		<category><![CDATA[energia słoneczna]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pasywne zyski ciepła]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie strefowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3004</guid>

					<description><![CDATA[<p>Nowoczesne budownictwo coraz częściej wykorzystuje darmową energię słoneczną, ale jej niewłaściwe połączenie z instalacją grzewczą potrafi przynieść więcej szkód niż korzyści. Ogrzewanie podłogowe a pasywne zyski ciepła to temat kluczowy dla komfortu i efektywności energetycznej budynku. W artykule pokazujemy, jak promieniowanie słoneczne wpływa na bezwładną wylewkę, dlaczego dochodzi do przegrzewania pomieszczeń oraz jak dzięki świadomemu projektowi i inteligentnemu sterowaniu zamienić słońce w realne wsparcie systemu grzewczego, a nie jego wroga.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-solar-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-red: #e34837;
    --rk-yellow: #f3bd3f;
    --rk-yellow-soft: #fff8df;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-ink: #1f2937;
    --rk-text: #475968;
    --rk-muted: #6b7d89;
    --rk-line: #d9e7ed;
    --rk-soft: #f4f9fb;
    --rk-warm: #fff3eb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

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

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

  #rk-solar-guide button,
  #rk-solar-guide input,
  #rk-solar-guide select,
  #rk-solar-guide label,
  #rk-solar-guide summary,
  #rk-solar-guide a {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

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

  #rk-solar-guide a:hover,
  #rk-solar-guide a:focus-visible {
    color: var(--rk-red);
  }

  #rk-solar-guide h2,
  #rk-solar-guide h3,
  #rk-solar-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-solar-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.7vw, 2.62rem);
  }

  #rk-solar-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.15rem, 2.4vw, 1.5rem);
  }

  #rk-solar-guide h4 {
    margin-bottom: 8px;
    font-size: 1.03rem;
    letter-spacing: -0.018em;
  }

  #rk-solar-guide h2::before,
  #rk-solar-guide h2::after,
  #rk-solar-guide h3::before,
  #rk-solar-guide h3::after,
  #rk-solar-guide h4::before,
  #rk-solar-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-solar-guide p {
    margin: 0 0 1.18em;
    color: var(--rk-text);
  }

  #rk-solar-guide strong {
    color: var(--rk-dark);
  }

  #rk-solar-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-solar-guide .rk-solar-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-solar-guide .rk-solar-progress-track {
    position: sticky;
    z-index: 30;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.9);
  }

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

  #rk-solar-guide .rk-solar-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 87% 15%, rgba(255, 190, 63, 0.5), transparent 21%),
      radial-gradient(circle at 78% 78%, rgba(40, 201, 218, 0.26), transparent 31%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09627b 100%);
  }

  #rk-solar-guide .rk-solar-hero::before {
    content: "☀";
    position: absolute;
    z-index: -1;
    right: -50px;
    bottom: -135px;
    color: rgba(255, 255, 255, 0.05);
    font-size: clamp(17rem, 38vw, 32rem);
    font-weight: 950;
    line-height: 1;
    pointer-events: none;
  }

  #rk-solar-guide .rk-solar-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.16fr) minmax(285px, 0.84fr);
    gap: clamp(28px, 5vw, 62px);
    align-items: center;
  }

  #rk-solar-guide .rk-solar-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 23px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #a3f4ff;
    background: rgba(255, 255, 255, 0.06);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.3;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-eyebrow b {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-yellow);
    box-shadow: 0 0 0 7px rgba(243, 189, 63, 0.17);
  }

  #rk-solar-guide .rk-solar-hero-title {
    max-width: 820px;
    margin: 0 0 24px;
    color: var(--rk-white);
    font-size: clamp(2.03rem, 5vw, 4rem);
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 1.02;
  }

  #rk-solar-guide .rk-solar-hero-lead {
    max-width: 810px;
    margin-bottom: 26px;
    color: #dcecf4;
    font-size: clamp(1.02rem, 2.1vw, 1.24rem);
    line-height: 1.62;
  }

  #rk-solar-guide .rk-solar-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 22px;
    color: #c9dce5;
    font-size: 0.81rem;
    font-weight: 780;
  }

  #rk-solar-guide .rk-solar-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  #rk-solar-guide .rk-solar-meta i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-orange);
  }

  #rk-solar-guide .rk-solar-hero-panel {
    padding: 25px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(7px);
  }

  #rk-solar-guide .rk-solar-hero-panel small {
    display: block;
    margin-bottom: 14px;
    color: #8df1fc;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-hero-balance {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 9px;
    align-items: center;
  }

  #rk-solar-guide .rk-solar-hero-value {
    min-width: 0;
    padding: 16px 9px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.09);
    text-align: center;
  }

  #rk-solar-guide .rk-solar-hero-value span {
    display: block;
    color: #c7dae4;
    font-size: 0.63rem;
    font-weight: 850;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-hero-value strong {
    display: block;
    margin-top: 5px;
    color: var(--rk-white);
    font-size: 1.35rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-hero-symbol {
    color: var(--rk-yellow);
    font-size: 1.35rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-hero-result {
    margin-top: 14px;
    padding: 14px;
    border-radius: 15px;
    color: var(--rk-white);
    background: rgba(40, 201, 218, 0.16);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 1rem;
    font-weight: 900;
    text-align: center;
  }

  #rk-solar-guide .rk-solar-nav {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    padding: 15px clamp(20px, 5vw, 56px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
    scrollbar-width: thin;
  }

  #rk-solar-guide .rk-solar-nav a {
    flex: 0 0 auto;
    padding: 8px 13px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 0.73rem;
    font-weight: 880;
    text-decoration: none;
    white-space: nowrap;
  }

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

  #rk-solar-guide .rk-solar-body {
    padding: clamp(28px, 6vw, 70px);
  }

  #rk-solar-guide .rk-solar-section {
    margin-bottom: clamp(56px, 8vw, 94px);
  }

  #rk-solar-guide .rk-solar-section:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-kicker {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-orange);
    font-size: 0.72rem;
    font-weight: 930;
    letter-spacing: 0.095em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-lead {
    max-width: 940px;
    font-size: 1.08rem;
    line-height: 1.82;
  }

  #rk-solar-guide .rk-solar-dropcap::first-letter {
    float: left;
    margin: 0.08em 0.12em 0 0;
    color: var(--rk-orange);
    font-size: 3.65rem;
    font-weight: 950;
    line-height: 0.82;
  }

  #rk-solar-guide .rk-solar-grid-2,
  #rk-solar-guide .rk-solar-grid-3,
  #rk-solar-guide .rk-solar-grid-4 {
    display: grid;
    gap: 17px;
  }

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

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

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

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

  #rk-solar-guide .rk-solar-card-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 48px;
    margin-bottom: 16px;
    padding: 0 12px;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.78rem;
    font-weight: 930;
  }

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

  #rk-solar-guide .rk-solar-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(270px, 0.88fr);
    gap: 22px;
    align-items: stretch;
    margin-top: 27px;
  }

  #rk-solar-guide .rk-solar-answer-main {
    padding: clamp(25px, 4vw, 40px);
    border: 1px solid #bddce7;
    border-radius: 23px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-answer-side {
    padding: clamp(25px, 4vw, 40px);
    border-radius: 23px;
    color: var(--rk-white);
    background: var(--rk-dark);
  }

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

  #rk-solar-guide .rk-solar-answer-side p {
    color: #d6e7ef;
  }

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

  #rk-solar-guide .rk-solar-note,
  #rk-solar-guide .rk-solar-warning,
  #rk-solar-guide .rk-solar-success,
  #rk-solar-guide .rk-solar-danger {
    margin-top: 22px;
    padding: 20px 22px;
    border-left: 6px solid var(--rk-blue);
    border-radius: 9px 17px 17px 9px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-success {
    border-left-color: var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-solar-guide .rk-solar-danger {
    border-left-color: var(--rk-red);
    background: #fff1ef;
  }

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

  #rk-solar-guide .rk-solar-corrections {
    overflow: hidden;
    border: 1px solid #efc9b9;
    border-radius: 24px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-corrections-head {
    padding: 27px clamp(25px, 5vw, 45px);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-corrections-head h2 {
    margin-bottom: 8px;
  }

  #rk-solar-guide .rk-solar-corrections-head p {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-corrections-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--rk-line);
  }

  #rk-solar-guide .rk-solar-correction {
    padding: 24px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-correction b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 13px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.75rem;
  }

  #rk-solar-guide .rk-solar-correction p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-flow {
    overflow: hidden;
    margin-top: 25px;
    border: 1px solid var(--rk-line);
    border-radius: 23px;
    background: linear-gradient(180deg, #f8fcfd, #eef8fb);
  }

  #rk-solar-guide .rk-solar-flow-head {
    padding: 23px 25px 0;
  }

  #rk-solar-guide .rk-solar-flow-head p {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-flow svg {
    display: block;
    width: 100%;
    height: auto;
  }

  #rk-solar-guide .rk-solar-lab {
    overflow: hidden;
    border: 1px solid #b8dce7;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 24px 62px rgba(16, 37, 54, 0.12);
  }

  #rk-solar-guide .rk-solar-lab-head {
    padding: clamp(30px, 5vw, 54px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 8%, rgba(243, 189, 63, 0.4), transparent 28%),
      linear-gradient(125deg, var(--rk-dark), #174b63);
  }

  #rk-solar-guide .rk-solar-lab-head h2 {
    max-width: 900px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-lab-head p {
    max-width: 920px;
    margin-bottom: 0;
    color: #d7e9f1;
  }

  #rk-solar-guide .rk-solar-lab-layout {
    display: grid;
    grid-template-columns: minmax(330px, 0.86fr) minmax(0, 1.14fr);
  }

  #rk-solar-guide .rk-solar-controls {
    padding: clamp(25px, 4vw, 40px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-control {
    margin-bottom: 21px;
  }

  #rk-solar-guide .rk-solar-control:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-control-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
  }

  #rk-solar-guide .rk-solar-control label {
    color: var(--rk-dark);
    font-size: 0.8rem;
    font-weight: 880;
    line-height: 1.45;
  }

  #rk-solar-guide .rk-solar-output {
    flex: 0 0 auto;
    min-width: 70px;
    padding: 5px 9px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
  }

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

  #rk-solar-guide .rk-solar-control small {
    display: block;
    margin-top: 6px;
    color: var(--rk-muted);
    font-size: 0.68rem;
    line-height: 1.5;
  }

  #rk-solar-guide .rk-solar-results {
    min-width: 0;
    padding: clamp(25px, 4vw, 40px);
  }

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

  #rk-solar-guide .rk-solar-result-card {
    min-width: 0;
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-result-card.is-main {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-result-card small {
    display: block;
    min-height: 2.8em;
    margin-bottom: 7px;
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 820;
    line-height: 1.4;
  }

  #rk-solar-guide .rk-solar-result-card.is-main small {
    color: #d6f7fd;
  }

  #rk-solar-guide .rk-solar-result-number {
    overflow-wrap: anywhere;
    color: var(--rk-dark);
    font-size: clamp(1.05rem, 2.1vw, 1.45rem);
    font-weight: 950;
    letter-spacing: -0.035em;
    line-height: 1.15;
  }

  #rk-solar-guide .rk-solar-result-card.is-main .rk-solar-result-number {
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-status {
    margin-top: 16px;
    padding: 19px 20px;
    border-left: 6px solid var(--rk-blue);
    border-radius: 10px 17px 17px 10px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-status.is-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-status.is-danger {
    border-left-color: var(--rk-red);
    background: #fff1ef;
  }

  #rk-solar-guide .rk-solar-status.is-success {
    border-left-color: var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-solar-guide .rk-solar-status strong,
  #rk-solar-guide .rk-solar-status span {
    display: block;
  }

  #rk-solar-guide .rk-solar-status span {
    margin-top: 4px;
    color: var(--rk-text);
    font-size: 0.78rem;
    line-height: 1.55;
  }

  #rk-solar-guide .rk-solar-chart {
    margin-top: 18px;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-chart h3 {
    margin-bottom: 5px;
    font-size: 1.03rem;
  }

  #rk-solar-guide .rk-solar-chart p {
    margin-bottom: 12px;
    font-size: 0.72rem;
  }

  #rk-solar-guide .rk-solar-chart svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
  }

  #rk-solar-guide .rk-solar-chart-grid {
    stroke: #d6e4ea;
    stroke-width: 1;
  }

  #rk-solar-guide .rk-solar-chart-axis {
    stroke: #8196a3;
    stroke-width: 1.5;
  }

  #rk-solar-guide .rk-solar-chart-label {
    fill: #5b6f7c;
    font-size: 13px;
    font-weight: 700;
  }

  #rk-solar-guide .rk-solar-bar-loss {
    fill: var(--rk-red);
  }

  #rk-solar-guide .rk-solar-bar-sun {
    fill: var(--rk-yellow);
  }

  #rk-solar-guide .rk-solar-bar-internal {
    fill: var(--rk-green);
  }

  #rk-solar-guide .rk-solar-bar-floor {
    fill: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-chart-value {
    fill: var(--rk-dark);
    font-size: 14px;
    font-weight: 900;
  }

  #rk-solar-guide .rk-solar-inline-cta {
    padding: clamp(27px, 5vw, 45px);
    color: var(--rk-white);
    background: linear-gradient(125deg, var(--rk-dark), #17475e);
  }

  #rk-solar-guide .rk-solar-inline-cta h3 {
    max-width: 900px;
    margin-bottom: 12px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-inline-cta p {
    max-width: 930px;
    color: #d6e8f0;
  }

  #rk-solar-guide .rk-solar-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    margin-top: 6px;
    padding: 14px 23px;
    border-radius: 15px;
    color: var(--rk-white);
    background: linear-gradient(90deg, var(--rk-orange), #f04434);
    box-shadow: 0 12px 28px rgba(227, 72, 55, 0.24);
    font-size: 0.83rem;
    font-weight: 920;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease;
  }

  #rk-solar-guide .rk-solar-cta-button:hover,
  #rk-solar-guide .rk-solar-cta-button:focus-visible {
    color: var(--rk-white);
    background: linear-gradient(90deg, var(--rk-red), var(--rk-orange));
    transform: translateY(-1px);
  }

  #rk-solar-guide .rk-solar-disclosure {
    display: block;
    margin-top: 11px;
    color: #bad0dc;
    font-size: 0.68rem;
    line-height: 1.5;
  }

  #rk-solar-guide .rk-solar-formulas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  #rk-solar-guide .rk-solar-formula {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-formula span {
    display: block;
    margin-bottom: 8px;
    color: var(--rk-orange);
    font-size: 0.69rem;
    font-weight: 930;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-formula code {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-dark);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.88rem;
    font-weight: 850;
    line-height: 1.55;
    white-space: normal;
  }

  #rk-solar-guide .rk-solar-formula p {
    margin-bottom: 0;
    font-size: 0.78rem;
    line-height: 1.62;
  }

  #rk-solar-guide .rk-solar-selfreg {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    gap: 22px;
    align-items: stretch;
    margin-top: 25px;
  }

  #rk-solar-guide .rk-solar-selfreg-visual {
    position: relative;
    overflow: hidden;
    min-height: 320px;
    padding: 30px;
    border-radius: 23px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 75% 20%, rgba(243, 189, 63, 0.35), transparent 24%),
      linear-gradient(145deg, var(--rk-dark), #184c64);
  }

  #rk-solar-guide .rk-solar-selfreg-visual h3 {
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-selfreg-visual p {
    color: #d7e9f1;
  }

  #rk-solar-guide .rk-solar-selfreg-scale {
    display: grid;
    gap: 12px;
    margin-top: 25px;
  }

  #rk-solar-guide .rk-solar-selfreg-row {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr) 64px;
    gap: 10px;
    align-items: center;
    color: #d8eaf2;
    font-size: 0.72rem;
    font-weight: 800;
  }

  #rk-solar-guide .rk-solar-selfreg-track {
    height: 16px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
  }

  #rk-solar-guide .rk-solar-selfreg-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-yellow));
  }

  #rk-solar-guide .rk-solar-selfreg-copy {
    padding: 29px;
    border: 1px solid var(--rk-line);
    border-radius: 23px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-table-wrap {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
  }

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

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

  #rk-solar-guide th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.73rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-solar-guide td {
    font-size: 0.82rem;
    line-height: 1.55;
  }

  #rk-solar-guide tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

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

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

  #rk-solar-guide .rk-solar-strategy {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-strategy-head {
    min-height: 92px;
    padding: 20px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-solar-guide .rk-solar-strategy:nth-child(2) .rk-solar-strategy-head {
    background: var(--rk-orange);
  }

  #rk-solar-guide .rk-solar-strategy:nth-child(3) .rk-solar-strategy-head {
    background: var(--rk-green);
  }

  #rk-solar-guide .rk-solar-strategy-body {
    padding: 21px;
  }

  #rk-solar-guide .rk-solar-strategy-body p:last-child {
    margin-bottom: 0;
  }

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

  #rk-solar-guide .rk-solar-step {
    position: relative;
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
    counter-increment: rk-solar-step;
  }

  #rk-solar-guide .rk-solar-step::before {
    content: counter(rk-solar-step, decimal-leading-zero);
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.75rem;
    font-weight: 930;
  }

  #rk-solar-guide .rk-solar-step p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
  }

  #rk-solar-guide .rk-solar-checklist li {
    position: relative;
    margin: 0;
    padding: 17px 18px 17px 52px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-text);
    background: var(--rk-soft);
    font-size: 0.82rem;
    line-height: 1.6;
  }

  #rk-solar-guide .rk-solar-checklist li::before {
    content: "✓";
    position: absolute;
    top: 17px;
    left: 17px;
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.71rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-faq {
    display: grid;
    gap: 12px;
  }

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

  #rk-solar-guide .rk-solar-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-weight: 880;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

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

  #rk-solar-guide .rk-solar-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-blue);
    font-size: 1.35rem;
    font-weight: 900;
    transform: translateY(-50%);
  }

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

  #rk-solar-guide .rk-solar-faq-answer {
    padding: 18px 20px;
  }

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

  #rk-solar-guide .rk-solar-sources {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
    font-size: 0.75rem;
    line-height: 1.65;
  }

  #rk-solar-guide .rk-solar-sources strong {
    display: block;
    margin-bottom: 7px;
  }

  #rk-solar-guide .rk-solar-author {
    overflow: hidden;
    margin-bottom: clamp(55px, 8vw, 90px);
    border: 1px solid #bdd9e5;
    border-radius: 27px;
    background: var(--rk-white);
    box-shadow: 0 22px 50px rgba(16, 37, 54, 0.09);
  }

  #rk-solar-guide .rk-solar-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
  }

  #rk-solar-guide .rk-solar-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px clamp(28px, 5vw, 50px);
    border-bottom: 6px solid var(--rk-cyan);
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-solar-guide .rk-solar-author-head h2 {
    margin-bottom: 7px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-author-head p {
    margin-bottom: 0;
    color: #d5e7ef;
  }

  #rk-solar-guide .rk-solar-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.38);
    border-radius: 15px;
    color: #6aefff;
    font-size: 0.74rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

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

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

  #rk-solar-guide .rk-solar-author-photo {
    width: 184px;
    height: 184px;
    margin: 0 auto 21px;
    overflow: hidden;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 14px 34px rgba(16, 37, 54, 0.15);
  }

  #rk-solar-guide .rk-solar-author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-solar-guide .rk-solar-author-name {
    color: var(--rk-dark);
    font-size: 1.35rem;
    font-weight: 950;
    letter-spacing: -0.035em;
  }

  #rk-solar-guide .rk-solar-author-role {
    margin-top: 6px;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-author-main {
    min-width: 0;
    padding: 34px 38px 38px;
  }

  #rk-solar-guide .rk-solar-author-quote {
    margin: 0 0 26px;
    padding: 23px 25px 23px 72px;
    border: 0;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-author-quote::before {
    content: "“";
    position: absolute;
    margin: -15px 0 0 -49px;
    color: var(--rk-cyan);
    font-size: 3.7rem;
    font-weight: 950;
    line-height: 1;
  }

  #rk-solar-guide .rk-solar-author-quote p {
    margin-bottom: 0;
    color: var(--rk-dark);
    font-style: italic;
    font-weight: 820;
  }

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

  #rk-solar-guide .rk-solar-author-tab {
    padding: 14px 10px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-solar-guide .rk-solar-author-tab + .rk-solar-author-tab {
    border-left: 1px solid var(--rk-line);
  }

  #rk-solar-guide .rk-solar-author-panel {
    display: none;
    min-height: 168px;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
  }

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

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

  #rk-solar-author-about:checked ~ .rk-solar-author-layout label[for="rk-solar-author-about"],
  #rk-solar-author-exp:checked ~ .rk-solar-author-layout label[for="rk-solar-author-exp"],
  #rk-solar-author-sites:checked ~ .rk-solar-author-layout label[for="rk-solar-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
  }

  #rk-solar-guide .rk-solar-site-links a {
    padding: 8px 13px;
    border: 1px solid #c6dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.74rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-solar-guide .rk-solar-site-links a:hover,
  #rk-solar-guide .rk-solar-site-links a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-final-cta {
    overflow: hidden;
    border-radius: 27px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 16%, rgba(243, 189, 63, 0.38), transparent 27%),
      linear-gradient(125deg, var(--rk-dark), #15465e);
  }

  #rk-solar-guide .rk-solar-final-cta-content {
    padding: clamp(30px, 5vw, 53px);
  }

  #rk-solar-guide .rk-solar-final-cta h2 {
    max-width: 920px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-final-cta p {
    max-width: 940px;
    color: #d8e9f1;
  }

  @media (max-width: 980px) {
    #rk-solar-guide .rk-solar-hero-grid,
    #rk-solar-guide .rk-solar-answer,
    #rk-solar-guide .rk-solar-lab-layout,
    #rk-solar-guide .rk-solar-selfreg,
    #rk-solar-guide .rk-solar-author-layout {
      grid-template-columns: 1fr;
    }

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

    #rk-solar-guide .rk-solar-grid-4,
    #rk-solar-guide .rk-solar-grid-3,
    #rk-solar-guide .rk-solar-strategy-grid,
    #rk-solar-guide .rk-solar-steps {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-solar-guide {
      margin-top: 20px;
      font-size: 16px;
    }

    #rk-solar-guide .rk-solar-shell {
      border-radius: 20px;
    }

    #rk-solar-guide .rk-solar-hero,
    #rk-solar-guide .rk-solar-body {
      padding-right: 21px;
      padding-left: 21px;
    }

    #rk-solar-guide .rk-solar-corrections-grid,
    #rk-solar-guide .rk-solar-grid-2,
    #rk-solar-guide .rk-solar-grid-3,
    #rk-solar-guide .rk-solar-grid-4,
    #rk-solar-guide .rk-solar-result-grid,
    #rk-solar-guide .rk-solar-formulas,
    #rk-solar-guide .rk-solar-strategy-grid,
    #rk-solar-guide .rk-solar-steps,
    #rk-solar-guide .rk-solar-checklist {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-solar-guide .rk-solar-author-main {
      padding: 25px 18px 28px;
    }

    #rk-solar-guide .rk-solar-author-quote {
      padding: 22px 20px 22px 57px;
    }

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

    #rk-solar-guide .rk-solar-author-tab + .rk-solar-author-tab {
      border-top: 1px solid var(--rk-line);
      border-left: 0;
    }

    #rk-solar-guide .rk-solar-cta-button {
      display: flex;
      width: 100%;
    }

    #rk-solar-guide .rk-solar-nav {
      display: flex;
      width: auto;
      margin: 18px 20px 0;
      padding: 20px;
      flex-wrap: wrap;
      gap: 10px;
      overflow: visible;
      border: 1px solid var(--rk-line);
      border-radius: 20px;
      background: var(--rk-soft);
      scrollbar-width: auto;
    }

    #rk-solar-guide .rk-solar-nav::before {
      content: "NA SKRÓTY";
      flex: 0 0 100%;
      margin-bottom: 4px;
      color: var(--rk-dark);
      font-size: 0.75rem;
      font-weight: 900;
      letter-spacing: 0.08em;
      line-height: 1.3;
    }

    #rk-solar-guide .rk-solar-nav a {
      flex: 0 1 auto;
      white-space: normal;
    }

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

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

    #rk-solar-guide tbody tr {
      margin-bottom: 14px;
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 15px;
      background: var(--rk-white);
    }

    #rk-solar-guide td,
    #rk-solar-guide tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(118px, 0.78fr) minmax(0, 1.22fr);
      gap: 12px;
      padding: 12px 14px;
      background: var(--rk-white);
    }

    #rk-solar-guide td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-size: 0.71rem;
      font-weight: 900;
      line-height: 1.45;
    }
  }

  @media (max-width: 430px) {
    #rk-solar-guide .rk-solar-hero-balance {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-hero-symbol {
      text-align: center;
    }

    #rk-solar-guide .rk-solar-selfreg-row {
      grid-template-columns: 88px minmax(0, 1fr) 50px;
    }

    #rk-solar-guide td,
    #rk-solar-guide tbody tr:nth-child(even) td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

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

<article id="rk-solar-guide" data-rk-solar-version="2026-08-26" aria-label="Ogrzewanie podłogowe a pasywne zyski ciepła">
  <div class="rk-solar-shell">
    <div class="rk-solar-progress-track" aria-hidden="true"><div class="rk-solar-progress"></div></div>

    <header class="rk-solar-hero">
      <div class="rk-solar-hero-grid">
        <div>
          <span class="rk-solar-eyebrow"><b aria-hidden="true"></b> Fizyka budynku • analiza techniczna 2026</span>
          <div class="rk-solar-hero-title" role="heading" aria-level="2">Ogrzewanie podłogowe a pasywne zyski ciepła</div>
          <p class="rk-solar-hero-lead">Słońce wpadające przez duże przeszklenia może w ciągu kilkudziesięciu minut zmienić bilans salonu. Sprawdź, jak podłogówka reaguje na darmową energię, kiedy działa samoregulacja i co naprawdę ogranicza przegrzewanie.</p>
          <div class="rk-solar-meta">
            <span><i aria-hidden="true"></i> Autor: Robert Kucharski</span>
            <span><i aria-hidden="true"></i> Aktualizacja: 26 sierpnia 2026 r.</span>
            <span><i aria-hidden="true"></i> Czas czytania: ok. 18 minut</span>
          </div>
        </div>

        <aside class="rk-solar-hero-panel" aria-label="Przykład chwilowego bilansu zysków słonecznych">
          <small>Bilans chwilowy — nie moc projektowa</small>
          <div class="rk-solar-hero-balance">
            <div class="rk-solar-hero-value"><span>Aktualne straty</span><strong>1200 W</strong></div>
            <div class="rk-solar-hero-symbol" aria-hidden="true">−</div>
            <div class="rk-solar-hero-value"><span>Zyski słoneczne</span><strong>560 W</strong></div>
          </div>
          <div class="rk-solar-hero-result">Pozostaje chwilowo: 640 W</div>
        </aside>
      </div>
    </header>

    <nav class="rk-solar-nav" aria-label="Spis treści artykułu">
      <a href="#rk-solar-answer">Szybka odpowiedź</a>
      <a href="#rk-solar-corrections">Ważne korekty</a>
      <a href="#rk-solar-lab">Laboratorium</a>
      <a href="#rk-solar-physics">Samoregulacja</a>
      <a href="#rk-solar-design">Projektowanie</a>
      <a href="#rk-solar-control">Sterowanie</a>
      <a href="#rk-solar-heatpump">Pompa ciepła</a>
      <a href="#rk-solar-howto">Procedura</a>
      <a href="#rk-solar-faq">FAQ</a>
      <a href="#rk-solar-author">Autor</a>
    </nav>

    <div class="rk-solar-body">
      <section class="rk-solar-section" id="rk-solar-answer">
        <span class="rk-solar-kicker">Najkrótsza poprawna odpowiedź</span>
        <h2>Czy pasywne zyski ciepła przeszkadzają ogrzewaniu podłogowemu?</h2>
        <p class="rk-solar-lead rk-solar-dropcap"><strong>Ogrzewanie podłogowe a pasywne zyski ciepła</strong> mogą współpracować bardzo dobrze, ponieważ niska temperatura powierzchni sprzyja fizycznej samoregulacji emisji. Problem pojawia się wtedy, gdy duże przeszklenia, ciężka podłoga, zbyt wysoka temperatura zasilania i spóźnione sterowanie dostarczają do pomieszczenia więcej energii, niż może ono w danej chwili oddać. Słońce nie jest wadą podłogówki — jest zmiennym składnikiem bilansu, który trzeba przewidzieć.</p>

        <div class="rk-solar-answer">
          <div class="rk-solar-answer-main">
            <h3>Co dzieje się w słoneczny dzień?</h3>
            <p>Promieniowanie przenika przez szybę, ogrzewa podłogę, ściany i wyposażenie, a następnie podnosi temperaturę operacyjną wnętrza. W tym samym czasie aktywna podłoga nadal może oddawać energię zgromadzoną wcześniej w jastrychu.</p>
            <p><strong>Efekt końcowy zależy od czasu:</strong> chwilowego nasłonecznienia, ilości zakumulowanego ciepła, temperatury powierzchni, zacienienia i reakcji automatyki.</p>
          </div>
          <div class="rk-solar-answer-side">
            <h3>Najważniejszy wniosek</h3>
            <p>Nie wolno zmniejszać projektowej mocy pomieszczenia tylko dlatego, że ma okna od południa. W mroźny i pochmurny dzień zysk słoneczny może być bliski zeru.</p>
            <p>Projekt zapewnia moc w warunkach obliczeniowych, a sterowanie i zacienienie odpowiadają za pracę przy zmiennych zyskach.</p>
          </div>
        </div>

        <div class="rk-solar-grid-4" style="margin-top:22px">
          <article class="rk-solar-card"><span class="rk-solar-card-number">A<sub>gl</sub></span><h3>Powierzchnia szyb</h3><p>Liczy się przejrzysta część przeszklenia odbierająca promieniowanie, a nie wyłącznie wymiar całego otworu okiennego.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">g</span><h3>Współczynnik szyby</h3><p>Określa udział całkowitej energii słonecznej przedostającej się do wnętrza. Przyjmujemy dane konkretnego pakietu szybowego.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">F<sub>sh</sub></span><h3>Zacienienie</h3><p>Okap, balkon, żaluzje zewnętrzne, sąsiednie budynki i drzewa zmieniają rzeczywisty dopływ energii w ciągu dnia i roku.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">C</span><h3>Masa termiczna</h3><p>Jastrych i inne ciężkie powierzchnie mogą tłumić krótki szczyt, ale przejętą energię oddają później.</p></article>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-corrections">
        <div class="rk-solar-corrections">
          <div class="rk-solar-corrections-head">
            <span class="rk-solar-kicker">Pięć rozróżnień, które zmieniają ocenę instalacji</span>
            <h2>Projektowa moc grzewcza, chwilowy bilans i przegrzewanie to trzy różne zagadnienia</h2>
            <p>Najwięcej błędów wynika z mieszania parametrów obliczanych dla skrajnego mrozu z wynikiem obserwowanym podczas kilku słonecznych godzin.</p>
          </div>
          <div class="rk-solar-corrections-grid">
            <article class="rk-solar-correction"><b>01</b><h3>Moc projektowa nie zależy od obietnicy słońca</h3><p>Instalacja ma pokryć projektowe straty również wtedy, gdy jest zimno, pochmurno i nie występują użyteczne zyski. Zyski analizujemy dodatkowo jako zmienne obciążenie eksploatacyjne.</p></article>
            <article class="rk-solar-correction"><b>02</b><h3>Waty to nie kilowatogodziny</h3><p>Natężenie promieniowania `I` wyrażone w W/m² opisuje chwilową moc. Miesięczne lub roczne napromienienie jest energią i podaje się je między innymi w kWh/m².</p></article>
            <article class="rk-solar-correction"><b>03</b><h3>Masa nie tylko przegrzewa</h3><p>Ciężka konstrukcja pochłania energię, ogranicza szybkość wzrostu temperatury i przesuwa szczyt w czasie. Może jednak przedłużyć oddawanie ciepła po zaniku słońca.</p></article>
            <article class="rk-solar-correction"><b>04</b><h3>Termostat nie cofa energii z jastrychu</h3><p>Zamknięcie siłownika zatrzymuje dopływ nowej energii, ale podłoga nadal oddaje ciepło już zgromadzone. Dlatego liczy się niska temperatura zasilania i działanie wyprzedzające.</p></article>
            <article class="rk-solar-correction"><b>05</b><h3>Bufor nie jest obowiązkowy z definicji</h3><p>Przy pompie ciepła jego potrzebę ocenia się na podstawie minimalnego przepływu, pojemności wodnej, sposobu odszraniania, liczby zamykanych pętli i wymagań urządzenia.</p></article>
            <article class="rk-solar-correction"><b>06</b><h3>Strefa nie oznacza osobnego mieszacza</h3><p>Pomieszczenie zwykle jest regulowane siłownikiem odpowiedniej pętli lub grupy pętli. Zawór mieszający przygotowuje temperaturę dla obiegu, a nie dla każdego pokoju oddzielnie.</p></article>
          </div>
        </div>

        <div class="rk-solar-flow" aria-label="Schemat przepływu energii słonecznej i ciepła z ogrzewania podłogowego">
          <div class="rk-solar-flow-head"><h3>Dwa strumienie energii spotykają się w jednym pomieszczeniu</h3><p>O temperaturze decyduje ich suma, aktualne straty oraz zdolność konstrukcji do magazynowania i oddawania ciepła.</p></div>
          <svg viewBox="0 0 1040 330" role="img" aria-labelledby="rk-solar-flow-title rk-solar-flow-desc">
            <title id="rk-solar-flow-title">Przepływ energii słonecznej i ciepła z podłogówki</title>
            <desc id="rk-solar-flow-desc">Promieniowanie słoneczne przechodzi przez szybę, a woda przekazuje ciepło przez jastrych. Oba strumienie wpływają na temperaturę pomieszczenia i straty budynku.</desc>
            <defs>
              <linearGradient id="rkSolarSun" x1="0" x2="1"><stop offset="0" stop-color="#f3bd3f"></stop><stop offset="1" stop-color="#ff7438"></stop></linearGradient>
              <linearGradient id="rkSolarWater" x1="0" x2="1"><stop offset="0" stop-color="#28c9da"></stop><stop offset="1" stop-color="#078fbe"></stop></linearGradient>
              <marker id="rkSolarArrowWarm" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#ff7438"></path></marker>
              <marker id="rkSolarArrowCool" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#078fbe"></path></marker>
            </defs>
            <circle cx="92" cy="80" r="36" fill="url(#rkSolarSun)"></circle>
            <g stroke="#f3bd3f" stroke-width="5"><line x1="92" y1="22" x2="92" y2="5"></line><line x1="92" y1="155" x2="92" y2="138"></line><line x1="34" y1="80" x2="17" y2="80"></line><line x1="167" y1="80" x2="150" y2="80"></line><line x1="51" y1="39" x2="38" y2="26"></line><line x1="133" y1="121" x2="146" y2="134"></line></g>
            <text x="92" y="187" text-anchor="middle" fill="#14384d" font-size="17" font-weight="900">SŁOŃCE</text>
            <rect x="220" y="48" width="92" height="205" rx="12" fill="#dff7fb" stroke="#078fbe" stroke-width="3"></rect>
            <line x1="251" y1="50" x2="251" y2="252" stroke="#87dce8" stroke-width="2"></line><line x1="281" y1="50" x2="281" y2="252" stroke="#87dce8" stroke-width="2"></line>
            <text x="266" y="282" text-anchor="middle" fill="#14384d" font-size="16" font-weight="900">SZYBA: g + CIEŃ</text>
            <path d="M142 86 C175 86 187 86 215 86" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <path d="M318 98 C360 98 382 116 416 136" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <rect x="440" y="64" width="255" height="152" rx="24" fill="#ffffff" stroke="#c7dce5" stroke-width="3"></rect>
            <text x="568" y="115" text-anchor="middle" fill="#102536" font-size="21" font-weight="900">POMIESZCZENIE</text>
            <text x="568" y="147" text-anchor="middle" fill="#506674" font-size="16">powietrze + powierzchnie</text>
            <text x="568" y="179" text-anchor="middle" fill="#078fbe" font-size="16" font-weight="800">temperatura operacyjna</text>
            <rect x="420" y="252" width="295" height="34" rx="12" fill="#d7e2e7"></rect>
            <path d="M458 270 C483 227 510 227 535 270 C560 313 587 313 612 270 C637 227 664 227 689 270" fill="none" stroke="url(#rkSolarWater)" stroke-width="9"></path>
            <text x="568" y="318" text-anchor="middle" fill="#14384d" font-size="16" font-weight="900">WODA → JASTRYCH → PODŁOGA</text>
            <path d="M568 250 C568 238 568 231 568 220" fill="none" stroke="#078fbe" stroke-width="8" marker-end="url(#rkSolarArrowCool)"></path>
            <path d="M700 134 C759 134 778 104 820 104" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <rect x="838" y="54" width="164" height="105" rx="19" fill="#fff3eb" stroke="#ff7438" stroke-width="3"></rect>
            <text x="920" y="92" text-anchor="middle" fill="#102536" font-size="18" font-weight="900">STRATY</text>
            <text x="920" y="122" text-anchor="middle" fill="#506674" font-size="14">przenikanie</text>
            <text x="920" y="143" text-anchor="middle" fill="#506674" font-size="14">+ wentylacja</text>
            <text x="842" y="215" fill="#16876d" font-size="15" font-weight="900">SAMOREGULACJA:</text>
            <text x="842" y="241" fill="#506674" font-size="14">wyższa temperatura wnętrza</text>
            <text x="842" y="264" fill="#506674" font-size="14">→ mniejsza emisja podłogi</text>
          </svg>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-lab">
        <div class="rk-solar-lab">
          <div class="rk-solar-lab-head">
            <span class="rk-solar-kicker" style="color:#79f1ff">Interaktywne laboratorium bilansu chwilowego</span>
            <h2>Sprawdź, kiedy słońce przejmuje ogrzewanie pomieszczenia</h2>
            <p>Zmień straty, temperatury, powierzchnię szyb, współczynnik `g`, nasłonecznienie i zacienienie. Model zestawi chwilowe zyski z przybliżonym aktualnym zapotrzebowaniem oraz mocą nadal oddawaną przez podłogę.</p>
          </div>

          <div class="rk-solar-lab-layout">
            <form class="rk-solar-controls" id="rk-solar-form" aria-label="Dane do kalkulatora zysków słonecznych">
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-design-load">Projektowa strata pomieszczenia</label><output class="rk-solar-output" id="rk-solar-design-load-output">1200 W</output></div>
                <input id="rk-solar-design-load" type="range" min="300" max="5000" step="50" value="1200">
                <small>Moc potrzebna w projektowych warunkach zewnętrznych, przed dodawaniem przypadkowych zapasów.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-design-out">Projektowa temperatura zewnętrzna</label><output class="rk-solar-output" id="rk-solar-design-out-output">−20°C</output></div>
                <input id="rk-solar-design-out" type="range" min="-30" max="-10" step="1" value="-20">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-current-out">Aktualna temperatura zewnętrzna</label><output class="rk-solar-output" id="rk-solar-current-out-output">0°C</output></div>
                <input id="rk-solar-current-out" type="range" min="-20" max="15" step="1" value="0">
                <small>Aktualne straty są szacowane proporcjonalnie do różnicy temperatur.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-indoor">Temperatura wewnętrzna</label><output class="rk-solar-output" id="rk-solar-indoor-output">21°C</output></div>
                <input id="rk-solar-indoor" type="range" min="18" max="25" step="0.5" value="21">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-glass">Powierzchnia czynna przeszklenia</label><output class="rk-solar-output" id="rk-solar-glass-output">8,0 m²</output></div>
                <input id="rk-solar-glass" type="range" min="1" max="30" step="0.5" value="8">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-gvalue">Współczynnik całkowitej przepuszczalności `g`</label><output class="rk-solar-output" id="rk-solar-gvalue-output">0,50</output></div>
                <input id="rk-solar-gvalue" type="range" min="0.25" max="0.75" step="0.01" value="0.50">
                <small>Wartość należy pobrać z dokumentacji konkretnego pakietu szybowego.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-irradiance">Promieniowanie padające na szybę</label><output class="rk-solar-output" id="rk-solar-irradiance-output">140 W/m²</output></div>
                <input id="rk-solar-irradiance" type="range" min="0" max="600" step="10" value="140">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-shading">Energia pozostająca po zacienieniu</label><output class="rk-solar-output" id="rk-solar-shading-output">85%</output></div>
                <input id="rk-solar-shading" type="range" min="0" max="100" step="5" value="85">
                <small>100% oznacza brak redukcji, 20% — silne ograniczenie przez skuteczną osłonę.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-internal">Zyski od ludzi i urządzeń</label><output class="rk-solar-output" id="rk-solar-internal-output">120 W</output></div>
                <input id="rk-solar-internal" type="range" min="0" max="800" step="20" value="120">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-active">Moc nadal oddawana przez podłogę</label><output class="rk-solar-output" id="rk-solar-active-output">600 W</output></div>
                <input id="rk-solar-active" type="range" min="0" max="5000" step="50" value="600">
                <small>To chwilowa moc aktywna, nie moc znamionowa pętli ani moc źródła ciepła.</small>
              </div>
            </form>

            <div class="rk-solar-results" aria-live="polite">
              <div class="rk-solar-result-grid">
                <div class="rk-solar-result-card"><small>Przybliżone aktualne straty</small><div class="rk-solar-result-number" id="rk-solar-result-loss">615 W</div></div>
                <div class="rk-solar-result-card"><small>Zyski słoneczne</small><div class="rk-solar-result-number" id="rk-solar-result-sun">476 W</div></div>
                <div class="rk-solar-result-card"><small>Łączne zyski pasywne i bytowe</small><div class="rk-solar-result-number" id="rk-solar-result-gains">596 W</div></div>
                <div class="rk-solar-result-card"><small>Moc aktywna nadal potrzebna</small><div class="rk-solar-result-number" id="rk-solar-result-required">19 W</div></div>
                <div class="rk-solar-result-card"><small>Pokrycie strat przez same zyski</small><div class="rk-solar-result-number" id="rk-solar-result-coverage">97%</div></div>
                <div class="rk-solar-result-card is-main"><small>Bilans po dodaniu ciepła podłogi</small><div class="rk-solar-result-number" id="rk-solar-result-balance">+581 W</div></div>
              </div>

              <div class="rk-solar-status is-danger" id="rk-solar-status">
                <strong id="rk-solar-status-title">Wyraźna chwilowa nadwyżka energii</strong>
                <span id="rk-solar-status-copy">Zyski niemal pokrywają straty, a podłoga nadal oddaje 600 W. Sterowanie może zatrzymać nowy dopływ, lecz nie usunie energii zgromadzonej w jastrychu.</span>
              </div>

              <div class="rk-solar-chart" aria-label="Wykres chwilowego bilansu cieplnego pomieszczenia">
                <h3>Straty i dopływy energii w tej samej chwili</h3>
                <p>Porównanie nie przewiduje temperatury za kilka godzin — do tego potrzebny jest model dynamiczny budynku.</p>
                <svg viewBox="0 0 720 345" role="img" aria-labelledby="rk-solar-chart-title rk-solar-chart-desc">
                  <title id="rk-solar-chart-title">Porównanie strat oraz zysków cieplnych</title>
                  <desc id="rk-solar-chart-desc">Cztery słupki przedstawiają aktualne straty, zyski słoneczne, zyski wewnętrzne oraz moc oddawaną przez podłogę.</desc>
                  <line class="rk-solar-chart-grid" x1="74" y1="45" x2="685" y2="45"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="100" x2="685" y2="100"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="155" x2="685" y2="155"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="210" x2="685" y2="210"></line>
                  <line class="rk-solar-chart-axis" x1="74" y1="265" x2="685" y2="265"></line>
                  <line class="rk-solar-chart-axis" x1="74" y1="45" x2="74" y2="265"></line>
                  <text class="rk-solar-chart-label" id="rk-solar-ymax" x="64" y="50" text-anchor="end">720</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y75" x="64" y="105" text-anchor="end">540</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y50" x="64" y="160" text-anchor="end">360</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y25" x="64" y="215" text-anchor="end">180</text>
                  <text class="rk-solar-chart-label" x="64" y="270" text-anchor="end">0</text>
                  <text class="rk-solar-chart-label" x="17" y="160" text-anchor="middle" transform="rotate(-90 17 160)">moc [W]</text>
                  <rect class="rk-solar-bar-loss" id="rk-solar-bar-loss" x="115" y="77" width="90" height="188" rx="11"></rect>
                  <rect class="rk-solar-bar-sun" id="rk-solar-bar-sun" x="265" y="119" width="90" height="146" rx="11"></rect>
                  <rect class="rk-solar-bar-internal" id="rk-solar-bar-internal" x="415" y="228" width="90" height="37" rx="11"></rect>
                  <rect class="rk-solar-bar-floor" id="rk-solar-bar-floor" x="565" y="82" width="90" height="183" rx="11"></rect>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-loss-value" x="160" y="69" text-anchor="middle">615 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-sun-value" x="310" y="111" text-anchor="middle">476 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-internal-value" x="460" y="220" text-anchor="middle">120 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-floor-value" x="610" y="74" text-anchor="middle">600 W</text>
                  <text class="rk-solar-chart-label" x="160" y="294" text-anchor="middle">STRATY</text>
                  <text class="rk-solar-chart-label" x="310" y="294" text-anchor="middle">SŁOŃCE</text>
                  <text class="rk-solar-chart-label" x="460" y="294" text-anchor="middle">BYTOWE</text>
                  <text class="rk-solar-chart-label" x="610" y="294" text-anchor="middle">PODŁOGA</text>
                </svg>
              </div>
            </div>
          </div>

          <div class="rk-solar-inline-cta">
            <h3>Dwa pomieszczenia w tym samym domu mogą w tej samej chwili potrzebować zupełnie innej mocy</h3>
            <p>Kalkulator pokazuje chwilowy bilans. Projekt musi natomiast określić straty każdego pomieszczenia, moc podłogi bez zakładania stałego słońca, rozstaw i długość pętli, przepływy oraz sensowny podział na strefy. Dopiero te dane pozwalają przewidzieć reakcję salonu południowego bez pozbawiania mocy pokoi północnych.</p>
            <a class="rk-solar-cta-button rk-solar-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczeniami dla każdego pomieszczenia</a>
            <small class="rk-solar-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
          </div>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-physics">
        <span class="rk-solar-kicker">Fizyka zamiast prostych sloganów</span>
        <h2>Jak obliczyć pasywne zyski ciepła i dlaczego podłoga częściowo reguluje się sama?</h2>
        <p class="rk-solar-lead">Do wstępnej analizy można zestawić moc promieniowania przechodzącego przez przeszklenie z chwilowymi stratami pomieszczenia. Wynik pokazuje kierunek zmian, ale nie określa temperatury za dwie lub cztery godziny. Taką odpowiedź daje dopiero obliczenie dynamiczne uwzględniające pojemność cieplną, czas, położenie słońca i sterowanie.</p>

        <div class="rk-solar-formulas">
          <article class="rk-solar-formula">
            <span>Uproszczony zysk słoneczny</span>
            <code>Φ<sub>sol</sub> = A<sub>gl</sub> × g × I × F<sub>sh</sub></code>
            <p>A<sub>gl</sub> — czynna powierzchnia szyb, `g` — przepuszczalność energii całkowitej, `I` — chwilowe promieniowanie na płaszczyznę szyby, F<sub>sh</sub> — udział pozostający po zacienieniu.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Przybliżenie aktualnych strat</span>
            <code>Φ<sub>loss,now</sub> ≈ Φ<sub>design</sub> × (T<sub>i</sub> − T<sub>e,now</sub>) / (T<sub>i</sub> − T<sub>e,design</sub>)</code>
            <p>Proporcjonalne skalowanie względem różnicy temperatur jest narzędziem edukacyjnym. Nie odtwarza osobno wentylacji, infiltracji, zmiennych współczynników ani zysków magazynowanych.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Chwilowa moc aktywna</span>
            <code>Φ<sub>heat,now</sub> = max[0; Φ<sub>loss,now</sub> − Φ<sub>sol</sub> − Φ<sub>int</sub>]</code>
            <p>Jeżeli zyski przekraczają straty, chwilowe zapotrzebowanie aktywne spada do zera. Nie oznacza to, że można trwale zmniejszyć moc projektową pętli.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Energia magazynowana w masie</span>
            <code>E = m × c × ΔT</code>
            <p>Masa `m`, ciepło właściwe `c` i zmiana temperatury określają teoretyczną ilość energii przejętej przez materiał. Rzeczywisty udział zależy od rozkładu temperatury oraz warunków brzegowych.</p>
          </article>
        </div>

        <div class="rk-solar-warning">
          <p><strong>To ważne dla interpretacji:</strong> współczynnik `g` nie jest współczynnikiem przenikania ciepła `U`. `U` opisuje straty przez przegrodę przy różnicy temperatur, a `g` udział energii słonecznej przechodzącej przez oszklenie. Dobre okno może mieć niskie `U`, a jednocześnie stosunkowo wysokie albo niskie `g`.</p>
        </div>

        <div class="rk-solar-selfreg">
          <div class="rk-solar-selfreg-visual">
            <span class="rk-solar-kicker" style="color:#79f1ff">Przykład powierzchni 25°C</span>
            <h3>Wzrost temperatury wnętrza zmniejsza oddawanie ciepła</h3>
            <p>Przy niezmienionej temperaturze powierzchni wielkość emisji jest w przybliżeniu związana z różnicą między podłogą a temperaturą operacyjną pomieszczenia.</p>
            <div class="rk-solar-selfreg-scale" aria-label="Względna emisja podłogi przy różnych temperaturach pomieszczenia">
              <div class="rk-solar-selfreg-row"><span>Pokój 20°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:100%"></span></span><strong style="color:#fff">100%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 21°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:80%"></span></span><strong style="color:#fff">80%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 22°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:60%"></span></span><strong style="color:#fff">60%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 23°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:40%"></span></span><strong style="color:#fff">40%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 24°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:20%"></span></span><strong style="color:#fff">20%</strong></div>
            </div>
          </div>
          <div class="rk-solar-selfreg-copy">
            <h3>Na czym polega samoregulacja ogrzewania podłogowego?</h3>
            <p>Jeżeli powierzchnia ma 25°C, a temperatura operacyjna wnętrza 20°C, różnica wynosi 5 K. Gdy słońce podniesie temperaturę wnętrza do 23°C, różnica spada do 2 K. Przy podobnym współczynniku wymiany ciepła emisja może spaść do około 40% wartości początkowej.</p>
            <p>To efekt fizyczny, bez termostatu i siłownika. Jest szczególnie zauważalny w systemach niskotemperaturowych, w których powierzchnia podłogi znajduje się tylko kilka kelwinów powyżej temperatury pomieszczenia.</p>
            <p><strong>Nie jest to jednak pełne zabezpieczenie.</strong> Temperatura powierzchni również zmienia się w czasie, a jastrych może zawierać energię zgromadzoną przed pojawieniem się słońca. Powyższe procenty pokazują zasadę, a nie prognozę konkretnego budynku.</p>
          </div>
        </div>

        <h3 style="margin-top:38px">Ile energii może przejąć jastrych?</h3>
        <p>Dla salonu o powierzchni 30 m², warstwy jastrychu 6,5 cm, gęstości 2100 kg/m³ i ciepła właściwego około 0,88 kJ/(kg·K) teoretyczna pojemność tej masy wynosi około <strong>1 kWh na każdy 1 K</strong> zmiany średniej temperatury. Nie oznacza to, że cała warstwa nagrzeje się równomiernie ani że cała energia będzie użyteczna, ale pokazuje skalę akumulacji.</p>

        <div class="rk-solar-grid-3" style="margin-top:22px">
          <article class="rk-solar-card"><span class="rk-solar-card-number">1</span><h3>Krótki impuls słońca</h3><p>Ciężka podłoga może pochłonąć część energii i ograniczyć szybki wzrost temperatury powietrza.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">2</span><h3>Długi słoneczny okres</h3><p>Po wypełnieniu zdolności do dalszego magazynowania rośnie temperatura powierzchni i zwiększa się ryzyko przegrzania.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">3</span><h3>Po zachodzie</h3><p>Nagrzane powierzchnie oddają energię do wnętrza. Czas i intensywność zależą od konstrukcji oraz strat budynku.</p></article>
        </div>

        <p style="margin-top:24px">Szersze omówienie tego zjawiska znajduje się w artykule <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">czym jest bezwładność cieplna w ogrzewaniu podłogowym</a>.</p>
      </section>

      <section class="rk-solar-section" id="rk-solar-design">
        <span class="rk-solar-kicker">Dwa obliczenia o różnych celach</span>
        <h2>Jak projektować podłogówkę przy dużych przeszkleniach?</h2>
        <p class="rk-solar-lead">Najpierw należy zapewnić wymaganą moc w warunkach projektowych. Dopiero później sprawdza się, jak zmienne zyski słoneczne wpływają na regulację, temperaturę operacyjną i ryzyko przegrzewania. Pominięcie pierwszego etapu grozi niedogrzaniem w pochmurny mróz, a pominięcie drugiego — dyskomfortem w słoneczne dni.</p>

        <div class="rk-solar-table-wrap">
          <table aria-label="Porównanie obliczenia projektowego i chwilowego bilansu zysków">
            <thead><tr><th>Element analizy</th><th>Obciążenie projektowe</th><th>Bilans chwilowy lub godzinowy</th></tr></thead>
            <tbody>
              <tr><td data-label="Element"><strong>Cel</strong></td><td data-label="Obciążenie projektowe">Dobór mocy ogrzewania dla obliczeniowych warunków zewnętrznych.</td><td data-label="Bilans chwilowy">Ocena reakcji wnętrza na zmienne słońce, ludzi, urządzenia i sterowanie.</td></tr>
              <tr><td data-label="Element"><strong>Warunki pogodowe</strong></td><td data-label="Obciążenie projektowe">Projektowa temperatura zewnętrzna i przyjęte warunki normowe.</td><td data-label="Bilans chwilowy">Temperatura, promieniowanie, zachmurzenie i zacienienie zmienne w czasie.</td></tr>
              <tr><td data-label="Element"><strong>Zyski słoneczne</strong></td><td data-label="Obciążenie projektowe">Nie mogą stanowić gwarantowanego źródła mocy dla każdej godziny mrozu.</td><td data-label="Bilans chwilowy">Są bezpośrednim składnikiem aktualnego bilansu i mogą chwilowo wyłączyć potrzebę grzania.</td></tr>
              <tr><td data-label="Element"><strong>Wynik</strong></td><td data-label="Obciążenie projektowe">Moc pomieszczenia, rozstaw, temperatura zasilania, długość i przepływ pętli.</td><td data-label="Bilans chwilowy">Wymagana redukcja mocy, ryzyko nadwyżki, potrzeba zacienienia i strategia sterowania.</td></tr>
              <tr><td data-label="Element"><strong>Metoda</strong></td><td data-label="Obciążenie projektowe">Obliczenia strat pomieszczenie po pomieszczeniu.</td><td data-label="Bilans chwilowy">Od uproszczonego modelu edukacyjnego do pełnej symulacji godzinowej.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-solar-danger">
          <p><strong>Nie zmniejszaj zagęszczenia rur wyłącznie ze względu na południowe okna.</strong> Jeżeli projektowana pętla nie pokryje strat bez słońca, automatyka nie odzyska brakującej mocy. Rozstaw rur powinien wynikać z obciążenia, temperatury zasilania, oporu okładziny i dopuszczalnej temperatury powierzchni.</p>
        </div>

        <h3 style="margin-top:38px">Co trzeba przeanalizować przy przeszkleniach południowych i zachodnich?</h3>
        <div class="rk-solar-grid-3">
          <article class="rk-solar-card"><span class="rk-solar-card-number">01</span><h3>Geometria i orientacja</h3><p>Powierzchnia szyby, azymut, wysokość nadproża, głębokość pomieszczenia oraz kąt padania słońca decydują o miejscu i czasie wystąpienia zysków.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">02</span><h3>Parametry oszklenia</h3><p>Do strat wykorzystuje się `U`, a do zysków `g`. Należy uwzględnić również udział ram, rzeczywistą powierzchnię szkła i dane producenta okna.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">03</span><h3>Zacienienie zewnętrzne</h3><p>Okap może dobrze działać dla wysokiego słońca letniego, ale przepuszczać niskie słońce zimowe. Żaluzja zewnętrzna reaguje elastycznie i zatrzymuje energię przed szybą.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">04</span><h3>Opór posadzki</h3><p>Płytki, drewno, winyl i dywan zmieniają moc powierzchniową oraz temperaturę wody potrzebną do pokrycia strat.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">05</span><h3>Podział hydrauliczny</h3><p>Strefy południowe i północne powinny mieć pętle pozwalające na niezależną reakcję. Jedna długa pętla przechodząca przez oba obszary utrudnia sterowanie.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">06</span><h3>Temperatura zasilania</h3><p>Im mniejsza nadwyżka temperatury podłogi nad wnętrzem, tym wyraźniejszy efekt samoregulacji i mniejsza energia zgromadzona ponad potrzebę.</p></article>
        </div>

        <p style="margin-top:24px">Szczegółowy dobór opisują również poradniki o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawie rur przy pompie ciepła</a>, <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefie brzegowej ogrzewania podłogowego</a> i <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>.</p>

        <h3 style="margin-top:38px">Cztery typowe pomieszczenia — cztery strategie</h3>
        <div class="rk-solar-table-wrap">
          <table aria-label="Strategie projektowe dla pomieszczeń o różnych zyskach słonecznych">
            <thead><tr><th>Pomieszczenie</th><th>Najważniejsze ryzyko</th><th>Decyzja projektowa</th><th>Sterowanie i ochrona</th></tr></thead>
            <tbody>
              <tr><td data-label="Pomieszczenie"><strong>Salon południowy</strong></td><td data-label="Ryzyko">Duży szczyt w środku dnia i energia pozostająca w jastrychu.</td><td data-label="Projekt">Osobne pętle strefy dziennej, moc pełna na dzień bez słońca, możliwie niska Tz.</td><td data-label="Sterowanie">Wpływ pomieszczenia, ograniczenie przegrzewania i skuteczne zacienienie zewnętrzne.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Strefa zachodnia</strong></td><td data-label="Ryzyko">Późny zysk w chwili, gdy podłoga zawiera energię z całego dnia.</td><td data-label="Projekt">Oddzielenie od pomieszczeń północnych i analiza popołudniowego użytkowania.</td><td data-label="Sterowanie">Reakcja wyprzedzająca oraz żaluzje ograniczające niski kąt słońca.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Sypialnia północna</strong></td><td data-label="Ryzyko">Niedogrzanie po zamknięciu całej instalacji przez czujnik w słonecznym salonie.</td><td data-label="Projekt">Własna pętla i przepływ wynikający z jej strat, bez uzależniania od salonu.</td><td data-label="Sterowanie">Czujnik reprezentatywny dla sypialni albo pozostawienie poprawnie zrównoważonego obwodu.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Łazienka</strong></td><td data-label="Ryzyko">Inna temperatura zadana i potrzeba komfortu w określonych godzinach.</td><td data-label="Projekt">Osobna pętla, sprawdzenie mocy i temperatury powierzchni; ewentualne źródło uzupełniające.</td><td data-label="Sterowanie">Harmonogram dopasowany do użytkowania, bez przypadkowego uzależniania od salonu.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-control">
        <span class="rk-solar-kicker">Automatyka ma współpracować z fizyką</span>
        <h2>Jak sterować ogrzewaniem podłogowym przy zyskach słonecznych?</h2>
        <p class="rk-solar-lead">Najlepszy efekt zwykle daje połączenie poprawnie ustawionej niskiej temperatury zasilania, równoważenia hydraulicznego, rozsądnego wpływu temperatury pomieszczeń oraz zacienienia. Sam termostat działający dopiero po przekroczeniu zadanej temperatury może zareagować zbyt późno, ale rozbudowana automatyka również nie naprawi źle podzielonych pętli.</p>

        <div class="rk-solar-strategy-grid">
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">1. Sterowanie pogodowe jako baza</div><div class="rk-solar-strategy-body"><p><a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Regulator pogodowy</a> dopasowuje temperaturę zasilania do temperatury zewnętrznej. Ogranicza nadmierne ładowanie jastrychu, lecz sam czujnik zewnętrzny nie widzi słońca wpadającego przez konkretne okno.</p></div></article>
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">2. Wpływ pomieszczenia lub sterowanie strefowe</div><div class="rk-solar-strategy-body"><p>Czujnik powietrza albo temperatury operacyjnej może skorygować pracę strefy południowej. Siłownik zamyka przepływ w odpowiednich pętlach, ale nie usuwa ciepła już zawartego w podłodze.</p></div></article>
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">3. Zacienienie ogranicza problem u źródła</div><div class="rk-solar-strategy-body"><p>Osłona zewnętrzna zatrzymuje część promieniowania przed wejściem do wnętrza. W sezonie letnim często ma większe znaczenie niż jakakolwiek korekta instalacji grzewczej.</p></div></article>
        </div>

        <div class="rk-solar-note">
          <p><strong>Gdzie umieścić czujnik?</strong> Nie w bezpośrednim słońcu, nad rozgrzanym sprzętem ani przy drzwiach. Powinien mierzyć warunki reprezentatywne dla strefy. Jeden centralny termostat w nasłonecznionym salonie nie powinien odcinać ciepła sypialni znajdujących się po północnej stronie.</p>
        </div>

        <h3 style="margin-top:38px">Czy każda pętla musi mieć siłownik?</h3>
        <p>Nie. W budynku o małych, podobnych obciążeniach i dobrze ustawionej krzywej grzewczej część instalacji może pracować stabilnie bez ciągłego zamykania obwodów. Automatyka ma sens tam, gdzie występują rzeczywiście różne profile zysków, temperatur zadanych albo użytkowania. Szerzej omawia to poradnik <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>.</p>

        <ul class="rk-solar-checklist">
          <li>Najpierw ustaw przepływy projektowe, dopiero później obserwuj reakcję stref.</li>
          <li>Nie stosuj głębokich, krótkich obniżeń temperatury dla ciężkiej podłogi.</li>
          <li>Ogranicz temperaturę zasilania do wartości wynikającej z obliczeń.</li>
          <li>Nie zamykaj wszystkich pętli bez sprawdzenia wymagań źródła ciepła.</li>
          <li>Zapisuj temperaturę wewnętrzną, zewnętrzną i nasłonecznienie przez kilka dni.</li>
          <li>Oddziel problem zimowych zysków od letniej ochrony przed przegrzewaniem.</li>
        </ul>
      </section>

      <section class="rk-solar-section" id="rk-solar-heatpump">
        <span class="rk-solar-kicker">Hydraulika przy zamykaniu stref</span>
        <h2>Pompa ciepła, pasywne zyski ciepła i minimalny przepływ</h2>
        <p class="rk-solar-lead">Gdy słońce ogrzewa salon, siłowniki mogą zamknąć kilka dużych pętli. Pozostałe pokoje nadal potrzebują energii, ale całkowity przepływ przez instalację spada. To moment, w którym strategia pokojowa spotyka się z wymaganiami pompy ciepła.</p>

        <div class="rk-solar-grid-3">
          <article class="rk-solar-card"><span class="rk-solar-card-number">V̇<sub>min</sub></span><h3>Minimalny przepływ urządzenia</h3><p>Trzeba zapewnić przepływ wymagany podczas grzania i odszraniania. Wartość pochodzi z dokumentacji konkretnej pompy ciepła.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">V</span><h3>Pojemność wodna</h3><p>Zbyt mała pojemność czynna po zamknięciu stref może skrócić cykle sprężarki i utrudnić odbiór energii.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">Δp</span><h3>Zmiana oporów</h3><p>Zamykanie obwodów zmienia charakterystykę instalacji. Pompa obiegowa i zawory muszą zachować bezpieczny punkt pracy.</p></article>
        </div>

        <div class="rk-solar-warning">
          <p><strong>Bufor dobiera się do funkcji, a nie z przyzwyczajenia.</strong> Może stabilizować objętość i rozdzielić przepływy, ale może też zwiększyć straty postojowe lub pogorszyć temperaturę zasilania, jeżeli zostanie źle włączony. Najpierw sprawdza się układ bezpośredni, minimalny przepływ, aktywną pojemność i logikę odszraniania, a dopiero potem podejmuje decyzję. Zobacz również: <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła w ogrzewaniu podłogowym</a>.</p>
        </div>

        <p>Równie ważna jest modulacja źródła. Gdy większość zysków pokrywa salon, chwilowe zapotrzebowanie domu może spaść poniżej minimalnej mocy urządzenia. Sama automatyka pokojowa nie rozwiąże tego problemu — potrzebna jest koordynacja z krzywą grzewczą, przepływem i pojemnością instalacji. Więcej zależności opisuje techniczne opracowanie <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła i ogrzewanie niskotemperaturowe</a>.</p>
      </section>

      <section class="rk-solar-section" id="rk-solar-howto">
        <span class="rk-solar-kicker">Procedura projektowa krok po kroku</span>
        <h2>Jak uwzględnić pasywne zyski ciepła w projekcie ogrzewania podłogowego?</h2>
        <p class="rk-solar-lead">Prawidłowa kolejność chroni przed dwiema skrajnościami: niedowymiarowaniem ogrzewania z powodu optymistycznego założenia o słońcu oraz przegrzewaniem wynikającym z braku podziału i regulacji stref.</p>

        <div class="rk-solar-steps">
          <article class="rk-solar-step"><h3>Oblicz straty każdego pomieszczenia</h3><p>Uwzględnij przenikanie, wentylację, temperatury projektowe oraz rzeczywiste parametry przegród i stolarki.</p></article>
          <article class="rk-solar-step"><h3>Sprawdź orientację i przeszklenia</h3><p>Zapisz powierzchnię czynną szyb, azymut, współczynnik `g`, elementy zacieniające i sąsiednie przeszkody.</p></article>
          <article class="rk-solar-step"><h3>Dobierz podłogę bez gwarantowanego słońca</h3><p>Wyznacz temperaturę zasilania, rozstaw, długość i przepływ pętli tak, aby instalacja pokryła projektowe straty.</p></article>
          <article class="rk-solar-step"><h3>Podziel niezależne strefy</h3><p>Nie prowadź jednego obwodu przez obszary o skrajnie różnym nasłonecznieniu i sposobie użytkowania.</p></article>
          <article class="rk-solar-step"><h3>Zaprojektuj reakcję sterowania</h3><p>Połącz pogodową temperaturę zasilania, wpływ pomieszczenia, siłowniki tam, gdzie są potrzebne, oraz ochronę przeciwsłoneczną.</p></article>
          <article class="rk-solar-step"><h3>Sprawdź źródło przy zamykaniu pętli</h3><p>Zweryfikuj minimalny przepływ, moc minimalną, pojemność wodną, pracę pompy obiegowej i warunki odszraniania.</p></article>
        </div>

        <h3 style="margin-top:38px">Najczęstsze błędy w domu z dużymi oknami</h3>
        <ul class="rk-solar-checklist">
          <li>Odejmowanie zysków słonecznych od mocy pętli tak, jakby występowały w każdą mroźną godzinę.</li>
          <li>Łączenie salonu południowego i pokoju północnego jedną pętlą grzewczą.</li>
          <li>Ustawianie wysokiej temperatury zasilania, a następnie ratowanie komfortu częstym zamykaniem pętli.</li>
          <li>Montowanie termostatu w miejscu bezpośrednio nasłonecznionym.</li>
          <li>Mylenie wartości `U` okna ze współczynnikiem całkowitej przepuszczalności energii `g`.</li>
          <li>Traktowanie masy jastrychu wyłącznie jako problemu, bez oceny jej zdolności do tłumienia krótkich szczytów.</li>
          <li>Dodawanie bufora bez sprawdzenia minimalnego przepływu i funkcji, którą ma pełnić.</li>
          <li>Oczekiwanie, że termostat natychmiast zatrzyma ciepło zgromadzone wcześniej w podłodze.</li>
        </ul>
      </section>

      <section class="rk-solar-section" id="rk-solar-faq">
        <span class="rk-solar-kicker">Pytania inwestorów</span>
        <h2>FAQ: ogrzewanie podłogowe a pasywne zyski ciepła</h2>
        <div class="rk-solar-faq">
          <details>
            <summary>Czy ogrzewanie podłogowe może przegrzewać dom od słońca?</summary>
            <div class="rk-solar-faq-answer"><p>Tak, jeżeli zyski słoneczne pojawiają się wtedy, gdy jastrych nadal oddaje wcześniej zgromadzoną energię. Ryzyko rośnie przy dużych przeszkleniach, wysokiej temperaturze zasilania, braku zacienienia i niewłaściwym podziale stref.</p></div>
          </details>
          <details>
            <summary>Czy zyski słoneczne można odjąć od projektowej mocy ogrzewania?</summary>
            <div class="rk-solar-faq-answer"><p>Nie należy traktować ich jako stałej, gwarantowanej mocy. Ogrzewanie powinno pokryć projektowe straty również podczas mroźnej i pochmurnej pogody. Zyski słoneczne wykorzystuje się do analizy eksploatacji, sterowania i ryzyka przegrzewania.</p></div>
          </details>
          <details>
            <summary>Na czym polega samoregulacja ogrzewania podłogowego?</summary>
            <div class="rk-solar-faq-answer"><p>Gdy temperatura operacyjna pomieszczenia rośnie, maleje różnica między wnętrzem a powierzchnią podłogi, dlatego emisja ciepła z podłogi spada. Efekt jest silny w systemach niskotemperaturowych, ale nie usuwa energii zgromadzonej w jastrychu.</p></div>
          </details>
          <details>
            <summary>Czy przy dużych oknach trzeba zwiększyć rozstaw rur?</summary>
            <div class="rk-solar-faq-answer"><p>Nie można tego robić wyłącznie z powodu spodziewanych zysków słonecznych. Rozstaw wynika z projektowych strat pomieszczenia, temperatury zasilania, oporu posadzki i dopuszczalnej temperatury powierzchni.</p></div>
          </details>
          <details>
            <summary>Czy sterowanie pogodowe wystarczy przy południowych przeszkleniach?</summary>
            <div class="rk-solar-faq-answer"><p>Jest bardzo dobrą podstawą, ponieważ ogranicza temperaturę zasilania, ale czujnik zewnętrzny nie mierzy bezpośrednio słońca wpadającego do konkretnego salonu. Przy dużych i zmiennych zyskach pomocny może być wpływ pomieszczenia, podział stref oraz zacienienie.</p></div>
          </details>
          <details>
            <summary>Czy każdy pokój powinien mieć osobny termostat i siłownik?</summary>
            <div class="rk-solar-faq-answer"><p>Nie zawsze. Zależy to od różnic w nasłonecznieniu, temperaturach zadanych i sposobie użytkowania. Najważniejsze jest, aby pętle stref o różnych profilach zysków można było regulować niezależnie bez destabilizowania źródła ciepła.</p></div>
          </details>
          <details>
            <summary>Czy pompa ciepła potrzebuje bufora, gdy termostaty zamykają pętle?</summary>
            <div class="rk-solar-faq-answer"><p>Nie ma jednej odpowiedzi. Trzeba sprawdzić minimalny przepływ, pojemność wodną pozostającą w pracy, moc minimalną, sposób odszraniania i wymagania konkretnego urządzenia. Bufor jest jednym z rozwiązań, a nie automatycznym obowiązkiem.</p></div>
          </details>
          <details>
            <summary>Jak najlepiej ograniczyć przegrzewanie od słońca?</summary>
            <div class="rk-solar-faq-answer"><p>Najskuteczniejsze jest połączenie właściwego zacienienia zewnętrznego, niskiej temperatury zasilania, podziału stref, równoważenia hydraulicznego i sterowania uwzględniającego temperaturę pomieszczenia. Latem kluczowe jest zatrzymanie energii przed szybą.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-solar-section" aria-label="Źródła techniczne">
        <div class="rk-solar-sources">
          <strong>Podstawa techniczna i źródła opracowania</strong>
          <p>Projektowe obciążenie cieplne: <a href="https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html" target="_blank" rel="noopener nofollow">PN-EN 12831-1:2017-08 — Polski Komitet Normalizacyjny</a>. Obliczenia godzinowe energii, temperatur i obciążeń: <a href="https://www.iso.org/standard/65696.html" target="_blank" rel="noopener nofollow">ISO 52016-1:2017 — International Organization for Standardization</a>. Projektowanie i sterowanie systemami płaszczyznowymi oraz efekt samoregulacji: <a href="https://www.rehva.eu/rehva-journal/chapter/iso-11855-the-international-standard-on-the-design-dimensioning-installation-and-control-of-embedded-radiant-heating-and-cooling-systems" target="_blank" rel="noopener nofollow">opracowanie ISO 11855 — REHVA</a>. Wpływ masy termicznej na zmienne zyski słoneczne: <a href="https://www.energy.gov/cmei/buildings/zeb-technologies-passive-design-techniques" target="_blank" rel="noopener nofollow">Passive Design Techniques — U.S. Department of Energy</a>. Graniczne temperatury powierzchni systemów podłogowych: <a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="noopener nofollow">PN-EN 1264-2:2021-10 — PKN</a>. Dostęp do źródeł: 26 sierpnia 2026 r.</p>
          <p>Laboratorium przedstawia uproszczony bilans chwilowy i nie modeluje położenia słońca, udziału ram, wielokrotnych odbić, szczegółowej dynamiki przegród, wymiany między strefami ani działania konkretnego sterownika.</p>
        </div>
      </section>

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

        <div class="rk-solar-author-head">
          <div><h2>Autor opracowania</h2><p>Praktyka projektowa, fizyka budynku i parametry instalacji przedstawione bez skrótów myślowych.</p></div>
          <span class="rk-solar-author-mark">E‑E‑A‑T • HVAC</span>
        </div>

        <div class="rk-solar-author-layout">
          <aside class="rk-solar-author-side">
            <div class="rk-solar-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji ogrzewania podłogowego" width="360" height="360" loading="lazy" decoding="async"></div>
            <div class="rk-solar-author-name">Robert Kucharski</div>
            <div class="rk-solar-author-role">CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</div>
          </aside>

          <div class="rk-solar-author-main">
            <blockquote class="rk-solar-author-quote"><p>„Słońce nie powinno zastępować mocy projektowej pętli. Powinno natomiast wpływać na sposób podziału stref, temperaturę zasilania i sterowanie, bo to one decydują, czy darmowa energia poprawi bilans, czy przegrzeje salon.”</p></blockquote>

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

            <div class="rk-solar-author-panel rk-solar-author-panel-about">
              <p>Robert Kucharski projektuje wodne instalacje ogrzewania podłogowego i przygotowuje techniczne publikacje dotyczące hydrauliki, źródeł ciepła, automatyki, fizyki budynku oraz świadomego prowadzenia inwestycji. W opracowaniach rozdziela parametry służące do doboru instalacji od zmiennych warunków eksploatacyjnych.</p>
              <p><a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz profil i pozostałe opracowania autora</a>.</p>
            </div>

            <div class="rk-solar-author-panel rk-solar-author-panel-exp">
              <p>Doświadczenie autora obejmuje obliczenia obciążenia cieplnego pomieszczeń, dobór temperatury zasilania, rozstawu i długości pętli, przepływów oraz oporów hydraulicznych. Szczególną uwagę poświęca współpracy podłogówki z pompami ciepła, podziałowi na strefy i warunkom, które mogą prowadzić do przegrzewania albo taktowania źródła.</p>
            </div>

            <div class="rk-solar-author-panel rk-solar-author-panel-sites">
              <p>Autor jest właścicielem trzech serwisów poświęconych projektowaniu instalacji, budowie i remontom. Powiązanie portali jest podane jawnie, aby czytelnik znał autorstwo oraz kontekst linkowania.</p>
              <div class="rk-solar-site-links">
                <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
              </div>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-solar-final-cta" aria-label="Projekt ogrzewania podłogowego dla domu z dużymi przeszkleniami">
        <div class="rk-solar-final-cta-content">
          <span class="rk-solar-kicker" style="color:#79f1ff">Projekt przed wykonaniem wylewki</span>
          <h2>Masz duże przeszklenia? Nie każ jednej pętli ogrzewać dwóch różnych światów</h2>
          <p>Projekt ogrzewania podłogowego określa straty każdego pomieszczenia, moc powierzchniową bez zakładania stałego słońca, rozstaw i długość pętli, przepływy, opory oraz podział stref. Dzięki temu salon może ograniczyć grzanie od nasłonecznienia, a północne pokoje nadal otrzymują potrzebną moc.</p>
          <a class="rk-solar-cta-button rk-solar-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
          <small class="rk-solar-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </div>
      </section>
    </div>
  </div>
</article>

<!-- RK_SOLAR_SCHEMA -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#article",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/",
      "headline": "Ogrzewanie podłogowe a pasywne zyski ciepła – jak uniknąć przegrzewania od słońca?",
      "description": "Ogrzewanie podłogowe a pasywne zyski ciepła: sprawdź wpływ słońca, okien i sterowania na komfort, zużycie energii oraz ryzyko przegrzewania wnętrz, także latem.",
      "dateModified": "2026-08-26",
      "inLanguage": "pl-PL",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#webpage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "reviewedBy": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "accountablePerson": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "articleSection": [
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji",
        "Fizyka budynku",
        "Sterowanie ogrzewaniem"
      ],
      "keywords": [
        "ogrzewanie podłogowe a pasywne zyski ciepła",
        "zyski słoneczne a ogrzewanie podłogowe",
        "przegrzewanie domu od słońca",
        "duże przeszklenia a podłogówka",
        "samoregulacja ogrzewania podłogowego",
        "bezwładność cieplna podłogówki",
        "sterowanie podłogówką w nasłonecznionym salonie",
        "pompa ciepła a zamykanie pętli"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Pasywne zyski ciepła"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Zyski słoneczne przez przeszklenia"
        },
        {
          "@type": "Thing",
          "name": "Sterowanie strefowe"
        }
      ],
      "citation": [
        "https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html",
        "https://www.iso.org/standard/65696.html",
        "https://www.rehva.eu/rehva-journal/chapter/iso-11855-the-international-standard-on-the-design-dimensioning-installation-and-control-of-embedded-radiant-heating-and-cooling-systems",
        "https://www.energy.gov/cmei/buildings/zeb-technologies-passive-design-techniques",
        "https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#webpage",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/",
      "name": "Ogrzewanie podłogowe a pasywne zyski ciepła – jak uniknąć przegrzewania od słońca?",
      "description": "Ogrzewanie podłogowe a pasywne zyski ciepła: sprawdź wpływ słońca, okien i sterowania na komfort, zużycie energii oraz ryzyko przegrzewania wnętrz, także latem.",
      "dateModified": "2026-08-26",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#breadcrumb"
      },
      "mainEntity": [
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#article"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#laboratorium"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#faq"
        }
      ],
      "about": {
        "@type": "Thing",
        "name": "Wpływ pasywnych zysków ciepła na ogrzewanie podłogowe"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#diagram"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#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": "Ogrzewanie podłogowe a pasywne zyski ciepła",
          "item": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#laboratorium",
      "name": "Laboratorium chwilowego bilansu zysków słonecznych",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-lab",
      "description": "Edukacyjny model porównujący przybliżone chwilowe straty pomieszczenia, zyski słoneczne, zyski wewnętrzne i moc nadal oddawaną przez ogrzewanie podłogowe.",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Building energy balance simulator",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript oraz obsługa SVG",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "about": {
        "@type": "Thing",
        "name": "Chwilowy bilans cieplny nasłonecznionego pomieszczenia"
      },
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#howto",
      "name": "Jak zaprojektować ogrzewanie podłogowe w domu z dużymi przeszkleniami",
      "description": "Sześć etapów projektowania instalacji, która pokrywa straty w dzień bez słońca i reaguje na zmienne zyski w nasłonecznionych pomieszczeniach.",
      "inLanguage": "pl-PL",
      "totalTime": "P1D",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Oblicz straty każdego pomieszczenia",
          "text": "Uwzględnij przenikanie, wentylację, temperatury projektowe oraz rzeczywiste parametry przegród i stolarki.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Sprawdź orientację i przeszklenia",
          "text": "Zapisz powierzchnię czynną szyb, azymut, współczynnik g, elementy zacieniające i sąsiednie przeszkody.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Dobierz podłogę bez gwarantowanego słońca",
          "text": "Wyznacz temperaturę zasilania, rozstaw, długość i przepływ pętli tak, aby instalacja pokryła projektowe straty.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Podziel niezależne strefy",
          "text": "Nie prowadź jednego obwodu przez obszary o skrajnie różnym nasłonecznieniu i sposobie użytkowania.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zaprojektuj reakcję sterowania",
          "text": "Połącz pogodową temperaturę zasilania, wpływ pomieszczenia, siłowniki tam, gdzie są potrzebne, oraz ochronę przeciwsłoneczną.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Sprawdź źródło przy zamykaniu pętli",
          "text": "Zweryfikuj minimalny przepływ, moc minimalną, pojemność wodną, pracę pompy obiegowej i warunki odszraniania.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy ogrzewanie podłogowe może przegrzewać dom od słońca?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, jeżeli zyski słoneczne pojawiają się wtedy, gdy jastrych nadal oddaje wcześniej zgromadzoną energię. Ryzyko rośnie przy dużych przeszkleniach, wysokiej temperaturze zasilania, braku zacienienia i niewłaściwym podziale stref."
          }
        },
        {
          "@type": "Question",
          "name": "Czy zyski słoneczne można odjąć od projektowej mocy ogrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy traktować ich jako stałej, gwarantowanej mocy. Ogrzewanie powinno pokryć projektowe straty również podczas mroźnej i pochmurnej pogody. Zyski słoneczne wykorzystuje się do analizy eksploatacji, sterowania i ryzyka przegrzewania."
          }
        },
        {
          "@type": "Question",
          "name": "Na czym polega samoregulacja ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Gdy temperatura operacyjna pomieszczenia rośnie, maleje różnica między wnętrzem a powierzchnią podłogi, dlatego emisja ciepła z podłogi spada. Efekt jest silny w systemach niskotemperaturowych, ale nie usuwa energii zgromadzonej w jastrychu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy przy dużych oknach trzeba zwiększyć rozstaw rur?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie można tego robić wyłącznie z powodu spodziewanych zysków słonecznych. Rozstaw wynika z projektowych strat pomieszczenia, temperatury zasilania, oporu posadzki i dopuszczalnej temperatury powierzchni."
          }
        },
        {
          "@type": "Question",
          "name": "Czy sterowanie pogodowe wystarczy przy południowych przeszkleniach?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Jest bardzo dobrą podstawą, ponieważ ogranicza temperaturę zasilania, ale czujnik zewnętrzny nie mierzy bezpośrednio słońca wpadającego do konkretnego salonu. Przy dużych i zmiennych zyskach pomocny może być wpływ pomieszczenia, podział stref oraz zacienienie."
          }
        },
        {
          "@type": "Question",
          "name": "Czy każdy pokój powinien mieć osobny termostat i siłownik?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Zależy to od różnic w nasłonecznieniu, temperaturach zadanych i sposobie użytkowania. Najważniejsze jest, aby pętle stref o różnych profilach zysków można było regulować niezależnie bez destabilizowania źródła ciepła."
          }
        },
        {
          "@type": "Question",
          "name": "Czy pompa ciepła potrzebuje bufora, gdy termostaty zamykają pętle?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednej odpowiedzi. Trzeba sprawdzić minimalny przepływ, pojemność wodną pozostającą w pracy, moc minimalną, sposób odszraniania i wymagania konkretnego urządzenia. Bufor jest jednym z rozwiązań, a nie automatycznym obowiązkiem."
          }
        },
        {
          "@type": "Question",
          "name": "Jak najlepiej ograniczyć przegrzewanie od słońca?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najskuteczniejsze jest połączenie właściwego zacienienia zewnętrznego, niskiej temperatury zasilania, podziału stref, równoważenia hydraulicznego i sterowania uwzględniającego temperaturę pomieszczenia. Latem kluczowe jest zatrzymanie energii przed szybą."
          }
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "width": 360,
        "height": 360
      },
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "description": "Projektant wodnych instalacji ogrzewania podłogowego i autor opracowań technicznych dotyczących hydrauliki, źródeł ciepła, automatyki oraz fizyki budynku. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "knowsAbout": [
        "projektowanie ogrzewania podłogowego",
        "obliczenia obciążenia cieplnego",
        "hydraulika instalacji grzewczych",
        "pompy ciepła",
        "sterowanie pogodowe",
        "fizyka budynku",
        "pasywne zyski ciepła"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ],
      "owns": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        },
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "description": "Serwis poświęcony projektowaniu wodnego ogrzewania podłogowego, należący do Roberta Kucharskiego.",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "description": "Serwis budowlano-remontowy należący do Roberta Kucharskiego.",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "description": "Portal o budowie, instalacjach i technologii domu należący do Roberta Kucharskiego.",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "description": "Projektowanie ogrzewania podłogowego i techniczna wiedza o instalacjach grzewczych.",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#diagram",
      "name": "Schemat chwilowego bilansu zysków słonecznych, strat i ogrzewania podłogowego",
      "caption": "Autorski schemat przepływu energii w nasłonecznionym pomieszczeniu z ogrzewaniem podłogowym.",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "creditText": "Robert Kucharski, Projekt-Ogrzewania.pl",
      "copyrightNotice": "Robert Kucharski"
    }
  ]
}
</script>

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

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

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

    function clamp(value, minimum, maximum) {
      return Math.min(maximum, Math.max(minimum, value));
    }

    function numberFrom(id, fallback) {
      var element = byId(id);
      if (!element) {
        return fallback;
      }
      var parsed = Number(element.value);
      return Number.isFinite(parsed) ? parsed : fallback;
    }

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

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

    function setAttribute(id, name, value) {
      var element = byId(id);
      if (element) {
        element.setAttribute(name, String(value));
      }
    }

    function watts(value) {
      return formatNumber(Math.round(value), 0) + " W";
    }

    function signedWatts(value) {
      var rounded = Math.round(value);
      if (rounded > 0) {
        return "+" + formatNumber(rounded, 0) + " W";
      }
      if (rounded < 0) {
        return "−" + formatNumber(Math.abs(rounded), 0) + " W";
      }
      return "0 W";
    }

    function updateBar(id, valueId, value, maximum) {
      var baseline = 265;
      var chartHeight = 220;
      var height = maximum > 0 ? value / maximum * chartHeight : 0;
      height = clamp(height, 0, chartHeight);
      var y = baseline - height;
      setAttribute(id, "y", y.toFixed(2));
      setAttribute(id, "height", height.toFixed(2));
      setAttribute(valueId, "y", Math.max(35, y - 8).toFixed(2));
      setText(valueId, watts(value));
    }

    function updateChart(loss, solarGain, internalGain, activePower) {
      var largest = Math.max(loss, solarGain, internalGain, activePower, 100);
      var maximum = Math.ceil(largest * 1.15 / 100) * 100;
      setText("rk-solar-ymax", formatNumber(maximum, 0));
      setText("rk-solar-y75", formatNumber(maximum * 0.75, 0));
      setText("rk-solar-y50", formatNumber(maximum * 0.5, 0));
      setText("rk-solar-y25", formatNumber(maximum * 0.25, 0));
      updateBar("rk-solar-bar-loss", "rk-solar-bar-loss-value", loss, maximum);
      updateBar("rk-solar-bar-sun", "rk-solar-bar-sun-value", solarGain, maximum);
      updateBar("rk-solar-bar-internal", "rk-solar-bar-internal-value", internalGain, maximum);
      updateBar("rk-solar-bar-floor", "rk-solar-bar-floor-value", activePower, maximum);
    }

    function updateStatus(currentOutside, indoor, currentLoss, gains, activePower, balance) {
      var status = byId("rk-solar-status");
      if (!status) {
        return;
      }

      var statusClass = "is-success";
      var title = "Bilans chwilowy jest zbliżony do równowagi";
      var copy = "Zyski i moc podłogi w przybliżeniu odpowiadają aktualnym stratom. To nadal fotografia jednej chwili, a nie prognoza temperatury po kilku godzinach.";
      var strongThreshold = Math.max(150, currentLoss * 0.25);
      var mildThreshold = Math.max(50, currentLoss * 0.08);

      if (currentOutside >= indoor) {
        if (activePower > 0) {
          statusClass = "is-danger";
          title = "Model nie wykazuje potrzeby grzania, a podłoga nadal oddaje energię";
          copy = "Temperatura zewnętrzna nie jest niższa od wewnętrznej, więc uproszczone straty wynoszą zero. Aktywne grzanie i zyski tworzą nadwyżkę, której termostat nie usunie z rozgrzanego jastrychu.";
        } else {
          statusClass = "is-warning";
          title = "Brak potrzeby aktywnego grzania w uproszczonym modelu";
          copy = "Przy tej temperaturze zewnętrznej model nie wyznacza strat przez różnicę temperatur. Zyski słoneczne i bytowe mogą nadal podnosić temperaturę wnętrza.";
        }
      } else if (balance > strongThreshold) {
        statusClass = "is-danger";
        title = "Wyraźna chwilowa nadwyżka energii";
        copy = "Zyski wynoszą " + watts(gains) + ", a podłoga nadal oddaje " + watts(activePower) + ". Sterowanie może zatrzymać nowy dopływ, lecz nie usunie energii zgromadzonej w jastrychu.";
      } else if (balance > mildThreshold) {
        statusClass = "is-warning";
        title = "Pojawia się umiarkowana chwilowa nadwyżka";
        copy = "Bilans wskazuje nadmiar około " + watts(balance) + ". Warto ograniczyć dalsze ładowanie podłogi i obserwować wpływ masy cieplnej oraz zacienienia.";
      } else if (balance < -strongThreshold) {
        statusClass = "is-warning";
        title = "Chwilowa moc jest wyraźnie niższa od przybliżonych strat";
        copy = "W tej chwili brakuje około " + watts(Math.abs(balance)) + ". Model nie rozstrzyga, czy różnicę pokrywa energia zgromadzona w przegrodach ani jak szybko zmieni się temperatura.";
      } else if (balance < -mildThreshold) {
        statusClass = "is-warning";
        title = "Niewielki chwilowy deficyt energii";
        copy = "Dopływy są nieco niższe od przybliżonych strat. Rzeczywista reakcja zależy od bezwładności budynku, sterowania i wcześniejszego przebiegu temperatur.";
      }

      status.className = "rk-solar-status " + statusClass;
      setText("rk-solar-status-title", title);
      setText("rk-solar-status-copy", copy);
    }

    function calculate() {
      var designLoad = numberFrom("rk-solar-design-load", 1200);
      var designOutside = numberFrom("rk-solar-design-out", -20);
      var currentOutside = numberFrom("rk-solar-current-out", 0);
      var indoor = numberFrom("rk-solar-indoor", 21);
      var glassArea = numberFrom("rk-solar-glass", 8);
      var gValue = numberFrom("rk-solar-gvalue", 0.5);
      var irradiance = numberFrom("rk-solar-irradiance", 140);
      var shading = numberFrom("rk-solar-shading", 85);
      var internalGain = numberFrom("rk-solar-internal", 120);
      var activePower = numberFrom("rk-solar-active", 600);

      var designDelta = Math.max(0.1, indoor - designOutside);
      var currentDelta = Math.max(0, indoor - currentOutside);
      var currentLoss = designLoad * currentDelta / designDelta;
      currentLoss = clamp(currentLoss, 0, designLoad * 1.5);

      var solarGain = glassArea * gValue * irradiance * shading / 100;
      var totalGains = solarGain + internalGain;
      var requiredActive = Math.max(0, currentLoss - totalGains);
      var balance = activePower + totalGains - currentLoss;
      var coverage = 0;
      if (currentLoss > 0.01) {
        coverage = totalGains / currentLoss * 100;
      } else if (totalGains > 0) {
        coverage = 999;
      }
      coverage = Math.min(999, coverage);

      setText("rk-solar-design-load-output", watts(designLoad));
      setText("rk-solar-design-out-output", formatNumber(designOutside, 0) + "°C");
      setText("rk-solar-current-out-output", formatNumber(currentOutside, 0) + "°C");
      setText("rk-solar-indoor-output", formatNumber(indoor, indoor % 1 === 0 ? 0 : 1) + "°C");
      setText("rk-solar-glass-output", formatNumber(glassArea, 1) + " m²");
      setText("rk-solar-gvalue-output", formatNumber(gValue, 2));
      setText("rk-solar-irradiance-output", formatNumber(irradiance, 0) + " W/m²");
      setText("rk-solar-shading-output", formatNumber(shading, 0) + "%");
      setText("rk-solar-internal-output", watts(internalGain));
      setText("rk-solar-active-output", watts(activePower));

      setText("rk-solar-result-loss", watts(currentLoss));
      setText("rk-solar-result-sun", watts(solarGain));
      setText("rk-solar-result-gains", watts(totalGains));
      setText("rk-solar-result-required", watts(requiredActive));
      setText("rk-solar-result-coverage", formatNumber(Math.round(coverage), 0) + "%");
      setText("rk-solar-result-balance", signedWatts(balance));

      updateStatus(currentOutside, indoor, currentLoss, totalGains, activePower, balance);
      updateChart(currentLoss, solarGain, internalGain, activePower);
    }

    var form = byId("rk-solar-form");
    if (form) {
      form.addEventListener("submit", function (event) {
        event.preventDefault();
      });
      var controls = form.querySelectorAll("input[type='range']");
      controls.forEach(function (control) {
        control.addEventListener("input", calculate);
        control.addEventListener("change", calculate);
      });
    }

    var navigationLinks = root.querySelectorAll(".rk-solar-nav a[href^='#']");
    navigationLinks.forEach(function (link) {
      link.addEventListener("click", function (event) {
        var targetId = link.getAttribute("href");
        if (!targetId) {
          return;
        }
        var target = root.querySelector(targetId);
        if (!target) {
          return;
        }
        event.preventDefault();
        var reducedMotion = false;
        if (window.matchMedia) {
          reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
        }
        target.scrollIntoView({
          behavior: reducedMotion ? "auto" : "smooth",
          block: "start"
        });
        if (window.history) {
          if (window.history.replaceState) {
            window.history.replaceState(null, "", targetId);
          }
        }
      });
    });

    var progress = root.querySelector(".rk-solar-progress");
    function updateProgress() {
      if (!progress) {
        return;
      }
      var rectangle = root.getBoundingClientRect();
      var available = root.offsetHeight - window.innerHeight;
      var passed = -rectangle.top;
      var ratio = available > 0 ? clamp(passed / available, 0, 1) : 0;
      progress.style.width = formatNumber(ratio * 100, 2).replace(",", ".") + "%";
    }

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

  function attemptInitialization() {
    initializeSolarGuide();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", attemptInitialization);
  } else {
    attemptInitialization();
  }

  window.addEventListener("load", attemptInitialization);
  window.setTimeout(attemptInitialization, 250);
  window.setTimeout(attemptInitialization, 1200);
  window.setTimeout(attemptInitialization, 3000);

  if (window.MutationObserver) {
    var observer = new MutationObserver(function () {
      var root = document.getElementById("rk-solar-guide");
      if (root) {
        initializeSolarGuide();
        if (root.getAttribute("data-rk-solar-ready") === "1") {
          observer.disconnect();
        }
      }
    });
    observer.observe(document.documentElement, { childList: true, subtree: true });
  }
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile czasu nagrzewa się podłogówka?</title>
		<link>https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 12:29:39 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort cieplny w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Ogrzewanie wodne]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[czas nagrzewania]]></category>
		<category><![CDATA[ile czasu nagrzewa się podłogówka]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka wodna]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2975</guid>

					<description><![CDATA[<p>Ile czasu nagrzewa się podłogówka i dlaczego nie działa tak jak tradycyjny grzejnik? Wodne ogrzewanie podłogowe to system, który oferuje wyjątkowy komfort cieplny, ale wymaga zrozumienia jego specyfiki. Kluczową rolę odgrywa bezwładność cieplna jastrychu, parametry instalacji oraz sposób sterowania. W artykule szczegółowo wyjaśniamy, od czego zależy czas nagrzewania podłogówki, jak wygląda to w praktyce podczas rozruchu, codziennej eksploatacji i nagłych zmian pogody oraz dlaczego prawidłowy projekt instalacji ma decydujący wpływ na dynamikę pracy systemu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">Ile czasu nagrzewa się podłogówka?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-heatup-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #b97800;
    --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: #687b88;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }
  #rk-heatup-guide,
  #rk-heatup-guide * { box-sizing: border-box; }
  #rk-heatup-guide img,
  #rk-heatup-guide svg { display: block; max-width: 100%; }
  #rk-heatup-guide button,
  #rk-heatup-guide input,
  #rk-heatup-guide select,
  #rk-heatup-guide label,
  #rk-heatup-guide summary,
  #rk-heatup-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-heatup-guide button { cursor: pointer; }
  #rk-heatup-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-heatup-guide a:hover,
  #rk-heatup-guide a:focus-visible { color: var(--rk-red); }
  #rk-heatup-guide button:focus-visible,
  #rk-heatup-guide summary:focus-visible,
  #rk-heatup-guide a:focus-visible,
  #rk-heatup-guide input:focus-visible,
  #rk-heatup-guide select:focus-visible { outline: 3px solid rgba(7, 143, 190, .27); outline-offset: 3px; }
  #rk-heatup-guide p,
  #rk-heatup-guide ul,
  #rk-heatup-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-heatup-guide h2,
  #rk-heatup-guide h3,
  #rk-heatup-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }
  #rk-heatup-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-heatup-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-heatup-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-heatup-guide strong { color: var(--rk-dark); }
  #rk-heatup-guide [hidden] { display: none !important; }

  #rk-heatup-guide .rk-pg-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 24px 70px rgba(16, 37, 54, .11);
  }
  #rk-heatup-guide .rk-pg-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: #ffffff !important;
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-heatup-guide .rk-pg-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-heatup-guide .rk-pg-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff !important;
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-heatup-guide .rk-pg-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-heatup-guide .rk-pg-hero-title {
    position: relative;
    z-index: 1;
    max-width: 1040px;
    margin: 0 0 21px;
    color: #ffffff !important;
    font-size: clamp(2.2rem, 7vw, 5rem);
    font-weight: 900;
    letter-spacing: -.065em;
    line-height: .98;
  }
  #rk-heatup-guide .rk-pg-hero-title span { color: #67e7f5 !important; }
  #rk-heatup-guide .rk-pg-lead {
    position: relative;
    z-index: 1;
    max-width: 970px;
    margin-bottom: 24px;
    color: #e7f6f8 !important;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    line-height: 1.55;
  }
  #rk-heatup-guide .rk-pg-hero-tags,
  #rk-heatup-guide .rk-pg-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px 12px;
  }
  #rk-heatup-guide .rk-pg-hero-tag {
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: #ffffff !important;
    background: rgba(255, 255, 255, .07);
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.2;
  }
  #rk-heatup-guide .rk-pg-byline {
    margin-top: 27px;
    color: #d7ebef !important;
    font-size: .68rem;
    font-weight: 720;
  }
  #rk-heatup-guide .rk-pg-byline span { color: #d7ebef !important; }
  #rk-heatup-guide .rk-pg-byline strong { color: #ffffff !important; }
  #rk-heatup-guide .rk-pg-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
  }
  #rk-heatup-guide .rk-pg-hero-metric {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .19);
    border-radius: 15px;
    background: rgba(255, 255, 255, .075);
  }
  #rk-heatup-guide .rk-pg-hero-metric b {
    display: block;
    margin-bottom: 5px;
    color: #ffffff !important;
    font-size: .75rem;
    line-height: 1.35;
  }
  #rk-heatup-guide .rk-pg-hero-metric span {
    display: block;
    color: #e5f4f7 !important;
    font-size: .65rem;
    line-height: 1.5;
  }

  #rk-heatup-guide .rk-pg-nav {
    display: block;
    padding: 18px clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }
  #rk-heatup-guide .rk-pg-nav-label {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-dark);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  #rk-heatup-guide .rk-pg-nav-track {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    width: 100%;
    min-width: 0;
    white-space: normal;
  }
  #rk-heatup-guide .rk-pg-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    max-width: 100%;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: #f0f6f8;
    font-size: .64rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
    white-space: normal;
  }
  #rk-heatup-guide .rk-pg-nav a:hover,
  #rk-heatup-guide .rk-pg-nav a:focus-visible { color: #ffffff; background: var(--rk-blue); }

  #rk-heatup-guide .rk-pg-content { padding: 0 clamp(20px, 5.4vw, 64px) 64px; }
  #rk-heatup-guide .rk-pg-section {
    padding: clamp(42px, 7vw, 76px) 0;
    border-bottom: 1px solid var(--rk-line);
    scroll-margin-top: 18px;
  }
  #rk-heatup-guide .rk-pg-section:last-of-type { border-bottom: 0; }
  #rk-heatup-guide .rk-pg-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  #rk-heatup-guide .rk-pg-intro { max-width: 950px; color: var(--rk-text); font-size: 1.08rem; }
  #rk-heatup-guide .rk-pg-answer,
  #rk-heatup-guide .rk-pg-note,
  #rk-heatup-guide .rk-pg-warning,
  #rk-heatup-guide .rk-pg-myth {
    margin: 24px 0;
    padding: 21px 23px;
    border-radius: 17px;
  }
  #rk-heatup-guide .rk-pg-answer { border-left: 5px solid var(--rk-cyan); background: var(--rk-cyan-soft); }
  #rk-heatup-guide .rk-pg-note { border: 1px solid #bfe6ed; background: #f0fbfd; }
  #rk-heatup-guide .rk-pg-warning { border-left: 5px solid var(--rk-orange); background: var(--rk-orange-soft); }
  #rk-heatup-guide .rk-pg-myth { border: 1px solid #e0dafa; background: var(--rk-purple-soft); }
  #rk-heatup-guide .rk-pg-answer p:last-child,
  #rk-heatup-guide .rk-pg-note p:last-child,
  #rk-heatup-guide .rk-pg-warning p:last-child,
  #rk-heatup-guide .rk-pg-myth p:last-child { margin-bottom: 0; }

  #rk-heatup-guide .rk-pg-grid-2,
  #rk-heatup-guide .rk-pg-grid-3,
  #rk-heatup-guide .rk-pg-grid-4 {
    display: grid;
    gap: 16px;
    margin: 25px 0;
  }
  #rk-heatup-guide .rk-pg-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-heatup-guide .rk-pg-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-heatup-guide .rk-pg-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-heatup-guide .rk-pg-card {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-text) !important;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, .055);
  }
  #rk-heatup-guide .rk-pg-card.is-cyan { border-top: 4px solid var(--rk-cyan); }
  #rk-heatup-guide .rk-pg-card.is-orange { border-top: 4px solid var(--rk-orange); }
  #rk-heatup-guide .rk-pg-card.is-green { border-top: 4px solid var(--rk-green); }
  #rk-heatup-guide .rk-pg-card.is-purple { border-top: 4px solid var(--rk-purple); }
  #rk-heatup-guide .rk-pg-card p,
  #rk-heatup-guide .rk-pg-card li { color: var(--rk-text) !important; }
  #rk-heatup-guide .rk-pg-card p:last-child { margin-bottom: 0; }
  #rk-heatup-guide .rk-pg-card-icon {
    display: grid !important;
    place-items: center !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    margin: 0 0 15px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    color: var(--rk-dark) !important;
    background: var(--rk-cyan-soft) !important;
    font-size: .75rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    position: static !important;
    transform: none !important;
  }
  #rk-heatup-guide .rk-pg-card.is-orange .rk-pg-card-icon { background: var(--rk-orange-soft) !important; }
  #rk-heatup-guide .rk-pg-card.is-green .rk-pg-card-icon { background: var(--rk-green-soft) !important; }
  #rk-heatup-guide .rk-pg-card.is-purple .rk-pg-card-icon { background: var(--rk-purple-soft) !important; }

  #rk-heatup-guide .rk-pg-factor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 28px 0;
    padding: 0;
    list-style: none;
  }
  #rk-heatup-guide .rk-pg-factor {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
    min-width: 0;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }
  #rk-heatup-guide .rk-pg-step-badge {
    display: grid !important;
    place-items: center !important;
    align-items: center !important;
    justify-items: center !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: var(--rk-dark) !important;
    background: #d9f5f8 !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    flex: 0 0 52px !important;
    position: static !important;
    transform: none !important;
  }
  #rk-heatup-guide .rk-pg-step-badge > span {
    display: block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    transform: none !important;
  }
  #rk-heatup-guide .rk-pg-factor:nth-child(4n+2) .rk-pg-step-badge { background: #ffdfd4 !important; }
  #rk-heatup-guide .rk-pg-factor:nth-child(4n+3) .rk-pg-step-badge { background: #dff5ed !important; }
  #rk-heatup-guide .rk-pg-factor:nth-child(4n+4) .rk-pg-step-badge { background: #e5e1ff !important; }
  #rk-heatup-guide .rk-pg-factor-copy { min-width: 0; }
  #rk-heatup-guide .rk-pg-factor h3 { margin-bottom: 7px; }
  #rk-heatup-guide .rk-pg-factor p { margin-bottom: 0; color: var(--rk-text); }

  #rk-heatup-guide .rk-pg-table-wrap {
    overflow-x: auto;
    margin: 26px 0;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }
  #rk-heatup-guide table { width: 100%; border-collapse: collapse; border-spacing: 0; }
  #rk-heatup-guide th,
  #rk-heatup-guide td { padding: 15px 17px; border-bottom: 1px solid var(--rk-line); text-align: left; vertical-align: top; }
  #rk-heatup-guide th { color: #ffffff; background: var(--rk-navy); font-size: .69rem; font-weight: 900; line-height: 1.35; }
  #rk-heatup-guide td { color: var(--rk-text); font-size: .84rem; line-height: 1.55; }
  #rk-heatup-guide tr:last-child td { border-bottom: 0; }
  #rk-heatup-guide tbody tr:nth-child(even) td { background: #f8fbfc; }

  #rk-heatup-guide .rk-pg-formula {
    margin: 28px 0;
    padding: clamp(23px, 5vw, 38px);
    border-radius: 22px;
    color: #ffffff;
    background: linear-gradient(135deg, #112c3f, #17616d);
  }
  #rk-heatup-guide .rk-pg-formula-main { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
  #rk-heatup-guide .rk-pg-formula-equation {
    color: #7cecf7;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(1.1rem, 3.5vw, 1.8rem);
    font-weight: 900;
    letter-spacing: -.04em;
    overflow-wrap: anywhere;
  }
  #rk-heatup-guide .rk-pg-formula-result {
    flex: 0 0 auto;
    padding: 11px 15px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, .08);
    font-size: .74rem;
    font-weight: 900;
  }
  #rk-heatup-guide .rk-pg-formula p,
  #rk-heatup-guide .rk-pg-formula li,
  #rk-heatup-guide .rk-pg-formula strong { color: #eaf7f9 !important; }

  #rk-heatup-guide .rk-pg-tool {
    margin: 30px 0;
    overflow: hidden;
    border: 1px solid #bcdde5;
    border-radius: 24px;
    background: var(--rk-white);
    box-shadow: 0 18px 48px rgba(16, 37, 54, .09);
  }
  #rk-heatup-guide .rk-pg-tool-head { padding: clamp(23px, 5vw, 36px); color: #ffffff; background: linear-gradient(135deg, #102d40 0%, #126879 100%); }
  #rk-heatup-guide .rk-pg-tool-kicker { display: block; margin-bottom: 8px; color: #81edf6; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  #rk-heatup-guide .rk-pg-tool-head h3 { margin-bottom: 9px; color: #ffffff; }
  #rk-heatup-guide .rk-pg-tool-head p { max-width: 900px; margin-bottom: 0; color: #e5f5f7; }
  #rk-heatup-guide .rk-pg-tool-body { padding: clamp(20px, 5vw, 36px); }
  #rk-heatup-guide .rk-pg-tool-disclaimer { margin-top: 20px; padding: 14px 16px; border-radius: 13px; color: #526570; background: var(--rk-soft); font-size: .73rem; line-height: 1.55; }

  #rk-heatup-guide .rk-hu-concept-tabs,
  #rk-heatup-guide .rk-hu-profile-tabs,
  #rk-heatup-guide .rk-hu-scenario-tabs,
  #rk-heatup-guide .rk-hu-preset-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 22px; }
  #rk-heatup-guide .rk-hu-tab {
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .72rem;
    font-weight: 900;
    line-height: 1.2;
  }
  #rk-heatup-guide .rk-hu-tab:hover,
  #rk-heatup-guide .rk-hu-tab:focus-visible { border-color: var(--rk-blue); background: var(--rk-cyan-soft); }
  #rk-heatup-guide .rk-hu-tab.is-active,
  #rk-heatup-guide .rk-hu-tab[aria-pressed="true"] { color: #ffffff; border-color: var(--rk-blue); background: var(--rk-blue); }
  #rk-heatup-guide .rk-hu-concept-status {
    margin-bottom: 22px;
    padding: 17px 19px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-cyan-soft);
  }
  #rk-heatup-guide .rk-hu-concept-status b { display: block; margin-bottom: 3px; }
  #rk-heatup-guide .rk-hu-concept-status p { margin-bottom: 0; font-size: .8rem; line-height: 1.55; }
  #rk-heatup-guide .rk-hu-graphic-layout { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(0, 1.2fr); gap: 22px; align-items: stretch; }
  #rk-heatup-guide .rk-hu-layer-stack { display: grid; gap: 8px; min-width: 0; }
  #rk-heatup-guide .rk-hu-layer {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 13px;
    width: 100%;
    min-width: 0;
    min-height: 72px;
    padding: 12px 15px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    color: var(--rk-dark);
    background: #f7fafb;
    text-align: left;
    transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
  }
  #rk-heatup-guide .rk-hu-layer:hover,
  #rk-heatup-guide .rk-hu-layer:focus-visible { border-color: var(--rk-blue); transform: translateY(-1px); }
  #rk-heatup-guide .rk-hu-layer.is-active { border-color: #68cedb; background: #ecfbfd; box-shadow: 0 8px 22px rgba(7, 143, 190, .1); }
  #rk-heatup-guide .rk-hu-layer.is-selected { outline: 3px solid rgba(255, 106, 61, .18); border-color: var(--rk-orange); }
  #rk-heatup-guide .rk-hu-layer-number {
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    color: #ffffff !important;
    background: var(--rk-navy) !important;
    font-size: .76rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    position: static !important;
    transform: none !important;
  }
  #rk-heatup-guide .rk-hu-layer.is-active .rk-hu-layer-number { background: var(--rk-blue) !important; }
  #rk-heatup-guide .rk-hu-layer-copy { min-width: 0; }
  #rk-heatup-guide .rk-hu-layer-copy strong { display: block; margin-bottom: 2px; font-size: .76rem; line-height: 1.25; }
  #rk-heatup-guide .rk-hu-layer-copy small { display: block; color: var(--rk-muted); font-size: .61rem; line-height: 1.4; }
  #rk-heatup-guide .rk-hu-detail {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: clamp(23px, 4vw, 34px);
    border-radius: 20px;
    color: #ffffff;
    background: linear-gradient(145deg, #112b3d, #155767);
  }
  #rk-heatup-guide .rk-hu-detail h4 { color: #ffffff; font-size: 1.35rem; }
  #rk-heatup-guide .rk-hu-detail > p { color: #dcecf0; }
  #rk-heatup-guide .rk-hu-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 14px; }
  #rk-heatup-guide .rk-hu-detail-card { min-width: 0; padding: 15px; border-radius: 14px; background: rgba(255, 255, 255, .085); }
  #rk-heatup-guide .rk-hu-detail-card b { display: block; margin-bottom: 5px; color: #7cecf7 !important; font-size: .68rem; }
  #rk-heatup-guide .rk-hu-detail-card p { margin-bottom: 0; color: #e5f2f4; font-size: .68rem; line-height: 1.5; }

  #rk-heatup-guide .rk-hu-lab-layout { display: grid; grid-template-columns: minmax(270px, .9fr) minmax(0, 1.45fr); gap: 24px; align-items: stretch; }
  #rk-heatup-guide .rk-hu-controls { min-width: 0; }
  #rk-heatup-guide .rk-hu-field { margin-bottom: 19px; }
  #rk-heatup-guide .rk-hu-field:last-child { margin-bottom: 0; }
  #rk-heatup-guide .rk-hu-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
  #rk-heatup-guide .rk-hu-label-row label { color: var(--rk-dark); font-size: .74rem; font-weight: 900; line-height: 1.3; }
  #rk-heatup-guide .rk-hu-output { flex: 0 0 auto; color: var(--rk-blue); font-size: .76rem; font-weight: 900; }
  #rk-heatup-guide input[type="range"] { width: 100%; height: 7px; margin: 0; border-radius: 99px; background: #d9e8ed; accent-color: var(--rk-blue); cursor: pointer; }
  #rk-heatup-guide .rk-hu-scale { display: flex; justify-content: space-between; margin-top: 5px; color: var(--rk-muted); font-size: .56rem; }
  #rk-heatup-guide .rk-hu-number {
    display: block;
    width: 100%;
    min-width: 0;
    height: 48px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #b9cfd7;
    border-radius: 12px;
    color: var(--rk-dark);
    background: #ffffff;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1.2;
  }
  #rk-heatup-guide .rk-hu-field-help { display: block; margin-top: 6px; color: var(--rk-muted); font-size: .58rem; line-height: 1.42; }
  #rk-heatup-guide .rk-hu-results {
    min-width: 0;
    padding: clamp(20px, 4vw, 29px);
    border-radius: 20px;
    color: #ffffff;
    background: linear-gradient(145deg, #112b3d, #155767);
  }
  #rk-heatup-guide .rk-hu-results h4 { color: #ffffff; }
  #rk-heatup-guide .rk-hu-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
  #rk-heatup-guide .rk-hu-result-card { min-width: 0; padding: 15px; border-radius: 14px; background: rgba(255, 255, 255, .09); }
  #rk-heatup-guide .rk-hu-result-card.is-wide { grid-column: 1 / -1; }
  #rk-heatup-guide .rk-hu-result-card span { display: block; color: #cfe5e9; font-size: .61rem; line-height: 1.35; }
  #rk-heatup-guide .rk-hu-result-card strong { display: block; margin: 5px 0 3px; color: #7cecf7 !important; font-size: clamp(1.3rem, 3.2vw, 1.9rem); line-height: 1; }
  #rk-heatup-guide .rk-hu-result-card small { display: block; color: #dcecef; font-size: .6rem; line-height: 1.42; }
  #rk-heatup-guide .rk-hu-result-note { margin-top: 14px; padding: 12px 14px; border-radius: 11px; color: #ffe8df; background: rgba(255, 106, 61, .19); font-size: .66rem; line-height: 1.5; }

  #rk-heatup-guide .rk-hu-chart-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 20px; }
  #rk-heatup-guide .rk-hu-chart-control-group { min-width: 0; }
  #rk-heatup-guide .rk-hu-chart-control-group > b { display: block; margin-bottom: 8px; color: var(--rk-dark); font-size: .68rem; }
  #rk-heatup-guide .rk-hu-chart-control-group .rk-hu-profile-tabs,
  #rk-heatup-guide .rk-hu-chart-control-group .rk-hu-scenario-tabs { margin-bottom: 0; }
  #rk-heatup-guide .rk-hu-chart-shell { position: relative; min-width: 0; }
  #rk-heatup-guide .rk-hu-chart-wrap { min-width: 0; padding: 14px 10px 2px; border: 1px solid var(--rk-line); border-radius: 18px; background: #fbfdfe; }
  #rk-heatup-guide .rk-hu-chart-svg { width: 100%; min-height: 320px; overflow: visible; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-grid { stroke: #dce8ed; stroke-width: 1; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-frame { fill: transparent; stroke: #afc4cd; stroke-width: 1.2; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-axis-text { fill: #617681; font-size: 12px; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-axis-title { fill: #314653; font-size: 12px; font-weight: 800; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-series-input { fill: none; stroke: var(--rk-orange); stroke-width: 3; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-series-floor { fill: none; stroke: var(--rk-blue); stroke-width: 4; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-series-room { fill: none; stroke: var(--rk-green); stroke-width: 4; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-guide { stroke: #6c7d87; stroke-width: 1.5; stroke-dasharray: 5 5; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-marker-input { fill: var(--rk-orange); stroke: #ffffff; stroke-width: 2; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-marker-floor { fill: var(--rk-blue); stroke: #ffffff; stroke-width: 2; }
  #rk-heatup-guide .rk-hu-chart-svg .rk-marker-room { fill: var(--rk-green); stroke: #ffffff; stroke-width: 2; }
  #rk-heatup-guide .rk-hu-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 13px 0 17px; color: var(--rk-text); font-size: .64rem; }
  #rk-heatup-guide .rk-hu-legend-item { display: inline-flex; align-items: center; gap: 7px; }
  #rk-heatup-guide .rk-hu-legend-swatch { width: 22px; height: 4px; border-radius: 99px; background: var(--rk-blue); }
  #rk-heatup-guide .rk-hu-legend-item.is-input .rk-hu-legend-swatch { background: var(--rk-orange); }
  #rk-heatup-guide .rk-hu-legend-item.is-room .rk-hu-legend-swatch { background: var(--rk-green); }
  #rk-heatup-guide .rk-hu-time-control { margin-top: 19px; padding: 17px; border-radius: 15px; background: var(--rk-soft); }
  #rk-heatup-guide .rk-hu-chart-readout { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
  #rk-heatup-guide .rk-hu-readout { min-width: 0; padding: 12px; border-radius: 12px; background: #ffffff; }
  #rk-heatup-guide .rk-hu-readout span { display: block; color: var(--rk-muted); font-size: .57rem; line-height: 1.3; }
  #rk-heatup-guide .rk-hu-readout strong { display: block; margin-top: 4px; color: var(--rk-dark); font-size: .88rem; line-height: 1.2; }
  #rk-heatup-guide .rk-hu-chart-status { margin-top: 15px; padding: 15px 17px; border-left: 5px solid var(--rk-cyan); border-radius: 13px; color: var(--rk-text); background: var(--rk-cyan-soft); font-size: .74rem; line-height: 1.55; }

  #rk-heatup-guide .rk-pg-checklist,
  #rk-heatup-guide .rk-pg-crosslist { margin: 22px 0; padding: 0; list-style: none; }
  #rk-heatup-guide .rk-pg-checklist li,
  #rk-heatup-guide .rk-pg-crosslist li { position: relative; margin-bottom: 10px; padding: 12px 14px 12px 45px; border-radius: 12px; background: var(--rk-soft); }
  #rk-heatup-guide .rk-pg-checklist li::before,
  #rk-heatup-guide .rk-pg-crosslist li::before {
    position: absolute;
    top: 12px;
    left: 13px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    color: #ffffff;
    background: var(--rk-green);
    content: "✓";
    font-size: .68rem;
    font-weight: 900;
    line-height: 1;
  }
  #rk-heatup-guide .rk-pg-crosslist li::before { background: var(--rk-red); content: "×"; }

  #rk-heatup-guide .rk-pg-myth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 25px; }
  #rk-heatup-guide .rk-pg-myth-card { min-width: 0; padding: 21px; border: 1px solid var(--rk-line); border-radius: 17px; background: var(--rk-white); }
  #rk-heatup-guide .rk-pg-myth-label { display: inline-block; margin-bottom: 8px; padding: 5px 9px; border-radius: 999px; color: #9f322a; background: var(--rk-red-soft); font-size: .58rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
  #rk-heatup-guide .rk-pg-myth-card p { margin-bottom: 0; color: var(--rk-text); }

  #rk-heatup-guide .rk-pg-cta {
    position: relative;
    overflow: hidden;
    margin: 34px 0;
    padding: clamp(27px, 6vw, 44px);
    border-radius: 24px;
    color: #ffffff;
    background: linear-gradient(135deg, #102c40 0%, #176777 68%, #157c78 100%);
  }
  #rk-heatup-guide .rk-pg-cta::after {
    position: absolute;
    right: -70px;
    bottom: -115px;
    width: 270px;
    height: 270px;
    border: 35px solid rgba(255, 255, 255, .06);
    border-radius: 50%;
    content: "";
  }
  #rk-heatup-guide .rk-pg-cta > * { position: relative; z-index: 1; }
  #rk-heatup-guide .rk-pg-cta-kicker { display: block; margin-bottom: 7px; color: #7cecf7; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  #rk-heatup-guide .rk-pg-cta h3 { max-width: 850px; color: #ffffff; font-size: clamp(1.4rem, 3.5vw, 2.15rem); }
  #rk-heatup-guide .rk-pg-cta p { max-width: 870px; color: #e5f3f6; }
  #rk-heatup-guide .rk-pg-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 20px;
    border-radius: 999px;
    color: #ffffff !important;
    background: var(--rk-orange);
    box-shadow: 0 10px 25px rgba(255, 106, 61, .26);
    font-size: .75rem;
    font-weight: 900;
    line-height: 1.25;
    text-decoration: none;
  }
  #rk-heatup-guide .rk-pg-cta-button:hover,
  #rk-heatup-guide .rk-pg-cta-button:focus-visible { color: #ffffff !important; background: #e9552d; }

  #rk-heatup-guide .rk-pg-sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
  #rk-heatup-guide .rk-pg-source { min-width: 0; padding: 20px; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-soft); }
  #rk-heatup-guide .rk-pg-source p { margin: 7px 0 0; color: var(--rk-text); font-size: .78rem; line-height: 1.55; }
  #rk-heatup-guide .rk-pg-faq { display: grid; gap: 10px; margin-top: 24px; }
  #rk-heatup-guide .rk-pg-faq details { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-white); }
  #rk-heatup-guide .rk-pg-faq summary { position: relative; padding: 18px 52px 18px 19px; color: var(--rk-dark); font-weight: 900; line-height: 1.35; cursor: pointer; list-style: none; }
  #rk-heatup-guide .rk-pg-faq summary::-webkit-details-marker { display: none; }
  #rk-heatup-guide .rk-pg-faq summary::after { position: absolute; top: 50%; right: 18px; width: 25px; height: 25px; border-radius: 50%; color: var(--rk-blue); background: var(--rk-cyan-soft); content: "+"; font-size: 1.05rem; font-weight: 900; line-height: 25px; text-align: center; transform: translateY(-50%); }
  #rk-heatup-guide .rk-pg-faq details[open] summary::after { content: "−"; }
  #rk-heatup-guide .rk-pg-faq-answer { padding: 0 19px 18px; color: var(--rk-text); }
  #rk-heatup-guide .rk-pg-faq-answer p:last-child { margin-bottom: 0; }

  #rk-heatup-guide .rk-pg-author { margin-top: 56px; overflow: hidden; border-radius: 24px; color: #ffffff; background: linear-gradient(135deg, #102536, #174b5b); }
  #rk-heatup-guide .rk-pg-author-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; padding: 29px clamp(22px, 5vw, 42px); border-bottom: 1px solid rgba(255, 255, 255, .12); }
  #rk-heatup-guide .rk-pg-author-head h2 { margin-bottom: 6px; color: #ffffff; }
  #rk-heatup-guide .rk-pg-author-head p { margin-bottom: 0; color: #dcecf0; }
  #rk-heatup-guide .rk-pg-author-head .rk-pg-eyebrow { color: #7cecf7; }
  #rk-heatup-guide .rk-pg-author-mark { flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; color: #ffffff; font-size: .62rem; font-weight: 900; }
  #rk-heatup-guide .rk-pg-author-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); }
  #rk-heatup-guide .rk-pg-author-side { padding: 30px 25px; border-right: 1px solid rgba(255, 255, 255, .12); text-align: center; }
  #rk-heatup-guide .rk-pg-author-photo { width: 132px; height: 132px; margin: 0 auto 16px; overflow: hidden; border: 5px solid rgba(255, 255, 255, .15); border-radius: 50%; }
  #rk-heatup-guide .rk-pg-author-photo img { width: 100%; height: 100%; object-fit: cover; }
  #rk-heatup-guide .rk-pg-author-name { margin-bottom: 5px; font-size: 1.12rem; font-weight: 900; }
  #rk-heatup-guide .rk-pg-author-name a { color: #ffffff; text-decoration: none; }
  #rk-heatup-guide .rk-pg-author-role { color: #cfe4e9; font-size: .7rem; line-height: 1.55; }
  #rk-heatup-guide .rk-pg-author-social-label { margin-top: 20px; color: #8beff7; font-size: .58rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
  #rk-heatup-guide .rk-pg-author-social { display: flex; justify-content: center; gap: 9px; margin-top: 9px; }
  #rk-heatup-guide .rk-pg-author-social a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #ffffff; background: rgba(255, 255, 255, .1); }
  #rk-heatup-guide .rk-pg-author-social svg { width: 18px; height: 18px; fill: currentColor; }
  #rk-heatup-guide .rk-pg-author-main { min-width: 0; padding: 32px clamp(23px, 5vw, 42px); }
  #rk-heatup-guide .rk-pg-author-quote { position: relative; margin: 0 0 24px; padding: 4px 0 4px 58px; border: 0; }
  #rk-heatup-guide .rk-pg-author-quote::before { position: absolute; top: -11px; left: 0; color: #6ee9f5; content: "“"; font-family: Georgia, serif; font-size: 4.4rem; line-height: 1; }
  #rk-heatup-guide .rk-pg-author-quote p { margin-bottom: 0; color: #ffffff; font-size: 1.02rem; font-weight: 740; }
  #rk-heatup-guide .rk-pg-author-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
  #rk-heatup-guide .rk-pg-author-card { min-width: 0; padding: 16px; border-radius: 14px; background: rgba(255, 255, 255, .075); }
  #rk-heatup-guide .rk-pg-author-card b { display: block; margin-bottom: 5px; color: #8beff7 !important; font-size: .69rem; }
  #rk-heatup-guide .rk-pg-author-card p { margin-bottom: 0; color: #d8e9ed; font-size: .68rem; line-height: 1.55; }
  #rk-heatup-guide .rk-pg-mini-label { margin-top: 22px; color: #8beff7; font-size: .58rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
  #rk-heatup-guide .rk-pg-portals { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
  #rk-heatup-guide .rk-pg-portals a { padding: 7px 10px; border: 1px solid rgba(255, 255, 255, .15); border-radius: 999px; color: #ffffff; font-size: .62rem; text-decoration: none; }

  @media (max-width: 900px) {
    #rk-heatup-guide .rk-pg-grid-3,
    #rk-heatup-guide .rk-pg-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heatup-guide .rk-hu-graphic-layout,
    #rk-heatup-guide .rk-hu-lab-layout { grid-template-columns: 1fr; }
    #rk-heatup-guide .rk-pg-author-layout { grid-template-columns: 1fr; }
    #rk-heatup-guide .rk-pg-author-side { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
  }
  @media (max-width: 720px) {
    #rk-heatup-guide { margin-top: 20px; font-size: 16px; }
    #rk-heatup-guide .rk-pg-shell { border-radius: 19px; }
    #rk-heatup-guide .rk-pg-hero-metrics,
    #rk-heatup-guide .rk-pg-grid-2,
    #rk-heatup-guide .rk-pg-grid-3,
    #rk-heatup-guide .rk-pg-grid-4,
    #rk-heatup-guide .rk-pg-factor-grid,
    #rk-heatup-guide .rk-pg-myth-grid,
    #rk-heatup-guide .rk-pg-sources,
    #rk-heatup-guide .rk-pg-author-cards,
    #rk-heatup-guide .rk-hu-chart-controls { grid-template-columns: 1fr; }
    #rk-heatup-guide .rk-pg-formula-main,
    #rk-heatup-guide .rk-pg-author-head { display: block; }
    #rk-heatup-guide .rk-pg-formula-result { display: inline-block; margin-top: 14px; }
    #rk-heatup-guide .rk-pg-author-mark { display: inline-block; margin-top: 14px; }
    #rk-heatup-guide .rk-pg-table-wrap { overflow: visible; border: 0; background: transparent; }
    #rk-heatup-guide table,
    #rk-heatup-guide thead,
    #rk-heatup-guide tbody,
    #rk-heatup-guide tr,
    #rk-heatup-guide th,
    #rk-heatup-guide td { display: block; width: 100%; }
    #rk-heatup-guide thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    #rk-heatup-guide tbody { display: grid; gap: 13px; }
    #rk-heatup-guide tr { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-white); }
    #rk-heatup-guide td { position: relative; min-height: 54px; padding: 31px 15px 12px; border-bottom: 1px solid var(--rk-line); background: #ffffff !important; }
    #rk-heatup-guide td:last-child { border-bottom: 0; }
    #rk-heatup-guide td::before { position: absolute; top: 9px; left: 15px; color: var(--rk-blue); content: attr(data-label); font-size: .56rem; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
  }
  @media (max-width: 500px) {
    #rk-heatup-guide .rk-pg-hero { padding-left: 21px; padding-right: 21px; }
    #rk-heatup-guide .rk-pg-content { padding-left: 16px; padding-right: 16px; }
    #rk-heatup-guide .rk-pg-nav { padding-left: 15px; padding-right: 15px; }
    #rk-heatup-guide .rk-pg-nav a { font-size: .61rem; }
    #rk-heatup-guide .rk-pg-tool-body { padding-left: 13px; padding-right: 13px; }
    #rk-heatup-guide .rk-pg-factor { grid-template-columns: 52px minmax(0, 1fr); gap: 13px; padding: 18px 15px; }
    #rk-heatup-guide .rk-hu-concept-tabs,
    #rk-heatup-guide .rk-hu-profile-tabs,
    #rk-heatup-guide .rk-hu-scenario-tabs,
    #rk-heatup-guide .rk-hu-preset-tabs { display: grid; grid-template-columns: 1fr; }
    #rk-heatup-guide .rk-hu-tab { width: 100%; }
    #rk-heatup-guide .rk-hu-layer { grid-template-columns: 44px minmax(0, 1fr); padding: 11px 12px; }
    #rk-heatup-guide .rk-hu-detail-grid,
    #rk-heatup-guide .rk-hu-result-grid,
    #rk-heatup-guide .rk-hu-chart-readout { grid-template-columns: 1fr; }
    #rk-heatup-guide .rk-hu-result-card.is-wide { grid-column: auto; }
    #rk-heatup-guide .rk-hu-chart-svg { min-height: 310px; }
    #rk-heatup-guide .rk-pg-author-main { padding-left: 18px; padding-right: 18px; }
    #rk-heatup-guide .rk-pg-cta-button { width: 100%; text-align: center; }
  }
  @media (prefers-reduced-motion: reduce) {
    #rk-heatup-guide *,
    #rk-heatup-guide *::before,
    #rk-heatup-guide *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  }

  #rk-heatup-guide .rk-hu-stage-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 26px 0;
  }
  #rk-heatup-guide .rk-hu-stage-card {
    min-width: 0;
    padding: 19px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: #ffffff;
  }
  #rk-heatup-guide .rk-hu-stage-card b { display: block; margin: 10px 0 6px; color: var(--rk-dark); }
  #rk-heatup-guide .rk-hu-stage-card p { margin: 0; color: var(--rk-text); font-size: .72rem; line-height: 1.55; }
  #rk-heatup-guide .rk-hu-stage-dot {
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    border-radius: 50% !important;
    color: var(--rk-dark) !important;
    background: #d9f5f8 !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    position: static !important;
    transform: none !important;
  }
  #rk-heatup-guide .rk-hu-stage-card:nth-child(2) .rk-hu-stage-dot { background: #ffdfd4 !important; }
  #rk-heatup-guide .rk-hu-stage-card:nth-child(3) .rk-hu-stage-dot { background: #dff5ed !important; }
  #rk-heatup-guide .rk-hu-stage-card:nth-child(4) .rk-hu-stage-dot { background: #e5e1ff !important; }

  #rk-heatup-guide .rk-hu-tool-section-title {
    margin: 27px 0 13px;
    color: var(--rk-dark);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
  }
  #rk-heatup-guide .rk-hu-input-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
  }
  #rk-heatup-guide .rk-hu-input-grid .rk-hu-field.is-wide { grid-column: 1 / -1; }
  #rk-heatup-guide .rk-hu-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-top: 18px;
    padding: 10px 15px;
    border: 1px solid #b7d3dc;
    border-radius: 12px;
    color: var(--rk-dark);
    background: #ffffff;
    font-size: .68rem;
    font-weight: 900;
  }
  #rk-heatup-guide .rk-hu-reset:hover,
  #rk-heatup-guide .rk-hu-reset:focus-visible { border-color: var(--rk-blue); background: var(--rk-cyan-soft); }
  #rk-heatup-guide .rk-hu-result-card.is-alert { background: rgba(255, 106, 61, .18); }

  #rk-heatup-guide .rk-hu-timeline {
    display: grid;
    gap: 12px;
    margin-top: 24px;
    padding: clamp(18px, 4vw, 28px);
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: #f8fcfd;
  }
  #rk-heatup-guide .rk-hu-timeline-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 4px;
  }
  #rk-heatup-guide .rk-hu-timeline-head h4 { margin: 0; }
  #rk-heatup-guide .rk-hu-timeline-head span { color: var(--rk-muted); font-size: .62rem; text-align: right; }
  #rk-heatup-guide .rk-hu-time-row {
    display: grid;
    grid-template-columns: minmax(150px, .55fr) minmax(0, 1.45fr) minmax(105px, .38fr);
    align-items: center;
    gap: 13px;
    min-width: 0;
    padding: 13px;
    border-radius: 14px;
    background: #ffffff;
  }
  #rk-heatup-guide .rk-hu-time-label b { display: block; color: var(--rk-dark); font-size: .7rem; }
  #rk-heatup-guide .rk-hu-time-label small { display: block; color: var(--rk-muted); font-size: .56rem; line-height: 1.35; }
  #rk-heatup-guide .rk-hu-time-track { position: relative; height: 14px; overflow: hidden; border-radius: 99px; background: #e2edf1; }
  #rk-heatup-guide .rk-hu-time-fill { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue)); transition: width .25s ease; }
  #rk-heatup-guide .rk-hu-time-row:nth-of-type(3) .rk-hu-time-fill { background: linear-gradient(90deg, #ff9b78, var(--rk-orange)); }
  #rk-heatup-guide .rk-hu-time-row:nth-of-type(4) .rk-hu-time-fill { background: linear-gradient(90deg, #55bea5, var(--rk-green)); }
  #rk-heatup-guide .rk-hu-time-row:nth-of-type(5) .rk-hu-time-fill { background: linear-gradient(90deg, #998ce6, var(--rk-purple)); }
  #rk-heatup-guide .rk-hu-time-value { color: var(--rk-dark); font-size: .68rem; font-weight: 900; text-align: right; }
  #rk-heatup-guide .rk-hu-timeline-note { margin: 5px 0 0; color: var(--rk-muted); font-size: .61rem; line-height: 1.5; }

  #rk-heatup-guide .rk-hu-cost-box {
    margin-top: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: #ffffff;
  }
  #rk-heatup-guide .rk-hu-cost-box summary { position: relative; padding: 17px 52px 17px 18px; color: var(--rk-dark); font-size: .72rem; font-weight: 900; cursor: pointer; list-style: none; }
  #rk-heatup-guide .rk-hu-cost-box summary::-webkit-details-marker { display: none; }
  #rk-heatup-guide .rk-hu-cost-box summary::after { position: absolute; top: 50%; right: 17px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; color: var(--rk-blue); background: var(--rk-cyan-soft); content: "+"; transform: translateY(-50%); }
  #rk-heatup-guide .rk-hu-cost-box[open] summary::after { content: "−"; }
  #rk-heatup-guide .rk-hu-cost-body { padding: 0 18px 18px; }
  #rk-heatup-guide .rk-hu-cost-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
  #rk-heatup-guide .rk-hu-cost-result { margin-top: 14px; padding: 15px; border-left: 5px solid var(--rk-orange); border-radius: 13px; color: var(--rk-text); background: var(--rk-orange-soft); }
  #rk-heatup-guide .rk-hu-cost-result b { color: var(--rk-dark); }

  #rk-heatup-guide .rk-hu-diagnostic {
    display: grid;
    grid-template-columns: minmax(280px, .95fr) minmax(0, 1.05fr);
    gap: 20px;
    margin-top: 25px;
  }
  #rk-heatup-guide .rk-hu-diag-panel {
    min-width: 0;
    padding: clamp(20px, 4vw, 28px);
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: #ffffff;
  }
  #rk-heatup-guide .rk-hu-diag-panel.is-result { color: #ffffff; border: 0; background: linear-gradient(145deg, #112b3d, #155767); }
  #rk-heatup-guide .rk-hu-diag-panel.is-result h3 { color: #ffffff; }
  #rk-heatup-guide .rk-hu-diag-panel.is-result p { color: #dcecf0; }
  #rk-heatup-guide .rk-hu-diag-question { margin-bottom: 18px; }
  #rk-heatup-guide .rk-hu-diag-question:last-child { margin-bottom: 0; }
  #rk-heatup-guide .rk-hu-diag-question > b { display: block; margin-bottom: 8px; color: var(--rk-dark); font-size: .7rem; }
  #rk-heatup-guide .rk-hu-choice-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  #rk-heatup-guide .rk-hu-choice {
    min-width: 0;
    min-height: 42px;
    padding: 9px 10px;
    border: 1px solid #bfd4dc;
    border-radius: 11px;
    color: var(--rk-dark);
    background: #ffffff;
    font-size: .64rem;
    font-weight: 900;
  }
  #rk-heatup-guide .rk-hu-choice.is-active,
  #rk-heatup-guide .rk-hu-choice[aria-pressed="true"] { color: #ffffff; border-color: var(--rk-blue); background: var(--rk-blue); }
  #rk-heatup-guide .rk-hu-diag-state { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 13px; padding: 7px 10px; border-radius: 999px; color: #ffffff; background: rgba(255,255,255,.12); font-size: .6rem; font-weight: 900; }
  #rk-heatup-guide .rk-hu-diag-state::before { width: 9px; height: 9px; border-radius: 50%; background: var(--rk-cyan); content: ""; }
  #rk-heatup-guide .rk-hu-diag-steps { display: grid; gap: 9px; margin: 18px 0 0; padding: 0; list-style: none; }
  #rk-heatup-guide .rk-hu-diag-steps li { padding: 11px 13px; border-radius: 12px; color: #e6f4f6; background: rgba(255,255,255,.08); font-size: .68rem; line-height: 1.5; }

  @media (max-width: 900px) {
    #rk-heatup-guide .rk-hu-stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heatup-guide .rk-hu-diagnostic { grid-template-columns: 1fr; }
    #rk-heatup-guide .rk-hu-cost-grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 600px) {
    #rk-heatup-guide .rk-hu-stage-grid,
    #rk-heatup-guide .rk-hu-input-grid { grid-template-columns: 1fr; }
    #rk-heatup-guide .rk-hu-input-grid .rk-hu-field.is-wide { grid-column: auto; }
    #rk-heatup-guide .rk-hu-timeline-head { display: block; }
    #rk-heatup-guide .rk-hu-timeline-head span { display: block; margin-top: 6px; text-align: left; }
    #rk-heatup-guide .rk-hu-time-row { grid-template-columns: 1fr; gap: 8px; }
    #rk-heatup-guide .rk-hu-time-track { height: 12px; }
    #rk-heatup-guide .rk-hu-time-value { text-align: left; }
  }
</style>

<article id="rk-heatup-guide" aria-labelledby="rk-hu-visual-title">
  <div class="rk-pg-shell">
    <header class="rk-pg-hero">
      <span class="rk-pg-kicker">Czas reakcji to nie jedna liczba</span>
      <div class="rk-pg-hero-title" id="rk-hu-visual-title">Woda, podłoga i pokój <span>nagrzewają się w różnym tempie</span></div>
      <p class="rk-pg-lead">Pierwsza zmiana na rozdzielaczu może pojawić się szybko, a pełna odpowiedź ciężkiej podłogi i całego pomieszczenia znacznie później. Ten poradnik rozdziela te etapy, pozwala oszacować energię oraz czas reakcji i pokazuje, kiedy cierpliwie obserwować instalację, a kiedy rozpocząć diagnostykę.</p>

      <div class="rk-pg-hero-tags" aria-label="Zakres poradnika">
        <span class="rk-pg-hero-tag">czas nagrzewania</span>
        <span class="rk-pg-hero-tag">jastrych mokry i suchy</span>
        <span class="rk-pg-hero-tag">moc i straty</span>
        <span class="rk-pg-hero-tag">pompa ciepła</span>
        <span class="rk-pg-hero-tag">diagnostyka przepływu</span>
      </div>

      <div class="rk-pg-byline" aria-label="Informacje o publikacji">
        <span><strong>Autor:</strong> Robert Kucharski</span>
        <span><strong>Czas czytania:</strong> około 25 minut</span>
        <span><strong>Aktualizacja techniczna:</strong> 13 września 2026 r.</span>
      </div>

      <div class="rk-pg-hero-metrics" aria-label="Trzy najważniejsze odpowiedzi">
        <div class="rk-pg-hero-metric"><b>Pierwsza reakcja</b><span>Ciepłe zasilanie nie oznacza jeszcze ciepłej powierzchni ani wzrostu temperatury pokoju.</span></div>
        <div class="rk-pg-hero-metric"><b>Najważniejszy bilans</b><span>O tempie wzrostu decyduje moc przekazywana do podłogi pomniejszona o bieżące straty budynku.</span></div>
        <div class="rk-pg-hero-metric"><b>Właściwa ocena</b><span>Podajemy przedziały i ograniczenia modelu, a nie jedną obietnicę godzinową dla każdego domu.</span></div>
      </div>
    </header>

    <nav class="rk-pg-nav" aria-label="Na skróty — wszystkie główne sekcje artykułu">
      <span class="rk-pg-nav-label">Na skróty</span>
      <div class="rk-pg-nav-track">
        <a href="#rk-hu-odpowiedz">Krótka odpowiedź</a>
        <a href="#rk-hu-etapy">Cztery etapy</a>
        <a href="#rk-hu-sytuacje">Trzy sytuacje</a>
        <a href="#rk-hu-czynniki">Co wpływa</a>
        <a href="#rk-hu-kalkulator">Kalkulator i koszt</a>
        <a href="#rk-hu-diagnostyka">Diagnostyka</a>
        <a href="#rk-hu-pomiar">Pomiar w domu</a>
        <a href="#rk-hu-noc">Obniżenie nocne</a>
        <a href="#rk-hu-systemy">Mokry, suchy, elektryczny</a>
        <a href="#rk-hu-optymalizacja">Jak przyspieszyć</a>
        <a href="#rk-hu-wnioski">Wnioski</a>
        <a href="#rk-hu-zrodla">Źródła</a>
        <a href="#rk-hu-faq">FAQ</a>
        <a href="#rk-hu-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-pg-content">
      <section class="rk-pg-section" id="rk-hu-odpowiedz">
        <span class="rk-pg-eyebrow">Odpowiedź w 60 sekund</span>
        <h2>Ile czasu nagrzewa się podłogówka? Krótka odpowiedź</h2>
        <div class="rk-pg-answer">
          <p><strong>Nie istnieje jeden prawidłowy czas nagrzewania ogrzewania podłogowego.</strong> W lekkiej konstrukcji zmianę temperatury powierzchni można zauważyć stosunkowo szybko, natomiast w ciężkim systemie mokrym reakcja podłogi i pomieszczenia zwykle trwa kilka godzin. Ponowne ogrzanie wychłodzonego budynku może wymagać kilkunastu godzin albo kilku dób, ponieważ energię pochłaniają również ściany, stropy i wyposażenie.</p>
        </div>
        <p>Pytając „po jakim czasie podłoga robi się ciepła?”, trzeba najpierw określić punkt startowy i oczekiwany rezultat. Inny czas otrzymamy dla pierwszej zauważalnej zmiany powierzchni, inny dla podniesienia temperatury pokoju o 1 K, a jeszcze inny dla osiągnięcia nowego stanu równowagi. Z tego powodu <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna ogrzewania podłogowego</a> nie może być opisana jedną liczbą godzin.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Co obserwujemy?</th><th>Orientacyjna skala czasu</th><th>Co najbardziej zmienia wynik?</th></tr></thead>
            <tbody>
              <tr><td data-label="Etap"><strong>Zmianę temperatury wody i rur</strong></td><td data-label="Skala">minuty do około godziny</td><td data-label="Wpływ">automatyka źródła, objętość instalacji, pompa i przepływ</td></tr>
              <tr><td data-label="Etap"><strong>Pierwszą zmianę powierzchni w systemie lekkim</strong></td><td data-label="Skala">od kilkudziesięciu minut do kilku godzin</td><td data-label="Wpływ">budowa systemu, blachy przewodzące, okładzina i moc</td></tr>
              <tr><td data-label="Etap"><strong>Pierwszą zmianę powierzchni w systemie mokrym</strong></td><td data-label="Skala">najczęściej kilka godzin</td><td data-label="Wpływ">grubość, położenie rur, właściwości jastrychu i opór okładziny</td></tr>
              <tr><td data-label="Etap"><strong>Wyraźną zmianę temperatury pomieszczenia</strong></td><td data-label="Skala">kilka do kilkunastu godzin lub dłużej</td><td data-label="Wpływ">nadwyżka mocy nad stratami oraz pojemność całego budynku</td></tr>
              <tr><td data-label="Etap"><strong>Ogrzanie wychłodzonego domu</strong></td><td data-label="Skala">kilkanaście godzin do kilku dób</td><td data-label="Wpływ">temperatura początkowa, pogoda, masa przegród i dostępna moc</td></tr>
              <tr><td data-label="Etap"><strong>Wygrzewanie nowej wylewki</strong></td><td data-label="Skala">procedura liczona w dniach</td><td data-label="Wpływ">rodzaj jastrychu, jego dojrzałość i instrukcja konkretnego systemu</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-pg-note"><p><strong>To nie są granice normowe ani gwarantowane czasy.</strong> Tabela porządkuje skalę zjawiska. Konkretny wynik zależy od danych, które opisujemy dalej i które można wprowadzić do kalkulatora.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-hu-etapy">
        <span class="rk-pg-eyebrow">Jedno uruchomienie, cztery różne zegary</span>
        <h2>Co dokładnie ma się nagrzać: woda, powierzchnia czy pomieszczenie?</h2>
        <p class="rk-pg-intro">Po zmianie nastawy energia przechodzi przez kolejne części układu. Każda reaguje w innym tempie, dlatego pomiar tylko jednego termometru może prowadzić do błędnego wniosku.</p>

        <div class="rk-hu-stage-grid" aria-label="Cztery etapy reakcji ogrzewania podłogowego">
          <article class="rk-hu-stage-card"><span class="rk-hu-stage-dot">1</span><b>Źródło i woda</b><p>Kocioł, pompa ciepła albo układ mieszający zmieniają temperaturę zasilania. Ciepła rura przy rozdzielaczu potwierdza dopływ energii, ale nie temperaturę całej podłogi.</p></article>
          <article class="rk-hu-stage-card"><span class="rk-hu-stage-dot">2</span><b>Rura i jastrych</b><p>Ciepło rozchodzi się od przewodu przez aktywną masę. Liczą się położenie rury, przewodność, grubość oraz ilość energii magazynowanej w warstwie.</p></article>
          <article class="rk-hu-stage-card"><span class="rk-hu-stage-dot">3</span><b>Powierzchnia podłogi</b><p>Okładzina i podkład tworzą drogę oporu cieplnego. Temperatura powierzchni może zacząć rosnąć, zanim użytkownik odczuje zmianę w całym pokoju.</p></article>
          <article class="rk-hu-stage-card"><span class="rk-hu-stage-dot">4</span><b>Pomieszczenie i budynek</b><p>Podłoga ogrzewa powietrze, przegrody i wyposażenie, jednocześnie pokrywając straty przez ściany, okna oraz wentylację.</p></article>
        </div>

        <p>Woda może reagować szybko, a powierzchnia nadal pozostawać chłodna. Powierzchnia może już oddawać większą moc, a termometr pokojowy jeszcze nie pokaże istotnej zmiany. Ostatecznie liczy się relacja pomiędzy mocą emitera a aktualnymi stratami pomieszczenia. Punkt wyjścia stanowi więc <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, a nie sama grubość betonu.</p>
      </section>

      <section class="rk-pg-section" id="rk-hu-sytuacje">
        <span class="rk-pg-eyebrow">Nie wolno mieszać różnych procedur</span>
        <h2>Pierwsze uruchomienie, start sezonu i zmiana nastawy to trzy różne sytuacje</h2>
        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-cyan"><div class="rk-pg-card-icon">A</div><h3>Korekta podczas normalnej pracy</h3><p>Instalacja, wylewka i budynek są już ciepłe. Zmieniamy jedynie bilans o niewielką wartość, dlatego nie trzeba ponownie ogrzewać całej konstrukcji od temperatury letniej.</p></article>
          <article class="rk-pg-card is-orange"><div class="rk-pg-card-icon">B</div><h3>Start po dłuższej przerwie</h3><p>Podłoga i część przegród mają niższą temperaturę. Źródło musi jednocześnie uzupełniać energię w masie budynku i pokrywać bieżące straty do otoczenia.</p></article>
          <article class="rk-pg-card is-purple"><div class="rk-pg-card-icon">C</div><h3>Wygrzewanie nowej wylewki</h3><p>To procedura wykonawcza, a nie sposób szybkiego ogrzewania domu. Rozpoczyna się dopiero po wymaganym czasie dojrzewania i zgodnie z dokumentacją jastrychu oraz systemu.</p></article>
        </div>

        <p>Uruchomienia eksploatacyjnego nie należy utożsamiać z <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wygrzewaniem wylewki na ogrzewaniu podłogowym</a>. Nie istnieje jeden harmonogram temperatur odpowiedni dla każdego jastrychu cementowego, anhydrytowego i każdej chemii budowlanej. Zawsze trzeba sprawdzić wymagania producenta materiału, protokół uruchomienia i ograniczenia okładziny.</p>
        <div class="rk-pg-warning"><p><strong>Nie podnoś gwałtownie temperatury tylko po to, aby „sprawdzić, czy podłoga działa”.</strong> Maksymalna dopuszczalna temperatura powierzchni i ograniczenia materiałów wykończeniowych są czymś innym niż chwilowa temperatura wody. Zobacz, od czego zależy <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-hu-czynniki">
        <span class="rk-pg-eyebrow">Osiem elementów jednego bilansu</span>
        <h2>Od czego zależy czas nagrzewania ogrzewania podłogowego?</h2>
        <p class="rk-pg-intro">Czas nie wynika z pojedynczego parametru. To rezultat pojemności cieplnej, drogi przepływu ciepła, dostępnej mocy, strat oraz działania hydrauliki i automatyki.</p>

        <div class="rk-pg-factor-grid">
          <article class="rk-pg-factor"><div class="rk-pg-step-badge"><span>1</span></div><div class="rk-pg-factor-copy"><h3>Powierzchnia czynna i straty</h3><p>Podłoga musi oddać wymaganą moc tylko z fragmentu, który rzeczywiście uczestniczy w ogrzewaniu. Zabudowa stała może ograniczyć powierzchnię, a duże przeszklenia zwiększyć lokalne obciążenie.</p></div></article>
          <article class="rk-pg-factor"><div class="rk-pg-step-badge"><span>2</span></div><div class="rk-pg-factor-copy"><h3>Masa i pojemność cieplna</h3><p>Większa objętość materiału zwykle wymaga większej ilości energii do zmiany średniej temperatury. Sama nazwa „cement” albo „anhydryt” nie wystarcza bez właściwości produktu.</p></div></article>
          <article class="rk-pg-factor"><div class="rk-pg-step-badge"><span>3</span></div><div class="rk-pg-factor-copy"><h3>Położenie i rozstaw rur</h3><p>Głębokość przewodu oraz <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 czy 15 cm</a> zmieniają pole temperatury i możliwą moc, lecz nie usuwają pojemności jastrychu.</p></div></article>
          <article class="rk-pg-factor"><div class="rk-pg-step-badge"><span>4</span></div><div class="rk-pg-factor-copy"><h3>Okładzina i podkład</h3><p>Liczy się łączny opór cieplny w m²·K/W oraz limit temperatury producenta. Drewno, winyl i panele trzeba oceniać jako kompletny zestaw, nie tylko po nazwie materiału.</p></div></article>
          <article class="rk-pg-factor"><div class="rk-pg-step-badge"><span>5</span></div><div class="rk-pg-factor-copy"><h3>Temperatura i przepływ</h3><p>Temperatura zasilania, powrotu oraz przepływ decydują o energii przekazywanej do pętli. Znaczenie ma rzeczywista <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnica temperatur zasilania i powrotu</a>.</p></div></article>
          <article class="rk-pg-factor"><div class="rk-pg-step-badge"><span>6</span></div><div class="rk-pg-factor-copy"><h3>Źródło i regulacja</h3><p>Pompa ciepła, kocioł i zawór mieszający mogą inaczej budować temperaturę. Odpowiedź zależy od <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>, ograniczeń oraz logiki sterownika.</p></div></article>
          <article class="rk-pg-factor"><div class="rk-pg-step-badge"><span>7</span></div><div class="rk-pg-factor-copy"><h3>Masa całego budynku</h3><p>Po przerwie ogrzewamy nie tylko powietrze. Energię pochłaniają ściany, stropy i wyposażenie, a zyski słoneczne mogą w tym samym czasie zmniejszać zapotrzebowanie.</p></div></article>
          <article class="rk-pg-factor"><div class="rk-pg-step-badge"><span>8</span></div><div class="rk-pg-factor-copy"><h3>Hydraulika pętli</h3><p>Długości, średnice, opory, nastawy i praca pompy decydują, czy projektowany przepływ dociera do każdej strefy. Zbyt mały przepływ nie jest „naturalną bezwładnością”.</p></div></article>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-hu-kalkulator">
        <span class="rk-pg-eyebrow">Narzędzie 1 · kalkulator edukacyjny</span>
        <h2>Kalkulator czasu nagrzewania podłogówki i kosztu jednego uruchomienia</h2>
        <p class="rk-pg-intro">Oblicz energię odpowiadającą zmianie średniej temperatury analizowanej warstwy, sprawdź moc pozostającą po pokryciu strat i zobacz orientacyjne przedziały kolejnych etapów. Kalkulator nie udaje pełnej symulacji dynamicznej budynku.</p>

        <div class="rk-pg-tool" id="rk-hu-calculator-tool">
          <div class="rk-pg-tool-head">
            <span class="rk-pg-tool-kicker">Bilans energii plus responsywna oś czasu</span>
            <h3>Co się dzieje po zmianie sposobu pracy instalacji?</h3>
            <p>Najpierw wybierz sytuację, później opisz aktywną warstwę oraz moc rzeczywiście przekazywaną do podłogi. Wyniki aktualizują się po każdej zmianie.</p>
          </div>
          <div class="rk-pg-tool-body">
            <div class="rk-hu-scenario-tabs" role="group" aria-label="Wybierz analizowaną sytuację">
              <button class="rk-hu-tab is-active" type="button" data-rk-hu-scenario="correction" aria-pressed="true">Mała korekta podczas pracy</button>
              <button class="rk-hu-tab" type="button" data-rk-hu-scenario="restart" aria-pressed="false">Start po dłuższej przerwie</button>
              <button class="rk-hu-tab" type="button" data-rk-hu-scenario="cold" aria-pressed="false">Wychłodzony budynek</button>
            </div>

            <div class="rk-hu-lab-layout">
              <div class="rk-hu-controls">
                <div class="rk-hu-field">
                  <div class="rk-hu-label-row"><label for="rk-hu-system">Przykładowa konstrukcja</label></div>
                  <select class="rk-hu-number" id="rk-hu-system">
                    <option value="cement" selected>Mokry — jastrych cementowy</option>
                    <option value="anhydrite">Mokry — jastrych anhydrytowy</option>
                    <option value="dry">Suchy — konstrukcja lekka</option>
                    <option value="custom">Własne dane warstwy</option>
                  </select>
                  <small class="rk-hu-field-help">Preset uzupełnia wartości przykładowe. Dla konkretnej podłogi wpisz dane dokumentacji systemu.</small>
                </div>

                <div class="rk-hu-input-grid">
                  <div class="rk-hu-field">
                    <div class="rk-hu-label-row"><label for="rk-hu-area">Aktywna powierzchnia</label><output class="rk-hu-output" id="rk-hu-area-output" for="rk-hu-area">80 m²</output></div>
                    <input id="rk-hu-area" type="range" min="10" max="250" step="1" value="80">
                    <div class="rk-hu-scale"><span>10 m²</span><span>250 m²</span></div>
                  </div>
                  <div class="rk-hu-field">
                    <div class="rk-hu-label-row"><label for="rk-hu-thickness">Aktywna grubość warstwy</label><output class="rk-hu-output" id="rk-hu-thickness-output" for="rk-hu-thickness">65 mm</output></div>
                    <input id="rk-hu-thickness" type="range" min="15" max="120" step="1" value="65">
                    <div class="rk-hu-scale"><span>15 mm</span><span>120 mm</span></div>
                  </div>
                  <div class="rk-hu-field">
                    <div class="rk-hu-label-row"><label for="rk-hu-cv">Pojemność objętościowa</label></div>
                    <input class="rk-hu-number" id="rk-hu-cv" type="number" min="0.4" max="3.2" step="0.05" value="2.00" inputmode="decimal">
                    <small class="rk-hu-field-help">Wartość C<sub>v</sub> w MJ/(m³·K).</small>
                  </div>
                  <div class="rk-hu-field">
                    <div class="rk-hu-label-row"><label for="rk-hu-delta">Zmiana średniej temperatury warstwy</label><output class="rk-hu-output" id="rk-hu-delta-output" for="rk-hu-delta">2,0 K</output></div>
                    <input id="rk-hu-delta" type="range" min="0.5" max="15" step="0.5" value="2">
                    <div class="rk-hu-scale"><span>0,5 K</span><span>15 K</span></div>
                  </div>
                  <div class="rk-hu-field">
                    <div class="rk-hu-label-row"><label for="rk-hu-power">Moc przekazywana do podłogi</label></div>
                    <input class="rk-hu-number" id="rk-hu-power" type="number" min="0.1" max="60" step="0.1" value="5.5" inputmode="decimal">
                    <small class="rk-hu-field-help">kW oddawane do analizowanej powierzchni, nie moc znamionowa źródła.</small>
                  </div>
                  <div class="rk-hu-field">
                    <div class="rk-hu-label-row"><label for="rk-hu-loss">Bieżące straty budynku</label></div>
                    <input class="rk-hu-number" id="rk-hu-loss" type="number" min="0" max="60" step="0.1" value="3.0" inputmode="decimal">
                    <small class="rk-hu-field-help">kW dla warunków panujących podczas analizowanego uruchomienia.</small>
                  </div>
                  <div class="rk-hu-field is-wide">
                    <div class="rk-hu-label-row"><label for="rk-hu-resistance">Łączny opór okładziny i podkładu</label><output class="rk-hu-output" id="rk-hu-resistance-output" for="rk-hu-resistance">0,050 m²·K/W</output></div>
                    <input id="rk-hu-resistance" type="range" min="0.01" max="0.20" step="0.005" value="0.05">
                    <div class="rk-hu-scale"><span>0,010</span><span>0,200 m²·K/W</span></div>
                    <small class="rk-hu-field-help">Opór wpływa na edukacyjny przedział reakcji powierzchni, nie na obliczoną pojemność warstwy.</small>
                  </div>
                </div>
                <button class="rk-hu-reset" id="rk-hu-calc-reset" type="button">Przywróć wartości przykładowe</button>
              </div>

              <div class="rk-hu-results" aria-live="polite">
                <h4>Wynik dla wprowadzonych danych</h4>
                <div class="rk-hu-result-grid">
                  <div class="rk-hu-result-card"><span>Objętość aktywnej warstwy</span><strong id="rk-hu-result-volume">5,20 m³</strong><small>powierzchnia razy grubość</small></div>
                  <div class="rk-hu-result-card"><span>Pojemność całej warstwy</span><strong id="rk-hu-result-capacity">2,89 kWh/K</strong><small>energia na każdy 1 K zmiany średniej temperatury</small></div>
                  <div class="rk-hu-result-card"><span>Energia dla wskazanego ΔT</span><strong id="rk-hu-result-energy">5,78 kWh</strong><small>energia wiązana w analizowanej masie</small></div>
                  <div class="rk-hu-result-card"><span>Moc pozostająca po pokryciu strat</span><strong id="rk-hu-result-net">2,50 kW</strong><small>moc podłogi minus bieżące straty</small></div>
                  <div class="rk-hu-result-card"><span>Teoretyczne minimum energetyczne</span><strong id="rk-hu-result-minimum">2 godz. 19 min</strong><small>bez pełnego modelu transportu i budynku</small></div>
                  <div class="rk-hu-result-card"><span>Pierwsza reakcja powierzchni</span><strong id="rk-hu-result-surface">0,7–1,7 godz.</strong><small>edukacyjny przedział, nie gwarancja</small></div>
                  <div class="rk-hu-result-card"><span>Wyraźna reakcja pomieszczenia</span><strong id="rk-hu-result-room">1,8–4,0 godz.</strong><small>zależna także od przegród i zysków</small></div>
                  <div class="rk-hu-result-card"><span>Zbliżenie do nowej równowagi</span><strong id="rk-hu-result-stable">3,6–7,1 godz.</strong><small>orientacyjna skala dla wybranego scenariusza</small></div>
                </div>
                <div class="rk-hu-result-note" id="rk-hu-calculator-status">Wynik pokazuje bilans uproszczony. Nie uwzględnia przestrzennego rozkładu temperatury, całej masy budynku, pogody zmiennej w czasie ani logiki konkretnego regulatora.</div>
              </div>
            </div>

            <div class="rk-hu-timeline" aria-labelledby="rk-hu-timeline-title">
              <div class="rk-hu-timeline-head"><h4 id="rk-hu-timeline-title">Oś kolejnych etapów</h4><span id="rk-hu-timeline-scale">skala do 7,1 godz.</span></div>
              <div class="rk-hu-time-row"><div class="rk-hu-time-label"><b>Woda i rury</b><small>reakcja obiegu</small></div><div class="rk-hu-time-track"><span class="rk-hu-time-fill" id="rk-hu-fill-water"></span></div><div class="rk-hu-time-value" id="rk-hu-time-water">około 10–45 min</div></div>
              <div class="rk-hu-time-row"><div class="rk-hu-time-label"><b>Powierzchnia</b><small>pierwsza zauważalna zmiana</small></div><div class="rk-hu-time-track"><span class="rk-hu-time-fill" id="rk-hu-fill-surface"></span></div><div class="rk-hu-time-value" id="rk-hu-time-surface">0,7–1,7 godz.</div></div>
              <div class="rk-hu-time-row"><div class="rk-hu-time-label"><b>Pomieszczenie</b><small>wyraźna odpowiedź cieplna</small></div><div class="rk-hu-time-track"><span class="rk-hu-time-fill" id="rk-hu-fill-room"></span></div><div class="rk-hu-time-value" id="rk-hu-time-room">1,8–4,0 godz.</div></div>
              <div class="rk-hu-time-row"><div class="rk-hu-time-label"><b>Nowa równowaga</b><small>zbliżenie do stanu ustalonego</small></div><div class="rk-hu-time-track"><span class="rk-hu-time-fill" id="rk-hu-fill-stable"></span></div><div class="rk-hu-time-value" id="rk-hu-time-stable">3,6–7,1 godz.</div></div>
              <p class="rk-hu-timeline-note">Długość paska odpowiada górnej granicy przedziału w odniesieniu do całej osi. Na telefonie każdy etap pozostaje osobną, czytelną kartą.</p>
            </div>

            <details class="rk-hu-cost-box">
              <summary>Pokaż orientacyjny koszt tego pojedynczego uruchomienia</summary>
              <div class="rk-hu-cost-body">
                <p>Koszt dotyczy energii dostarczanej w uproszczonym czasie minimalnym. Nie jest prognozą rachunku rocznego ani automatycznie stratą energii — ciepło zgromadzone w podłodze może zostać później oddane do pomieszczenia.</p>
                <div class="rk-hu-cost-grid">
                  <div class="rk-hu-field"><div class="rk-hu-label-row"><label for="rk-hu-source">Źródło ciepła</label></div><select class="rk-hu-number" id="rk-hu-source"><option value="heatpump" selected>Pompa ciepła</option><option value="gas">Kocioł gazowy</option><option value="electric">Ogrzewanie elektryczne</option><option value="solid">Kocioł na paliwo stałe</option></select></div>
                  <div class="rk-hu-field"><div class="rk-hu-label-row"><label for="rk-hu-factor" id="rk-hu-factor-label">COP dla punktu pracy</label></div><input class="rk-hu-number" id="rk-hu-factor" type="number" min="0.2" max="10" step="0.01" value="3.80" inputmode="decimal"><small class="rk-hu-field-help" id="rk-hu-factor-help">Współczynnik dla analizowanego okresu, nie etykieta urządzenia.</small></div>
                  <div class="rk-hu-field"><div class="rk-hu-label-row"><label for="rk-hu-price">Cena energii wejściowej</label></div><input class="rk-hu-number" id="rk-hu-price" type="number" min="0" max="10" step="0.01" value="1.00" inputmode="decimal"><small class="rk-hu-field-help">zł/kWh energii elektrycznej lub paliwa</small></div>
                </div>
                <div class="rk-hu-cost-result" id="rk-hu-cost-result" aria-live="polite"><b>Energia wejściowa: <span id="rk-hu-source-energy">3,35 kWh</span>.</b> Orientacyjny koszt analizowanego uruchomienia: <strong id="rk-hu-event-cost">3,35 zł</strong>.</div>
              </div>
            </details>

            <div class="rk-pg-tool-disclaimer"><strong>Zakres modelu:</strong> obliczenie energii warstwy wynika z geometrii, pojemności objętościowej i ΔT. Przedziały etapów są profilem edukacyjnym korygowanym przez konstrukcję, opór okładziny oraz scenariusz. Nie są wynikiem pełnej symulacji nieustalonego przepływu ciepła. Procedury wygrzewania nowego jastrychu nie wolno ustalać tym kalkulatorem.</div>
          </div>
        </div>
      </section>

      <aside class="rk-pg-cta" aria-label="Projekt ogrzewania podłogowego">
        <span class="rk-pg-cta-kicker">Kalkulator pokazuje czas reakcji. Projekt musi sprawdzić dostępną moc</span>
        <h3>Czy podłoga pokryje straty każdego pomieszczenia przy niskiej temperaturze zasilania?</h3>
        <p>Symulator może oszacować energię i skalę czasu, ale nie sprawdzi, czy powierzchnia czynna, rozstaw rur, długości pętli, przepływy oraz temperatura wody zapewnią wymaganą moc w salonie, sypialni i łazience. Te zależności zamyka dopiero OZC i projekt hydrauliczny całej instalacji.</p>
        <a class="rk-pg-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt ogrzewania podłogowego</a>
      </aside>

      <section class="rk-pg-section" id="rk-hu-diagnostyka">
        <span class="rk-pg-eyebrow">Narzędzie 2 · interaktywna diagnostyka</span>
        <h2>Podłogówka długo się nagrzewa — czekać czy sprawdzać instalację?</h2>
        <p class="rk-pg-intro">Sam upływ czasu nie wystarcza do diagnozy. Odpowiedz na kilka pytań o drogę energii od źródła do pomieszczenia. Moduł wskaże obszar do sprawdzenia, ale nie zastępuje pomiarów ani serwisu na miejscu.</p>

        <div class="rk-hu-diagnostic" id="rk-hu-diagnostic-tool">
          <div class="rk-hu-diag-panel">
            <div class="rk-hu-diag-question"><b>1. Ile czasu minęło od zmiany nastawy lub uruchomienia?</b><div class="rk-hu-choice-row"><button class="rk-hu-choice" type="button" data-rk-hu-question="time" data-rk-hu-value="short" aria-pressed="false">Mniej niż 1 godz.</button><button class="rk-hu-choice is-active" type="button" data-rk-hu-question="time" data-rk-hu-value="medium" aria-pressed="true">1–4 godz.</button><button class="rk-hu-choice" type="button" data-rk-hu-question="time" data-rk-hu-value="long" aria-pressed="false">Ponad 4 godz.</button></div></div>
            <div class="rk-hu-diag-question"><b>2. Czy rura zasilająca przy rozdzielaczu jest wyraźnie cieplejsza niż przed uruchomieniem?</b><div class="rk-hu-choice-row"><button class="rk-hu-choice is-active" type="button" data-rk-hu-question="supply" data-rk-hu-value="yes" aria-pressed="true">Tak</button><button class="rk-hu-choice" type="button" data-rk-hu-question="supply" data-rk-hu-value="no" aria-pressed="false">Nie</button></div></div>
            <div class="rk-hu-diag-question"><b>3. Czy na rotametrach widać przepływ w pracujących pętlach?</b><div class="rk-hu-choice-row"><button class="rk-hu-choice is-active" type="button" data-rk-hu-question="flow" data-rk-hu-value="yes" aria-pressed="true">Tak</button><button class="rk-hu-choice" type="button" data-rk-hu-question="flow" data-rk-hu-value="no" aria-pressed="false">Nie lub nie wiem</button></div></div>
            <div class="rk-hu-diag-question"><b>4. Czy po pewnym czasie ogrzewa się także belka lub rura powrotna?</b><div class="rk-hu-choice-row"><button class="rk-hu-choice is-active" type="button" data-rk-hu-question="return" data-rk-hu-value="yes" aria-pressed="true">Tak</button><button class="rk-hu-choice" type="button" data-rk-hu-question="return" data-rk-hu-value="no" aria-pressed="false">Nie</button></div></div>
            <div class="rk-hu-diag-question"><b>5. Czy temperatura powierzchni podłogi zaczęła się zmieniać?</b><div class="rk-hu-choice-row"><button class="rk-hu-choice" type="button" data-rk-hu-question="surface" data-rk-hu-value="yes" aria-pressed="false">Tak</button><button class="rk-hu-choice is-active" type="button" data-rk-hu-question="surface" data-rk-hu-value="no" aria-pressed="true">Jeszcze nie</button></div></div>
            <div class="rk-hu-diag-question"><b>6. Czy temperatura pomieszczenia rośnie?</b><div class="rk-hu-choice-row"><button class="rk-hu-choice" type="button" data-rk-hu-question="room" data-rk-hu-value="yes" aria-pressed="false">Tak</button><button class="rk-hu-choice is-active" type="button" data-rk-hu-question="room" data-rk-hu-value="no" aria-pressed="true">Jeszcze nie</button></div></div>
          </div>

          <div class="rk-hu-diag-panel is-result" aria-live="polite">
            <span class="rk-hu-diag-state" id="rk-hu-diag-state">Najbardziej prawdopodobne: naturalna bezwładność</span>
            <h3 id="rk-hu-diag-title">Energia dociera do obiegu, ale ciężka podłoga może jeszcze nie pokazywać wyraźnej zmiany.</h3>
            <p id="rk-hu-diag-text">Ciepłe zasilanie, widoczny przepływ i stopniowo cieplejszy powrót wskazują, że obieg przekazuje energię. Obserwuj powierzchnię w kilku stałych punktach i nie zmieniaj jednocześnie wielu nastaw.</p>
            <ul class="rk-hu-diag-steps" id="rk-hu-diag-steps">
              <li>Zapisz temperaturę zasilania i powrotu.</li>
              <li>Sprawdź ponownie te same punkty powierzchni po 60–90 minutach.</li>
              <li>Nie podnoś gwałtownie temperatury zasilania tylko z powodu wolnej reakcji.</li>
            </ul>
          </div>
        </div>

        <p>Jeżeli przepływu nie ma, pomocne będą poradniki o <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">odczycie rotametrów</a>, <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawach zapowietrzenia podłogówki</a> i o tym, jak działa <a href="https://projekt-ogrzewania.pl/obieg-grzewczy-w-wodnym-ogrzewaniu-podlogowym/">obieg grzewczy wodnego ogrzewania podłogowego</a>. Nie ma jednej prawidłowej wartości przepływu dla wszystkich pętli — wynika ona z wymaganej mocy oraz przyjętej różnicy temperatur.</p>
      </section>

      <section class="rk-pg-section" id="rk-hu-pomiar">
        <span class="rk-pg-eyebrow">Pomiar zamiast zgadywania</span>
        <h2>Jak zmierzyć rzeczywisty czas reakcji własnej podłogówki?</h2>
        <p class="rk-pg-intro">Najbardziej użyteczny wynik otrzymasz z prostego testu wykonanego w stabilnych warunkach. Celem nie jest osiągnięcie rekordowo szybkiego wzrostu, lecz poznanie kolejności i skali reakcji konkretnej instalacji.</p>
        <ol class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><div class="rk-pg-step-badge"><span>1</span></div><div class="rk-pg-factor-copy"><h3>Wybierz spokojny dzień</h3><p>Unikaj testu podczas gwałtownego ocieplenia, silnego słońca, długiego wietrzenia albo działania kominka.</p></div></li>
          <li class="rk-pg-factor"><div class="rk-pg-step-badge"><span>2</span></div><div class="rk-pg-factor-copy"><h3>Zapisz punkt startowy</h3><p>Zanotuj temperaturę zewnętrzną, pokojową, zasilania, powrotu oraz powierzchni w kilku oznaczonych miejscach.</p></div></li>
          <li class="rk-pg-factor"><div class="rk-pg-step-badge"><span>3</span></div><div class="rk-pg-factor-copy"><h3>Zmień jeden parametr</h3><p>Wprowadź niewielką, kontrolowaną zmianę nastawy. Nie zmieniaj równocześnie krzywej, przepływów, termostatów i temperatury mieszania.</p></div></li>
          <li class="rk-pg-factor"><div class="rk-pg-step-badge"><span>4</span></div><div class="rk-pg-factor-copy"><h3>Mierz tę samą powierzchnię</h3><p>Pirometr porównuje skutecznie tylko podobne powierzchnie o znanej emisyjności. Najlepiej oznaczyć stałe punkty pomiaru.</p></div></li>
          <li class="rk-pg-factor"><div class="rk-pg-step-badge"><span>5</span></div><div class="rk-pg-factor-copy"><h3>Obserwuj kilka etapów</h3><p>Zapisuj osobno chwilę reakcji wody, pierwszą zmianę powierzchni i późniejszą odpowiedź termometru pokojowego.</p></div></li>
          <li class="rk-pg-factor"><div class="rk-pg-step-badge"><span>6</span></div><div class="rk-pg-factor-copy"><h3>Porównuj podobne warunki</h3><p>Jeden test nie tworzy uniwersalnej charakterystyki. Najwięcej mówi porównanie kilku dni o podobnej temperaturze zewnętrznej.</p></div></li>
        </ol>
        <div class="rk-pg-note"><p>Jeżeli sterowanie zamyka część pętli podczas testu, zanotuj ich stan. <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">Siłowniki termoelektryczne na rozdzielaczu</a> oraz termostaty mogą zmieniać aktywną powierzchnię i przepływ widziany przez pompę.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-hu-noc">
        <span class="rk-pg-eyebrow">Sterowanie bez grzejnikowych nawyków</span>
        <h2>Ile trwa nagrzewanie podłogówki po nocnym obniżeniu temperatury?</h2>
        <p class="rk-pg-intro">Nie istnieje jedna wartość ani uniwersalne obniżenie odpowiednie dla każdego domu. Efekt zależy od tego, o ile rzeczywiście spadła temperatura pomieszczenia, jak duża jest nadwyżka mocy oraz w jaki sposób źródło realizuje powrót do nastawy.</p>

        <div class="rk-pg-grid-2">
          <article class="rk-pg-card is-cyan"><div class="rk-pg-card-icon">✓</div><h3>Kiedy niewielkie obniżenie może działać</h3><p>W budynku, który wolno traci ciepło, temperatura nocą może prawie się nie zmienić. Sterowanie trzeba oceniać na podstawie pomiarów, komfortu i pracy źródła, a nie samej liczby zapisanej w harmonogramie.</p></article>
          <article class="rk-pg-card is-orange"><div class="rk-pg-card-icon">!</div><h3>Kiedy głęboki skok tworzy problem</h3><p>Jeżeli rano trzeba szybko odzyskać kilka stopni, podłoga może nie mieć wystarczającej chwilowej mocy. Podnoszenie zasilania może pogorszyć sprawność źródła lub spowodować późniejsze przegrzanie.</p></article>
        </div>

        <p>Dla pompy ciepła ważniejsza od samego harmonogramu bywa stabilna, możliwie niska temperatura wody. Zobacz, dlaczego <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania podłogówki</a> sprzyja sprawności oraz jak ustawić <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowanie pogodowe</a>. Termostat pokojowy nie dobiera temperatury wody, a jedynie wpływa na zapotrzebowanie strefy — szerzej opisujemy to w poradniku <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat w ogrzewaniu podłogowym</a>.</p>
        <div class="rk-pg-warning"><p><strong>Nie przeliczamy czasu pracy bezpośrednio na stratę pieniędzy.</strong> Energia zgromadzona w podłodze nie znika w chwili wyłączenia źródła. Koszt zależy od strat budynku, sprawności źródła, cen energii i sposobu regulacji w całym okresie, a nie od jednego porannego cyklu.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-hu-systemy">
        <span class="rk-pg-eyebrow">Porównanie konstrukcji</span>
        <h2>System mokry, suchy i elektryczny — który nagrzewa się szybciej?</h2>
        <p class="rk-pg-intro">System o mniejszej aktywnej masie zazwyczaj szybciej zmienia temperaturę powierzchni, ale tempo reakcji nie przesądza samodzielnie o jakości, kosztach ani dopasowaniu rozwiązania do budynku.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Rozwiązanie</th><th>Typowa cecha dynamiczna</th><th>Co sprawdzić przed wyborem?</th><th>Czego nie zakładać?</th></tr></thead>
            <tbody>
              <tr><td data-label="System"><strong>Mokry cementowy</strong></td><td data-label="Reakcja">duża masa i zwykle wolniejsza zmiana średniej temperatury</td><td data-label="Weryfikacja">grubość, przewodność, położenie rur, wytrzymałość i dylatacje</td><td data-label="Nie zakładaj">że każdy centymetr dodaje stałą liczbę godzin</td></tr>
              <tr><td data-label="System"><strong>Mokry anhydrytowy</strong></td><td data-label="Reakcja">może tworzyć cieńszą i dobrze otulającą przewody warstwę</td><td data-label="Weryfikacja">parametry konkretnego jastrychu, wilgotność i wymagania okładziny</td><td data-label="Nie zakładaj">jednego czasu dla wszystkich produktów anhydrytowych</td></tr>
              <tr><td data-label="System"><strong>Suchy wodny</strong></td><td data-label="Reakcja">mała masa może szybciej przenosić zmianę na powierzchnię</td><td data-label="Weryfikacja">moc, układ blach, równomierność, akustykę i dopuszczalne okładziny</td><td data-label="Nie zakładaj">że szybka powierzchnia zawsze szybko ogrzeje cały budynek</td></tr>
              <tr><td data-label="System"><strong>Elektryczny blisko okładziny</strong></td><td data-label="Reakcja">krótka droga do powierzchni może zapewnić szybką odpowiedź lokalną</td><td data-label="Weryfikacja">moc elektryczną, sterowanie, warstwy i koszt energii</td><td data-label="Nie zakładaj">że czas reakcji przesądza o kosztach rocznych</td></tr>
            </tbody>
          </table>
        </div>

        <p>Rozwiązania lekkie szerzej porównujemy w artykule o <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodnym ogrzewaniu podłogowym bez wylewki</a>. Jeżeli wybór dotyczy sposobu zasilania, zobacz również zestawienie <a href="https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/">ogrzewanie podłogowe wodne czy elektryczne</a>. W obu przypadkach trzeba oddzielić czas reakcji od całkowitego kosztu inwestycji i eksploatacji.</p>
      </section>

      <section class="rk-pg-section" id="rk-hu-optymalizacja">
        <span class="rk-pg-eyebrow">Najpierw przyczyna, później korekta</span>
        <h2>Jak przyspieszyć nagrzewanie podłogówki bez przypadkowego podnoszenia zasilania?</h2>
        <p class="rk-pg-intro">Jeżeli instalacja reaguje zbyt wolno, nie zaczynaj od maksymalnej temperatury. Najpierw sprawdź, czy energia w ogóle dociera do właściwej powierzchni i czy podłoga ma wystarczającą moc dla aktualnych strat.</p>

        <ul class="rk-pg-checklist">
          <li><strong>Zweryfikuj temperaturę zasilania i powrotu.</strong> Ich wartości oraz różnica muszą być interpretowane razem z przepływem i aktualnym obciążeniem.</li>
          <li><strong>Sprawdź przepływy na rozdzielaczu.</strong> Nastawy wynikają z mocy poszczególnych pętli; nie kopiuj jednej wartości do całego domu.</li>
          <li><strong>Sprawdź pompę obiegową.</strong> Punkt pracy powinien wynikać z sumarycznego przepływu i oporu najbardziej niekorzystnej drogi, co wyjaśnia poradnik o <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompie obiegowej podłogówki</a>.</li>
          <li><strong>Zweryfikuj otwarcie stref.</strong> <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">Sterowanie strefowe ogrzewaniem</a> może ograniczać aktywną powierzchnię i zmieniać warunki hydrauliczne.</li>
          <li><strong>Sprawdź okładzinę jako zestaw.</strong> Dla drewna znaczenie ma produkt, grubość, sposób montażu i limit temperatury — nie tylko gatunek. Pomaga w tym poradnik o <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">drewnie na ogrzewanie podłogowe</a>.</li>
          <li><strong>Porównaj moc z OZC.</strong> Jeżeli powierzchnia nie może oddać wymaganej mocy przy bezpiecznych parametrach, samo dłuższe czekanie nie rozwiąże problemu.</li>
          <li><strong>Koryguj jeden parametr naraz.</strong> Po każdej zmianie odczekaj czas wynikający z reakcji systemu, aby nie nakładać kilku skutków.</li>
        </ul>

        <p>Geometria instalacji także ma znaczenie. <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">Pętle grzewcze</a>, <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnice rur ogrzewania podłogowego</a> i sposób ich prowadzenia trzeba rozpatrywać razem z przepływami. W strefach przy przeszkleniach rozwiązanie wynika z obciążenia, a nie z uniwersalnej szerokości pasa — zobacz <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">projekt podłogówki przy dużych przeszkleniach</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-hu-wnioski">
        <span class="rk-pg-eyebrow">Najważniejsze rozróżnienie</span>
        <h2>Czas nagrzewania jest wynikiem całego układu, a nie cechą samej wylewki</h2>
        <div class="rk-pg-answer"><p><strong>Najpierw ustal, co mierzysz.</strong> Ciepła woda, rosnąca temperatura powierzchni, poprawa komfortu i nowy stan równowagi to cztery różne momenty. Następnie sprawdź, czy moc przekazywana do podłogi przewyższa aktualne straty oraz czy hydraulika zapewnia wymagany przepływ.</p></div>
        <p>Grubsza warstwa zwiększa energię potrzebną do zmiany jej średniej temperatury, ale nie daje samodzielnie czasu reakcji pokoju. Większy opór okładziny utrudnia przepływ ciepła do góry, ale nie opisuje całej pojemności. Wyższa temperatura wody może zwiększyć moc chwilową, lecz nie naprawia złej geometrii, niewystarczającej powierzchni ani błędu hydraulicznego.</p>
        <p>W instalacji z pompą ciepła projekt powinien umożliwić pracę przy możliwie niskich parametrach. Sposób łączenia źródła z pętlami opisujemy w poradniku <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>. Jeżeli w układzie występuje mieszanie, trzeba osobno zweryfikować działanie <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zaworu mieszającego podłogówki</a>.</p>
      </section>

      <aside class="rk-pg-cta" aria-label="Zamówienie projektu ogrzewania podłogowego">
        <span class="rk-pg-cta-kicker">Zamiast zgadywać liczbę godzin, zamknij bilans każdego pomieszczenia</span>
        <h3>Zaprojektujmy moc, temperatury, pętle i przepływy jako jeden system.</h3>
        <p>Projekt określa obciążenia pomieszczeń, powierzchnię czynną, rozstawy, długości pętli, przepływy, opory i wymagane parametry zasilania. Dzięki temu wolna reakcja podłogi jest przewidywalną właściwością konstrukcji, a nie skutkiem przypadkowych nastaw lub brakującej mocy.</p>
        <a class="rk-pg-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      </aside>

      <section class="rk-pg-section" id="rk-hu-zrodla">
        <span class="rk-pg-eyebrow">Weryfikacja techniczna</span>
        <h2>Źródła oficjalne, normy i badania wykorzystane w artykule</h2>
        <p class="rk-pg-intro">Źródła opisują metody obliczania dynamiki cieplnej, godzinowego bilansu budynku, mocy ogrzewania płaszczyznowego oraz badania odpowiedzi płyty. Instrukcje materiałowe konkretnego jastrychu i systemu mają pierwszeństwo przy jego uruchamianiu.</p>
        <div class="rk-pg-sources">
          <article class="rk-pg-source"><a href="https://www.iso.org/standard/65711.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13786:2017 — Dynamic thermal characteristics</a><p>Oficjalny zakres metod obliczania dynamicznych właściwości cieplnych kompletnych elementów budynku i ich warstw.</p></article>
          <article class="rk-pg-source"><a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1:2017 — Energy performance of buildings</a><p>Oficjalny zakres obliczeń godzinowych zapotrzebowania, temperatur wewnętrznych i obciążeń cieplnych budynku.</p></article>
          <article class="rk-pg-source"><a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="nofollow noopener noreferrer">Polski Komitet Normalizacyjny — PN-EN 1264-2:2021-10</a><p>Zakres normy dotyczący metod określania mocy cieplnej wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
          <article class="rk-pg-source"><a href="https://www.energy.gov/energysaver/radiant-heating" target="_blank" rel="nofollow noopener noreferrer">U.S. Department of Energy — Radiant Heating</a><p>Rządowe omówienie ogrzewania promiennikowego, masywnych podłóg i sposobów ich zasilania.</p></article>
          <article class="rk-pg-source"><a href="https://pure.etsmtl.ca/en/publications/semi-analytical-model-for-thermal-response-of-anhydrite-radiant-s/" target="_blank" rel="nofollow noopener noreferrer">ÉTS Montréal — model odpowiedzi płyty anhydrytowej</a><p>Repozytorium uczelni opisujące badanie pełnowymiarowej komory oraz model czasu opóźnienia i odpowiedzi powierzchni.</p></article>
          <article class="rk-pg-source"><a href="https://www.iso.org/standard/59635.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2 — Embedded radiant heating and cooling systems</a><p>Oficjalna karta normy dotyczącej określania projektowej mocy systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
        </div>
        <div class="rk-pg-warning"><p><strong>Ważne:</strong> kalkulator, oś czasu i diagnostyka są narzędziami edukacyjnymi. Nie są projektem, ekspertyzą istniejącej instalacji, instrukcją wygrzewania jastrychu ani nastawą dla konkretnego źródła ciepła.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-hu-faq">
        <span class="rk-pg-eyebrow">Najczęściej zadawane pytania</span>
        <h2>FAQ — ile czasu nagrzewa się ogrzewanie podłogowe?</h2>
        <div class="rk-pg-faq">
          <details><summary>Po jakim czasie od włączenia podłoga powinna być ciepła?</summary><div class="rk-pg-faq-answer"><p>W lekkich systemach zmiana powierzchni może być zauważalna stosunkowo szybko, a w systemach mokrych zwykle wymaga kilku godzin. Trzeba jednak odróżnić pierwszą zmianę temperatury od ogrzania całego pomieszczenia i osiągnięcia nowej równowagi.</p></div></details>
          <details><summary>Ile nagrzewa się podłogówka po raz pierwszy?</summary><div class="rk-pg-faq-answer"><p>Jeżeli chodzi o wychłodzony, ale użytkowany budynek, czas może wynosić od wielu godzin do kilku dób. Jeżeli chodzi o nową wylewkę, obowiązuje osobna procedura technologiczna zależna od jej rodzaju, wieku i dokumentacji systemu.</p></div></details>
          <details><summary>Ile czasu nagrzewa się podłogówka z wylewką 7 cm?</summary><div class="rk-pg-faq-answer"><p>Nie można wyznaczyć czasu z samej grubości. Potrzebne są co najmniej właściwości materiału, aktywna powierzchnia, położenie rur, temperatura wody, przepływ, moc przekazywana do podłogi, opór okładziny i straty pomieszczenia.</p></div></details>
          <details><summary>Czy podłogówka z pompą ciepła nagrzewa się wolniej niż z kotłem gazowym?</summary><div class="rk-pg-faq-answer"><p>Przy takiej samej mocy przekazywanej do podłogi oraz takich samych temperaturach i przepływach konstrukcja reaguje podobnie. Różnice wynikają z dostępnej mocy, automatyki, modulacji i przyjętych parametrów pracy źródła, a nie wyłącznie z jego nazwy.</p></div></details>
          <details><summary>Czy wyższa temperatura zasilania zawsze przyspieszy nagrzewanie?</summary><div class="rk-pg-faq-answer"><p>Może zwiększyć chwilową moc, ale nie usuwa pojemności podłogi ani problemów hydraulicznych. Trzeba zachować ograniczenia powierzchni, okładziny i źródła. Zbyt duża korekta może doprowadzić do późniejszego przegrzania lub pogorszyć sprawność pompy ciepła.</p></div></details>
          <details><summary>Czy warto wyłączać ogrzewanie podłogowe na noc?</summary><div class="rk-pg-faq-answer"><p>Nie ma jednej odpowiedzi dla wszystkich budynków. Trzeba ocenić rzeczywisty spadek temperatury, czas odrabiania, pogodę, taryfę i pracę źródła. Ciężka podłoga zwykle słabo nadaje się do gwałtownych zmian w krótkim cyklu.</p></div></details>
          <details><summary>Czy system suchy nagrzewa się szybciej od mokrego?</summary><div class="rk-pg-faq-answer"><p>System o mniejszej aktywnej masie zwykle szybciej zmienia temperaturę powierzchni. Nadal trzeba sprawdzić jego moc, równomierność, okładzinę, izolację oraz reakcję całego pomieszczenia.</p></div></details>
          <details><summary>Czy drewno mocno wydłuża czas nagrzewania podłogówki?</summary><div class="rk-pg-faq-answer"><p>Wpływ zależy od łącznego oporu cieplnego drewna, kleju lub podkładu, grubości, sposobu montażu i limitu temperatury. Sama nazwa gatunku nie pozwala podać liczby godzin.</p></div></details>
          <details><summary>Po dwóch godzinach podłoga nadal jest chłodna — czy to awaria?</summary><div class="rk-pg-faq-answer"><p>Niekoniecznie. Najpierw sprawdź temperaturę zasilania, widoczny przepływ, stopniową zmianę powrotu i powierzchni. Brak ciepłego zasilania albo brak przepływu wskazuje inny problem niż naturalna bezwładność.</p></div></details>
          <details><summary>Ile kosztuje ponowne nagrzanie podłogówki?</summary><div class="rk-pg-faq-answer"><p>Koszt zależy od energii dostarczonej do warstw i budynku, bieżących strat, sprawności źródła oraz ceny energii. Energia zgromadzona w podłodze nie jest automatycznie stratą — po wyłączeniu może być dalej oddawana do pomieszczenia.</p></div></details>
          <details><summary>Czy kalkulator wyznacza harmonogram wygrzewania nowej wylewki?</summary><div class="rk-pg-faq-answer"><p>Nie. Kalkulator służy wyłącznie do edukacyjnego bilansu energii i skali czasu. Procedurę nowej wylewki należy prowadzić zgodnie z wymaganiami konkretnego materiału, systemu i wykonawcy.</p></div></details>
          <details><summary>Czy rekuperacja skraca czas nagrzewania podłogówki?</summary><div class="rk-pg-faq-answer"><p>Rekuperacja może zmniejszyć straty wentylacyjne w porównaniu z wentylacją bez odzysku, ale nie daje uniwersalnego procentu skrócenia czasu. Wynik zależy od bilansu całego budynku, temperatur, wydatku powietrza i sposobu użytkowania.</p></div></details>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-hu-autor">
        <div class="rk-pg-author">
          <div class="rk-pg-author-head">
            <div><span class="rk-pg-eyebrow">E-E-A-T i odpowiedzialność za treść</span><h2 id="rk-hu-author-heading">Autor i weryfikacja merytoryczna</h2><p>Treść przygotowana z perspektywy projektowania cieplnego, hydrauliki i rzeczywistego sterowania całym układem.</p></div>
            <span class="rk-pg-author-mark">Aktualizacja: 13.09.2026</span>
          </div>
          <div class="rk-pg-author-layout">
            <aside class="rk-pg-author-side">
              <div class="rk-pg-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i specjalista HVAC" width="300" height="300" loading="lazy" decoding="async"></div>
              <div class="rk-pg-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
              <div class="rk-pg-author-role">Projektant instalacji sanitarnych i specjalista HVAC</div>
              <div class="rk-pg-author-social-label">Profile branżowe</div>
              <div class="rk-pg-author-social">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="LinkedIn Roberta Kucharskiego"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.5 8.2H3.2V21h3.3V8.2ZM4.85 3A1.92 1.92 0 1 0 4.9 6.84 1.92 1.92 0 0 0 4.85 3ZM21 13.66c0-3.86-2.06-5.66-4.81-5.66a4.14 4.14 0 0 0-3.75 2.06V8.2H9.12V21h3.32v-6.34c0-1.67.32-3.29 2.39-3.29 2.04 0 2.07 1.91 2.07 3.4V21H21v-7.34Z"/></svg></a>
                <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14 8.5V7c0-.74.5-.92.85-.92H17V3.13L14.05 3C11.13 3 10.47 5.16 10.47 6.55V8.5H8v3.36h2.47V21H14v-9.14h2.7l.44-3.36H14Z"/></svg></a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 3H22l-6.77 7.74L23.2 21h-6.24l-4.89-6.39L6.49 21H3.38l7.24-8.28L2.98 3h6.4l4.42 5.84L18.9 3Zm-1.09 16.2h1.72L8.44 4.7H6.59l11.22 14.5Z"/></svg></a>
              </div>
            </aside>
            <div class="rk-pg-author-main">
              <blockquote class="rk-pg-author-quote"><p>Moim zdaniem najczęstszy błąd polega na pytaniu o jedną liczbę godzin bez określenia, czy mierzymy reakcję wody, powierzchni podłogi czy całego pomieszczenia. Najpierw sprawdzam moc, straty i przepływy, a dopiero później oceniam czas.</p></blockquote>
              <div class="rk-pg-author-cards">
                <div class="rk-pg-author-card"><b>Praktyka projektowa</b><p>Analiza OZC, powierzchni czynnej, temperatur, pętli, przepływów, rozdzielaczy, źródeł ciepła i automatyki.</p></div>
                <div class="rk-pg-author-card"><b>Metoda</b><p>Obliczona energia warstwy jest oddzielona od edukacyjnych przedziałów reakcji oraz od procedury technologicznej jastrychu.</p></div>
                <div class="rk-pg-author-card"><b>Zakres aktualizacji</b><p>Usunięto uniwersalne obietnice godzinowe i stałe reguły dotyczące wylewki, przepływów, COP oraz kosztów.</p></div>
              </div>
              <div class="rk-pg-mini-label">Portale autora</div>
              <div class="rk-pg-portals"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a></div>
            </div>
          </div>
        </div>
      </section>
    </div>
  </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": {"@id": "https://projekt-ogrzewania.pl/#logo"},
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#logo",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "caption": "Projekt Ogrzewania — Robert Kucharski",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "knowsAbout": [
        "wodne ogrzewanie podłogowe",
        "obliczenia zapotrzebowania cieplnego",
        "hydraulika instalacji grzewczych",
        "pompy ciepła",
        "automatyka ogrzewania"
      ],
      "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/ile-czasu-nagrzewa-sie-podlogowka/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp",
      "caption": "Ile czasu nagrzewa się podłogówka — etapy reakcji systemu",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webpage",
      "url": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/",
      "name": "Ile czasu nagrzewa się podłogówka? Kalkulator i wykres",
      "description": "Ile czasu nagrzewa się podłogówka? Sprawdź kalkulator czasu reakcji oraz wpływ wylewki, posadzki, mocy, strat budynku i nocnego obniżenia temperatury.",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "primaryImageOfPage": {"@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#primaryimage"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#breadcrumb"},
      "dateModified": "2026-09-13",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article"},
        {"@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#calculator"},
        {"@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#diagnostic"},
        {"@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Ile czasu nagrzewa się podłogówka?",
          "item": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
        }
      ]
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article",
      "headline": "Ile czasu nagrzewa się podłogówka?",
      "alternativeHeadline": "Czas nagrzewania ogrzewania podłogowego — kalkulator, etapy i diagnostyka",
      "description": "Poradnik wyjaśnia czas reakcji wody, powierzchni podłogi i pomieszczenia oraz pokazuje wpływ wylewki, mocy, strat, okładziny, hydrauliki i sterowania.",
      "url": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webpage"},
      "image": {"@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#primaryimage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "dateModified": "2026-09-13",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "articleSection": [
        "czas nagrzewania podłogówki",
        "bilans energii",
        "diagnostyka ogrzewania podłogowego",
        "sterowanie",
        "hydraulika"
      ],
      "keywords": [
        "ile czasu nagrzewa się podłogówka",
        "ile nagrzewa się ogrzewanie podłogowe",
        "podłogówka długo się nagrzewa",
        "czas nagrzewania podłogówki po włączeniu",
        "podłogówka po nocnym obniżeniu",
        "kalkulator czasu nagrzewania podłogówki"
      ],
      "citation": [
        "https://www.iso.org/standard/65711.html",
        "https://www.iso.org/standard/65696.html",
        "https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html",
        "https://www.energy.gov/energysaver/radiant-heating",
        "https://pure.etsmtl.ca/en/publications/semi-analytical-model-for-thermal-response-of-anhydrite-radiant-s/",
        "https://www.iso.org/standard/59635.html"
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#calculator",
      "name": "Kalkulator czasu nagrzewania podłogówki i kosztu jednego uruchomienia",
      "url": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#rk-hu-kalkulator",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "description": "Edukacyjne narzędzie obliczające objętość i pojemność cieplną aktywnej warstwy, energię dla zadanej zmiany temperatury, moc netto, skalę etapów reakcji oraz koszt pojedynczego uruchomienia.",
      "isAccessibleForFree": true,
      "provider": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "offers": {"@type": "Offer", "price": "0", "priceCurrency": "PLN"},
      "featureList": [
        "trzy scenariusze uruchomienia",
        "presety konstrukcji mokrej i suchej",
        "responsywna oś czasu",
        "koszt pojedynczego zdarzenia",
        "wyniki aktualizowane po zmianie danych"
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#diagnostic",
      "name": "Diagnostyka: podłogówka długo się nagrzewa",
      "url": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#rk-hu-diagnostyka",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "description": "Interaktywny moduł porządkujący diagnostykę drogi energii od źródła przez przepływ i powierzchnię podłogi do pomieszczenia.",
      "isAccessibleForFree": true,
      "provider": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "offers": {"@type": "Offer", "price": "0", "priceCurrency": "PLN"}
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#measurement-howto",
      "name": "Jak zmierzyć rzeczywisty czas reakcji własnej podłogówki?",
      "description": "Sześć kroków pomagających oddzielnie zmierzyć reakcję obiegu, powierzchni i pomieszczenia.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Wybierz spokojny dzień", "text": "Unikaj testu podczas gwałtownego ocieplenia, silnego słońca, długiego wietrzenia albo działania kominka."},
        {"@type": "HowToStep", "position": 2, "name": "Zapisz punkt startowy", "text": "Zanotuj temperaturę zewnętrzną, pokojową, zasilania, powrotu oraz powierzchni w kilku oznaczonych miejscach."},
        {"@type": "HowToStep", "position": 3, "name": "Zmień jeden parametr", "text": "Wprowadź niewielką, kontrolowaną zmianę nastawy i nie zmieniaj równocześnie innych parametrów."},
        {"@type": "HowToStep", "position": 4, "name": "Mierz tę samą powierzchnię", "text": "Oznacz stałe punkty pomiaru i porównuj podobne powierzchnie o znanej emisyjności."},
        {"@type": "HowToStep", "position": 5, "name": "Obserwuj kilka etapów", "text": "Zapisuj osobno reakcję wody, pierwszą zmianę powierzchni i późniejszą odpowiedź termometru pokojowego."},
        {"@type": "HowToStep", "position": 6, "name": "Porównuj podobne warunki", "text": "Porównaj kilka dni o zbliżonej temperaturze zewnętrznej zamiast wyciągać wnioski z jednego testu."}
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#reaction-stages",
      "name": "Cztery etapy nagrzewania ogrzewania podłogowego",
      "numberOfItems": 4,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Źródło i woda", "description": "Źródło oraz regulacja budują temperaturę wody i przekazują energię do obiegu."},
        {"@type": "ListItem", "position": 2, "name": "Rura i jastrych", "description": "Ciepło rozchodzi się od przewodów przez aktywną masę konstrukcji."},
        {"@type": "ListItem", "position": 3, "name": "Powierzchnia podłogi", "description": "Energia przechodzi przez okładzinę i podkład do powierzchni."},
        {"@type": "ListItem", "position": 4, "name": "Pomieszczenie i budynek", "description": "Podłoga ogrzewa pomieszczenie, przegrody i wyposażenie, pokrywając jednocześnie straty."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Po jakim czasie od włączenia podłoga powinna być ciepła?",
          "acceptedAnswer": {"@type": "Answer", "text": "W lekkich systemach zmiana powierzchni może być zauważalna stosunkowo szybko, a w systemach mokrych zwykle wymaga kilku godzin. Trzeba jednak odróżnić pierwszą zmianę temperatury od ogrzania całego pomieszczenia i osiągnięcia nowej równowagi."}
        },
        {
          "@type": "Question",
          "name": "Ile nagrzewa się podłogówka po raz pierwszy?",
          "acceptedAnswer": {"@type": "Answer", "text": "Jeżeli chodzi o wychłodzony, ale użytkowany budynek, czas może wynosić od wielu godzin do kilku dób. Jeżeli chodzi o nową wylewkę, obowiązuje osobna procedura technologiczna zależna od jej rodzaju, wieku i dokumentacji systemu."}
        },
        {
          "@type": "Question",
          "name": "Ile czasu nagrzewa się podłogówka z wylewką 7 cm?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie można wyznaczyć czasu z samej grubości. Potrzebne są co najmniej właściwości materiału, aktywna powierzchnia, położenie rur, temperatura wody, przepływ, moc przekazywana do podłogi, opór okładziny i straty pomieszczenia."}
        },
        {
          "@type": "Question",
          "name": "Czy podłogówka z pompą ciepła nagrzewa się wolniej niż z kotłem gazowym?",
          "acceptedAnswer": {"@type": "Answer", "text": "Przy takiej samej mocy przekazywanej do podłogi oraz takich samych temperaturach i przepływach konstrukcja reaguje podobnie. Różnice wynikają z dostępnej mocy, automatyki, modulacji i przyjętych parametrów pracy źródła, a nie wyłącznie z jego nazwy."}
        },
        {
          "@type": "Question",
          "name": "Czy wyższa temperatura zasilania zawsze przyspieszy nagrzewanie?",
          "acceptedAnswer": {"@type": "Answer", "text": "Może zwiększyć chwilową moc, ale nie usuwa pojemności podłogi ani problemów hydraulicznych. Trzeba zachować ograniczenia powierzchni, okładziny i źródła. Zbyt duża korekta może doprowadzić do późniejszego przegrzania lub pogorszyć sprawność pompy ciepła."}
        },
        {
          "@type": "Question",
          "name": "Czy warto wyłączać ogrzewanie podłogowe na noc?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie ma jednej odpowiedzi dla wszystkich budynków. Trzeba ocenić rzeczywisty spadek temperatury, czas odrabiania, pogodę, taryfę i pracę źródła. Ciężka podłoga zwykle słabo nadaje się do gwałtownych zmian w krótkim cyklu."}
        },
        {
          "@type": "Question",
          "name": "Czy system suchy nagrzewa się szybciej od mokrego?",
          "acceptedAnswer": {"@type": "Answer", "text": "System o mniejszej aktywnej masie zwykle szybciej zmienia temperaturę powierzchni. Nadal trzeba sprawdzić jego moc, równomierność, okładzinę, izolację oraz reakcję całego pomieszczenia."}
        },
        {
          "@type": "Question",
          "name": "Czy drewno mocno wydłuża czas nagrzewania podłogówki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Wpływ zależy od łącznego oporu cieplnego drewna, kleju lub podkładu, grubości, sposobu montażu i limitu temperatury. Sama nazwa gatunku nie pozwala podać liczby godzin."}
        },
        {
          "@type": "Question",
          "name": "Po dwóch godzinach podłoga nadal jest chłodna — czy to awaria?",
          "acceptedAnswer": {"@type": "Answer", "text": "Niekoniecznie. Najpierw sprawdź temperaturę zasilania, widoczny przepływ, stopniową zmianę powrotu i powierzchni. Brak ciepłego zasilania albo brak przepływu wskazuje inny problem niż naturalna bezwładność."}
        },
        {
          "@type": "Question",
          "name": "Ile kosztuje ponowne nagrzanie podłogówki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Koszt zależy od energii dostarczonej do warstw i budynku, bieżących strat, sprawności źródła oraz ceny energii. Energia zgromadzona w podłodze nie jest automatycznie stratą — po wyłączeniu może być dalej oddawana do pomieszczenia."}
        },
        {
          "@type": "Question",
          "name": "Czy kalkulator wyznacza harmonogram wygrzewania nowej wylewki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Kalkulator służy wyłącznie do edukacyjnego bilansu energii i skali czasu. Procedurę nowej wylewki należy prowadzić zgodnie z wymaganiami konkretnego materiału, systemu i wykonawcy."}
        },
        {
          "@type": "Question",
          "name": "Czy rekuperacja skraca czas nagrzewania podłogówki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Rekuperacja może zmniejszyć straty wentylacyjne w porównaniu z wentylacją bez odzysku, ale nie daje uniwersalnego procentu skrócenia czasu. Wynik zależy od bilansu całego budynku, temperatur, wydatku powietrza i sposobu użytkowania."}
        }
      ]
    }
  ]
}
</script>

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

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

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

  function readNumber(id) {
    var field = byId(id);
    if (!field) {
      return NaN;
    }
    return parseFloat(String(field.value).replace(",", "."));
  }

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

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

  function clamp(value, minimum, maximum) {
    return Math.min(Math.max(value, minimum), maximum);
  }

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

  function formatHours(value) {
    if (!Number.isFinite(value)) {
      return "—";
    }
    var totalMinutes = Math.max(0, Math.round(value * 60));
    if (totalMinutes < 60) {
      return totalMinutes + " min";
    }
    var hours = Math.floor(totalMinutes / 60);
    var minutes = totalMinutes % 60;
    if (minutes === 0) {
      return hours + " godz.";
    }
    return hours + " godz. " + minutes + " min";
  }

  function formatRange(low, high) {
    if (!Number.isFinite(low)) {
      return "—";
    }
    if (!Number.isFinite(high)) {
      return "—";
    }
    if (high <= 1) {
      return Math.round(low * 60) + "–" + Math.round(high * 60) + " min";
    }
    return formatNumber(low, 1) + "–" + formatNumber(high, 1) + " godz.";
  }

  var systems = {
    cement: {thickness: 65, capacity: 2.00, response: 1.00, waterLow: 0.17, waterHigh: 0.75},
    anhydrite: {thickness: 50, capacity: 1.90, response: 0.82, waterLow: 0.15, waterHigh: 0.67},
    dry: {thickness: 25, capacity: 0.90, response: 0.50, waterLow: 0.08, waterHigh: 0.50},
    custom: {thickness: 65, capacity: 2.00, response: 1.00, waterLow: 0.17, waterHigh: 0.75}
  };

  var scenarios = {
    correction: {factor: 1.00, delta: 2},
    restart: {factor: 1.35, delta: 5},
    cold: {factor: 1.80, delta: 10}
  };

  var sourcePresets = {
    heatpump: {
      factor: 3.80,
      label: "COP dla punktu pracy",
      help: "Współczynnik dla analizowanego okresu, nie wartość z etykiety urządzenia."
    },
    gas: {
      factor: 0.94,
      label: "Sprawność w analizowanym okresie",
      help: "Uproszczona sprawność dostarczenia ciepła w analizowanym zdarzeniu."
    },
    electric: {
      factor: 0.99,
      label: "Sprawność dostarczenia ciepła",
      help: "Dla oporowego ogrzewania elektrycznego wartość jest zwykle bliska jedności."
    },
    solid: {
      factor: 0.80,
      label: "Sprawność w analizowanym okresie",
      help: "Wpisz sprawność odpowiadającą paliwu, obciążeniu i sposobowi pracy kotła."
    }
  };

  var activeScenario = "correction";

  function updateRangeLabels() {
    writeText("rk-hu-area-output", formatNumber(readNumber("rk-hu-area"), 0) + " m²");
    writeText("rk-hu-thickness-output", formatNumber(readNumber("rk-hu-thickness"), 0) + " mm");
    writeText("rk-hu-delta-output", formatNumber(readNumber("rk-hu-delta"), 1) + " K");
    writeText("rk-hu-resistance-output", formatNumber(readNumber("rk-hu-resistance"), 3) + " m²·K/W");
  }

  function clearCalculator(message) {
    var outputIds = [
      "rk-hu-result-volume",
      "rk-hu-result-capacity",
      "rk-hu-result-energy",
      "rk-hu-result-net",
      "rk-hu-result-minimum",
      "rk-hu-result-surface",
      "rk-hu-result-room",
      "rk-hu-result-stable",
      "rk-hu-time-water",
      "rk-hu-time-surface",
      "rk-hu-time-room",
      "rk-hu-time-stable",
      "rk-hu-source-energy",
      "rk-hu-event-cost"
    ];
    outputIds.forEach(function (id) {
      writeText(id, "—");
    });
    writeText("rk-hu-timeline-scale", "brak skali");
    writeText("rk-hu-calculator-status", message);
    ["rk-hu-fill-water", "rk-hu-fill-surface", "rk-hu-fill-room", "rk-hu-fill-stable"].forEach(function (id) {
      var bar = byId(id);
      if (bar) {
        bar.style.width = "0%";
      }
    });
  }

  function setBarWidth(id, endValue, scale) {
    var bar = byId(id);
    if (!bar) {
      return;
    }
    var width = clamp(endValue / scale * 100, 4, 100);
    bar.style.width = formatNumber(width, 1).replace(",", ".") + "%";
  }

  function updateCost(deliveredEnergy) {
    var factor = readNumber("rk-hu-factor");
    var price = readNumber("rk-hu-price");
    var valid = Number.isFinite(deliveredEnergy);
    if (valid) {
      valid = Number.isFinite(factor);
    }
    if (valid) {
      valid = Number.isFinite(price);
    }
    if (valid) {
      valid = factor > 0;
    }
    if (valid) {
      valid = price >= 0;
    }
    if (!valid) {
      writeText("rk-hu-source-energy", "—");
      writeText("rk-hu-event-cost", "—");
      return;
    }
    var sourceEnergy = deliveredEnergy / factor;
    var eventCost = sourceEnergy * price;
    writeText("rk-hu-source-energy", formatNumber(sourceEnergy, 2) + " kWh");
    writeText("rk-hu-event-cost", formatNumber(eventCost, 2) + " zł");
  }

  function calculate() {
    updateRangeLabels();

    var area = readNumber("rk-hu-area");
    var thickness = readNumber("rk-hu-thickness");
    var volumetricCapacity = readNumber("rk-hu-cv");
    var delta = readNumber("rk-hu-delta");
    var power = readNumber("rk-hu-power");
    var losses = readNumber("rk-hu-loss");
    var resistance = readNumber("rk-hu-resistance");
    var values = [area, thickness, volumetricCapacity, delta, power, losses, resistance];
    var valid = values.every(function (value) {
      return Number.isFinite(value);
    });

    if (valid) {
      valid = area > 0;
    }
    if (valid) {
      valid = thickness > 0;
    }
    if (valid) {
      valid = volumetricCapacity > 0;
    }
    if (valid) {
      valid = delta > 0;
    }
    if (valid) {
      valid = power > 0;
    }
    if (valid) {
      valid = losses >= 0;
    }
    if (valid) {
      valid = resistance >= 0;
    }

    if (!valid) {
      clearCalculator("Uzupełnij wszystkie pola poprawnymi, dodatnimi wartościami.");
      return;
    }

    var netPower = power - losses;
    if (netPower <= 0) {
      clearCalculator("Moc przekazywana do podłogi nie przewyższa bieżących strat. W takim punkcie pracy model nie może wyznaczyć czasu wzrostu temperatury.");
      writeText("rk-hu-result-net", formatNumber(netPower, 2) + " kW");
      return;
    }

    var systemField = byId("rk-hu-system");
    var systemKey = systemField ? systemField.value : "custom";
    var system = systems[systemKey];
    if (!system) {
      system = systems.custom;
    }
    var scenario = scenarios[activeScenario];
    if (!scenario) {
      scenario = scenarios.correction;
    }

    var volume = area * thickness / 1000;
    var capacity = volume * volumetricCapacity / 3.6;
    var storedEnergy = capacity * delta;
    var minimumTime = storedEnergy / netPower;
    var resistanceFactor = 1 + clamp((resistance - 0.02) / 0.13, 0, 1) * 0.35;
    var responseFactor = system.response * resistanceFactor;
    var scenarioFactor = scenario.factor;

    var surfaceLow = minimumTime * 0.28 * responseFactor;
    var surfaceHigh = minimumTime * 0.68 * responseFactor;
    var roomLow = minimumTime * 0.75 * scenarioFactor * responseFactor;
    var roomHigh = minimumTime * 1.55 * scenarioFactor * responseFactor;
    var stableLow = minimumTime * 1.45 * scenarioFactor * responseFactor;
    var stableHigh = minimumTime * 2.80 * scenarioFactor * responseFactor;
    var scale = Math.max(stableHigh, 1);

    writeText("rk-hu-result-volume", formatNumber(volume, 2) + " m³");
    writeText("rk-hu-result-capacity", formatNumber(capacity, 2) + " kWh/K");
    writeText("rk-hu-result-energy", formatNumber(storedEnergy, 2) + " kWh");
    writeText("rk-hu-result-net", formatNumber(netPower, 2) + " kW");
    writeText("rk-hu-result-minimum", formatHours(minimumTime));
    writeText("rk-hu-result-surface", formatRange(surfaceLow, surfaceHigh));
    writeText("rk-hu-result-room", formatRange(roomLow, roomHigh));
    writeText("rk-hu-result-stable", formatRange(stableLow, stableHigh));
    writeText("rk-hu-calculator-status", "Wynik pokazuje bilans uproszczony. Nie uwzględnia przestrzennego rozkładu temperatury, całej masy budynku, pogody zmiennej w czasie ani logiki konkretnego regulatora.");

    writeText("rk-hu-timeline-scale", "skala do " + formatNumber(scale, 1) + " godz.");
    writeText("rk-hu-time-water", "około " + formatRange(system.waterLow, system.waterHigh));
    writeText("rk-hu-time-surface", formatRange(surfaceLow, surfaceHigh));
    writeText("rk-hu-time-room", formatRange(roomLow, roomHigh));
    writeText("rk-hu-time-stable", formatRange(stableLow, stableHigh));
    setBarWidth("rk-hu-fill-water", system.waterHigh, scale);
    setBarWidth("rk-hu-fill-surface", surfaceHigh, scale);
    setBarWidth("rk-hu-fill-room", roomHigh, scale);
    setBarWidth("rk-hu-fill-stable", stableHigh, scale);

    var deliveredEnergy = power * minimumTime;
    updateCost(deliveredEnergy);
  }

  function selectScenario(name, updateDelta) {
    if (!scenarios[name]) {
      return;
    }
    activeScenario = name;
    root.querySelectorAll("[data-rk-hu-scenario]").forEach(function (button) {
      var active = button.getAttribute("data-rk-hu-scenario") === name;
      button.classList.toggle("is-active", active);
      button.setAttribute("aria-pressed", active ? "true" : "false");
    });
    if (updateDelta) {
      writeValue("rk-hu-delta", scenarios[name].delta);
    }
    calculate();
  }

  function applySystemPreset() {
    var field = byId("rk-hu-system");
    if (!field) {
      return;
    }
    var preset = systems[field.value];
    if (!preset) {
      return;
    }
    if (field.value !== "custom") {
      writeValue("rk-hu-thickness", preset.thickness);
      writeValue("rk-hu-cv", preset.capacity.toFixed(2));
    }
    calculate();
  }

  function applySourcePreset(updateFactor) {
    var source = byId("rk-hu-source");
    if (!source) {
      return;
    }
    var preset = sourcePresets[source.value];
    if (!preset) {
      return;
    }
    writeText("rk-hu-factor-label", preset.label);
    writeText("rk-hu-factor-help", preset.help);
    if (updateFactor) {
      writeValue("rk-hu-factor", preset.factor.toFixed(2));
    }
    calculate();
  }

  root.querySelectorAll("[data-rk-hu-scenario]").forEach(function (button) {
    button.addEventListener("click", function () {
      selectScenario(button.getAttribute("data-rk-hu-scenario"), true);
    });
  });

  var systemField = byId("rk-hu-system");
  if (systemField) {
    systemField.addEventListener("change", applySystemPreset);
  }

  var sourceField = byId("rk-hu-source");
  if (sourceField) {
    sourceField.addEventListener("change", function () {
      applySourcePreset(true);
    });
  }

  root.querySelectorAll("#rk-hu-calculator-tool input, #rk-hu-calculator-tool select, .rk-hu-cost-box input, .rk-hu-cost-box select").forEach(function (field) {
    field.addEventListener("input", calculate);
  });

  var resetButton = byId("rk-hu-calc-reset");
  if (resetButton) {
    resetButton.addEventListener("click", function () {
      writeValue("rk-hu-system", "cement");
      writeValue("rk-hu-area", 80);
      writeValue("rk-hu-thickness", 65);
      writeValue("rk-hu-cv", "2.00");
      writeValue("rk-hu-delta", 2);
      writeValue("rk-hu-power", "5.5");
      writeValue("rk-hu-loss", "3.0");
      writeValue("rk-hu-resistance", "0.05");
      writeValue("rk-hu-source", "heatpump");
      writeValue("rk-hu-factor", "3.80");
      writeValue("rk-hu-price", "1.00");
      applySourcePreset(false);
      selectScenario("correction", false);
    });
  }

  var diagnosticState = {};
  var diagnosticButtons = root.querySelectorAll(".rk-hu-choice");

  diagnosticButtons.forEach(function (button) {
    var question = button.getAttribute("data-rk-hu-question");
    if (button.classList.contains("is-active")) {
      diagnosticState[question] = button.getAttribute("data-rk-hu-value");
    }
  });

  function renderSteps(steps) {
    var list = byId("rk-hu-diag-steps");
    if (!list) {
      return;
    }
    while (list.firstChild) {
      list.removeChild(list.firstChild);
    }
    steps.forEach(function (step) {
      var item = document.createElement("li");
      item.textContent = step;
      list.appendChild(item);
    });
  }

  function diagnose() {
    var result = {
      state: "Najbardziej prawdopodobne: naturalna bezwładność",
      title: "Energia dociera do obiegu, ale ciężka podłoga może jeszcze nie pokazywać wyraźnej zmiany.",
      text: "Ciepłe zasilanie, widoczny przepływ i stopniowo cieplejszy powrót wskazują, że obieg przekazuje energię. Obserwuj powierzchnię w kilku stałych punktach i nie zmieniaj jednocześnie wielu nastaw.",
      steps: [
        "Zapisz temperaturę zasilania i powrotu.",
        "Sprawdź ponownie te same punkty powierzchni po 60–90 minutach.",
        "Nie podnoś gwałtownie temperatury zasilania tylko z powodu wolnej reakcji."
      ]
    };

    if (diagnosticState.supply === "no") {
      result = {
        state: "Najpierw sprawdź źródło i sterowanie",
        title: "Do rozdzielacza prawdopodobnie nie dociera wyraźnie cieplejsza woda.",
        text: "Brak reakcji zasilania nie jest cechą wylewki. Trzeba zweryfikować tryb źródła, harmonogram, krzywą grzewczą, zawór mieszający, pompę i sygnał zapotrzebowania.",
        steps: [
          "Odczytaj temperaturę zasilania przy źródle i rozdzielaczu.",
          "Sprawdź, czy sterownik rzeczywiście zgłasza grzanie.",
          "Nie zwiększaj przypadkowo nastaw bez ustalenia przyczyny."
        ]
      };
    } else if (diagnosticState.flow === "no") {
      result = {
        state: "Najpierw sprawdź hydraulikę obiegu",
        title: "Ciepło dochodzi do rozdzielacza, ale brak potwierdzonego przepływu przez pętle.",
        text: "Bez przepływu energia nie dociera skutecznie do aktywnej powierzchni. Przyczyną mogą być zamknięte siłowniki, pompa, zapowietrzenie, zawory albo błędne nastawy.",
        steps: [
          "Sprawdź położenie zaworów i siłowników.",
          "Odczytaj rotametry przy pracującej pompie.",
          "Zweryfikuj odpowietrzenie oraz punkt pracy pompy."
        ]
      };
    } else if (diagnosticState.return === "no") {
      result = {
        state: "Sprawdź ciągłość przepływu i odbiór ciepła",
        title: "Zasilanie jest ciepłe, lecz powrót nie potwierdza jeszcze prawidłowej pracy całej pętli.",
        text: "Przy krótkim czasie może to być etap przejściowy. Jeżeli stan utrzymuje się długo, trzeba sprawdzić przepływ, zapowietrzenie, długość pętli, opory i rzeczywistą temperaturę wody.",
        steps: [
          "Porównaj temperatury zasilania i powrotu na tej samej pętli.",
          "Zapisz przepływ i czas od uruchomienia.",
          "Przy długotrwałym braku reakcji skontroluj obieg hydraulicznie."
        ]
      };
    } else if (diagnosticState.surface === "yes") {
      if (diagnosticState.room === "yes") {
        result = {
          state: "Układ wykazuje prawidłową kolejność reakcji",
          title: "Reagują woda, powierzchnia i pomieszczenie.",
          text: "To wskazuje na przekazywanie energii przez wszystkie obserwowane etapy. Oceniaj komfort i stabilność przez dłuższy okres zamiast przyspieszać układ kolejnymi korektami.",
          steps: [
            "Pozostaw ustawienia bez zmian przez reprezentatywny okres.",
            "Porównaj wynik przy podobnej temperaturze zewnętrznej.",
            "Koryguj tylko jeden parametr naraz."
          ]
        };
      } else {
        result = {
          state: "Podłoga reaguje, sprawdź bilans pomieszczenia",
          title: "Powierzchnia jest cieplejsza, ale temperatura pokoju jeszcze nie rośnie.",
          text: "Przy krótkim czasie może to być naturalne. Gdy sytuacja trwa długo, porównaj moc oddawaną przez czynną powierzchnię ze stratami pomieszczenia oraz uwzględnij ściany, okna, wentylację i otwarte strefy.",
          steps: [
            "Sprawdź temperaturę powierzchni w kilku miejscach.",
            "Porównaj aktywną powierzchnię z obciążeniem cieplnym pokoju.",
            "Zweryfikuj wietrzenie, zyski i stan pozostałych stref."
          ]
        };
      }
    } else if (diagnosticState.time === "long") {
      result = {
        state: "Warto sprawdzić drogę ciepła do powierzchni",
        title: "Obieg pracuje, lecz po ponad czterech godzinach nie widać zmiany powierzchni.",
        text: "Możliwa jest bardzo ciężka konstrukcja, mała nadwyżka mocy lub duży opór okładziny, ale trzeba też wykluczyć zbyt niską temperaturę wody, błędne przepływy i niewystarczającą moc.",
        steps: [
          "Zmierz zasilanie, powrót i przepływy zamiast oceniać dotykiem.",
          "Sprawdź dokumentację warstw oraz opór okładziny.",
          "Porównaj moc podłogi z aktualnymi stratami pomieszczenia."
        ]
      };
    } else if (diagnosticState.time === "short") {
      result = {
        state: "Na tym etapie zwykle potrzebna jest obserwacja",
        title: "Mniej niż godzina to często za krótko, aby oceniać powierzchnię i cały pokój.",
        text: "Najpierw powinna pojawić się reakcja obiegu. Ciężka warstwa i pomieszczenie odpowiadają później, dlatego szybkie, kolejne zmiany nastaw utrudniają ocenę.",
        steps: [
          "Potwierdź temperaturę zasilania i przepływ.",
          "Zapisz punkt startowy pomiaru.",
          "Wróć do tych samych punktów po 60–90 minutach."
        ]
      };
    }

    writeText("rk-hu-diag-state", result.state);
    writeText("rk-hu-diag-title", result.title);
    writeText("rk-hu-diag-text", result.text);
    renderSteps(result.steps);
  }

  diagnosticButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      var question = button.getAttribute("data-rk-hu-question");
      var value = button.getAttribute("data-rk-hu-value");
      diagnosticState[question] = value;
      root.querySelectorAll("[data-rk-hu-question='" + question + "']").forEach(function (choice) {
        var active = choice === button;
        choice.classList.toggle("is-active", active);
        choice.setAttribute("aria-pressed", active ? "true" : "false");
      });
      diagnose();
    });
  });

  applySourcePreset(false);
  selectScenario("correction", false);
  diagnose();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">Ile czasu nagrzewa się podłogówka?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?</title>
		<link>https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 17 Dec 2025 19:37:24 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Fizyka budowli]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[automatyka pogodowa]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2965</guid>

					<description><![CDATA[<p>Bezwładność cieplna to jeden z najczęściej niezrozumianych aspektów ogrzewania podłogowego, a jednocześnie klucz do jego komfortu i efektywności. W artykule wyjaśniamy, czym jest bezwładność cieplna w ogrzewaniu podłogowym, skąd się bierze i jak wpływa na codzienne użytkowanie instalacji. Pokazujemy, dlaczego podłogówka reaguje wolniej niż grzejniki, jaką rolę odgrywa wylewka, materiały wykończeniowe oraz automatyka i w jaki sposób świadome sterowanie pozwala zamienić pozorną wadę w realną przewagę energetyczną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-inertia-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #b97800;
    --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: #687b88;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }
  #rk-inertia-guide,
  #rk-inertia-guide * { box-sizing: border-box; }
  #rk-inertia-guide img,
  #rk-inertia-guide svg { display: block; max-width: 100%; }
  #rk-inertia-guide button,
  #rk-inertia-guide input,
  #rk-inertia-guide select,
  #rk-inertia-guide label,
  #rk-inertia-guide summary,
  #rk-inertia-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-inertia-guide button { cursor: pointer; }
  #rk-inertia-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-inertia-guide a:hover,
  #rk-inertia-guide a:focus-visible { color: var(--rk-red); }
  #rk-inertia-guide button:focus-visible,
  #rk-inertia-guide summary:focus-visible,
  #rk-inertia-guide a:focus-visible,
  #rk-inertia-guide input:focus-visible,
  #rk-inertia-guide select:focus-visible { outline: 3px solid rgba(7, 143, 190, .27); outline-offset: 3px; }
  #rk-inertia-guide p,
  #rk-inertia-guide ul,
  #rk-inertia-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-inertia-guide h2,
  #rk-inertia-guide h3,
  #rk-inertia-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }
  #rk-inertia-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-inertia-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-inertia-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-inertia-guide strong { color: var(--rk-dark); }
  #rk-inertia-guide [hidden] { display: none !important; }

  #rk-inertia-guide .rk-pg-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 24px 70px rgba(16, 37, 54, .11);
  }
  #rk-inertia-guide .rk-pg-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: #ffffff !important;
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-inertia-guide .rk-pg-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-inertia-guide .rk-pg-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff !important;
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-inertia-guide .rk-pg-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-inertia-guide .rk-pg-hero-title {
    position: relative;
    z-index: 1;
    max-width: 1040px;
    margin: 0 0 21px;
    color: #ffffff !important;
    font-size: clamp(2.2rem, 7vw, 5rem);
    font-weight: 900;
    letter-spacing: -.065em;
    line-height: .98;
  }
  #rk-inertia-guide .rk-pg-hero-title span { color: #67e7f5 !important; }
  #rk-inertia-guide .rk-pg-lead {
    position: relative;
    z-index: 1;
    max-width: 970px;
    margin-bottom: 24px;
    color: #e7f6f8 !important;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    line-height: 1.55;
  }
  #rk-inertia-guide .rk-pg-hero-tags,
  #rk-inertia-guide .rk-pg-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px 12px;
  }
  #rk-inertia-guide .rk-pg-hero-tag {
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: #ffffff !important;
    background: rgba(255, 255, 255, .07);
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.2;
  }
  #rk-inertia-guide .rk-pg-byline {
    margin-top: 27px;
    color: #d7ebef !important;
    font-size: .68rem;
    font-weight: 720;
  }
  #rk-inertia-guide .rk-pg-byline span { color: #d7ebef !important; }
  #rk-inertia-guide .rk-pg-byline strong { color: #ffffff !important; }
  #rk-inertia-guide .rk-pg-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
  }
  #rk-inertia-guide .rk-pg-hero-metric {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .19);
    border-radius: 15px;
    background: rgba(255, 255, 255, .075);
  }
  #rk-inertia-guide .rk-pg-hero-metric b {
    display: block;
    margin-bottom: 5px;
    color: #ffffff !important;
    font-size: .75rem;
    line-height: 1.35;
  }
  #rk-inertia-guide .rk-pg-hero-metric span {
    display: block;
    color: #e5f4f7 !important;
    font-size: .65rem;
    line-height: 1.5;
  }

  #rk-inertia-guide .rk-pg-nav {
    display: block;
    padding: 18px clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }
  #rk-inertia-guide .rk-pg-nav-label {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-dark);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  #rk-inertia-guide .rk-pg-nav-track {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    width: 100%;
    min-width: 0;
    white-space: normal;
  }
  #rk-inertia-guide .rk-pg-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    max-width: 100%;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: #f0f6f8;
    font-size: .64rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
    white-space: normal;
  }
  #rk-inertia-guide .rk-pg-nav a:hover,
  #rk-inertia-guide .rk-pg-nav a:focus-visible { color: #ffffff; background: var(--rk-blue); }

  #rk-inertia-guide .rk-pg-content { padding: 0 clamp(20px, 5.4vw, 64px) 64px; }
  #rk-inertia-guide .rk-pg-section {
    padding: clamp(42px, 7vw, 76px) 0;
    border-bottom: 1px solid var(--rk-line);
    scroll-margin-top: 18px;
  }
  #rk-inertia-guide .rk-pg-section:last-of-type { border-bottom: 0; }
  #rk-inertia-guide .rk-pg-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  #rk-inertia-guide .rk-pg-intro { max-width: 950px; color: var(--rk-text); font-size: 1.08rem; }
  #rk-inertia-guide .rk-pg-answer,
  #rk-inertia-guide .rk-pg-note,
  #rk-inertia-guide .rk-pg-warning,
  #rk-inertia-guide .rk-pg-myth {
    margin: 24px 0;
    padding: 21px 23px;
    border-radius: 17px;
  }
  #rk-inertia-guide .rk-pg-answer { border-left: 5px solid var(--rk-cyan); background: var(--rk-cyan-soft); }
  #rk-inertia-guide .rk-pg-note { border: 1px solid #bfe6ed; background: #f0fbfd; }
  #rk-inertia-guide .rk-pg-warning { border-left: 5px solid var(--rk-orange); background: var(--rk-orange-soft); }
  #rk-inertia-guide .rk-pg-myth { border: 1px solid #e0dafa; background: var(--rk-purple-soft); }
  #rk-inertia-guide .rk-pg-answer p:last-child,
  #rk-inertia-guide .rk-pg-note p:last-child,
  #rk-inertia-guide .rk-pg-warning p:last-child,
  #rk-inertia-guide .rk-pg-myth p:last-child { margin-bottom: 0; }

  #rk-inertia-guide .rk-pg-grid-2,
  #rk-inertia-guide .rk-pg-grid-3,
  #rk-inertia-guide .rk-pg-grid-4 {
    display: grid;
    gap: 16px;
    margin: 25px 0;
  }
  #rk-inertia-guide .rk-pg-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-inertia-guide .rk-pg-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-inertia-guide .rk-pg-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-inertia-guide .rk-pg-card {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-text) !important;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, .055);
  }
  #rk-inertia-guide .rk-pg-card.is-cyan { border-top: 4px solid var(--rk-cyan); }
  #rk-inertia-guide .rk-pg-card.is-orange { border-top: 4px solid var(--rk-orange); }
  #rk-inertia-guide .rk-pg-card.is-green { border-top: 4px solid var(--rk-green); }
  #rk-inertia-guide .rk-pg-card.is-purple { border-top: 4px solid var(--rk-purple); }
  #rk-inertia-guide .rk-pg-card p,
  #rk-inertia-guide .rk-pg-card li { color: var(--rk-text) !important; }
  #rk-inertia-guide .rk-pg-card p:last-child { margin-bottom: 0; }
  #rk-inertia-guide .rk-pg-card-icon {
    display: grid !important;
    place-items: center !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    margin: 0 0 15px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    color: var(--rk-dark) !important;
    background: var(--rk-cyan-soft) !important;
    font-size: .75rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    position: static !important;
    transform: none !important;
  }
  #rk-inertia-guide .rk-pg-card.is-orange .rk-pg-card-icon { background: var(--rk-orange-soft) !important; }
  #rk-inertia-guide .rk-pg-card.is-green .rk-pg-card-icon { background: var(--rk-green-soft) !important; }
  #rk-inertia-guide .rk-pg-card.is-purple .rk-pg-card-icon { background: var(--rk-purple-soft) !important; }

  #rk-inertia-guide .rk-pg-factor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 28px 0;
    padding: 0;
    list-style: none;
  }
  #rk-inertia-guide .rk-pg-factor {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
    min-width: 0;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }
  #rk-inertia-guide .rk-pg-step-badge {
    display: grid !important;
    place-items: center !important;
    align-items: center !important;
    justify-items: center !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: var(--rk-dark) !important;
    background: #d9f5f8 !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    flex: 0 0 52px !important;
    position: static !important;
    transform: none !important;
  }
  #rk-inertia-guide .rk-pg-step-badge > span {
    display: block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    transform: none !important;
  }
  #rk-inertia-guide .rk-pg-factor:nth-child(4n+2) .rk-pg-step-badge { background: #ffdfd4 !important; }
  #rk-inertia-guide .rk-pg-factor:nth-child(4n+3) .rk-pg-step-badge { background: #dff5ed !important; }
  #rk-inertia-guide .rk-pg-factor:nth-child(4n+4) .rk-pg-step-badge { background: #e5e1ff !important; }
  #rk-inertia-guide .rk-pg-factor-copy { min-width: 0; }
  #rk-inertia-guide .rk-pg-factor h3 { margin-bottom: 7px; }
  #rk-inertia-guide .rk-pg-factor p { margin-bottom: 0; color: var(--rk-text); }

  #rk-inertia-guide .rk-pg-table-wrap {
    overflow-x: auto;
    margin: 26px 0;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }
  #rk-inertia-guide table { width: 100%; border-collapse: collapse; border-spacing: 0; }
  #rk-inertia-guide th,
  #rk-inertia-guide td { padding: 15px 17px; border-bottom: 1px solid var(--rk-line); text-align: left; vertical-align: top; }
  #rk-inertia-guide th { color: #ffffff; background: var(--rk-navy); font-size: .69rem; font-weight: 900; line-height: 1.35; }
  #rk-inertia-guide td { color: var(--rk-text); font-size: .84rem; line-height: 1.55; }
  #rk-inertia-guide tr:last-child td { border-bottom: 0; }
  #rk-inertia-guide tbody tr:nth-child(even) td { background: #f8fbfc; }

  #rk-inertia-guide .rk-pg-formula {
    margin: 28px 0;
    padding: clamp(23px, 5vw, 38px);
    border-radius: 22px;
    color: #ffffff;
    background: linear-gradient(135deg, #112c3f, #17616d);
  }
  #rk-inertia-guide .rk-pg-formula-main { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
  #rk-inertia-guide .rk-pg-formula-equation {
    color: #7cecf7;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(1.1rem, 3.5vw, 1.8rem);
    font-weight: 900;
    letter-spacing: -.04em;
    overflow-wrap: anywhere;
  }
  #rk-inertia-guide .rk-pg-formula-result {
    flex: 0 0 auto;
    padding: 11px 15px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, .08);
    font-size: .74rem;
    font-weight: 900;
  }
  #rk-inertia-guide .rk-pg-formula p,
  #rk-inertia-guide .rk-pg-formula li,
  #rk-inertia-guide .rk-pg-formula strong { color: #eaf7f9 !important; }

  #rk-inertia-guide .rk-pg-tool {
    margin: 30px 0;
    overflow: hidden;
    border: 1px solid #bcdde5;
    border-radius: 24px;
    background: var(--rk-white);
    box-shadow: 0 18px 48px rgba(16, 37, 54, .09);
  }
  #rk-inertia-guide .rk-pg-tool-head { padding: clamp(23px, 5vw, 36px); color: #ffffff; background: linear-gradient(135deg, #102d40 0%, #126879 100%); }
  #rk-inertia-guide .rk-pg-tool-kicker { display: block; margin-bottom: 8px; color: #81edf6; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-tool-head h3 { margin-bottom: 9px; color: #ffffff; }
  #rk-inertia-guide .rk-pg-tool-head p { max-width: 900px; margin-bottom: 0; color: #e5f5f7; }
  #rk-inertia-guide .rk-pg-tool-body { padding: clamp(20px, 5vw, 36px); }
  #rk-inertia-guide .rk-pg-tool-disclaimer { margin-top: 20px; padding: 14px 16px; border-radius: 13px; color: #526570; background: var(--rk-soft); font-size: .73rem; line-height: 1.55; }

  #rk-inertia-guide .rk-ic-concept-tabs,
  #rk-inertia-guide .rk-ic-profile-tabs,
  #rk-inertia-guide .rk-ic-scenario-tabs,
  #rk-inertia-guide .rk-ic-preset-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 22px; }
  #rk-inertia-guide .rk-ic-tab {
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .72rem;
    font-weight: 900;
    line-height: 1.2;
  }
  #rk-inertia-guide .rk-ic-tab:hover,
  #rk-inertia-guide .rk-ic-tab:focus-visible { border-color: var(--rk-blue); background: var(--rk-cyan-soft); }
  #rk-inertia-guide .rk-ic-tab.is-active,
  #rk-inertia-guide .rk-ic-tab[aria-pressed="true"] { color: #ffffff; border-color: var(--rk-blue); background: var(--rk-blue); }
  #rk-inertia-guide .rk-ic-concept-status {
    margin-bottom: 22px;
    padding: 17px 19px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-cyan-soft);
  }
  #rk-inertia-guide .rk-ic-concept-status b { display: block; margin-bottom: 3px; }
  #rk-inertia-guide .rk-ic-concept-status p { margin-bottom: 0; font-size: .8rem; line-height: 1.55; }
  #rk-inertia-guide .rk-ic-graphic-layout { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(0, 1.2fr); gap: 22px; align-items: stretch; }
  #rk-inertia-guide .rk-ic-layer-stack { display: grid; gap: 8px; min-width: 0; }
  #rk-inertia-guide .rk-ic-layer {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 13px;
    width: 100%;
    min-width: 0;
    min-height: 72px;
    padding: 12px 15px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    color: var(--rk-dark);
    background: #f7fafb;
    text-align: left;
    transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
  }
  #rk-inertia-guide .rk-ic-layer:hover,
  #rk-inertia-guide .rk-ic-layer:focus-visible { border-color: var(--rk-blue); transform: translateY(-1px); }
  #rk-inertia-guide .rk-ic-layer.is-active { border-color: #68cedb; background: #ecfbfd; box-shadow: 0 8px 22px rgba(7, 143, 190, .1); }
  #rk-inertia-guide .rk-ic-layer.is-selected { outline: 3px solid rgba(255, 106, 61, .18); border-color: var(--rk-orange); }
  #rk-inertia-guide .rk-ic-layer-number {
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    color: #ffffff !important;
    background: var(--rk-navy) !important;
    font-size: .76rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    position: static !important;
    transform: none !important;
  }
  #rk-inertia-guide .rk-ic-layer.is-active .rk-ic-layer-number { background: var(--rk-blue) !important; }
  #rk-inertia-guide .rk-ic-layer-copy { min-width: 0; }
  #rk-inertia-guide .rk-ic-layer-copy strong { display: block; margin-bottom: 2px; font-size: .76rem; line-height: 1.25; }
  #rk-inertia-guide .rk-ic-layer-copy small { display: block; color: var(--rk-muted); font-size: .61rem; line-height: 1.4; }
  #rk-inertia-guide .rk-ic-detail {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: clamp(23px, 4vw, 34px);
    border-radius: 20px;
    color: #ffffff;
    background: linear-gradient(145deg, #112b3d, #155767);
  }
  #rk-inertia-guide .rk-ic-detail h4 { color: #ffffff; font-size: 1.35rem; }
  #rk-inertia-guide .rk-ic-detail > p { color: #dcecf0; }
  #rk-inertia-guide .rk-ic-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 14px; }
  #rk-inertia-guide .rk-ic-detail-card { min-width: 0; padding: 15px; border-radius: 14px; background: rgba(255, 255, 255, .085); }
  #rk-inertia-guide .rk-ic-detail-card b { display: block; margin-bottom: 5px; color: #7cecf7 !important; font-size: .68rem; }
  #rk-inertia-guide .rk-ic-detail-card p { margin-bottom: 0; color: #e5f2f4; font-size: .68rem; line-height: 1.5; }

  #rk-inertia-guide .rk-ic-lab-layout { display: grid; grid-template-columns: minmax(270px, .9fr) minmax(0, 1.45fr); gap: 24px; align-items: stretch; }
  #rk-inertia-guide .rk-ic-controls { min-width: 0; }
  #rk-inertia-guide .rk-ic-field { margin-bottom: 19px; }
  #rk-inertia-guide .rk-ic-field:last-child { margin-bottom: 0; }
  #rk-inertia-guide .rk-ic-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
  #rk-inertia-guide .rk-ic-label-row label { color: var(--rk-dark); font-size: .74rem; font-weight: 900; line-height: 1.3; }
  #rk-inertia-guide .rk-ic-output { flex: 0 0 auto; color: var(--rk-blue); font-size: .76rem; font-weight: 900; }
  #rk-inertia-guide input[type="range"] { width: 100%; height: 7px; margin: 0; border-radius: 99px; background: #d9e8ed; accent-color: var(--rk-blue); cursor: pointer; }
  #rk-inertia-guide .rk-ic-scale { display: flex; justify-content: space-between; margin-top: 5px; color: var(--rk-muted); font-size: .56rem; }
  #rk-inertia-guide .rk-ic-number {
    display: block;
    width: 100%;
    min-width: 0;
    height: 48px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #b9cfd7;
    border-radius: 12px;
    color: var(--rk-dark);
    background: #ffffff;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1.2;
  }
  #rk-inertia-guide .rk-ic-field-help { display: block; margin-top: 6px; color: var(--rk-muted); font-size: .58rem; line-height: 1.42; }
  #rk-inertia-guide .rk-ic-results {
    min-width: 0;
    padding: clamp(20px, 4vw, 29px);
    border-radius: 20px;
    color: #ffffff;
    background: linear-gradient(145deg, #112b3d, #155767);
  }
  #rk-inertia-guide .rk-ic-results h4 { color: #ffffff; }
  #rk-inertia-guide .rk-ic-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
  #rk-inertia-guide .rk-ic-result-card { min-width: 0; padding: 15px; border-radius: 14px; background: rgba(255, 255, 255, .09); }
  #rk-inertia-guide .rk-ic-result-card.is-wide { grid-column: 1 / -1; }
  #rk-inertia-guide .rk-ic-result-card span { display: block; color: #cfe5e9; font-size: .61rem; line-height: 1.35; }
  #rk-inertia-guide .rk-ic-result-card strong { display: block; margin: 5px 0 3px; color: #7cecf7 !important; font-size: clamp(1.3rem, 3.2vw, 1.9rem); line-height: 1; }
  #rk-inertia-guide .rk-ic-result-card small { display: block; color: #dcecef; font-size: .6rem; line-height: 1.42; }
  #rk-inertia-guide .rk-ic-result-note { margin-top: 14px; padding: 12px 14px; border-radius: 11px; color: #ffe8df; background: rgba(255, 106, 61, .19); font-size: .66rem; line-height: 1.5; }

  #rk-inertia-guide .rk-ic-chart-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 20px; }
  #rk-inertia-guide .rk-ic-chart-control-group { min-width: 0; }
  #rk-inertia-guide .rk-ic-chart-control-group > b { display: block; margin-bottom: 8px; color: var(--rk-dark); font-size: .68rem; }
  #rk-inertia-guide .rk-ic-chart-control-group .rk-ic-profile-tabs,
  #rk-inertia-guide .rk-ic-chart-control-group .rk-ic-scenario-tabs { margin-bottom: 0; }
  #rk-inertia-guide .rk-ic-chart-shell { position: relative; min-width: 0; }
  #rk-inertia-guide .rk-ic-chart-wrap { min-width: 0; padding: 14px 10px 2px; border: 1px solid var(--rk-line); border-radius: 18px; background: #fbfdfe; }
  #rk-inertia-guide .rk-ic-chart-svg { width: 100%; min-height: 320px; overflow: visible; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-grid { stroke: #dce8ed; stroke-width: 1; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-frame { fill: transparent; stroke: #afc4cd; stroke-width: 1.2; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-axis-text { fill: #617681; font-size: 12px; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-axis-title { fill: #314653; font-size: 12px; font-weight: 800; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-series-input { fill: none; stroke: var(--rk-orange); stroke-width: 3; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-series-floor { fill: none; stroke: var(--rk-blue); stroke-width: 4; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-series-room { fill: none; stroke: var(--rk-green); stroke-width: 4; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-guide { stroke: #6c7d87; stroke-width: 1.5; stroke-dasharray: 5 5; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-marker-input { fill: var(--rk-orange); stroke: #ffffff; stroke-width: 2; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-marker-floor { fill: var(--rk-blue); stroke: #ffffff; stroke-width: 2; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-marker-room { fill: var(--rk-green); stroke: #ffffff; stroke-width: 2; }
  #rk-inertia-guide .rk-ic-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 13px 0 17px; color: var(--rk-text); font-size: .64rem; }
  #rk-inertia-guide .rk-ic-legend-item { display: inline-flex; align-items: center; gap: 7px; }
  #rk-inertia-guide .rk-ic-legend-swatch { width: 22px; height: 4px; border-radius: 99px; background: var(--rk-blue); }
  #rk-inertia-guide .rk-ic-legend-item.is-input .rk-ic-legend-swatch { background: var(--rk-orange); }
  #rk-inertia-guide .rk-ic-legend-item.is-room .rk-ic-legend-swatch { background: var(--rk-green); }
  #rk-inertia-guide .rk-ic-time-control { margin-top: 19px; padding: 17px; border-radius: 15px; background: var(--rk-soft); }
  #rk-inertia-guide .rk-ic-chart-readout { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
  #rk-inertia-guide .rk-ic-readout { min-width: 0; padding: 12px; border-radius: 12px; background: #ffffff; }
  #rk-inertia-guide .rk-ic-readout span { display: block; color: var(--rk-muted); font-size: .57rem; line-height: 1.3; }
  #rk-inertia-guide .rk-ic-readout strong { display: block; margin-top: 4px; color: var(--rk-dark); font-size: .88rem; line-height: 1.2; }
  #rk-inertia-guide .rk-ic-chart-status { margin-top: 15px; padding: 15px 17px; border-left: 5px solid var(--rk-cyan); border-radius: 13px; color: var(--rk-text); background: var(--rk-cyan-soft); font-size: .74rem; line-height: 1.55; }

  #rk-inertia-guide .rk-pg-checklist,
  #rk-inertia-guide .rk-pg-crosslist { margin: 22px 0; padding: 0; list-style: none; }
  #rk-inertia-guide .rk-pg-checklist li,
  #rk-inertia-guide .rk-pg-crosslist li { position: relative; margin-bottom: 10px; padding: 12px 14px 12px 45px; border-radius: 12px; background: var(--rk-soft); }
  #rk-inertia-guide .rk-pg-checklist li::before,
  #rk-inertia-guide .rk-pg-crosslist li::before {
    position: absolute;
    top: 12px;
    left: 13px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    color: #ffffff;
    background: var(--rk-green);
    content: "✓";
    font-size: .68rem;
    font-weight: 900;
    line-height: 1;
  }
  #rk-inertia-guide .rk-pg-crosslist li::before { background: var(--rk-red); content: "×"; }

  #rk-inertia-guide .rk-pg-myth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 25px; }
  #rk-inertia-guide .rk-pg-myth-card { min-width: 0; padding: 21px; border: 1px solid var(--rk-line); border-radius: 17px; background: var(--rk-white); }
  #rk-inertia-guide .rk-pg-myth-label { display: inline-block; margin-bottom: 8px; padding: 5px 9px; border-radius: 999px; color: #9f322a; background: var(--rk-red-soft); font-size: .58rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-myth-card p { margin-bottom: 0; color: var(--rk-text); }

  #rk-inertia-guide .rk-pg-cta {
    position: relative;
    overflow: hidden;
    margin: 34px 0;
    padding: clamp(27px, 6vw, 44px);
    border-radius: 24px;
    color: #ffffff;
    background: linear-gradient(135deg, #102c40 0%, #176777 68%, #157c78 100%);
  }
  #rk-inertia-guide .rk-pg-cta::after {
    position: absolute;
    right: -70px;
    bottom: -115px;
    width: 270px;
    height: 270px;
    border: 35px solid rgba(255, 255, 255, .06);
    border-radius: 50%;
    content: "";
  }
  #rk-inertia-guide .rk-pg-cta > * { position: relative; z-index: 1; }
  #rk-inertia-guide .rk-pg-cta-kicker { display: block; margin-bottom: 7px; color: #7cecf7; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-cta h3 { max-width: 850px; color: #ffffff; font-size: clamp(1.4rem, 3.5vw, 2.15rem); }
  #rk-inertia-guide .rk-pg-cta p { max-width: 870px; color: #e5f3f6; }
  #rk-inertia-guide .rk-pg-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 20px;
    border-radius: 999px;
    color: #ffffff !important;
    background: var(--rk-orange);
    box-shadow: 0 10px 25px rgba(255, 106, 61, .26);
    font-size: .75rem;
    font-weight: 900;
    line-height: 1.25;
    text-decoration: none;
  }
  #rk-inertia-guide .rk-pg-cta-button:hover,
  #rk-inertia-guide .rk-pg-cta-button:focus-visible { color: #ffffff !important; background: #e9552d; }

  #rk-inertia-guide .rk-pg-sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
  #rk-inertia-guide .rk-pg-source { min-width: 0; padding: 20px; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-soft); }
  #rk-inertia-guide .rk-pg-source p { margin: 7px 0 0; color: var(--rk-text); font-size: .78rem; line-height: 1.55; }
  #rk-inertia-guide .rk-pg-faq { display: grid; gap: 10px; margin-top: 24px; }
  #rk-inertia-guide .rk-pg-faq details { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-white); }
  #rk-inertia-guide .rk-pg-faq summary { position: relative; padding: 18px 52px 18px 19px; color: var(--rk-dark); font-weight: 900; line-height: 1.35; cursor: pointer; list-style: none; }
  #rk-inertia-guide .rk-pg-faq summary::-webkit-details-marker { display: none; }
  #rk-inertia-guide .rk-pg-faq summary::after { position: absolute; top: 50%; right: 18px; width: 25px; height: 25px; border-radius: 50%; color: var(--rk-blue); background: var(--rk-cyan-soft); content: "+"; font-size: 1.05rem; font-weight: 900; line-height: 25px; text-align: center; transform: translateY(-50%); }
  #rk-inertia-guide .rk-pg-faq details[open] summary::after { content: "−"; }
  #rk-inertia-guide .rk-pg-faq-answer { padding: 0 19px 18px; color: var(--rk-text); }
  #rk-inertia-guide .rk-pg-faq-answer p:last-child { margin-bottom: 0; }

  #rk-inertia-guide .rk-pg-author { margin-top: 56px; overflow: hidden; border-radius: 24px; color: #ffffff; background: linear-gradient(135deg, #102536, #174b5b); }
  #rk-inertia-guide .rk-pg-author-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; padding: 29px clamp(22px, 5vw, 42px); border-bottom: 1px solid rgba(255, 255, 255, .12); }
  #rk-inertia-guide .rk-pg-author-head h2 { margin-bottom: 6px; color: #ffffff; }
  #rk-inertia-guide .rk-pg-author-head p { margin-bottom: 0; color: #dcecf0; }
  #rk-inertia-guide .rk-pg-author-head .rk-pg-eyebrow { color: #7cecf7; }
  #rk-inertia-guide .rk-pg-author-mark { flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; color: #ffffff; font-size: .62rem; font-weight: 900; }
  #rk-inertia-guide .rk-pg-author-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); }
  #rk-inertia-guide .rk-pg-author-side { padding: 30px 25px; border-right: 1px solid rgba(255, 255, 255, .12); text-align: center; }
  #rk-inertia-guide .rk-pg-author-photo { width: 132px; height: 132px; margin: 0 auto 16px; overflow: hidden; border: 5px solid rgba(255, 255, 255, .15); border-radius: 50%; }
  #rk-inertia-guide .rk-pg-author-photo img { width: 100%; height: 100%; object-fit: cover; }
  #rk-inertia-guide .rk-pg-author-name { margin-bottom: 5px; font-size: 1.12rem; font-weight: 900; }
  #rk-inertia-guide .rk-pg-author-name a { color: #ffffff; text-decoration: none; }
  #rk-inertia-guide .rk-pg-author-role { color: #cfe4e9; font-size: .7rem; line-height: 1.55; }
  #rk-inertia-guide .rk-pg-author-social-label { margin-top: 20px; color: #8beff7; font-size: .58rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-author-social { display: flex; justify-content: center; gap: 9px; margin-top: 9px; }
  #rk-inertia-guide .rk-pg-author-social a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #ffffff; background: rgba(255, 255, 255, .1); }
  #rk-inertia-guide .rk-pg-author-social svg { width: 18px; height: 18px; fill: currentColor; }
  #rk-inertia-guide .rk-pg-author-main { min-width: 0; padding: 32px clamp(23px, 5vw, 42px); }
  #rk-inertia-guide .rk-pg-author-quote { position: relative; margin: 0 0 24px; padding: 4px 0 4px 58px; border: 0; }
  #rk-inertia-guide .rk-pg-author-quote::before { position: absolute; top: -11px; left: 0; color: #6ee9f5; content: "“"; font-family: Georgia, serif; font-size: 4.4rem; line-height: 1; }
  #rk-inertia-guide .rk-pg-author-quote p { margin-bottom: 0; color: #ffffff; font-size: 1.02rem; font-weight: 740; }
  #rk-inertia-guide .rk-pg-author-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
  #rk-inertia-guide .rk-pg-author-card { min-width: 0; padding: 16px; border-radius: 14px; background: rgba(255, 255, 255, .075); }
  #rk-inertia-guide .rk-pg-author-card b { display: block; margin-bottom: 5px; color: #8beff7 !important; font-size: .69rem; }
  #rk-inertia-guide .rk-pg-author-card p { margin-bottom: 0; color: #d8e9ed; font-size: .68rem; line-height: 1.55; }
  #rk-inertia-guide .rk-pg-mini-label { margin-top: 22px; color: #8beff7; font-size: .58rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-portals { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
  #rk-inertia-guide .rk-pg-portals a { padding: 7px 10px; border: 1px solid rgba(255, 255, 255, .15); border-radius: 999px; color: #ffffff; font-size: .62rem; text-decoration: none; }

  @media (max-width: 900px) {
    #rk-inertia-guide .rk-pg-grid-3,
    #rk-inertia-guide .rk-pg-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-inertia-guide .rk-ic-graphic-layout,
    #rk-inertia-guide .rk-ic-lab-layout { grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-pg-author-layout { grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-pg-author-side { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
  }
  @media (max-width: 720px) {
    #rk-inertia-guide { margin-top: 20px; font-size: 16px; }
    #rk-inertia-guide .rk-pg-shell { border-radius: 19px; }
    #rk-inertia-guide .rk-pg-hero-metrics,
    #rk-inertia-guide .rk-pg-grid-2,
    #rk-inertia-guide .rk-pg-grid-3,
    #rk-inertia-guide .rk-pg-grid-4,
    #rk-inertia-guide .rk-pg-factor-grid,
    #rk-inertia-guide .rk-pg-myth-grid,
    #rk-inertia-guide .rk-pg-sources,
    #rk-inertia-guide .rk-pg-author-cards,
    #rk-inertia-guide .rk-ic-chart-controls { grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-pg-formula-main,
    #rk-inertia-guide .rk-pg-author-head { display: block; }
    #rk-inertia-guide .rk-pg-formula-result { display: inline-block; margin-top: 14px; }
    #rk-inertia-guide .rk-pg-author-mark { display: inline-block; margin-top: 14px; }
    #rk-inertia-guide .rk-pg-table-wrap { overflow: visible; border: 0; background: transparent; }
    #rk-inertia-guide table,
    #rk-inertia-guide thead,
    #rk-inertia-guide tbody,
    #rk-inertia-guide tr,
    #rk-inertia-guide th,
    #rk-inertia-guide td { display: block; width: 100%; }
    #rk-inertia-guide thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    #rk-inertia-guide tbody { display: grid; gap: 13px; }
    #rk-inertia-guide tr { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-white); }
    #rk-inertia-guide td { position: relative; min-height: 54px; padding: 31px 15px 12px; border-bottom: 1px solid var(--rk-line); background: #ffffff !important; }
    #rk-inertia-guide td:last-child { border-bottom: 0; }
    #rk-inertia-guide td::before { position: absolute; top: 9px; left: 15px; color: var(--rk-blue); content: attr(data-label); font-size: .56rem; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
  }
  @media (max-width: 500px) {
    #rk-inertia-guide .rk-pg-hero { padding-left: 21px; padding-right: 21px; }
    #rk-inertia-guide .rk-pg-content { padding-left: 16px; padding-right: 16px; }
    #rk-inertia-guide .rk-pg-nav { padding-left: 15px; padding-right: 15px; }
    #rk-inertia-guide .rk-pg-nav a { font-size: .61rem; }
    #rk-inertia-guide .rk-pg-tool-body { padding-left: 13px; padding-right: 13px; }
    #rk-inertia-guide .rk-pg-factor { grid-template-columns: 52px minmax(0, 1fr); gap: 13px; padding: 18px 15px; }
    #rk-inertia-guide .rk-ic-concept-tabs,
    #rk-inertia-guide .rk-ic-profile-tabs,
    #rk-inertia-guide .rk-ic-scenario-tabs,
    #rk-inertia-guide .rk-ic-preset-tabs { display: grid; grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-ic-tab { width: 100%; }
    #rk-inertia-guide .rk-ic-layer { grid-template-columns: 44px minmax(0, 1fr); padding: 11px 12px; }
    #rk-inertia-guide .rk-ic-detail-grid,
    #rk-inertia-guide .rk-ic-result-grid,
    #rk-inertia-guide .rk-ic-chart-readout { grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-ic-result-card.is-wide { grid-column: auto; }
    #rk-inertia-guide .rk-ic-chart-svg { min-height: 310px; }
    #rk-inertia-guide .rk-pg-author-main { padding-left: 18px; padding-right: 18px; }
    #rk-inertia-guide .rk-pg-cta-button { width: 100%; text-align: center; }
  }
  @media (prefers-reduced-motion: reduce) {
    #rk-inertia-guide *,
    #rk-inertia-guide *::before,
    #rk-inertia-guide *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  }
</style>

<article id="rk-inertia-guide" aria-labelledby="rk-ic-visual-title">
  <div class="rk-pg-shell">
    <header class="rk-pg-hero">
      <span class="rk-pg-kicker">Od energii w wylewce do reakcji pomieszczenia</span>
      <div class="rk-pg-hero-title" id="rk-ic-visual-title">Podłoga nie ma jednego <span>„czasu nagrzewania”</span></div>
      <p class="rk-pg-lead">Bezwładność cieplna nie jest jedną liczbą podawaną w godzinach. Tworzą ją pojemność cieplna warstw, opór drogi od rury do pomieszczenia oraz dynamiczna odpowiedź budynku, źródła i sterowania. Rozdzielamy te zjawiska i pokazujemy, co naprawdę dzieje się po zmianie nastawy.</p>

      <div class="rk-pg-hero-tags" aria-label="Zakres poradnika">
        <span class="rk-pg-hero-tag">pojemność cieplna</span>
        <span class="rk-pg-hero-tag">jastrych</span>
        <span class="rk-pg-hero-tag">opór posadzki</span>
        <span class="rk-pg-hero-tag">czas reakcji</span>
        <span class="rk-pg-hero-tag">sterowanie pogodowe</span>
      </div>

      <div class="rk-pg-byline" aria-label="Informacje o publikacji">
        <span><strong>Autor:</strong> Robert Kucharski</span>
        <span><strong>Czas czytania:</strong> około 30 minut</span>
        <span><strong>Aktualizacja techniczna:</strong> 12 września 2026 r.</span>
      </div>

      <div class="rk-pg-hero-metrics" aria-label="Trzy najważniejsze odpowiedzi">
        <div class="rk-pg-hero-metric"><b>Co magazynuje energię?</b><span>Przede wszystkim aktywna masa jastrychu lub płyty, a w mniejszym stopniu pozostałe nagrzewane warstwy.</span></div>
        <div class="rk-pg-hero-metric"><b>Co ogranicza przepływ ciepła?</b><span>Grubość, przewodność i układ warstw pomiędzy rurą a powierzchnią — szczególnie opór okładziny i podkładu.</span></div>
        <div class="rk-pg-hero-metric"><b>Co decyduje o reakcji pokoju?</b><span>Relacja mocy podłogi do strat i zysków pomieszczenia, a także pogoda, przepływ oraz sposób regulacji.</span></div>
      </div>
    </header>

    <nav class="rk-pg-nav" aria-label="Nawigacja po artykule">
      <span class="rk-pg-nav-label">Na skróty</span>
      <div class="rk-pg-nav-track">
        <a href="#rk-ic-odpowiedz">Krótka odpowiedź</a>
        <a href="#rk-ic-trzy-zjawiska">Trzy zjawiska</a>
        <a href="#rk-ic-droga-ciepla">Droga ciepła</a>
        <a href="#rk-ic-magazyn">Magazyn energii</a>
        <a href="#rk-ic-pojemnosc-opor">Pojemność a opór</a>
        <a href="#rk-ic-wzor">Wzór</a>
        <a href="#rk-ic-kalkulator">Kalkulator</a>
        <a href="#rk-ic-czas">Czas nagrzewania</a>
        <a href="#rk-ic-wykres">Wykres reakcji</a>
        <a href="#rk-ic-systemy">Mokry czy suchy</a>
        <a href="#rk-ic-jastrych">Jastrych</a>
        <a href="#rk-ic-okladziny">Okładziny</a>
        <a href="#rk-ic-geometria">Rury i powierzchnia</a>
        <a href="#rk-ic-woda">Temperatura i przepływ</a>
        <a href="#rk-ic-budynek">Budynek i zyski</a>
        <a href="#rk-ic-wylaczenie">Po wyłączeniu</a>
        <a href="#rk-ic-sterowanie">Sterowanie</a>
        <a href="#rk-ic-pompa-ciepla">Pompa ciepła</a>
        <a href="#rk-ic-kociol-bufor">Kocioł i bufor</a>
        <a href="#rk-ic-harmonogram">Harmonogram i taryfa</a>
        <a href="#rk-ic-pomiar">Pomiar instalacji</a>
        <a href="#rk-ic-mity">Mity</a>
        <a href="#rk-ic-checklista">Checklista</a>
        <a href="#rk-ic-wnioski">Wnioski</a>
        <a href="#rk-ic-zrodla">Źródła</a>
        <a href="#rk-ic-faq">FAQ</a>
        <a href="#rk-ic-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-pg-content">
      <section class="rk-pg-section" id="rk-ic-odpowiedz">
        <span class="rk-pg-eyebrow">Odpowiedź w 60 sekund</span>
        <h2>Czym jest bezwładność cieplna ogrzewania podłogowego?</h2>
        <p class="rk-pg-intro"><strong>Bezwładność cieplna ogrzewania podłogowego opisuje opóźnioną zmianę temperatury podłogi i pomieszczenia po zmianie dostarczanej mocy.</strong> Wynika z energii magazynowanej w nagrzewanych warstwach, drogi przewodzenia ciepła oraz odpowiedzi całego budynku. Nie jest stałą cechą wyrażoną jedną liczbą godzin.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-cyan"><div class="rk-pg-card-icon">01</div><h3>Podłoga magazynuje</h3><p>Zmiana średniej temperatury aktywnej masy wymaga dostarczenia albo odebrania energii. Im większa powierzchnia, grubość i objętościowa pojemność cieplna, tym większy magazyn.</p></article>
          <article class="rk-pg-card is-orange"><div class="rk-pg-card-icon">02</div><h3>Warstwy opóźniają przepływ</h3><p>Ciepło musi przejść od wody przez rurę, jastrych, klej, okładzinę i warstwę przyścienną powietrza. Każdy z tych etapów wpływa na temperaturę powierzchni i moc.</p></article>
          <article class="rk-pg-card is-green"><div class="rk-pg-card-icon">03</div><h3>Pomieszczenie odpowiada osobno</h3><p>Temperatura powietrza i temperatura odczuwalna zależą również od strat przez przegrody, wentylacji, nasłonecznienia, wyposażenia oraz zysków od ludzi i urządzeń.</p></article>
        </div>

        <div class="rk-pg-answer"><p><strong>Najważniejszy wniosek:</strong> ta sama wylewka może zachowywać się inaczej w dwóch domach. Jeden budynek potrzebuje małej mocy i szybko reaguje na słońce, drugi ma większe straty, inną okładzinę i inną temperaturę wody. Sama grubość jastrychu nie wystarczy do przewidzenia wyniku.</p></div>

        <p>Punktem wyjścia do oceny zachowania podłogi jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> pomieszczeń oraz zdolność powierzchni do oddania wymaganej mocy. Dopiero później analizuje się dynamikę, nastawy i oczekiwany komfort. Zasady obliczania mocy powierzchniowej porządkuje również poradnik o <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">obliczeniach ogrzewania podłogowego według PN-EN 1264</a>.</p>
      </section>

<section class="rk-pg-section" id="rk-ic-trzy-zjawiska">
        <span class="rk-pg-eyebrow">Jedno słowo, trzy różne pytania</span>
        <h2>Pojemność, opór i odpowiedź budynku — czego nie wolno ze sobą mylić?</h2>
        <p class="rk-pg-intro">W potocznym opisie wszystkie trzy właściwości trafiają do jednego worka z napisem „bezwładność”. W obliczeniach trzeba je rozdzielić, ponieważ zmiana jednego parametru nie zawsze działa tak samo na pozostałe.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Zjawisko</th><th>Pytanie, na które odpowiada</th><th>Najważniejsze dane</th><th>Czego nie mówi samo</th></tr></thead>
            <tbody>
              <tr><td data-label="Zjawisko"><strong>Pojemność cieplna</strong></td><td data-label="Pytanie">Ile energii potrzeba, aby zmienić średnią temperaturę analizowanej masy?</td><td data-label="Dane">Objętość, gęstość, ciepło właściwe albo objętościowa pojemność cieplna.</td><td data-label="Ograniczenie">Nie określa szybkości przepływu energii do pokoju.</td></tr>
              <tr><td data-label="Zjawisko"><strong>Opór cieplny</strong></td><td data-label="Pytanie">Jak trudno ciepłu przejść przez warstwy od rury do powierzchni?</td><td data-label="Dane">Grubość, przewodność, styki warstw i konstrukcja.</td><td data-label="Ograniczenie">Nie określa ilości energii zgromadzonej w masie.</td></tr>
              <tr><td data-label="Zjawisko"><strong>Odpowiedź dynamiczna</strong></td><td data-label="Pytanie">Jak w czasie zmieni się powierzchnia i temperatura pomieszczenia?</td><td data-label="Dane">Pojemności, opory, moc, pogoda, straty, zyski, przepływ i sterowanie.</td><td data-label="Ograniczenie">Nie jest uniwersalną liczbą przypisaną do jednego materiału.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Norma ISO 13786 opisuje dynamiczne właściwości cieplne kompletnego elementu budynku, ponieważ wynik zależy od sposobu połączenia materiałów. To ważne rozróżnienie: karta jednego produktu nie opisuje automatycznie zachowania całej ogrzewanej podłogi.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-droga-ciepla">
        <span class="rk-pg-eyebrow">Narzędzie 1 · interaktywna grafika</span>
        <h2>Jak ciepło przechodzi przez podłogę i gdzie powstaje opóźnienie?</h2>
        <p class="rk-pg-intro">Wybierz pojęcie, a następnie dowolną warstwę. Moduł pokaże, które elementy odpowiadają za magazyn energii, które ograniczają jego przepływ i dlaczego temperatura pokoju nie jest kopią temperatury wody.</p>

        <div class="rk-pg-tool" id="rk-ic-concept-tool">
          <div class="rk-pg-tool-head">
            <span class="rk-pg-tool-kicker">Modułowa mapa zjawisk</span>
            <h3>Trzy rzeczy, które potocznie nazywamy bezwładnością</h3>
            <p>Grafika nie przypisuje jednej oceny całej podłodze. Pokazuje funkcję każdej części oraz zależności między nimi.</p>
          </div>
          <div class="rk-pg-tool-body">
            <div class="rk-ic-concept-tabs" role="group" aria-label="Wybierz analizowane zjawisko">
              <button class="rk-ic-tab is-active" type="button" data-rk-ic-concept="capacity" aria-pressed="true">Pojemność cieplna</button>
              <button class="rk-ic-tab" type="button" data-rk-ic-concept="resistance" aria-pressed="false">Opór i droga ciepła</button>
              <button class="rk-ic-tab" type="button" data-rk-ic-concept="response" aria-pressed="false">Reakcja pomieszczenia</button>
            </div>

            <div class="rk-ic-concept-status" id="rk-ic-concept-status" aria-live="polite">
              <b>Wybrano: pojemność cieplna</b>
              <p>Największy udział ma zwykle aktywna masa jastrychu lub płyty. Pozostałe nagrzewane warstwy także magazynują energię, ale ich udział zależy od grubości i właściwości materiału.</p>
            </div>

            <div class="rk-ic-graphic-layout">
              <div class="rk-ic-layer-stack" aria-label="Warstwy od pomieszczenia do izolacji">
                <button class="rk-ic-layer" type="button" data-rk-ic-layer="room">
                  <span class="rk-ic-layer-number">5</span>
                  <span class="rk-ic-layer-copy"><strong>Pomieszczenie i przegrody</strong><small>Powietrze, ściany, wyposażenie, wentylacja, zyski słoneczne</small></span>
                </button>
                <button class="rk-ic-layer" type="button" data-rk-ic-layer="finish">
                  <span class="rk-ic-layer-number">4</span>
                  <span class="rk-ic-layer-copy"><strong>Okładzina i podkład</strong><small>Płytki, kamień, winyl, drewno, laminat albo wykładzina</small></span>
                </button>
                <button class="rk-ic-layer is-active is-selected" type="button" data-rk-ic-layer="screed">
                  <span class="rk-ic-layer-number">3</span>
                  <span class="rk-ic-layer-copy"><strong>Jastrych lub płyta systemowa</strong><small>Główna aktywna masa otaczająca lub przykrywająca przewody</small></span>
                </button>
                <button class="rk-ic-layer is-active" type="button" data-rk-ic-layer="pipe">
                  <span class="rk-ic-layer-number">2</span>
                  <span class="rk-ic-layer-copy"><strong>Rura i woda</strong><small>Źródło strumienia ciepła, jego rozkład i chwilowa temperatura</small></span>
                </button>
                <button class="rk-ic-layer" type="button" data-rk-ic-layer="insulation">
                  <span class="rk-ic-layer-number">1</span>
                  <span class="rk-ic-layer-copy"><strong>Izolacja i warstwy poniżej</strong><small>Ograniczają przepływ w dół, ale nie eliminują go całkowicie</small></span>
                </button>
              </div>

              <div class="rk-ic-detail" aria-live="polite">
                <span class="rk-pg-tool-kicker">Wybrana warstwa</span>
                <h4 id="rk-ic-layer-title">Jastrych lub płyta systemowa</h4>
                <p id="rk-ic-layer-copy">W ciężkim systemie jastrych stanowi zwykle największą aktywną masę. Zmiana jego średniej temperatury wymaga energii, a po ograniczeniu zasilania część tej energii nadal płynie w stronę powierzchni.</p>
                <div class="rk-ic-detail-grid">
                  <div class="rk-ic-detail-card"><b>Co sprawdzić?</b><p id="rk-ic-layer-check">Rzeczywistą grubość, materiał, położenie rur i zakres konstrukcji uczestniczący w zmianie temperatury.</p></div>
                  <div class="rk-ic-detail-card"><b>Czego nie zakładać?</b><p id="rk-ic-layer-limit">Że sama grubość poda dokładny czas nagrzania pomieszczenia.</p></div>
                </div>
              </div>
            </div>

            <div class="rk-pg-tool-disclaimer"><strong>Jak czytać grafikę:</strong> podświetlenie oznacza istotny udział w wybranym zjawisku, a nie wyłączną odpowiedzialność. Rzeczywista granica aktywnej masy oraz rozkład temperatur wymagają znajomości konstrukcji i warunków brzegowych.</div>
          </div>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-ic-magazyn">
        <span class="rk-pg-eyebrow">Energia nie znika po zamknięciu zaworu</span>
        <h2>Co naprawdę magazynuje ciepło w ogrzewanej podłodze?</h2>
        <p class="rk-pg-intro">Energię magazynuje każda nagrzewana część konstrukcji, ale udział poszczególnych warstw nie jest jednakowy. W typowym systemie mokrym największą pojemność ma zwykle jastrych, ponieważ łączy znaczną objętość z wysoką objętościową pojemnością cieplną.</p>

        <ul class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>1</span></span><div class="rk-pg-factor-copy"><h3>Jastrych lub płyta</h3><p>To główny magazyn systemu mokrego. Nie cała grubość musi jednak zmieniać temperaturę jednakowo i w tym samym czasie.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>2</span></span><div class="rk-pg-factor-copy"><h3>Okładzina</h3><p>Także ma masę i ciepło właściwe. Jej wpływ na magazyn trzeba oddzielić od oporu, jaki stawia przepływowi ciepła.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>3</span></span><div class="rk-pg-factor-copy"><h3>Woda i przewody</h3><p>Ich pojemność jest częścią bilansu, ale w ciężkim układzie zwykle nie dominuje nad masą otaczającego jastrychu.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>4</span></span><div class="rk-pg-factor-copy"><h3>Przegrody pomieszczenia</h3><p>Ściany, strop i wyposażenie tworzą osobny magazyn po stronie budynku. Dlatego reakcja pokoju może być wolniejsza niż reakcja powierzchni podłogi.</p></div></li>
        </ul>

        <p>Szczegółowa konstrukcja zależy od systemu oraz wymagań wykonawczych. Warto zestawić ją z poradnikami o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a> i <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki betonowej</a>. Te informacje opisują geometrię, lecz nie zastępują obliczenia dynamicznego całego pomieszczenia.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-pojemnosc-opor">
        <span class="rk-pg-eyebrow">Najczęściej pomijane rozróżnienie</span>
        <h2>Czym różni się pojemność cieplna od oporu cieplnego podłogi?</h2>
        <p class="rk-pg-intro"><strong>Pojemność cieplna określa ilość energii potrzebną do zmiany temperatury, natomiast opór cieplny opisuje ograniczenie przepływu energii.</strong> Materiał może mieć małą masę, a jednocześnie stanowić wyraźny opór pomiędzy jastrychem i pokojem.</p>

        <div class="rk-pg-grid-2">
          <article class="rk-pg-card is-cyan"><h3>Duża pojemność</h3><p>Większa ilość energii jest potrzebna do podniesienia temperatury warstwy. Po zmniejszeniu dopływu ta sama warstwa może dłużej oddawać zgromadzoną energię.</p></article>
          <article class="rk-pg-card is-orange"><h3>Duży opór</h3><p>Przy tej samej różnicy temperatur maleje strumień ciepła. Aby uzyskać potrzebną moc, może być wymagana większa różnica temperatur — o ile pozwalają na nią ograniczenia podłogi i źródła.</p></article>
        </div>

        <div class="rk-pg-warning"><p><strong>Dlatego drewno lub wykładzina nie „zmniejszają bezwładności” w prostym znaczeniu.</strong> Mogą dołożyć mniej własnej masy niż kamień, ale równocześnie zwiększyć opór drogi do pomieszczenia. Efekt na czas reakcji pokoju zależy od całego układu, nie od jednej kolumny w tabeli materiałów.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-wzor">
        <span class="rk-pg-eyebrow">Obliczenie magazynu, nie zegara</span>
        <h2>Jak obliczyć energię zgromadzoną w aktywnej warstwie podłogi?</h2>
        <p class="rk-pg-intro">Najprostszy bilans wykorzystuje objętość analizowanej warstwy, jej objętościową pojemność cieplną oraz zmianę średniej temperatury. Obliczenie pokazuje skalę magazynowanej energii, ale nie określa samodzielnie, jak szybko dotrze ona do powierzchni i pomieszczenia.</p>

        <div class="rk-pg-formula">
          <div class="rk-pg-formula-main">
            <div class="rk-pg-formula-equation">E = A × d × C<sub>v</sub> × ΔT / 3,6</div>
            <div class="rk-pg-formula-result">wynik w kWh</div>
          </div>
          <ul>
            <li><strong>A</strong> — aktywna powierzchnia analizowanej warstwy w m²,</li>
            <li><strong>d</strong> — grubość tej warstwy w metrach,</li>
            <li><strong>C<sub>v</sub></strong> — objętościowa pojemność cieplna w MJ/(m³·K),</li>
            <li><strong>ΔT</strong> — zmiana średniej temperatury warstwy w K.</li>
          </ul>
          <p><strong>Przelicznik 3,6</strong> zamienia megadżule na kilowatogodziny. Temperaturowa różnica 1 K ma w tym bilansie tę samą wartość liczbową co różnica 1°C.</p>
        </div>

        <div class="rk-pg-note"><p><strong>Aktywna warstwa jest uproszczeniem.</strong> Rozkład temperatury w przekroju nie jest jednorodny, a część energii przepływa równocześnie do pomieszczenia, w dół konstrukcji i do sąsiednich stref. Dlatego wynik jest bilansem edukacyjnym, nie pełną symulacją budynku.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-kalkulator">
        <span class="rk-pg-eyebrow">Narzędzie 2A · kalkulator energii</span>
        <h2>Kalkulator pojemności cieplnej i energii w warstwie podłogi</h2>
        <p class="rk-pg-intro">Wprowadź geometrię i właściwość analizowanej warstwy. Presety są wyłącznie przykładami poziomu pojemności objętościowej — do oceny produktu należy wpisać wartość z wiarygodnej dokumentacji materiału.</p>

        <div class="rk-pg-tool" id="rk-ic-storage-tool">
          <div class="rk-pg-tool-head">
            <span class="rk-pg-tool-kicker">Kalkulator edukacyjny</span>
            <h3>Ile energii odpowiada zmianie średniej temperatury aktywnej masy?</h3>
            <p>Narzędzie liczy pojemność na metr kwadratowy, całkowitą pojemność analizowanej warstwy oraz energię dla wybranego ΔT.</p>
          </div>
          <div class="rk-pg-tool-body">
            <div class="rk-ic-preset-tabs" role="group" aria-label="Przykładowe profile warstwy">
              <button class="rk-ic-tab is-active" type="button" data-rk-ic-preset="heavy" aria-pressed="true">Przykład ciężki</button>
              <button class="rk-ic-tab" type="button" data-rk-ic-preset="thin" aria-pressed="false">Przykład cieńszy</button>
              <button class="rk-ic-tab" type="button" data-rk-ic-preset="light" aria-pressed="false">Przykład lekki</button>
            </div>

            <div class="rk-ic-lab-layout">
              <div class="rk-ic-controls">
                <div class="rk-ic-field">
                  <div class="rk-ic-label-row"><label for="rk-ic-area">Aktywna powierzchnia</label><output class="rk-ic-output" id="rk-ic-area-output" for="rk-ic-area">100 m²</output></div>
                  <input id="rk-ic-area" type="range" min="20" max="300" step="1" value="100">
                  <div class="rk-ic-scale"><span>20 m²</span><span>300 m²</span></div>
                </div>
                <div class="rk-ic-field">
                  <div class="rk-ic-label-row"><label for="rk-ic-thickness">Grubość analizowanej warstwy</label><output class="rk-ic-output" id="rk-ic-thickness-output" for="rk-ic-thickness">65 mm</output></div>
                  <input id="rk-ic-thickness" type="range" min="20" max="100" step="1" value="65">
                  <div class="rk-ic-scale"><span>20 mm</span><span>100 mm</span></div>
                </div>
                <div class="rk-ic-field">
                  <div class="rk-ic-label-row"><label for="rk-ic-cv">Objętościowa pojemność cieplna C<sub>v</sub></label><output class="rk-ic-output" id="rk-ic-cv-output" for="rk-ic-cv">2,00 MJ/(m³·K)</output></div>
                  <input class="rk-ic-number" id="rk-ic-cv" type="number" min="0.5" max="3" step="0.05" value="2.00" inputmode="decimal">
                  <small class="rk-ic-field-help">Wartość przykładowa. Dla konkretnego materiału użyj danych producenta lub źródła projektowego.</small>
                </div>
                <div class="rk-ic-field">
                  <div class="rk-ic-label-row"><label for="rk-ic-delta">Zmiana średniej temperatury warstwy</label><output class="rk-ic-output" id="rk-ic-delta-output" for="rk-ic-delta">2,0 K</output></div>
                  <input id="rk-ic-delta" type="range" min="0.5" max="8" step="0.1" value="2">
                  <div class="rk-ic-scale"><span>0,5 K</span><span>8 K</span></div>
                </div>
              </div>

              <div class="rk-ic-results" aria-live="polite">
                <h4>Wynik dla zdefiniowanej warstwy</h4>
                <div class="rk-ic-result-grid">
                  <div class="rk-ic-result-card"><span>Objętość warstwy</span><strong id="rk-ic-result-volume">6,50 m³</strong><small>powierzchnia × grubość</small></div>
                  <div class="rk-ic-result-card"><span>Pojemność powierzchniowa</span><strong id="rk-ic-result-areal">36,1 Wh/(m²·K)</strong><small>na każdy 1 K zmiany średniej temperatury</small></div>
                  <div class="rk-ic-result-card"><span>Pojemność całej warstwy</span><strong id="rk-ic-result-capacity">3,61 kWh/K</strong><small>energia potrzebna do zmiany średniej o 1 K</small></div>
                  <div class="rk-ic-result-card"><span>Energia dla wybranego ΔT</span><strong id="rk-ic-result-energy">7,22 kWh</strong><small id="rk-ic-result-context">dla zmiany średniej temperatury o 2,0 K</small></div>
                  <div class="rk-ic-result-card is-wide"><span>Co oznacza wynik?</span><small id="rk-ic-result-explanation">To teoretyczna zmiana energii analizowanej warstwy. Nie jest to cała energia użyteczna dla pomieszczenia ani czas jego nagrzania.</small></div>
                </div>
                <div class="rk-ic-result-note" id="rk-ic-calculator-status">Wynik nie obejmuje nierównomiernego rozkładu temperatury, okładziny, wody, strat w dół, przegród pomieszczenia ani bieżącego oddawania ciepła.</div>
              </div>
            </div>

            <div class="rk-pg-tool-disclaimer"><strong>Zakres narzędzia:</strong> kalkulator odpowiada na pytanie „ile energii wiąże się ze zmianą średniej temperatury wskazanej warstwy?”. Nie odpowiada samodzielnie na pytanie „po ilu godzinach zrobi się cieplej w pokoju?”. Do tego potrzebne są opory cieplne, moc chwilowa, straty i zyski budynku oraz model sterowania.</div>
          </div>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-ic-czas">
        <span class="rk-pg-eyebrow">Zanim podamy godzinę, trzeba zdefiniować zdarzenie</span>
        <h2>Co właściwie oznacza czas nagrzewania ogrzewania podłogowego?</h2>
        <p class="rk-pg-intro">Pytanie „ile czasu nagrzewa się podłogówka?” ma kilka różnych znaczeń. Bez określenia punktu startowego i oczekiwanego rezultatu każda odpowiedź w godzinach może wyglądać konkretnie, ale nie musi być użyteczna.</p>

        <div class="rk-pg-grid-4">
          <article class="rk-pg-card is-cyan"><div class="rk-pg-card-icon">1</div><h3>Reakcja wody</h3><p>Temperatura zasilania może zmienić się szybko, lecz nie oznacza to natychmiastowej zmiany powierzchni.</p></article>
          <article class="rk-pg-card is-orange"><div class="rk-pg-card-icon">2</div><h3>Reakcja powierzchni</h3><p>Liczy się czas dotarcia zaburzenia od rury do wykończenia oraz zmiana rozkładu temperatury w przekroju.</p></article>
          <article class="rk-pg-card is-green"><div class="rk-pg-card-icon">3</div><h3>Reakcja pokoju</h3><p>Wzrost temperatury zależy od różnicy pomiędzy mocą dostarczaną i aktualnymi stratami lub zyskami.</p></article>
          <article class="rk-pg-card is-purple"><div class="rk-pg-card-icon">4</div><h3>Stan ustalony</h3><p>Pełne zbliżenie do nowej równowagi może trwać znacznie dłużej niż pierwsza zauważalna zmiana.</p></article>
        </div>

        <p>Innym zdarzeniem jest rozruch normalnie eksploatowanego domu, innym ponowne ogrzanie wychłodzonego budynku, a jeszcze innym technologiczne wygrzewanie nowej wylewki. Nie należy łączyć tych procedur ani przenosić czasu z jednego przypadku na drugi.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-wykres">
        <span class="rk-pg-eyebrow">Narzędzie 2B · laboratorium odpowiedzi</span>
        <h2>Interaktywny wykres: co dzieje się po włączeniu, wyłączeniu i pojawieniu się słońca?</h2>
        <p class="rk-pg-intro">Porównaj trzy umowne profile konstrukcji i trzy zdarzenia. Linie są znormalizowanym modelem edukacyjnym: pokazują kierunek oraz opóźnienie zmian, ale nie są prognozą konkretnego domu.</p>

        <div class="rk-pg-tool" id="rk-ic-response-tool">
          <div class="rk-pg-tool-head">
            <span class="rk-pg-tool-kicker">Interaktywny model jakościowy</span>
            <h3>Zobacz różnicę między sygnałem grzania, powierzchnią podłogi i reakcją pokoju</h3>
            <p>Zmień konstrukcję, wybierz zdarzenie i przesuń czas. Wartości procentowe opisują względną odpowiedź modelu, nie temperaturę w °C.</p>
          </div>
          <div class="rk-pg-tool-body">
            <div class="rk-ic-chart-controls">
              <div class="rk-ic-chart-control-group">
                <b>Profil konstrukcji</b>
                <div class="rk-ic-profile-tabs" role="group" aria-label="Wybierz profil konstrukcji">
                  <button class="rk-ic-tab is-active" type="button" data-rk-ic-profile="heavy" aria-pressed="true">Mokry ciężki</button>
                  <button class="rk-ic-tab" type="button" data-rk-ic-profile="thin" aria-pressed="false">Mokry cieńszy</button>
                  <button class="rk-ic-tab" type="button" data-rk-ic-profile="dry" aria-pressed="false">Suchy lekki</button>
                </div>
              </div>
              <div class="rk-ic-chart-control-group">
                <b>Zdarzenie od godziny 0</b>
                <div class="rk-ic-scenario-tabs" role="group" aria-label="Wybierz zdarzenie">
                  <button class="rk-ic-tab is-active" type="button" data-rk-ic-scenario="start" aria-pressed="true">Włączenie mocy</button>
                  <button class="rk-ic-tab" type="button" data-rk-ic-scenario="stop" aria-pressed="false">Odcięcie mocy</button>
                  <button class="rk-ic-tab" type="button" data-rk-ic-scenario="sun" aria-pressed="false">Słońce po 6 h</button>
                </div>
              </div>
            </div>

            <div class="rk-ic-chart-shell">
              <div class="rk-ic-chart-wrap">
                <svg class="rk-ic-chart-svg" id="rk-ic-response-chart" role="img" aria-labelledby="rk-ic-chart-title rk-ic-chart-desc">
                  <title id="rk-ic-chart-title">Względna odpowiedź ogrzewanej podłogi w czasie</title>
                  <desc id="rk-ic-chart-desc">Wykres porównuje sygnał grzania, opóźnioną odpowiedź powierzchni podłogi i dalszą odpowiedź pomieszczenia.</desc>
                </svg>
              </div>
              <div class="rk-ic-legend" aria-label="Legenda wykresu">
                <span class="rk-ic-legend-item is-input"><span class="rk-ic-legend-swatch"></span>Sygnał grzania lub zysk</span>
                <span class="rk-ic-legend-item"><span class="rk-ic-legend-swatch"></span>Odpowiedź powierzchni</span>
                <span class="rk-ic-legend-item is-room"><span class="rk-ic-legend-swatch"></span>Względny efekt w pomieszczeniu</span>
              </div>
            </div>

            <div class="rk-ic-time-control">
              <div class="rk-ic-label-row"><label for="rk-ic-time">Odczyt w wybranej chwili</label><output class="rk-ic-output" id="rk-ic-time-output" for="rk-ic-time">8,0 h</output></div>
              <input id="rk-ic-time" type="range" min="0" max="24" step="0.25" value="8">
              <div class="rk-ic-scale"><span>0 h</span><span>12 h</span><span>24 h</span></div>
              <div class="rk-ic-chart-readout" aria-live="polite">
                <div class="rk-ic-readout"><span>Sygnał / zysk</span><strong id="rk-ic-readout-input">100%</strong></div>
                <div class="rk-ic-readout"><span>Powierzchnia</span><strong id="rk-ic-readout-floor">70%</strong></div>
                <div class="rk-ic-readout"><span>Pomieszczenie</span><strong id="rk-ic-readout-room">52%</strong></div>
              </div>
            </div>

            <div class="rk-ic-chart-status" id="rk-ic-chart-status" aria-live="polite">W ciężkim systemie po zmianie sygnału powierzchnia narasta łagodniej, a odpowiedź pomieszczenia jest dodatkowo opóźniona przez straty i pojemność budynku.</div>
            <div class="rk-pg-tool-disclaimer"><strong>Ograniczenie modelu:</strong> profile używają umownych stałych czasowych tylko do porównania przebiegów. Nie wynikają z danych kalkulatora i nie zastępują symulacji konkretnego przekroju, pomieszczenia, pogody ani automatyki. Wartości 63% czy 95% odpowiedzi modelu nie są temperaturami ani gwarantowanym czasem nagrzania domu.</div>
          </div>
        </div>

        <aside class="rk-pg-cta" aria-label="Projekt ogrzewania podłogowego">
          <span class="rk-pg-cta-kicker">Kalkulator policzył magazyn. Projekt musi policzyć cały układ</span>
          <h3>Bezwładności nie dobiera się osobno od mocy, temperatury zasilania i sterowania.</h3>
          <p>Ta sama wylewka może zachowywać się inaczej w dwóch domach, ponieważ zmieniają się straty pomieszczeń, powierzchnia czynna, rozstaw rur, opór okładziny, temperatura wody, przepływy i sposób pracy źródła. W projekcie łączymy te parametry, zamiast zgadywać czas nagrzewania z samej grubości jastrychu.</p>
          <a class="rk-pg-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt ogrzewania podłogowego</a>
        </aside>
      </section>

<section class="rk-pg-section" id="rk-ic-systemy">
        <span class="rk-pg-eyebrow">Konstrukcja zmienia charakter odpowiedzi</span>
        <h2>System mokry ciężki, mokry cieńszy czy suchy — który reaguje szybciej?</h2>
        <p class="rk-pg-intro">System o mniejszej aktywnej masie zwykle szybciej zmienia temperaturę powierzchni, ale nie oznacza to automatycznie większej mocy ani niższego zużycia energii. Każdy wariant trzeba sprawdzić pod kątem mocy, temperatury powierzchni, oporu warstw i współpracy ze źródłem.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Profil konstrukcji</th><th>Aktywna masa</th><th>Typowa odpowiedź</th><th>Mocna strona</th><th>Co trzeba sprawdzić</th></tr></thead>
            <tbody>
              <tr><td data-label="Profil"><strong>System mokry ciężki</strong></td><td data-label="Masa">Duża warstwa otaczająca rury</td><td data-label="Odpowiedź">Łagodna zmiana i dłuższe oddawanie energii po ograniczeniu zasilania</td><td data-label="Mocna strona">Stabilność przy ciągłej, niskotemperaturowej pracy</td><td data-label="Sprawdź">Ryzyko przegrzewania od zysków, strategię obniżeń i rzeczywisty przekrój</td></tr>
              <tr><td data-label="Profil"><strong>System mokry cieńszy</strong></td><td data-label="Masa">Mniejsza niż w klasycznym ciężkim układzie</td><td data-label="Odpowiedź">Pośrednia, zależna od położenia rur oraz warstw nad nimi</td><td data-label="Mocna strona">Kompromis między akumulacją, wysokością konstrukcji i reakcją</td><td data-label="Sprawdź">Minimalną grubość, nośność, technologię wykonania i dokumentację systemu</td></tr>
              <tr><td data-label="Profil"><strong>System suchy lekki</strong></td><td data-label="Masa">Mała, często z płytami rozprowadzającymi</td><td data-label="Odpowiedź">Szybsza zmiana temperatury powierzchni i szybsze wychłodzenie</td><td data-label="Mocna strona">Modernizacje, ograniczona wysokość i potrzeba szybszej regulacji</td><td data-label="Sprawdź">Równomierność temperatury, moc jednostkową, akustykę i okładzinę</td></tr>
            </tbody>
          </table>
        </div>

        <p>W modernizowanych budynkach rozwiązaniem może być <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodne ogrzewanie podłogowe bez tradycyjnej wylewki</a>. Nie należy jednak wybierać go wyłącznie dlatego, że „jest szybkie”. Liczy się kompletna charakterystyka cieplna, konstrukcyjna i hydrauliczna.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-jastrych">
        <span class="rk-pg-eyebrow">Grubość to tylko jedna zmienna</span>
        <h2>Jak rodzaj i grubość jastrychu wpływają na bezwładność?</h2>
        <p class="rk-pg-intro">Zwiększenie grubości analizowanej warstwy zwiększa jej objętość, a więc również pojemność cieplną. Jednocześnie znaczenie ma przewodność, położenie rur, powierzchnia wymiany i sposób związania warstw. Dwie podłogi o tej samej całkowitej grubości nie muszą odpowiadać identycznie.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-cyan"><h3>Grubość nad rurą</h3><p>Wpływa na drogę przewodzenia do powierzchni i rozkład temperatury. Nie wolno utożsamiać jej z całkowitą grubością jastrychu bez sprawdzenia położenia przewodu.</p></article>
          <article class="rk-pg-card is-orange"><h3>Właściwości materiału</h3><p>Do bilansu dynamicznego potrzebne są co najmniej pojemność cieplna i przewodność. Sama etykieta „cementowy” lub „anhydrytowy” nie daje pełnej odpowiedzi.</p></article>
          <article class="rk-pg-card is-green"><h3>Warunki brzegowe</h3><p>Izolacja od dołu, sąsiednie pomieszczenie, temperatura gruntu albo stropu i okładzina zmieniają kierunki oraz intensywność przepływu energii.</p></article>
        </div>

        <p>Nie należy też mieszać codziennej regulacji z technologicznym uruchomieniem świeżej posadzki. Procedura wygrzewania wynika z rodzaju jastrychu, wieku, zaleceń wykonawcy i dokumentacji materiału, a nie z oczekiwanego harmonogramu ogrzewania domu.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-okladziny">
        <span class="rk-pg-eyebrow">Okładzina ma dwa różne zadania w bilansie</span>
        <h2>Płytki, winyl, drewno i wykładzina — jak naprawdę wpływają na reakcję podłogi?</h2>
        <p class="rk-pg-intro">Okładzinę trzeba opisać co najmniej przez jej opór cieplny, grubość, pojemność oraz dopuszczalną temperaturę pracy. Nieprawidłowe jest proste założenie, że materiał izolujący zawsze skraca czas reakcji, ponieważ jego mała masa może iść w parze z ograniczeniem mocy przekazywanej do pomieszczenia.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Okładzina</th><th>Wpływ na przepływ ciepła</th><th>Wpływ dynamiczny</th><th>Najważniejsza weryfikacja</th></tr></thead>
            <tbody>
              <tr><td data-label="Okładzina"><strong>Płytki lub kamień</strong></td><td data-label="Przepływ">Zwykle korzystna droga przewodzenia przy poprawnym kleju i typowej grubości</td><td data-label="Dynamika">Okładzina może dołożyć masę, ale główny magazyn nadal często stanowi jastrych</td><td data-label="Weryfikacja">Grubość, klej, dylatacje i dopuszczalna temperatura powierzchni</td></tr>
              <tr><td data-label="Okładzina"><strong>Winyl</strong></td><td data-label="Przepływ">Cienka warstwa może mieć niewielki opór, lecz wynik zależy także od podkładu</td><td data-label="Dynamika">Mała własna masa nie usuwa bezwładności warstw znajdujących się niżej</td><td data-label="Weryfikacja">Łączny opór zestawu i limit temperatury producenta</td></tr>
              <tr><td data-label="Okładzina"><strong>Drewno</strong></td><td data-label="Przepływ">Zwykle większy opór niż przy płytkach; znaczenie ma gatunek, grubość i budowa</td><td data-label="Dynamika">Może ograniczyć szybkość przekazywania mocy do pokoju mimo mniejszej własnej masy</td><td data-label="Weryfikacja">Łączny opór, stabilność wymiarowa, wilgotność i dopuszczalna temperatura</td></tr>
              <tr><td data-label="Okładzina"><strong>Wykładzina</strong></td><td data-label="Przepływ">Wykładzina i podkład mogą utworzyć istotny opór cieplny</td><td data-label="Dynamika">Nie należy wyciągać wniosku o szybszym ogrzaniu pokoju wyłącznie z małej masy</td><td data-label="Weryfikacja">Łączny opór deklarowany dla całego zestawu oraz dopuszczenie do podłogówki</td></tr>
            </tbody>
          </table>
        </div>

        <p>Osobną analizę gatunków, budowy deski i ograniczeń wykonawczych zawiera poradnik <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">jak wybrać drewno na ogrzewanie podłogowe</a>. W projekcie opór wykończenia trzeba wprowadzić do obliczeń mocy, zamiast dopisywać go dopiero po wykonaniu pętli.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-geometria">
        <span class="rk-pg-eyebrow">Geometria wpływa na moc i rozkład temperatury</span>
        <h2>Rozstaw, głębokość rur i powierzchnia czynna — czy zmieniają bezwładność?</h2>
        <p class="rk-pg-intro">Nie zmieniają pojemności cieplnej materiału, ale zmieniają sposób dostarczania energii do konstrukcji. Dlatego mogą wpływać na temperaturę powierzchni, równomierność, wymaganą temperaturę wody i obserwowany czas reakcji.</p>

        <ul class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>1</span></span><div class="rk-pg-factor-copy"><h3>Rozstaw rur</h3><p>Mniejszy rozstaw może poprawić równomierność i zwiększyć zdolność oddawania mocy przy danym parametrze. Nie „usuwa” jednak masy jastrychu.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>2</span></span><div class="rk-pg-factor-copy"><h3>Położenie przewodu</h3><p>Większa odległość od rury do powierzchni wydłuża drogę przewodzenia. Znaczenie ma także kontakt przewodu z warstwą rozprowadzającą.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>3</span></span><div class="rk-pg-factor-copy"><h3>Powierzchnia czynna</h3><p>Meble stałe, zabudowa i strefy nieogrzewane ograniczają fragment podłogi, który rzeczywiście może przekazać moc do pokoju.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>4</span></span><div class="rk-pg-factor-copy"><h3>Długość pętli</h3><p>Wpływa na opór hydrauliczny, rozkład temperatury wody i możliwy przepływ. To pośrednio zmienia chwilową moc dostarczaną do podłogi.</p></div></li>
        </ul>

        <p>Rozstaw powinien wynikać z obliczeń, co szerzej pokazuje porównanie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawu rur co 10 i 15 cm</a>. Hydrauliczny wpływ geometrii trzeba połączyć z poradnikami o <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a> i <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnicach rur ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-woda">
        <span class="rk-pg-eyebrow">Moc chwilowa nie jest tym samym co pojemność</span>
        <h2>Jak temperatura zasilania, ΔT i przepływ wpływają na czas reakcji?</h2>
        <p class="rk-pg-intro">Wyższa temperatura wody może zwiększyć chwilową różnicę temperatur i moc przekazywaną do podłogi, lecz nie zmienia pojemności cieplnej jastrychu. Zwiększanie parametru nie jest więc sposobem na „zmniejszenie bezwładności”, a jego dopuszczalność trzeba ocenić razem z powierzchnią, okładziną i źródłem.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-orange"><h3>Temperatura zasilania</h3><p>Powinna wynikać z wymaganej mocy i charakterystyki podłogi. Nie ma jednej wartości, która będzie optymalna dla każdego domu i każdej pogody.</p></article>
          <article class="rk-pg-card is-cyan"><h3>Różnica zasilanie–powrót</h3><p>Jest powiązana z mocą i przepływem. Zmiana ΔT bez sprawdzenia pozostałych danych może oznaczać inny rozkład temperatury wzdłuż pętli.</p></article>
          <article class="rk-pg-card is-green"><h3>Przepływ</h3><p>Wpływa na transport energii i warunki wymiany w rurach. Zbyt mały strumień może ograniczyć moc, ale maksymalny bieg pompy nie naprawia błędnej geometrii.</p></article>
        </div>

        <p>Powiązania te opisują szerzej poradniki o <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatur zasilania i powrotu</a>, <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompie obiegowej w podłogówce</a> oraz <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperaturze ogrzewania podłogowego</a>. Ograniczenia powierzchni i źródła trzeba dodatkowo zestawić z <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalną temperaturą zasilania podłogówki</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-budynek">
        <span class="rk-pg-eyebrow">Podłoga pracuje wewnątrz dynamicznego budynku</span>
        <h2>Dlaczego dwa pomieszczenia z taką samą podłogą reagują inaczej?</h2>
        <p class="rk-pg-intro">Temperatura pomieszczenia zmienia się zgodnie z bilansem pomiędzy mocą dostarczaną, stratami i zyskami. Dlatego ten sam układ warstw nie gwarantuje takiego samego przebiegu w salonie z dużymi przeszkleniami i w niewielkiej sypialni.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-cyan"><h3>Straty budynku</h3><p>Zmieniają się wraz z temperaturą zewnętrzną, wiatrem, wentylacją i temperaturą sąsiednich stref. Moc potrzebna o świcie może być inna niż po południu.</p></article>
          <article class="rk-pg-card is-orange"><h3>Zyski słoneczne</h3><p>Potrafią pojawić się szybciej niż ciężka podłoga ograniczy oddawanie wcześniej zgromadzonej energii. To jeden z głównych mechanizmów przegrzewania.</p></article>
          <article class="rk-pg-card is-green"><h3>Pojemność przegród</h3><p>Ściany, stropy i wyposażenie pochłaniają część energii. Temperatura powietrza, powierzchni i temperatura odczuwalna nie zmieniają się identycznie.</p></article>
        </div>

        <p>Ryzyko trzeba analizować szczególnie przy dużej ekspozycji słonecznej. Osobny poradnik pokazuje, jak projektować <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">ogrzewanie podłogowe w domu z dużymi przeszkleniami</a>. Podstawą pozostaje obliczenie <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">strat ciepła budynku</a>, a nie przypisanie jednej stałej czasowej wszystkim pokojom.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-wylaczenie">
        <span class="rk-pg-eyebrow">Termostat odcina dopływ, nie usuwa energii</span>
        <h2>Co dzieje się po wyłączeniu ogrzewania podłogowego?</h2>
        <p class="rk-pg-intro">Po zamknięciu siłownika albo wyłączeniu źródła dopływ nowej energii maleje, ale rozgrzany przekrój nadal wyrównuje temperaturę. Ciepło płynie z cieplejszych obszarów jastrychu w stronę powierzchni oraz pozostałych części konstrukcji.</p>

        <ol class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>1</span></span><div class="rk-pg-factor-copy"><h3>Sygnał zostaje odcięty</h3><p>Pompa, zawór lub siłownik zmienia stan. To informacja dla hydrauliki, nie natychmiastowa zmiana temperatury całej podłogi.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>2</span></span><div class="rk-pg-factor-copy"><h3>Woda i rura reagują</h3><p>Temperatura czynnika zaczyna się zmieniać, lecz jastrych w pobliżu przewodu zachowuje część wcześniej dostarczonej energii.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>3</span></span><div class="rk-pg-factor-copy"><h3>Powierzchnia nadal oddaje ciepło</h3><p>Strumień nie znika skokowo. Jego tempo zależy od rozkładu temperatury, oporów i warunków w pomieszczeniu.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>4</span></span><div class="rk-pg-factor-copy"><h3>Pokój dochodzi do nowej równowagi</h3><p>Jeżeli równocześnie pojawi się słońce albo duże zyski wewnętrzne, temperatura może jeszcze wzrosnąć mimo odcięcia grzania.</p></div></li>
        </ol>

        <div class="rk-pg-warning"><p><strong>Przegrzanie nie jest automatycznym dowodem wadliwego termostatu.</strong> Trzeba sprawdzić krzywą grzewczą, temperaturę wody, strefowanie, położenie czujnika, histerezę, pogodę, zyski i to, ile energii wcześniej zgromadzono w konstrukcji.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-sterowanie">
        <span class="rk-pg-eyebrow">Regulacja ma prowadzić, nie walczyć z podłogą</span>
        <h2>Jak sterować ogrzewaniem podłogowym o dużej bezwładności?</h2>
        <p class="rk-pg-intro">Nie istnieje jeden obowiązkowy algorytm. Najczęściej dobrze działa stabilna regulacja temperatury zasilania dopasowana do pogody, uzupełniona rozsądną korektą pomieszczeniową. Szczegóły zależą od źródła, stref i sposobu użytkowania domu.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Sposób regulacji</th><th>Co rzeczywiście robi</th><th>Kiedy pomaga</th><th>Na co uważać</th></tr></thead>
            <tbody>
              <tr><td data-label="Regulacja"><strong>Krzywa grzewcza</strong></td><td data-label="Funkcja">Dostosowuje temperaturę zasilania do temperatury zewnętrznej</td><td data-label="Zastosowanie">Ogranicza potrzebę gwałtownego włączania i wyłączania dużej mocy</td><td data-label="Uwaga">Zwykła pogodówka nie przewiduje automatycznie przyszłej pogody</td></tr>
              <tr><td data-label="Regulacja"><strong>Termostat dwustanowy</strong></td><td data-label="Funkcja">Zgłasza zapotrzebowanie albo je odcina</td><td data-label="Zastosowanie">Może pełnić funkcję ogranicznika lub regulować strefę przy dobrze dobranym cyklu</td><td data-label="Uwaga">Duża histereza i zbyt wysoki parametr mogą zwiększać wahania</td></tr>
              <tr><td data-label="Regulacja"><strong>TPI/PWM, PI lub PID</strong></td><td data-label="Funkcja">Dawkuje zapotrzebowanie w czasie albo koryguje sygnał według błędu</td><td data-label="Zastosowanie">Może ograniczyć przestrzelenie przy odpowiednim dostrojeniu</td><td data-label="Uwaga">Algorytm może nadal sterować binarnym siłownikiem impulsowo</td></tr>
              <tr><td data-label="Regulacja"><strong>Predykcyjna</strong></td><td data-label="Funkcja">Wykorzystuje model, historię, harmonogram lub prognozę</td><td data-label="Zastosowanie">Może wcześniej reagować na przewidywalne zmiany</td><td data-label="Uwaga">Błędny model lub dane nie gwarantują lepszego wyniku</td></tr>
            </tbody>
          </table>
        </div>

        <p>Najpierw należy ustawić <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą grzewczą podłogówki</a> i zrozumieć działanie <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowania pogodowego</a>. Dopiero później ocenia się rolę <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatów pokojowych</a>, <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> i <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowania strefowego</a>.</p>

        <div class="rk-pg-note"><p><strong>Pompa obiegowa nie zastępuje regulacji temperatury.</strong> Jej tryb wpływa na przepływ i różnicę ciśnień. Zmniejszenie obrotów może zmienić transport mocy, ale nie jest uniwersalnym sposobem prowadzenia temperatury pomieszczeń.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-pompa-ciepla">
        <span class="rk-pg-eyebrow">Korzyść wynika głównie z niskiej temperatury</span>
        <h2>Bezwładność podłogówki a pompa ciepła — kiedy pomaga, a kiedy przeszkadza?</h2>
        <p class="rk-pg-intro">Ogrzewanie podłogowe dobrze współpracuje z pompą ciepła przede wszystkim dlatego, że może oddawać wymaganą moc przy niskiej temperaturze zasilania. Duża aktywna masa może stabilizować odbiór energii, lecz nie jest zawsze i w każdych warunkach „idealna”.</p>

        <div class="rk-pg-grid-2">
          <article class="rk-pg-card is-green"><h3>Kiedy masa pomaga</h3><ul><li>Gdy instalacja pracuje długo i stabilnie z małą temperaturą zasilania.</li><li>Gdy aktywna objętość ogranicza krótkie cykle źródła.</li><li>Gdy zmiany obciążenia są łagodne, a krzywa grzewcza poprawnie ustawiona.</li></ul></article>
          <article class="rk-pg-card is-orange"><h3>Kiedy może utrudniać</h3><ul><li>Gdy duże zyski słoneczne pojawiają się po wcześniejszym naładowaniu podłogi.</li><li>Gdy strefy zamykają większość przepływu wymaganego przez pompę ciepła.</li><li>Gdy użytkownik stosuje głębokie i krótkie obniżenia temperatury.</li></ul></article>
        </div>

        <p>W projekcie trzeba połączyć wymagania źródła z charakterystyką odbiornika, co opisuje poradnik o <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekcie ogrzewania podłogowego z pompą ciepła</a>. Niska temperatura jest korzystna, ale hasło „35°C zawsze jest idealne” trzeba zastąpić obliczeniem — więcej w analizie <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niskiej temperatury zasilania pompy ciepła</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-kociol-bufor">
        <span class="rk-pg-eyebrow">Masa podłogi nie jest zabezpieczeniem kotła</span>
        <h2>Czy bezwładność podłogi może zastąpić bufor przy kotle na paliwo stałe?</h2>
        <p class="rk-pg-intro"><strong>Nie należy traktować podłogi jako zamiennika bufora hydraulicznego ani elementów bezpieczeństwa.</strong> Konstrukcja może przyjąć i oddać pewną ilość energii, ale jej odbiór jest ograniczony temperaturą powierzchni, komfortem, przepływem, stanem stref i chwilowymi stratami budynku.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-orange"><h3>Podłoga</h3><p>Jest emiterem i magazynem o ograniczonej temperaturze. Nie można bez końca zwiększać jej energii ani zakładać, że każda pętla zawsze pozostanie otwarta.</p></article>
          <article class="rk-pg-card is-cyan"><h3>Bufor</h3><p>Ma zdefiniowaną objętość, temperatury i funkcję hydrauliczną lub energetyczną. Jego dobór zależy od źródła, wymaganych przepływów i strategii pracy.</p></article>
          <article class="rk-pg-card is-green"><h3>Zabezpieczenia</h3><p>Ochrona powrotu, odprowadzenie nadmiaru energii i pozostałe wymagania muszą wynikać z dokumentacji kotła i przepisów, niezależnie od masy podłogi.</p></article>
        </div>

        <p>Funkcję i ograniczenia zbiornika wyjaśnia poradnik <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła w ogrzewaniu podłogowym</a>. Przy źródle stałopalnym trzeba osobno przeanalizować układ opisany w artykule <a href="https://projekt-ogrzewania.pl/kotly-na-paliwa-stale-w-ogrzewaniu-podlogowym/">kotły na paliwa stałe a podłogówka</a> oraz sposób przygotowania temperatury przez <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-harmonogram">
        <span class="rk-pg-eyebrow">Obniżenie ma sens tylko w odpowiednim horyzoncie</span>
        <h2>Obniżenie nocne i tania taryfa — czy warto „ładować” podłogę?</h2>
        <p class="rk-pg-intro">Nie ma jednej poprawnej wartości obniżenia ani jednego czasu wcześniejszego startu. Wynik zależy od długości przerwy, strat budynku, pogody, pojemności konstrukcji, ceny energii, źródła i dopuszczalnej zmiany komfortu.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Strategia</th><th>Możliwa korzyść</th><th>Możliwe ograniczenie</th><th>Jak oceniać</th></tr></thead>
            <tbody>
              <tr><td data-label="Strategia"><strong>Stała temperatura</strong></td><td data-label="Korzyść">Stabilna praca i małe wahania</td><td data-label="Ograniczenie">Brak wykorzystania długich okresów nieobecności</td><td data-label="Ocena">Porównać zużycie i komfort w podobnych warunkach pogodowych</td></tr>
              <tr><td data-label="Strategia"><strong>Niewielkie obniżenie</strong></td><td data-label="Korzyść">Może ograniczyć średnią różnicę temperatur przy dłuższej przerwie</td><td data-label="Ograniczenie">Powrót do nastawy jest opóźniony</td><td data-label="Ocena">Zmieniać jedną nastawę i obserwować pełny cykl</td></tr>
              <tr><td data-label="Strategia"><strong>Głębokie krótkie obniżenie</strong></td><td data-label="Korzyść">Często niewielka przy ciężkim systemie</td><td data-label="Ograniczenie">Ryzyko braku spadku przed końcem okresu i późniejszego forsowania parametru</td><td data-label="Ocena">Nie przyjmować stałych godzin bez pomiaru budynku</td></tr>
              <tr><td data-label="Strategia"><strong>Ładowanie w tańszej taryfie</strong></td><td data-label="Korzyść">Przesunięcie części poboru na tańsze godziny</td><td data-label="Ograniczenie">Wyższa temperatura może obniżyć sprawność pompy ciepła i zwiększyć przegrzewanie</td><td data-label="Ocena">Bilansować cenę, COP, straty, komfort i realną użyteczną pojemność</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-pg-answer"><p><strong>Energia policzona przez kalkulator nie jest w całości dowolnie użytecznym magazynem taryfowym.</strong> Część przepływa do pomieszczenia już podczas ładowania, część w innych kierunkach, a dopuszczalny wzrost temperatury ogranicza komfort i charakterystyka podłogi.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-pomiar">
        <span class="rk-pg-eyebrow">Diagnoza istniejącej instalacji</span>
        <h2>Jak zmierzyć rzeczywisty czas reakcji własnej podłogówki?</h2>
        <p class="rk-pg-intro">Najbardziej użyteczna odpowiedź pochodzi z równoczesnego zapisu sygnału sterującego, temperatur wody, powierzchni, pomieszczenia i pogody. Jedna fotografia termometru nie pokazuje opóźnienia ani przyczyny zmiany.</p>

        <ol class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>1</span></span><div class="rk-pg-factor-copy"><h3>Wybierz stabilny punkt startowy</h3><p>Nie rozpoczynaj testu bezpośrednio po wietrzeniu, dużym nasłonecznieniu albo gwałtownej zmianie wszystkich nastaw.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>2</span></span><div class="rk-pg-factor-copy"><h3>Zapisuj temperaturę zewnętrzną</h3><p>Bez pogody trudno odróżnić reakcję instalacji od równoczesnej zmiany strat budynku.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>3</span></span><div class="rk-pg-factor-copy"><h3>Mierz zasilanie i powrót</h3><p>Najlepiej w stałych punktach i w krótkim, regularnym interwale. Zapisz także stan źródła i pompy.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>4</span></span><div class="rk-pg-factor-copy"><h3>Obserwuj powierzchnię</h3><p>Pomiar wykonuj w tym samym miejscu, z uwzględnieniem mebli, nasłonecznienia i niepewności czujnika.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>5</span></span><div class="rk-pg-factor-copy"><h3>Zapisuj temperaturę pomieszczenia</h3><p>Czujnik nie powinien znajdować się przy słońcu, drzwiach, nawiewie ani lokalnym źródle ciepła.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>6</span></span><div class="rk-pg-factor-copy"><h3>Zmień jeden parametr</h3><p>Jednoczesna korekta krzywej, przepływów, harmonogramu i termostatów uniemożliwia przypisanie rezultatu do przyczyny.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>7</span></span><div class="rk-pg-factor-copy"><h3>Obserwuj pełny przebieg</h3><p>Rejestruj do czasu wyraźnego ustabilizowania, najlepiej przez reprezentatywny cykl pogody, a nie przez z góry narzuconą liczbę godzin.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>8</span></span><div class="rk-pg-factor-copy"><h3>Porównuj podobne dni</h3><p>Wnioski z dwóch okresów mają sens, gdy zyski, użytkowanie i warunki zewnętrzne są możliwie zbliżone.</p></div></li>
        </ol>

        <p>Jeżeli przepływy są niestabilne albo część pętli nie pracuje, najpierw trzeba zweryfikować <a href="https://projekt-ogrzewania.pl/obieg-grzewczy-w-wodnym-ogrzewaniu-podlogowym/">obieg grzewczy podłogówki</a> i hydraulikę rozdzielacza. Analizowanie bezwładności układu z niedrożną albo zapowietrzoną pętlą prowadzi do błędnych wniosków.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-mity">
        <span class="rk-pg-eyebrow">Skróty myślowe, które psują diagnozę</span>
        <h2>Najczęstsze mity o bezwładności cieplnej podłogówki</h2>
        <div class="rk-pg-myth-grid">
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 1</span><h3>„Płytki zwiększają bezwładność, a drewno ją zmniejsza”</h3><p>Trzeba osobno ocenić masę i opór cieplny. Drewno może dołożyć mniejszą masę, ale ograniczyć przepływ mocy do pokoju.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 2</span><h3>„Podłogówka zawsze potrzebuje kilkunastu godzin”</h3><p>Pierwsza reakcja powierzchni, reakcja pomieszczenia i dojście do nowego stanu ustalonego mają różne czasy.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 3</span><h3>„Rozstaw 10 cm usuwa bezwładność”</h3><p>Mniejszy rozstaw zmienia pole temperatury i zdolność oddawania mocy, lecz nie usuwa pojemności cieplnej konstrukcji.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 4</span><h3>„Wyższe zasilanie zawsze rozwiązuje wolną reakcję”</h3><p>Może zwiększyć chwilową moc, ale także ryzyko przegrzewania, przekroczenia ograniczeń i pogorszenia sprawności źródła.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 5</span><h3>„Sterowanie włącz/wyłącz zawsze jest błędem”</h3><p>O wyniku decydują nastawy, cykl, temperatura zasilania, masa, zyski oraz sposób współpracy termostatu ze źródłem i strefami.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 6</span><h3>„Masa podłogi zastępuje bufor”</h3><p>Podłoga jest odbiornikiem o ograniczonej temperaturze i zmiennym przepływie. Nie przejmuje automatycznie funkcji hydraulicznych ani bezpieczeństwa.</p></article>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-ic-checklista">
        <span class="rk-pg-eyebrow">Dane przed projektem albo diagnozą</span>
        <h2>Checklista: co trzeba znać, aby ocenić bezwładność podłogi?</h2>
        <p class="rk-pg-intro">Im więcej poniższych danych jest potwierdzonych, tym mniej miejsca pozostaje na zgadywanie. Brak jednego parametru nie zawsze uniemożliwia analizę, ale powinien być jawnie opisanym założeniem.</p>

        <ul class="rk-pg-checklist">
          <li>Warstwy od rury do powierzchni wraz z rzeczywistymi grubościami.</li>
          <li>Rodzaj jastrychu lub kompletnego systemu suchego oraz dane cieplne materiałów.</li>
          <li>Okładzina, podkład, klej i łączny opór cieplny zestawu.</li>
          <li>Położenie, średnica, długości i rozstaw rur.</li>
          <li>Aktywna powierzchnia każdego pomieszczenia.</li>
          <li>Projektowe obciążenie cieplne i warunki obliczeniowe.</li>
          <li>Temperatura zasilania, powrotu i rzeczywiste przepływy pętli.</li>
          <li>Rodzaj źródła, jego minimalny przepływ, modulacja i sposób sterowania.</li>
          <li>Podział na strefy, rodzaj termostatów, siłowników i logika zamykania obiegów.</li>
          <li>Orientacja okien, zyski słoneczne, wentylacja i harmonogram użytkowania.</li>
          <li>Rejestr temperatur oraz stanów pracy przed i po zmianie nastawy.</li>
          <li>Oczekiwany rezultat: komfort, ograniczenie przegrzewania, taryfa czy szybsza reakcja.</li>
        </ul>
      </section>

      <section class="rk-pg-section" id="rk-ic-wnioski">
        <span class="rk-pg-eyebrow">Najważniejszy wniosek projektowy</span>
        <h2>Bezwładność nie jest wadą ani zaletą — musi pasować do budynku i sterowania</h2>
        <p class="rk-pg-intro">Ciężka podłoga może stabilnie oddawać ciepło przy niskiej temperaturze, ale wolniej reaguje na gwałtowne zyski i krótkie harmonogramy. Lekki system może szybciej zmieniać temperaturę powierzchni, lecz ma mniejszy magazyn. O wyborze nie powinna decydować jedna etykieta, tylko obliczona praca całego układu.</p>

        <div class="rk-pg-answer"><p><strong>Najpierw liczymy moc i temperatury, później oceniamy dynamikę.</strong> Konstrukcja, powierzchnia czynna, okładzina, przepływy, źródło i automatyka muszą tworzyć jeden model. Wtedy bezwładność staje się przewidywalną cechą zamiast przyczyny przypadkowego przegrzewania albo niedogrzania.</p></div>

        <aside class="rk-pg-cta" aria-label="Zamów projekt ogrzewania podłogowego">
          <span class="rk-pg-cta-kicker">Sterowanie zaczyna się od poprawnej charakterystyki podłogi</span>
          <h3>Zaprojektujmy moc, pętle, temperatury i sposób regulacji jako jeden system.</h3>
          <p>Kompletny projekt łączy OZC pomieszczeń z powierzchnią czynną, rozstawem rur, temperaturą wody, przepływami, rozdzielaczem i wymaganiami źródła. Dzięki temu nie trzeba korygować błędów podnoszeniem temperatury ani przypadkowym zamykaniem stref.</p>
          <a class="rk-pg-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        </aside>
      </section>

      <section class="rk-pg-section" id="rk-ic-zrodla">
        <span class="rk-pg-eyebrow">Weryfikacja techniczna</span>
        <h2>Źródła oficjalne, normy i badania wykorzystane w artykule</h2>
        <p class="rk-pg-intro">Artykuł rozdziela obliczenie energii warstwy od dynamicznej odpowiedzi całego pomieszczenia. Wartości materiałowe i rozwiązania wykonawcze należy każdorazowo sprawdzić w dokumentacji konkretnego systemu.</p>

        <div class="rk-pg-sources">
          <article class="rk-pg-source"><a href="https://www.iso.org/standard/65711.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13786:2017 — Dynamic thermal characteristics</a><p>Oficjalny zakres metod obliczania dynamicznych właściwości cieplnych kompletnych elementów budynku i ich warstw.</p></article>
          <article class="rk-pg-source"><a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1:2017 — Energy performance of buildings</a><p>Oficjalny zakres obliczeń godzinowych zapotrzebowania, temperatur wewnętrznych i obciążeń cieplnych budynku.</p></article>
          <article class="rk-pg-source"><a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="nofollow noopener noreferrer">Polski Komitet Normalizacyjny — PN-EN 1264-2:2021-10</a><p>Zakres normy dotyczący metod określania mocy cieplnej wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
          <article class="rk-pg-source"><a href="https://www.energy.gov/energysaver/radiant-heating" target="_blank" rel="nofollow noopener noreferrer">U.S. Department of Energy — Radiant Heating</a><p>Rządowe omówienie działania ogrzewania promiennikowego, masywnych podłóg i sposobów ich zasilania.</p></article>
          <article class="rk-pg-source"><a href="https://pure.etsmtl.ca/en/publications/semi-analytical-model-for-thermal-response-of-anhydrite-radiant-s/" target="_blank" rel="nofollow noopener noreferrer">ÉTS Montréal — model odpowiedzi płyty anhydrytowej</a><p>Repozytorium uczelni opisujące badanie pełnowymiarowej komory oraz model czasu opóźnienia i odpowiedzi powierzchni.</p></article>
        </div>

        <div class="rk-pg-warning"><p><strong>Ważne:</strong> kalkulator i wykres są narzędziami edukacyjnymi. Nie są projektem, świadectwem energetycznym, instrukcją wygrzewania jastrychu ani nastawą dla konkretnej pompy ciepła, kotła lub sterownika.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-faq">
        <span class="rk-pg-eyebrow">Najczęściej zadawane pytania</span>
        <h2>FAQ — bezwładność cieplna ogrzewania podłogowego</h2>
        <div class="rk-pg-faq">
          <details><summary>Ile czasu nagrzewa się ogrzewanie podłogowe?</summary><div class="rk-pg-faq-answer"><p>Nie ma jednej wartości dla wszystkich instalacji. Trzeba rozróżnić pierwszą zmianę temperatury powierzchni, zmianę temperatury pomieszczenia i dojście do nowego stanu ustalonego. Wynik zależy m.in. od konstrukcji, temperatury wody, mocy, strat budynku i punktu startowego.</p></div></details>
          <details><summary>Ile czasu stygnie ogrzewanie podłogowe?</summary><div class="rk-pg-faq-answer"><p>Stygnięcie zależy od ilości zgromadzonej energii, oporów cieplnych, temperatury pomieszczenia i warunków zewnętrznych. Odcięcie zasilania nie powoduje natychmiastowego zaniku mocy powierzchni.</p></div></details>
          <details><summary>Czy grubsza wylewka zawsze oznacza większą bezwładność?</summary><div class="rk-pg-faq-answer"><p>Większa objętość tego samego materiału zwiększa pojemność cieplną, ale czas reakcji zależy również od położenia rur, właściwości materiału, oporu okładziny, mocy oraz warunków po obu stronach przegrody.</p></div></details>
          <details><summary>Czy drewno zmniejsza bezwładność podłogówki?</summary><div class="rk-pg-faq-answer"><p>Nie można tego stwierdzić na podstawie samej nazwy okładziny. Drewno może mieć mniejszą własną masę niż kamień, ale zwykle tworzy większy opór cieplny i może ograniczać moc przekazywaną z jastrychu do pomieszczenia.</p></div></details>
          <details><summary>Czy system suchy nagrzewa się szybciej?</summary><div class="rk-pg-faq-answer"><p>Systemy suche o małej aktywnej masie zwykle szybciej zmieniają temperaturę powierzchni. Nadal trzeba sprawdzić ich moc, równomierność, okładzinę, izolację i dopuszczalne parametry konkretnego rozwiązania.</p></div></details>
          <details><summary>Czy rozstaw rur 10 cm przyspiesza ogrzewanie?</summary><div class="rk-pg-faq-answer"><p>Mniejszy rozstaw zmienia rozkład temperatury i może zwiększyć zdolność oddawania mocy przy danym parametrze. Nie zmniejsza jednak pojemności cieplnej jastrychu i nie gwarantuje określonego czasu reakcji pokoju.</p></div></details>
          <details><summary>Czy warto podnieść temperaturę zasilania, aby szybciej nagrzać dom?</summary><div class="rk-pg-faq-answer"><p>Podniesienie temperatury może zwiększyć chwilową moc, ale również ryzyko przegrzania, przekroczenia ograniczeń powierzchni i pogorszenia sprawności źródła. Parametr powinien wynikać z projektu i regulacji, a nie z próby pokonania bezwładności.</p></div></details>
          <details><summary>Jak ustawić termostat przy dużej bezwładności?</summary><div class="rk-pg-faq-answer"><p>Nie ma uniwersalnej histerezy ani harmonogramu. Najpierw należy poprawnie ustawić temperaturę zasilania lub krzywą grzewczą, a następnie obserwować reakcję strefy i korygować jeden parametr naraz.</p></div></details>
          <details><summary>Czy PID zawsze płynnie moduluje ogrzewanie?</summary><div class="rk-pg-faq-answer"><p>Nie. Regulator może obliczać sygnał według algorytmu PI lub PID, a jednocześnie sterować binarnym siłownikiem przez impulsy czasowe. Trzeba sprawdzić faktyczny sposób działania wyjścia i urządzenia wykonawczego.</p></div></details>
          <details><summary>Czy duża bezwładność jest dobra dla pompy ciepła?</summary><div class="rk-pg-faq-answer"><p>Może pomóc w stabilnej pracy i zwiększeniu aktywnej objętości, ale główną zaletą podłogówki dla pompy ciepła jest niska wymagana temperatura zasilania. Duża masa może utrudniać reakcję na słońce lub głębokie obniżenia.</p></div></details>
          <details><summary>Czy podłoga może zastąpić bufor ciepła?</summary><div class="rk-pg-faq-answer"><p>Nie należy jej traktować jako zamiennika funkcji hydraulicznych i zabezpieczeń bufora. Podłoga ma ograniczoną temperaturę, zmienny odbiór i może zostać częściowo odcięta przez strefy.</p></div></details>
          <details><summary>Jak obliczyć energię zgromadzoną w wylewce?</summary><div class="rk-pg-faq-answer"><p>Dla uproszczonej aktywnej warstwy można pomnożyć powierzchnię, grubość w metrach, objętościową pojemność cieplną oraz zmianę średniej temperatury, a wynik w megadżulach podzielić przez 3,6. Nie jest to jednak obliczenie dokładnego czasu nagrzania pokoju.</p></div></details>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-ic-autor">
        <div class="rk-pg-author">
          <div class="rk-pg-author-head">
            <div><span class="rk-pg-eyebrow">E-E-A-T i odpowiedzialność za treść</span><h2 id="rk-ic-author-heading">Autor i weryfikacja merytoryczna</h2><p>Treść przygotowana z perspektywy projektowania cieplnego, hydrauliki i rzeczywistego sterowania całym układem.</p></div>
            <span class="rk-pg-author-mark">Aktualizacja: 12.09.2026</span>
          </div>
          <div class="rk-pg-author-layout">
            <aside class="rk-pg-author-side">
              <div class="rk-pg-author-photo"><img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji grzewczych" width="132" height="132" loading="lazy"></div>
              <div class="rk-pg-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
              <div class="rk-pg-author-role">Projektant instalacji sanitarnych i specjalista HVAC</div>
              <div class="rk-pg-author-social-label">Profile branżowe</div>
              <div class="rk-pg-author-social">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="LinkedIn Roberta Kucharskiego"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.5 8.2H3.2V21h3.3V8.2ZM4.85 3A1.92 1.92 0 1 0 4.9 6.84 1.92 1.92 0 0 0 4.85 3ZM21 13.66c0-3.86-2.06-5.66-4.81-5.66a4.14 4.14 0 0 0-3.75 2.06V8.2H9.12V21h3.32v-6.34c0-1.67.32-3.29 2.39-3.29 2.04 0 2.07 1.91 2.07 3.4V21H21v-7.34Z"></path></svg></a>
                <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14 8.5V7c0-.74.5-.92.85-.92H17V3.13L14.05 3C11.13 3 10.47 5.16 10.47 6.55V8.5H8v3.36h2.47V21H14v-9.14h2.7l.44-3.36H14Z"></path></svg></a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 3H22l-6.77 7.74L23.2 21h-6.24l-4.89-6.39L6.49 21H3.38l7.24-8.28L2.98 3h6.4l4.42 5.84L18.9 3Zm-1.09 16.2h1.72L8.44 4.7H6.59l11.22 14.5Z"></path></svg></a>
              </div>
            </aside>
            <div class="rk-pg-author-main">
              <blockquote class="rk-pg-author-quote"><p>Nie przypisuję podłodze jednego czasu reakcji na podstawie samej grubości wylewki. Najpierw rozdzielam energię magazynowaną, drogę przepływu ciepła oraz bilans konkretnego pomieszczenia.</p></blockquote>
              <div class="rk-pg-author-cards">
                <div class="rk-pg-author-card"><b>Praktyka projektowa</b><p>Analiza OZC, powierzchni czynnej, temperatur, pętli, przepływów, rozdzielaczy, źródeł ciepła i automatyki.</p></div>
                <div class="rk-pg-author-card"><b>Metoda</b><p>Wartości obliczeniowe są oddzielane od profili edukacyjnych, a ograniczenia kalkulatora i wykresu opisano przy wynikach.</p></div>
                <div class="rk-pg-author-card"><b>Zakres aktualizacji</b><p>Poprawiono rozróżnienie pojemności i oporu, opis okładzin, sterowania, pomp ciepła, bufora oraz czasu reakcji.</p></div>
              </div>
              <div class="rk-pg-mini-label">Portale autora</div>
              <div class="rk-pg-portals"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a></div>
            </div>
          </div>
        </div>
      </section>
    </div>
  </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",
      "description": "Projektowanie ogrzewania podłogowego, obliczenia cieplne i hydraulika instalacji grzewczych.",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "inLanguage": "pl-PL",
      "potentialAction": {
        "@type": "SearchAction",
        "target": {"@type": "EntryPoint", "urlTemplate": "https://projekt-ogrzewania.pl/?s={search_term_string}"},
        "query-input": "required name=search_term_string"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {"@id": "https://projekt-ogrzewania.pl/#logo"},
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "sameAs": ["https://www.facebook.com/projektogrzewaniapl", "https://x.com/Projekt_HVAC"]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#logo",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "width": 1024,
      "height": 1024,
      "caption": "Projekt Ogrzewania"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "knowsAbout": ["ogrzewanie podłogowe", "bezwładność cieplna", "projektowe obciążenie cieplne", "hydraulika instalacji grzewczych", "pompy ciepła", "sterowanie pogodowe", "instalacje płaszczyznowe"],
      "sameAs": ["https://www.linkedin.com/in/robert-kucharski-38069b48/", "https://www.facebook.com/projektogrzewaniapl", "https://x.com/Projekt_HVAC"]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym.webp",
      "width": 945,
      "height": 945,
      "caption": "Bezwładność cieplna w ogrzewaniu podłogowym"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Poradniki", "item": "https://projekt-ogrzewania.pl/blog/"},
        {"@type": "ListItem", "position": 3, "name": "Bezwładność cieplna ogrzewania podłogowego", "item": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/"}
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#webpage",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/",
      "name": "Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?",
      "description": "Od czego zależy bezwładność cieplna podłogówki? Oblicz energię w wylewce i zobacz na wykresie, dlaczego podłoga wolno się nagrzewa i stygnie.",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#breadcrumb"},
      "primaryImageOfPage": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#primaryimage"},
      "datePublished": "2025-12-17T19:37:24+00:00",
      "dateModified": "2026-09-12T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#article"},
      "speakable": {"@type": "SpeakableSpecification", "cssSelector": ["#rk-ic-odpowiedz .rk-pg-intro", "#rk-ic-wnioski .rk-pg-intro"]}
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#article",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/",
      "headline": "Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?",
      "alternativeHeadline": "Bezwładność cieplna podłogówki — kalkulator energii, wykres reakcji i sterowanie",
      "description": "Kompletny poradnik o pojemności cieplnej podłogi, oporze warstw, czasie nagrzewania, sterowaniu, pompie ciepła i pomiarze rzeczywistej reakcji instalacji.",
      "image": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#primaryimage"},
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "datePublished": "2025-12-17T19:37:24+00:00",
      "dateModified": "2026-09-12T12:00:00+02:00",
      "wordCount": 5032,
      "articleSection": ["Bezwładność cieplna", "Ogrzewanie podłogowe", "Fizyka budowli", "Sterowanie ogrzewaniem", "Pompy ciepła", "Projektowanie instalacji"],
      "keywords": ["bezwładność cieplna ogrzewania podłogowego", "ile czasu nagrzewa się ogrzewanie podłogowe", "czas reakcji ogrzewania podłogowego", "grubość wylewki a bezwładność podłogówki", "sterowanie podłogówką o dużej bezwładności", "bezwładność podłogówki a pompa ciepła", "ile energii magazynuje wylewka", "opór cieplny posadzki"],
      "proficiencyLevel": "Intermediate",
      "dependencies": "Warstwy podłogi, właściwości cieplne materiałów, aktywna powierzchnia, obciążenie pomieszczeń, temperatury zasilania i powrotu, przepływy, źródło ciepła, pogoda oraz strategia sterowania",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "about": [
        {"@type": "DefinedTerm", "name": "Pojemność cieplna", "description": "Ilość energii związana ze zmianą temperatury analizowanej masy."},
        {"@type": "DefinedTerm", "name": "Opór cieplny", "description": "Miara ograniczenia przepływu ciepła przez warstwę lub zestaw warstw."},
        {"@type": "DefinedTerm", "name": "Odpowiedź dynamiczna", "description": "Zmiana temperatury i strumienia ciepła w czasie po zmianie warunków pracy."}
      ],
      "mentions": [
        {"@type": "Thing", "name": "Jastrych ogrzewany"},
        {"@type": "Thing", "name": "Sterowanie pogodowe"},
        {"@type": "Thing", "name": "Pompa ciepła"},
        {"@type": "Thing", "name": "Bufor ciepła"}
      ],
      "hasPart": [
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#concept-app"},
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#lab-app"},
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#systems-list"},
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#faq-schema"}
      ],
      "citation": [
        "https://www.iso.org/standard/65711.html",
        "https://www.iso.org/standard/65696.html",
        "https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html",
        "https://www.energy.gov/energysaver/radiant-heating",
        "https://pure.etsmtl.ca/en/publications/semi-analytical-model-for-thermal-response-of-anhydrite-radiant-s/"
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#concept-app",
      "name": "Interaktywna mapa pojemności, oporu i reakcji podłogi",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#rk-ic-droga-ciepla",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "softwareVersion": "1.0",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "description": "Moduł pokazujący udział pomieszczenia, okładziny, jastrychu, rur i izolacji w magazynowaniu energii, oporze cieplnym oraz odpowiedzi dynamicznej.",
      "featureList": ["trzy rozdzielone zjawiska", "pięć warstw konstrukcji", "opis funkcji warstw", "ograniczenia interpretacji"]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#lab-app",
      "name": "Kalkulator energii warstwy i wykres reakcji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#rk-ic-kalkulator",
      "applicationCategory": "CalculatorApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką",
      "browserRequirements": "JavaScript i SVG",
      "isAccessibleForFree": true,
      "softwareVersion": "1.0",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "description": "Kalkulator pojemności cieplnej aktywnej warstwy połączony ze znormalizowanym wykresem odpowiedzi ciężkiej, cieńszej i lekkiej konstrukcji.",
      "featureList": ["objętość warstwy", "pojemność w kWh na kelwin", "energia dla wybranego delta T", "trzy profile konstrukcji", "trzy zdarzenia dynamiczne", "odczyt odpowiedzi w czasie"]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#howto",
      "name": "Jak zmierzyć czas reakcji ogrzewania podłogowego",
      "description": "Metoda rejestracji temperatur, stanów pracy i pogody potrzebna do oceny rzeczywistej odpowiedzi instalacji.",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Wybierz stabilny punkt startowy", "text": "Rozpocznij pomiar bez świeżego wietrzenia, silnego słońca i równoczesnej zmiany wielu nastaw."},
        {"@type": "HowToStep", "position": 2, "name": "Zapisuj temperaturę zewnętrzną", "text": "Rejestruj pogodę, aby oddzielić reakcję instalacji od zmiany strat budynku."},
        {"@type": "HowToStep", "position": 3, "name": "Mierz zasilanie i powrót", "text": "Zapisuj temperatury w stałych punktach oraz stan źródła i pompy."},
        {"@type": "HowToStep", "position": 4, "name": "Obserwuj temperaturę powierzchni", "text": "Mierz zawsze w tym samym miejscu i zanotuj wpływ mebli lub nasłonecznienia."},
        {"@type": "HowToStep", "position": 5, "name": "Zapisuj temperaturę pomieszczenia", "text": "Umieść czujnik z dala od słońca, nawiewu i lokalnych źródeł ciepła."},
        {"@type": "HowToStep", "position": 6, "name": "Zmień jeden parametr", "text": "Nie zmieniaj jednocześnie krzywej, przepływów, harmonogramu i termostatów."},
        {"@type": "HowToStep", "position": 7, "name": "Obserwuj pełny przebieg", "text": "Prowadź rejestr do wyraźnego ustabilizowania zamiast kończyć go po z góry ustalonej liczbie godzin."},
        {"@type": "HowToStep", "position": 8, "name": "Porównaj podobne warunki", "text": "Porównuj okresy o zbliżonej pogodzie, użytkowaniu i zyskach cieplnych."}
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#systems-list",
      "name": "Porównanie profili konstrukcji ogrzewania podłogowego",
      "numberOfItems": 3,
      "itemListOrder": "https://schema.org/ItemListUnordered",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "System mokry ciężki", "description": "Duża aktywna masa, łagodna odpowiedź i dłuższe oddawanie energii."},
        {"@type": "ListItem", "position": 2, "name": "System mokry cieńszy", "description": "Pośrednia aktywna masa i reakcja zależna od położenia rur oraz warstw."},
        {"@type": "ListItem", "position": 3, "name": "System suchy lekki", "description": "Mała aktywna masa, szybsza zmiana temperatury powierzchni i mniejszy magazyn."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#faq-schema",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#rk-ic-faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@type": "Question", "name": "Ile czasu nagrzewa się ogrzewanie podłogowe?", "acceptedAnswer": {"@type": "Answer", "text": "Nie ma jednej wartości dla wszystkich instalacji. Trzeba rozróżnić pierwszą zmianę temperatury powierzchni, zmianę temperatury pomieszczenia i dojście do nowego stanu ustalonego. Wynik zależy m.in. od konstrukcji, temperatury wody, mocy, strat budynku i punktu startowego."}},
        {"@type": "Question", "name": "Ile czasu stygnie ogrzewanie podłogowe?", "acceptedAnswer": {"@type": "Answer", "text": "Stygnięcie zależy od ilości zgromadzonej energii, oporów cieplnych, temperatury pomieszczenia i warunków zewnętrznych. Odcięcie zasilania nie powoduje natychmiastowego zaniku mocy powierzchni."}},
        {"@type": "Question", "name": "Czy grubsza wylewka zawsze oznacza większą bezwładność?", "acceptedAnswer": {"@type": "Answer", "text": "Większa objętość tego samego materiału zwiększa pojemność cieplną, ale czas reakcji zależy również od położenia rur, właściwości materiału, oporu okładziny, mocy oraz warunków po obu stronach przegrody."}},
        {"@type": "Question", "name": "Czy drewno zmniejsza bezwładność podłogówki?", "acceptedAnswer": {"@type": "Answer", "text": "Nie można tego stwierdzić na podstawie samej nazwy okładziny. Drewno może mieć mniejszą własną masę niż kamień, ale zwykle tworzy większy opór cieplny i może ograniczać moc przekazywaną z jastrychu do pomieszczenia."}},
        {"@type": "Question", "name": "Czy system suchy nagrzewa się szybciej?", "acceptedAnswer": {"@type": "Answer", "text": "Systemy suche o małej aktywnej masie zwykle szybciej zmieniają temperaturę powierzchni. Nadal trzeba sprawdzić ich moc, równomierność, okładzinę, izolację i dopuszczalne parametry konkretnego rozwiązania."}},
        {"@type": "Question", "name": "Czy rozstaw rur 10 cm przyspiesza ogrzewanie?", "acceptedAnswer": {"@type": "Answer", "text": "Mniejszy rozstaw zmienia rozkład temperatury i może zwiększyć zdolność oddawania mocy przy danym parametrze. Nie zmniejsza jednak pojemności cieplnej jastrychu i nie gwarantuje określonego czasu reakcji pokoju."}},
        {"@type": "Question", "name": "Czy warto podnieść temperaturę zasilania, aby szybciej nagrzać dom?", "acceptedAnswer": {"@type": "Answer", "text": "Podniesienie temperatury może zwiększyć chwilową moc, ale również ryzyko przegrzania, przekroczenia ograniczeń powierzchni i pogorszenia sprawności źródła. Parametr powinien wynikać z projektu i regulacji, a nie z próby pokonania bezwładności."}},
        {"@type": "Question", "name": "Jak ustawić termostat przy dużej bezwładności?", "acceptedAnswer": {"@type": "Answer", "text": "Nie ma uniwersalnej histerezy ani harmonogramu. Najpierw należy poprawnie ustawić temperaturę zasilania lub krzywą grzewczą, a następnie obserwować reakcję strefy i korygować jeden parametr naraz."}},
        {"@type": "Question", "name": "Czy PID zawsze płynnie moduluje ogrzewanie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Regulator może obliczać sygnał według algorytmu PI lub PID, a jednocześnie sterować binarnym siłownikiem przez impulsy czasowe. Trzeba sprawdzić faktyczny sposób działania wyjścia i urządzenia wykonawczego."}},
        {"@type": "Question", "name": "Czy duża bezwładność jest dobra dla pompy ciepła?", "acceptedAnswer": {"@type": "Answer", "text": "Może pomóc w stabilnej pracy i zwiększeniu aktywnej objętości, ale główną zaletą podłogówki dla pompy ciepła jest niska wymagana temperatura zasilania. Duża masa może utrudniać reakcję na słońce lub głębokie obniżenia."}},
        {"@type": "Question", "name": "Czy podłoga może zastąpić bufor ciepła?", "acceptedAnswer": {"@type": "Answer", "text": "Nie należy jej traktować jako zamiennika funkcji hydraulicznych i zabezpieczeń bufora. Podłoga ma ograniczoną temperaturę, zmienny odbiór i może zostać częściowo odcięta przez strefy."}},
        {"@type": "Question", "name": "Jak obliczyć energię zgromadzoną w wylewce?", "acceptedAnswer": {"@type": "Answer", "text": "Dla uproszczonej aktywnej warstwy można pomnożyć powierzchnię, grubość w metrach, objętościową pojemność cieplną oraz zmianę średniej temperatury, a wynik w megadżulach podzielić przez 3,6. Nie jest to jednak obliczenie dokładnego czasu nagrzania pokoju."}}
      ]
    }
  ]
}
</script>

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

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

  function byId(id) { return document.getElementById(id); }
  function setText(id, value) {
    var element = byId(id);
    if (element) { element.textContent = value; }
  }
  function numberValue(id) {
    var element = byId(id);
    if (!element) { return NaN; }
    return Number(String(element.value).replace(",", "."));
  }
  function formatNumber(value, digits) {
    return new Intl.NumberFormat("pl-PL", { minimumFractionDigits: digits, maximumFractionDigits: digits }).format(value);
  }
  function setPressed(buttons, activeButton) {
    buttons.forEach(function (button) {
      var active = button === activeButton;
      button.classList.toggle("is-active", active);
      button.setAttribute("aria-pressed", active ? "true" : "false");
    });
  }

  var conceptModes = {
    capacity: {
      title: "Wybrano: pojemność cieplna",
      copy: "Największy udział ma zwykle aktywna masa jastrychu lub płyty. Pozostałe nagrzewane warstwy także magazynują energię, ale ich udział zależy od grubości i właściwości materiału.",
      layers: ["screed", "pipe", "finish"],
      defaultLayer: "screed"
    },
    resistance: {
      title: "Wybrano: opór i droga ciepła",
      copy: "Liczy się cały szereg warstw od wody do powierzchni oraz warunki pod podłogą. Duży opór może ograniczyć chwilową moc mimo niewielkiej masy okładziny.",
      layers: ["finish", "screed", "insulation"],
      defaultLayer: "finish"
    },
    response: {
      title: "Wybrano: reakcja pomieszczenia",
      copy: "Na przebieg w czasie wpływa cały łańcuch: sygnał źródła, przepływ, przekrój podłogi, okładzina, straty budynku, zyski oraz algorytm sterowania.",
      layers: ["room", "finish", "screed", "pipe", "insulation"],
      defaultLayer: "room"
    }
  };

  var layerDetails = {
    room: {
      title: "Pomieszczenie i przegrody",
      copy: "Temperatura powietrza jest wynikiem bilansu całego pokoju. Ściany, strop, wyposażenie i wentylacja mają własne pojemności oraz opory, a słońce i użytkownicy mogą szybko zmienić zyski.",
      check: "Straty cieplne, wentylację, orientację okien, zyski słoneczne, położenie czujnika i temperaturę odczuwalną.",
      limit: "Że zmiana temperatury powierzchni o określoną wartość da identyczną zmianę temperatury powietrza."
    },
    finish: {
      title: "Okładzina i podkład",
      copy: "Warstwa wykończeniowa magazynuje część energii, ale równocześnie stanowi drogę przewodzenia do pomieszczenia. Mała masa nie oznacza automatycznie szybkiego ogrzania pokoju, gdy opór cieplny jest wysoki.",
      check: "Łączną grubość, opór całego zestawu, sposób montażu, dopuszczenie do ogrzewania i limit temperatury.",
      limit: "Że płytki zawsze zwiększają, a drewno lub wykładzina zawsze zmniejszają bezwładność całego systemu."
    },
    screed: {
      title: "Jastrych lub płyta systemowa",
      copy: "W ciężkim systemie jastrych stanowi zwykle największą aktywną masę. Zmiana jego średniej temperatury wymaga energii, a po ograniczeniu zasilania część tej energii nadal płynie w stronę powierzchni.",
      check: "Rzeczywistą grubość, materiał, położenie rur i zakres konstrukcji uczestniczący w zmianie temperatury.",
      limit: "Że sama grubość poda dokładny czas nagrzania pomieszczenia."
    },
    pipe: {
      title: "Rura i woda",
      copy: "Temperatura oraz przepływ wody określają chwilowy strumień dostarczany do konstrukcji. Rura rozprowadza energię przestrzennie, ale nie zmienia ciepła właściwego jastrychu.",
      check: "Zasilanie, powrót, przepływ, średnicę, długość, rozstaw oraz kontakt rury z materiałem przewodzącym.",
      limit: "Że maksymalny przepływ albo minimalny rozstaw automatycznie usuwa opóźnienie aktywnej masy."
    },
    insulation: {
      title: "Izolacja i warstwy poniżej",
      copy: "Izolacja ogranicza przepływ energii w dół i kieruje większą część strumienia ku ogrzewanemu pomieszczeniu. Rzeczywisty udział strat zależy od całej konstrukcji i temperatur po obu stronach.",
      check: "Grubość, przewodność, mostki, warstwy stropu lub podłoża oraz temperaturę przestrzeni poniżej.",
      limit: "Że każde ciepło zgromadzone w jastrychu będzie później w całości użytecznie oddane do tego samego pokoju."
    }
  };

  var conceptButtons = root.querySelectorAll("[data-rk-ic-concept]");
  var layerButtons = root.querySelectorAll("[data-rk-ic-layer]");
  var currentConcept = "capacity";

  function renderLayer(layerKey) {
    var detail = layerDetails[layerKey];
    if (!detail) { return; }
    layerButtons.forEach(function (button) {
      button.classList.toggle("is-selected", button.getAttribute("data-rk-ic-layer") === layerKey);
    });
    setText("rk-ic-layer-title", detail.title);
    setText("rk-ic-layer-copy", detail.copy);
    setText("rk-ic-layer-check", detail.check);
    setText("rk-ic-layer-limit", detail.limit);
  }

  function renderConcept(key) {
    var mode = conceptModes[key];
    if (!mode) { return; }
    currentConcept = key;
    conceptButtons.forEach(function (button) {
      var active = button.getAttribute("data-rk-ic-concept") === key;
      button.classList.toggle("is-active", active);
      button.setAttribute("aria-pressed", active ? "true" : "false");
    });
    layerButtons.forEach(function (button) {
      var layerKey = button.getAttribute("data-rk-ic-layer");
      button.classList.toggle("is-active", mode.layers.indexOf(layerKey) !== -1);
    });
    var status = byId("rk-ic-concept-status");
    if (status) {
      var statusTitle = status.querySelector("b");
      var statusCopy = status.querySelector("p");
      if (statusTitle) { statusTitle.textContent = mode.title; }
      if (statusCopy) { statusCopy.textContent = mode.copy; }
    }
    renderLayer(mode.defaultLayer);
  }

  conceptButtons.forEach(function (button) {
    button.addEventListener("click", function () { renderConcept(button.getAttribute("data-rk-ic-concept")); });
  });
  layerButtons.forEach(function (button) {
    button.addEventListener("click", function () { renderLayer(button.getAttribute("data-rk-ic-layer")); });
  });

  var storagePresets = {
    heavy: { thickness: 65, cv: 2.00, profile: "heavy" },
    thin: { thickness: 35, cv: 1.55, profile: "thin" },
    light: { thickness: 25, cv: 1.05, profile: "dry" }
  };
  var presetButtons = root.querySelectorAll("[data-rk-ic-preset]");

  function setCalculatorInvalid(message) {
    setText("rk-ic-result-volume", "—");
    setText("rk-ic-result-areal", "—");
    setText("rk-ic-result-capacity", "—");
    setText("rk-ic-result-energy", "—");
    setText("rk-ic-result-context", "Popraw dane wejściowe");
    setText("rk-ic-result-explanation", "Wynik pojawi się po podaniu wartości z dopuszczalnego zakresu.");
    setText("rk-ic-calculator-status", message);
  }

  function calculateStorage() {
    var area = numberValue("rk-ic-area");
    var thicknessMm = numberValue("rk-ic-thickness");
    var cv = numberValue("rk-ic-cv");
    var delta = numberValue("rk-ic-delta");
    var values = [area, thicknessMm, cv, delta];
    var finite = values.every(function (value) { return Number.isFinite(value); });

    setText("rk-ic-area-output", formatNumber(area, 0) + " m²");
    setText("rk-ic-thickness-output", formatNumber(thicknessMm, 0) + " mm");
    if (Number.isFinite(cv)) { setText("rk-ic-cv-output", formatNumber(cv, 2) + " MJ/(m³·K)"); }
    setText("rk-ic-delta-output", formatNumber(delta, 1) + " K");

    if (!finite) { setCalculatorInvalid("Uzupełnij wszystkie pola prawidłowymi liczbami."); return; }
    var valid = area > 0;
    if (valid) { valid = thicknessMm > 0; }
    if (valid) { valid = cv >= 0.5; }
    if (valid) { valid = cv <= 3; }
    if (valid) { valid = delta > 0; }
    if (!valid) { setCalculatorInvalid("Pojemność objętościowa musi mieścić się w zakresie 0,50–3,00 MJ/(m³·K), a pozostałe wartości muszą być dodatnie."); return; }

    var thicknessM = thicknessMm / 1000;
    var volume = area * thicknessM;
    var areal = thicknessM * cv / 3.6 * 1000;
    var capacity = area * thicknessM * cv / 3.6;
    var energy = capacity * delta;

    setText("rk-ic-result-volume", formatNumber(volume, 2) + " m³");
    setText("rk-ic-result-areal", formatNumber(areal, 1) + " Wh/(m²·K)");
    setText("rk-ic-result-capacity", formatNumber(capacity, 2) + " kWh/K");
    setText("rk-ic-result-energy", formatNumber(energy, 2) + " kWh");
    setText("rk-ic-result-context", "dla zmiany średniej temperatury o " + formatNumber(delta, 1) + " K");
    setText("rk-ic-result-explanation", "Zmiana średniej temperatury analizowanej warstwy o " + formatNumber(delta, 1) + " K odpowiada zmianie jej energii o około " + formatNumber(energy, 2) + " kWh.");
    setText("rk-ic-calculator-status", "Obliczenie obejmuje tylko zdefiniowaną warstwę. Nie określa, jaka część tej energii trafi do pomieszczenia ani jak szybko zmieni się temperatura powietrza.");
  }

  var calculatorInputs = root.querySelectorAll("#rk-ic-storage-tool input");
  calculatorInputs.forEach(function (input) {
    input.addEventListener("input", calculateStorage);
    input.addEventListener("change", calculateStorage);
  });

  var profiles = {
    heavy: { surfaceTau: 5.5, surfaceDelay: 0.8, roomTau: 8.0, roomDelay: 1.6, label: "ciężkim systemie mokrym" },
    thin: { surfaceTau: 3.0, surfaceDelay: 0.45, roomTau: 5.0, roomDelay: 1.0, label: "cieńszym systemie mokrym" },
    dry: { surfaceTau: 1.25, surfaceDelay: 0.15, roomTau: 2.8, roomDelay: 0.55, label: "lekkim systemie suchym" }
  };
  var profileButtons = root.querySelectorAll("[data-rk-ic-profile]");
  var scenarioButtons = root.querySelectorAll("[data-rk-ic-scenario]");
  var currentProfile = "heavy";
  var currentScenario = "start";

  function clamp(value, minimum, maximum) { return Math.max(minimum, Math.min(maximum, value)); }
  function rise(time, delay, tau) {
    if (time <= delay) { return 0; }
    return 1 - Math.exp(-(time - delay) / tau);
  }

  function responseAt(time) {
    var profile = profiles[currentProfile];
    var input = 0;
    var floor = 0;
    var room = 0;

    if (currentScenario === "start") {
      input = 100;
      floor = 100 * rise(time, profile.surfaceDelay, profile.surfaceTau);
      room = 100 * rise(time, profile.roomDelay, profile.roomTau);
    }
    if (currentScenario === "stop") {
      input = 0;
      floor = 100 * Math.exp(-time / profile.surfaceTau);
      room = 100 * Math.exp(-time / profile.roomTau);
    }
    if (currentScenario === "sun") {
      var solar = 0;
      if (time >= 6) { solar = 100 * Math.exp(-Math.pow((time - 9) / 2.7, 2)); }
      input = 50 + solar * 0.5;
      floor = 50 * rise(time, profile.surfaceDelay, profile.surfaceTau) + solar * 0.35;
      room = 45 * rise(time, profile.roomDelay, profile.roomTau) + solar * 0.5;
    }

    return {
      input: clamp(input, 0, 105),
      floor: clamp(floor, 0, 105),
      room: clamp(room, 0, 105)
    };
  }

  function svgElement(name, attributes, textValue) {
    var node = document.createElementNS("http://www.w3.org/2000/svg", name);
    Object.keys(attributes).forEach(function (key) { node.setAttribute(key, String(attributes[key])); });
    if (typeof textValue === "string") { node.textContent = textValue; }
    return node;
  }

  function drawChart() {
    var svg = byId("rk-ic-response-chart");
    if (!svg) { return; }
    var measured = Math.round(svg.getBoundingClientRect().width);
    var width = measured > 0 ? measured : 720;
    if (width < 280) { width = 280; }
    var height = width < 520 ? 330 : 360;
    var left = width < 420 ? 48 : 58;
    var right = 16;
    var top = 24;
    var bottom = 52;
    var plotWidth = width - left - right;
    var plotHeight = height - top - bottom;
    var maxY = 110;
    var selectedTime = numberValue("rk-ic-time");

    function xScale(value) { return left + value / 24 * plotWidth; }
    function yScale(value) { return top + (1 - value / maxY) * plotHeight; }

    while (svg.firstChild) { svg.removeChild(svg.firstChild); }
    svg.setAttribute("viewBox", "0 0 " + width + " " + height);
    svg.setAttribute("height", String(height));
    svg.appendChild(svgElement("title", {}, "Względna odpowiedź ogrzewanej podłogi w czasie"));
    svg.appendChild(svgElement("desc", {}, "Wykres porównuje sygnał grzania, opóźnioną odpowiedź powierzchni podłogi i dalszą odpowiedź pomieszczenia."));

    [0, 25, 50, 75, 100].forEach(function (tick) {
      var y = yScale(tick);
      svg.appendChild(svgElement("line", { x1: left, y1: y, x2: width - right, y2: y, class: "rk-grid" }));
      svg.appendChild(svgElement("text", { x: left - 8, y: y + 4, "text-anchor": "end", class: "rk-axis-text" }, String(tick)));
    });

    var xTicks = [0, 4, 8, 12, 16, 20, 24];
    if (width < 560) { xTicks = [0, 6, 12, 18, 24]; }
    if (width < 360) { xTicks = [0, 8, 16, 24]; }
    xTicks.forEach(function (tick) {
      var x = xScale(tick);
      svg.appendChild(svgElement("line", { x1: x, y1: top, x2: x, y2: height - bottom, class: "rk-grid" }));
      var anchor = "middle";
      if (tick === 0) { anchor = "start"; }
      if (tick === 24) { anchor = "end"; }
      svg.appendChild(svgElement("text", { x: x, y: height - bottom + 22, "text-anchor": anchor, class: "rk-axis-text" }, tick + " h"));
    });

    svg.appendChild(svgElement("rect", { x: left, y: top, width: plotWidth, height: plotHeight, class: "rk-frame" }));
    svg.appendChild(svgElement("text", { x: left + plotWidth / 2, y: height - 8, "text-anchor": "middle", class: "rk-axis-title" }, "Czas od zdarzenia [h]"));
    svg.appendChild(svgElement("text", { x: 15, y: top + plotHeight / 2, "text-anchor": "middle", transform: "rotate(-90 15 " + (top + plotHeight / 2) + ")", class: "rk-axis-title" }, "Odpowiedź względna [%]"));

    var series = [
      { key: "input", className: "rk-series-input" },
      { key: "floor", className: "rk-series-floor" },
      { key: "room", className: "rk-series-room" }
    ];
    series.forEach(function (seriesItem) {
      var path = "";
      for (var index = 0; index <= 96; index += 1) {
        var time = index / 4;
        var point = responseAt(time);
        var command = index === 0 ? "M" : "L";
        path += command + xScale(time).toFixed(2) + "," + yScale(point[seriesItem.key]).toFixed(2) + " ";
      }
      svg.appendChild(svgElement("path", { d: path.trim(), class: seriesItem.className }));
    });

    var selected = responseAt(selectedTime);
    var guideX = xScale(selectedTime);
    svg.appendChild(svgElement("line", { x1: guideX, y1: top, x2: guideX, y2: height - bottom, class: "rk-guide" }));
    svg.appendChild(svgElement("circle", { cx: guideX, cy: yScale(selected.input), r: 6, class: "rk-marker-input" }));
    svg.appendChild(svgElement("circle", { cx: guideX, cy: yScale(selected.floor), r: 6, class: "rk-marker-floor" }));
    svg.appendChild(svgElement("circle", { cx: guideX, cy: yScale(selected.room), r: 6, class: "rk-marker-room" }));
  }

  function updateChartReadout() {
    var time = numberValue("rk-ic-time");
    var point = responseAt(time);
    setText("rk-ic-time-output", formatNumber(time, 1) + " h");
    setText("rk-ic-readout-input", formatNumber(point.input, 0) + "%");
    setText("rk-ic-readout-floor", formatNumber(point.floor, 0) + "%");
    setText("rk-ic-readout-room", formatNumber(point.room, 0) + "%");

    var profile = profiles[currentProfile];
    var status = "W " + profile.label + " ";
    if (currentScenario === "start") { status += "powierzchnia reaguje po zmianie sygnału, a efekt w pomieszczeniu narasta z dodatkowym opóźnieniem. To porównanie nie określa temperatury ani gwarantowanego czasu."; }
    if (currentScenario === "stop") { status += "odcięcie mocy nie zeruje natychmiast odpowiedzi powierzchni. Pokój może jeszcze przez pewien czas korzystać z energii wcześniej zgromadzonej w konstrukcji."; }
    if (currentScenario === "sun") { status += "zysk słoneczny pojawia się szybciej niż ciężka konstrukcja zmienia swój stan. Jeżeli podłoga była wcześniej naładowana, wzrasta ryzyko przegrzania."; }
    setText("rk-ic-chart-status", status);
    drawChart();
  }

  function selectProfile(profileKey) {
    if (!profiles[profileKey]) { return; }
    currentProfile = profileKey;
    profileButtons.forEach(function (button) {
      var active = button.getAttribute("data-rk-ic-profile") === profileKey;
      button.classList.toggle("is-active", active);
      button.setAttribute("aria-pressed", active ? "true" : "false");
    });
    updateChartReadout();
  }

  profileButtons.forEach(function (button) {
    button.addEventListener("click", function () { selectProfile(button.getAttribute("data-rk-ic-profile")); });
  });
  scenarioButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      currentScenario = button.getAttribute("data-rk-ic-scenario");
      setPressed(scenarioButtons, button);
      updateChartReadout();
    });
  });

  var timeInput = byId("rk-ic-time");
  if (timeInput) {
    timeInput.addEventListener("input", updateChartReadout);
    timeInput.addEventListener("change", updateChartReadout);
  }

  presetButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      var key = button.getAttribute("data-rk-ic-preset");
      var preset = storagePresets[key];
      if (!preset) { return; }
      byId("rk-ic-thickness").value = String(preset.thickness);
      byId("rk-ic-cv").value = preset.cv.toFixed(2);
      setPressed(presetButtons, button);
      calculateStorage();
      selectProfile(preset.profile);
    });
  });

  var resizeQueued = false;
  function queueChartDraw() {
    if (resizeQueued) { return; }
    resizeQueued = true;
    window.requestAnimationFrame(function () {
      resizeQueued = false;
      drawChart();
    });
  }
  if ("ResizeObserver" in window) {
    var chartObserver = new ResizeObserver(queueChartDraw);
    var chartWrap = root.querySelector(".rk-ic-chart-wrap");
    if (chartWrap) { chartObserver.observe(chartWrap); }
  } else {
    window.addEventListener("resize", queueChartDraw);
  }

  renderConcept(currentConcept);
  calculateStorage();
  updateChartReadout();
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
