<?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 straty cieplne - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/straty-cieplne/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/straty-cieplne/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Wed, 02 Sep 2026 09:41:34 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa straty cieplne - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/straty-cieplne/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Jak oblicza się straty cieplne w budynkach?</title>
		<link>https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 20 Feb 2025 10:31:35 +0000</pubDate>
				<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Izolacja termiczna]]></category>
		<category><![CDATA[Mostki termiczne]]></category>
		<category><![CDATA[Ogrzewanie budynków]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędzanie energii]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Rekuperacja]]></category>
		<category><![CDATA[Termomodernizacja]]></category>
		<category><![CDATA[Zarządzanie energią]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[mostki termiczne]]></category>
		<category><![CDATA[obliczenia strat cieplnych]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędzanie energii]]></category>
		<category><![CDATA[straty cieplne]]></category>
		<category><![CDATA[termomodernizacja]]></category>
		<category><![CDATA[wentylacja]]></category>
		<category><![CDATA[współczynnik przenikania ciepła]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2260</guid>

					<description><![CDATA[<p>Zastanawiasz się, dlaczego rachunki za ogrzewanie są tak wysokie? Kluczem do odpowiedzi jest zrozumienie, jak oblicza się straty cieplne w budynkach. To proces, który pozwala określić, ile energii „ucieka” przez ściany, dachy, okna czy podłogi. W tym artykule znajdziesz szczegółowe wyjaśnienia, praktyczne wzory i przykłady obliczeniowe. Dowiesz się, jak współczynnik przenikania ciepła, mostki termiczne i wentylacja wpływają na utratę energii. Poznasz też sposoby na minimalizację strat, które pomogą Ci zaoszczędzić pieniądze i zwiększyć komfort termiczny w domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">Jak oblicza się straty cieplne w budynkach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-heat-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #d69a16;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }
  #rk-heat-guide,
  #rk-heat-guide * { box-sizing: border-box; }
  #rk-heat-guide img,
  #rk-heat-guide svg { max-width: 100%; }
  #rk-heat-guide button,
  #rk-heat-guide input,
  #rk-heat-guide select,
  #rk-heat-guide label,
  #rk-heat-guide summary,
  #rk-heat-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-heat-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-heat-guide a:hover,
  #rk-heat-guide a:focus-visible { color: var(--rk-red); }
  #rk-heat-guide p,
  #rk-heat-guide ul,
  #rk-heat-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-heat-guide h2,
  #rk-heat-guide h3,
  #rk-heat-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -.035em;
    line-height: 1.15;
  }
  #rk-heat-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-heat-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-heat-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-heat-guide strong { color: var(--rk-dark); }
  #rk-heat-guide [hidden] { display: none !important; }

  #rk-heat-guide .rk-heat-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 24px 70px rgba(16, 37, 54, .11);
  }
  #rk-heat-guide .rk-heat-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-heat-guide .rk-heat-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-heat-guide .rk-heat-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff;
    font-size: .69rem;
    font-weight: 950;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-heat-guide .rk-heat-hero-title {
    position: relative;
    z-index: 1;
    max-width: 980px;
    margin: 0 0 19px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.4vw, 4.35rem);
    font-weight: 950;
    letter-spacing: -.055em;
    line-height: 1.01;
  }
  #rk-heat-guide .rk-heat-hero-title span { color: #78efff; }
  #rk-heat-guide .rk-heat-lead {
    position: relative;
    z-index: 1;
    max-width: 920px;
    margin-bottom: 25px;
    color: #d5e9f1;
    font-size: clamp(1rem, 2.15vw, 1.24rem);
    line-height: 1.65;
  }
  #rk-heat-guide .rk-heat-hero-tags,
  #rk-heat-guide .rk-heat-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }
  #rk-heat-guide .rk-heat-hero-tags { margin-bottom: 22px; }
  #rk-heat-guide .rk-heat-hero-tag {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    color: #e8f7fb;
    background: rgba(255, 255, 255, .07);
    font-size: .68rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-byline {
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .15);
    color: #bdd6df;
    font-size: .68rem;
  }
  #rk-heat-guide .rk-heat-byline strong { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 27px;
  }
  #rk-heat-guide .rk-heat-hero-metric {
    padding: 16px 17px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 15px;
    background: rgba(7, 27, 40, .34);
  }
  #rk-heat-guide .rk-heat-hero-metric b {
    display: block;
    margin-bottom: 4px;
    color: #78efff;
    font-size: .78rem;
  }
  #rk-heat-guide .rk-heat-hero-metric span {
    display: block;
    color: #d5e9f1;
    font-size: .68rem;
    line-height: 1.5;
  }

  #rk-heat-guide .rk-heat-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 18px clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-nav-label {
    padding-top: 8px;
    color: var(--rk-dark);
    font-size: .62rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  #rk-heat-guide .rk-heat-nav-track {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
  }
  #rk-heat-guide .rk-heat-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: #f0f6f8;
    font-size: .64rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
  }
  #rk-heat-guide .rk-heat-nav a:hover,
  #rk-heat-guide .rk-heat-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-heat-guide .rk-heat-content { padding: 0 clamp(20px, 5.4vw, 64px) 64px; }
  #rk-heat-guide .rk-heat-section {
    padding: clamp(42px, 7vw, 76px) 0;
    border-bottom: 1px solid var(--rk-line);
    scroll-margin-top: 18px;
  }
  #rk-heat-guide .rk-heat-section:last-of-type { border-bottom: 0; }
  #rk-heat-guide .rk-heat-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-intro {
    max-width: 940px;
    color: var(--rk-text);
    font-size: 1.08rem;
  }
  #rk-heat-guide .rk-heat-answer,
  #rk-heat-guide .rk-heat-note,
  #rk-heat-guide .rk-heat-warning,
  #rk-heat-guide .rk-heat-success {
    margin: 25px 0;
    padding: 22px 23px;
    border-radius: 16px;
  }
  #rk-heat-guide .rk-heat-answer {
    border-left: 5px solid var(--rk-cyan);
    background: var(--rk-cyan-soft);
  }
  #rk-heat-guide .rk-heat-note {
    border-left: 5px solid var(--rk-blue);
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-warning {
    border-left: 5px solid var(--rk-orange);
    background: var(--rk-orange-soft);
  }
  #rk-heat-guide .rk-heat-success {
    border-left: 5px solid var(--rk-green);
    background: var(--rk-green-soft);
  }
  #rk-heat-guide .rk-heat-answer p:last-child,
  #rk-heat-guide .rk-heat-note p:last-child,
  #rk-heat-guide .rk-heat-warning p:last-child,
  #rk-heat-guide .rk-heat-success p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-grid-2,
  #rk-heat-guide .rk-heat-grid-3,
  #rk-heat-guide .rk-heat-grid-4 {
    display: grid;
    gap: 15px;
    margin: 25px 0;
  }
  #rk-heat-guide .rk-heat-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-card {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-white);
    box-shadow: 0 10px 30px rgba(16, 37, 54, .055);
  }
  #rk-heat-guide .rk-heat-card p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-card-icon,
  #rk-heat-guide .rk-heat-number {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    margin-bottom: 14px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: .82rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-card.is-orange .rk-heat-card-icon { background: var(--rk-orange); }
  #rk-heat-guide .rk-heat-card.is-green .rk-heat-card-icon { background: var(--rk-green); }
  #rk-heat-guide .rk-heat-card.is-purple .rk-heat-card-icon { background: var(--rk-purple); }
  #rk-heat-guide .rk-heat-formula {
    margin: 25px 0;
    padding: 24px;
    border: 1px solid #b9e4ec;
    border-radius: 17px;
    text-align: center;
    background: linear-gradient(135deg, #f7fdff, #ecfafc);
  }
  #rk-heat-guide .rk-heat-formula strong {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 3vw, 1.8rem);
  }
  #rk-heat-guide .rk-heat-formula span { color: var(--rk-muted); font-size: .78rem; }
  #rk-heat-guide .rk-heat-list {
    display: grid;
    gap: 10px;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-list li {
    position: relative;
    margin: 0;
    padding: 12px 14px 12px 43px;
    border: 1px solid var(--rk-line);
    border-radius: 12px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-list li::before {
    position: absolute;
    top: 13px;
    left: 14px;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    content: "✓";
    font-size: .62rem;
    font-weight: 950;
  }

  #rk-heat-guide .rk-heat-table-wrap {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
  }
  #rk-heat-guide table {
    width: 100%;
    border-collapse: collapse;
    color: var(--rk-text);
    font-size: .82rem;
  }
  #rk-heat-guide th,
  #rk-heat-guide td {
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    vertical-align: top;
    text-align: left;
  }
  #rk-heat-guide th:last-child,
  #rk-heat-guide td:last-child { border-right: 0; }
  #rk-heat-guide tr:last-child td { border-bottom: 0; }
  #rk-heat-guide th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .025em;
  }

  #rk-heat-guide .rk-heat-tool {
    overflow: hidden;
    margin: 29px 0;
    border-radius: 22px;
    color: #e7f4f8;
    background: var(--rk-dark);
    box-shadow: 0 20px 55px rgba(16, 37, 54, .2);
  }
  #rk-heat-guide .rk-heat-tool-head {
    padding: clamp(25px, 5vw, 42px);
    background:
      radial-gradient(circle at 90% 0, rgba(37, 199, 216, .2), transparent 32%),
      linear-gradient(135deg, #15384d, #173344);
  }
  #rk-heat-guide .rk-heat-tool-head h3 {
    margin-bottom: 8px;
    color: var(--rk-white);
    font-size: clamp(1.45rem, 3.8vw, 2.45rem);
  }
  #rk-heat-guide .rk-heat-tool-head p { margin-bottom: 0; color: #c9e0e8; }
  #rk-heat-guide .rk-heat-tool-body { padding: clamp(20px, 4vw, 34px); }
  #rk-heat-guide .rk-heat-step {
    margin-bottom: 23px;
    padding: 22px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 17px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-step:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-step-title {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-step-title b {
    display: grid;
    flex: 0 0 36px;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-step-title h4 { margin: 0; color: var(--rk-white); font-size: 1.16rem; }
  #rk-heat-guide .rk-heat-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
  }
  #rk-heat-guide .rk-heat-candidates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  #rk-heat-guide .rk-heat-candidate {
    min-width: 0;
    padding: 20px;
    border: 1px solid rgba(37, 199, 216, .32);
    border-radius: 16px;
    background: rgba(10, 34, 48, .56);
  }
  #rk-heat-guide .rk-heat-candidate.is-b { border-color: rgba(255, 106, 61, .38); }
  #rk-heat-guide .rk-heat-candidate h4 {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-candidate-legend {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 0 7px;
    color: var(--rk-white);
    font-size: 1.02rem;
    font-weight: 920;
  }
  #rk-heat-guide .rk-heat-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--rk-cyan);
    box-shadow: 0 0 0 5px rgba(37, 199, 216, .12);
  }
  #rk-heat-guide .rk-heat-candidate.is-b .rk-heat-dot {
    background: var(--rk-orange);
    box-shadow: 0 0 0 5px rgba(255, 106, 61, .12);
  }
  #rk-heat-guide .rk-heat-candidate-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-field { min-width: 0; }
  #rk-heat-guide .rk-heat-field.is-wide { grid-column: 1 / -1; }
  #rk-heat-guide .rk-heat-field label {
    display: block;
    margin-bottom: 5px;
    color: #dff3f8;
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.35;
  }
  #rk-heat-guide .rk-heat-field input,
  #rk-heat-guide .rk-heat-field select {
    width: 100%;
    min-height: 45px;
    padding: 10px 12px;
    border: 1px solid #b8cbd3;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .77rem;
    font-weight: 700;
  }
  #rk-heat-guide .rk-heat-field small {
    display: block;
    margin-top: 5px;
    color: #8fb6c5;
    font-size: .59rem;
    line-height: 1.42;
  }
  #rk-heat-guide .rk-heat-field input:focus,
  #rk-heat-guide .rk-heat-field select:focus {
    outline: 3px solid rgba(37, 199, 216, .25);
    border-color: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-tool-button {
    width: 100%;
    margin-top: 18px;
    padding: 14px 18px;
    border: 0;
    border-radius: 12px;
    color: var(--rk-dark);
    background: linear-gradient(135deg, #61e7f3, #25c7d8);
    cursor: pointer;
    font-size: .84rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-tool-button:hover,
  #rk-heat-guide .rk-heat-tool-button:focus-visible { filter: brightness(1.06); }
  #rk-heat-guide .rk-heat-result-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: start;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-result-head h4 { margin-bottom: 5px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-result-head p { margin-bottom: 0; color: #bcd7e1; font-size: .74rem; }
  #rk-heat-guide .rk-heat-result-badge {
    display: inline-flex;
    padding: 8px 11px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    font-size: .62rem;
    font-weight: 950;
    white-space: nowrap;
  }
  #rk-heat-guide .rk-heat-result-badge.is-warning { color: #4f3300; background: #ffd568; }
  #rk-heat-guide .rk-heat-result-badge.is-bad { color: #59150f; background: #ff9f91; }
  #rk-heat-guide .rk-heat-result-badge.is-neutral { color: #29205d; background: #c8c1ff; }
  #rk-heat-guide .rk-heat-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }
  #rk-heat-guide .rk-heat-result-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 15px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-result-card h4 { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 15px 0;
  }
  #rk-heat-guide .rk-heat-metric {
    padding: 12px;
    border-radius: 11px;
    background: rgba(255, 255, 255, .06);
  }
  #rk-heat-guide .rk-heat-metric span {
    display: block;
    color: #93bac7;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .035em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-metric strong {
    display: block;
    margin-top: 3px;
    color: var(--rk-white);
    font-size: .96rem;
  }
  #rk-heat-guide .rk-heat-bar {
    position: relative;
    overflow: hidden;
    height: 15px;
    margin: 10px 0 7px;
    border-radius: 999px;
    background: #264b5e;
  }
  #rk-heat-guide .rk-heat-bar span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), #66e5ef);
    transition: width .3s ease;
  }
  #rk-heat-guide .rk-heat-result-card.is-b .rk-heat-bar span {
    background: linear-gradient(90deg, var(--rk-orange), #ff9b78);
  }
  #rk-heat-guide .rk-heat-layer-stack {
    display: grid;
    gap: 6px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-layer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: #dff8fb;
    font-size: .65rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-layer.is-install { background: #ffe0d4; }
  #rk-heat-guide .rk-heat-layer.is-screed { color: #eef8fb; background: #466575; }
  #rk-heat-guide .rk-heat-diagnostics {
    display: grid;
    gap: 8px;
    margin-top: 14px;
  }
  #rk-heat-guide .rk-heat-diagnostic {
    padding: 10px 12px;
    border-left: 4px solid var(--rk-yellow);
    border-radius: 8px;
    color: #f5e9c5;
    background: rgba(214, 154, 22, .12);
    font-size: .67rem;
    line-height: 1.48;
  }
  #rk-heat-guide .rk-heat-diagnostic.is-good {
    border-color: #4cd7ac;
    color: #d8fff1;
    background: rgba(22, 131, 107, .16);
  }
  #rk-heat-guide .rk-heat-diagnostic.is-bad {
    border-color: #ff786b;
    color: #ffe1dc;
    background: rgba(217, 75, 61, .15);
  }
  #rk-heat-guide .rk-heat-questions {
    margin: 14px 0 0;
    padding-left: 19px;
    color: #d9eaf0;
    font-size: .68rem;
  }
  #rk-heat-guide .rk-heat-questions li { margin-bottom: 6px; }

  #rk-heat-guide .rk-heat-chart-card {
    margin-top: 16px;
    padding: 20px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 16px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-chart-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: start;
    margin-bottom: 13px;
  }
  #rk-heat-guide .rk-heat-chart-head h4 { margin-bottom: 5px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-chart-head p { margin: 0; color: #bcd7e1; font-size: .68rem; }
  #rk-heat-guide .rk-heat-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    justify-content: flex-end;
    color: #d9eaf0;
    font-size: .62rem;
    font-weight: 800;
  }
  #rk-heat-guide .rk-heat-chart-key {
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }
  #rk-heat-guide .rk-heat-chart-key::before {
    width: 18px;
    height: 4px;
    border-radius: 999px;
    background: var(--rk-cyan);
    content: "";
  }
  #rk-heat-guide .rk-heat-chart-key.is-b::before { background: var(--rk-orange); }
  #rk-heat-guide .rk-heat-chart-key.is-demand::before {
    height: 2px;
    background: #ffd568;
  }
  #rk-heat-guide .rk-heat-chart-wrap {
    overflow: hidden;
    width: 100%;
    min-height: 350px;
    border-radius: 13px;
    background: #f8fcfd;
  }
  #rk-heat-guide .rk-heat-chart-wrap canvas {
    display: block;
    width: 100%;
    height: 350px;
  }
  #rk-heat-guide .rk-heat-chart-summary {
    margin: 11px 0 0;
    color: #a9c8d3;
    font-size: .63rem;
    line-height: 1.55;
  }
  #rk-heat-guide .rk-heat-result-status {
    display: inline-flex;
    margin-top: 8px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #d8fff1;
    background: rgba(22, 131, 107, .22);
    font-size: .61rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-result-status.is-warning {
    color: #fff2c9;
    background: rgba(214, 154, 22, .22);
  }
  #rk-heat-guide .rk-heat-result-status.is-bad {
    color: #ffe1dc;
    background: rgba(217, 75, 61, .22);
  }
  #rk-heat-guide .rk-heat-stack-scale {
    display: grid;
    gap: 6px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-stack-segment {
    position: relative;
    overflow: hidden;
    min-height: 34px;
    padding: 8px 11px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: #dff8fb;
    font-size: .63rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-stack-segment.is-install { background: #ffe0d4; }
  #rk-heat-guide .rk-heat-stack-segment.is-extra { background: #e9e5ff; }
  #rk-heat-guide .rk-heat-stack-segment span { float: right; }
  #rk-heat-guide .rk-heat-data-note {
    margin-top: 12px;
    padding: 11px 13px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 9px;
    color: #d8eef4;
    background: rgba(37, 199, 216, .08);
    font-size: .64rem;
  }

  #rk-heat-guide .rk-heat-question-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-question {
    min-width: 0;
    padding: 16px;
    border: 1px solid rgba(136, 202, 220, .24);
    border-radius: 13px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-question.is-critical {
    border-left: 4px solid var(--rk-orange);
  }
  #rk-heat-guide .rk-heat-question label {
    display: block;
    min-height: 45px;
    margin-bottom: 8px;
    color: #dff3f8;
    font-size: .68rem;
    font-weight: 850;
    line-height: 1.45;
  }
  #rk-heat-guide .rk-heat-question select {
    width: 100%;
    min-height: 45px;
    padding: 10px 12px;
    border: 1px solid #b8cbd3;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .76rem;
    font-weight: 700;
  }
  #rk-heat-guide .rk-heat-question select:focus {
    outline: 3px solid rgba(37, 199, 216, .25);
    border-color: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-critical-note {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-left: 4px solid var(--rk-orange);
    border-radius: 10px;
    color: #ffe8dc;
    background: rgba(255, 106, 61, .1);
    font-size: .65rem;
  }
  #rk-heat-guide .rk-heat-stage-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-stage-card {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 13px;
    background: rgba(255, 255, 255, .04);
  }
  #rk-heat-guide .rk-heat-stage-card.is-ready { border-color: rgba(76, 215, 172, .46); }
  #rk-heat-guide .rk-heat-stage-card.is-warning { border-color: rgba(255, 213, 104, .55); }
  #rk-heat-guide .rk-heat-stage-card.is-blocked { border-color: rgba(255, 120, 107, .58); }
  #rk-heat-guide .rk-heat-stage-number {
    display: inline-grid;
    place-items: center;
    width: 31px;
    height: 31px;
    margin-bottom: 10px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    font-size: .67rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-stage-card.is-warning .rk-heat-stage-number { background: #ffd568; }
  #rk-heat-guide .rk-heat-stage-card.is-blocked .rk-heat-stage-number { background: #ff9f91; }
  #rk-heat-guide .rk-heat-stage-card h4 { margin-bottom: 6px; color: var(--rk-white); font-size: .84rem; }
  #rk-heat-guide .rk-heat-stage-card p { margin-bottom: 10px; color: #bcd7e1; font-size: .64rem; line-height: 1.5; }
  #rk-heat-guide .rk-heat-stage-status {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    color: #d8fff1;
    background: rgba(22, 131, 107, .24);
    font-size: .57rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-stage-card.is-warning .rk-heat-stage-status {
    color: #fff2c9;
    background: rgba(214, 154, 22, .22);
  }
  #rk-heat-guide .rk-heat-stage-card.is-blocked .rk-heat-stage-status {
    color: #ffe1dc;
    background: rgba(217, 75, 61, .24);
  }
  #rk-heat-guide .rk-heat-output-stack {
    display: grid;
    gap: 12px;
    margin-top: 16px;
  }
  #rk-heat-guide .rk-heat-output-card {
    padding: 17px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 14px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-output-card h4 { margin-bottom: 10px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-output-card.is-warning { border-left: 4px solid #ffd568; }
  #rk-heat-guide .rk-heat-output-card.is-blocked { border-left: 4px solid #ff786b; }
  #rk-heat-guide .rk-heat-output-card.is-ready { border-left: 4px solid #4cd7ac; }
  #rk-heat-guide .rk-heat-output-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-output-list li {
    position: relative;
    margin: 0;
    padding: 10px 11px 10px 34px;
    border-radius: 9px;
    color: #d9eaf0;
    background: rgba(255, 255, 255, .045);
    font-size: .65rem;
    line-height: 1.45;
  }
  #rk-heat-guide .rk-heat-output-list li::before {
    position: absolute;
    top: 10px;
    left: 11px;
    color: var(--rk-cyan);
    content: "✓";
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-output-card.is-warning .rk-heat-output-list li::before { color: #ffd568; content: "!"; }
  #rk-heat-guide .rk-heat-output-card.is-blocked .rk-heat-output-list li::before { color: #ff8b7f; content: "×"; }
  #rk-heat-guide .rk-heat-empty-result {
    margin: 0;
    color: #a9c8d3;
    font-size: .66rem;
  }

  #rk-heat-guide .rk-heat-sales-cta {
    margin: 36px 0;
    padding: clamp(25px, 5vw, 42px);
    border-radius: 20px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 0, rgba(37, 199, 216, .22), transparent 30%),
      linear-gradient(135deg, #102536, #17445a);
  }
  #rk-heat-guide .rk-heat-sales-cta h3 { color: var(--rk-white); font-size: clamp(1.35rem, 3vw, 2rem); }
  #rk-heat-guide .rk-heat-sales-cta p { max-width: 920px; color: #d0e4eb; }
  #rk-heat-guide .rk-heat-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 20px;
    border-radius: 12px;
    color: var(--rk-dark) !important;
    background: linear-gradient(135deg, #63e6f1, #28c9d9);
    font-size: .79rem;
    font-weight: 950 !important;
    text-decoration: none !important;
  }
  #rk-heat-guide .rk-heat-cta-button:hover,
  #rk-heat-guide .rk-heat-cta-button:focus-visible { filter: brightness(1.07); }

  #rk-heat-guide .rk-heat-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-checklist li {
    position: relative;
    margin: 0;
    padding: 14px 14px 14px 45px;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-checklist li::before {
    position: absolute;
    top: 14px;
    left: 14px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 2px solid var(--rk-cyan);
    border-radius: 7px;
    color: var(--rk-blue);
    content: "✓";
    font-size: .65rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-faq {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }
  #rk-heat-guide .rk-heat-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-faq summary {
    position: relative;
    padding: 17px 48px 17px 18px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 880;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-faq summary::-webkit-details-marker { display: none; }
  #rk-heat-guide .rk-heat-faq summary::after {
    position: absolute;
    top: 15px;
    right: 16px;
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    content: "+";
  }
  #rk-heat-guide .rk-heat-faq details[open] summary::after { content: "−"; }
  #rk-heat-guide .rk-heat-faq-answer {
    padding: 0 18px 17px;
    color: var(--rk-text);
  }
  #rk-heat-guide .rk-heat-faq-answer p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-sources {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }
  #rk-heat-guide .rk-heat-source {
    padding: 18px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-source p { margin: 6px 0 0; color: var(--rk-muted); font-size: .77rem; }

  #rk-heat-guide .rk-heat-author {
    overflow: hidden;
    margin-top: 48px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-soft);
    scroll-margin-top: 18px;
  }
  #rk-heat-guide .rk-heat-author > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  #rk-heat-guide .rk-heat-author-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: end;
    padding: 28px 32px 22px;
    border-bottom: 1px solid var(--rk-line);
  }
  #rk-heat-guide .rk-heat-author-head h2 { margin-bottom: 6px; font-size: clamp(1.55rem, 3vw, 2.2rem); }
  #rk-heat-guide .rk-heat-author-head p { margin: 0; color: var(--rk-muted); }
  #rk-heat-guide .rk-heat-author-mark {
    max-width: 380px;
    color: var(--rk-blue);
    font-size: .61rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-align: right;
  }
  #rk-heat-guide .rk-heat-author-layout {
    display: grid;
    grid-template-columns: 255px minmax(0, 1fr);
  }
  #rk-heat-guide .rk-heat-author-side {
    padding: 30px 24px;
    color: var(--rk-white);
    text-align: center;
    background: var(--rk-dark);
  }
  #rk-heat-guide .rk-heat-author-photo {
    overflow: hidden;
    width: 145px;
    height: 145px;
    margin: 0 auto 18px;
    border: 6px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  #rk-heat-guide .rk-heat-author-name { margin-bottom: 5px; font-size: 1.08rem; font-weight: 950; }
  #rk-heat-guide .rk-heat-author-role { color: #bdd4de; font-size: .68rem; line-height: 1.55; }
  #rk-heat-guide .rk-heat-author-social-label {
    margin-top: 24px;
    color: #8ca8b5;
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }
  #rk-heat-guide .rk-heat-author-social a {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #507080;
    border-radius: 50%;
    color: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-social a:hover { border-color: var(--rk-cyan); color: var(--rk-cyan); }
  #rk-heat-guide .rk-heat-author-social svg { width: 18px; height: 18px; fill: currentColor; }
  #rk-heat-guide .rk-heat-author-main { padding: 30px 34px; }
  #rk-heat-guide .rk-heat-author-quote {
    position: relative;
    margin: 0 0 23px;
    padding: 22px 22px 22px 64px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-quote::before {
    position: absolute;
    top: 12px;
    left: 23px;
    color: var(--rk-cyan);
    content: "“";
    font-family: Georgia, serif;
    font-size: 3.7rem;
    font-weight: 900;
    line-height: 1;
  }
  #rk-heat-guide .rk-heat-author-quote p { margin: 0; color: var(--rk-dark); font-weight: 780; }
  #rk-heat-guide .rk-heat-author-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 20px; }
  #rk-heat-guide .rk-heat-author-tab {
    padding: 8px 13px;
    border-radius: 999px;
    color: var(--rk-muted);
    background: #e2edf1;
    cursor: pointer;
    font-size: .67rem;
    font-weight: 900;
  }
  #rk-heat-guide .rk-heat-author-panel { display: none; color: var(--rk-text); }
  #rk-heat-guide #rk-heat-author-about:checked ~ .rk-heat-author-layout .rk-heat-author-panel-about,
  #rk-heat-guide #rk-heat-author-exp:checked ~ .rk-heat-author-layout .rk-heat-author-panel-exp,
  #rk-heat-guide #rk-heat-author-method:checked ~ .rk-heat-author-layout .rk-heat-author-panel-method { display: block; }
  #rk-heat-guide #rk-heat-author-about:checked ~ .rk-heat-author-layout label[for="rk-heat-author-about"],
  #rk-heat-guide #rk-heat-author-exp:checked ~ .rk-heat-author-layout label[for="rk-heat-author-exp"],
  #rk-heat-guide #rk-heat-author-method:checked ~ .rk-heat-author-layout label[for="rk-heat-author-method"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }
  #rk-heat-guide .rk-heat-mini-label {
    margin: 21px 0 8px;
    color: var(--rk-muted);
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-portals { display: flex; flex-wrap: wrap; gap: 8px; }
  #rk-heat-guide .rk-heat-portals a {
    padding: 7px 11px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    background: var(--rk-white);
    font-size: .65rem;
    text-decoration: none;
  }

  @media (max-width: 900px) {
    #rk-heat-guide .rk-heat-hero-metrics,
    #rk-heat-guide .rk-heat-grid-3,
    #rk-heat-guide .rk-heat-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-author-layout { grid-template-columns: 225px minmax(0, 1fr); }
    #rk-heat-guide .rk-heat-stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 720px) {
    #rk-heat-guide { margin-top: 18px; font-size: 16px; }
    #rk-heat-guide .rk-heat-shell { border-radius: 18px; }
    #rk-heat-guide .rk-heat-nav { grid-template-columns: 1fr; gap: 5px; }
    #rk-heat-guide .rk-heat-nav-label { padding: 0 0 4px 2px; }
    #rk-heat-guide .rk-heat-nav-track { width: 100%; }
    #rk-heat-guide .rk-heat-candidates,
    #rk-heat-guide .rk-heat-result-grid,
    #rk-heat-guide .rk-heat-grid-2,
    #rk-heat-guide .rk-heat-checklist { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-result-head { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-chart-head { display: block; }
    #rk-heat-guide .rk-heat-chart-legend { justify-content: flex-start; margin-top: 10px; }
    #rk-heat-guide .rk-heat-author-head { display: block; }
    #rk-heat-guide .rk-heat-author-mark { margin-top: 12px; text-align: left; }
    #rk-heat-guide .rk-heat-author-layout { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-question-grid,
    #rk-heat-guide .rk-heat-stage-grid,
    #rk-heat-guide .rk-heat-output-list { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-table-wrap { overflow: visible; border: 0; }
    #rk-heat-guide table,
    #rk-heat-guide thead,
    #rk-heat-guide tbody,
    #rk-heat-guide tr,
    #rk-heat-guide th,
    #rk-heat-guide td { display: block; width: 100%; }
    #rk-heat-guide thead {
      position: absolute;
      overflow: hidden;
      width: 1px;
      height: 1px;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }
    #rk-heat-guide tr {
      overflow: hidden;
      margin-bottom: 13px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
    }
    #rk-heat-guide td {
      position: relative;
      padding: 39px 15px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }
    #rk-heat-guide td::before {
      position: absolute;
      top: 11px;
      left: 15px;
      color: var(--rk-blue);
      content: attr(data-label);
      font-size: .58rem;
      font-weight: 950;
      letter-spacing: .045em;
      text-transform: uppercase;
    }
  }
  @media (max-width: 500px) {
    #rk-heat-guide .rk-heat-hero { padding-left: 21px; padding-right: 21px; }
    #rk-heat-guide .rk-heat-hero-metrics,
    #rk-heat-guide .rk-heat-grid-3,
    #rk-heat-guide .rk-heat-grid-4,
    #rk-heat-guide .rk-heat-fields,
    #rk-heat-guide .rk-heat-candidate-fields,
    #rk-heat-guide .rk-heat-metrics { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-content { padding-left: 16px; padding-right: 16px; }
    #rk-heat-guide .rk-heat-nav { padding-left: 15px; padding-right: 15px; }
    #rk-heat-guide .rk-heat-nav a { font-size: .61rem; }
    #rk-heat-guide .rk-heat-author-main { padding: 24px 18px; }
    #rk-heat-guide .rk-heat-author-quote { padding-left: 58px; }
    #rk-heat-guide .rk-heat-chart-wrap,
    #rk-heat-guide .rk-heat-chart-wrap canvas { min-height: 300px; height: 300px; }
  }
  @media (prefers-reduced-motion: reduce) {
    #rk-heat-guide *,
    #rk-heat-guide *::before,
    #rk-heat-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }

  /* Laboratorium jednego pomieszczenia: pełna szerokość i układ sekwencyjny. */
  #rk-heat-guide .rk-heat-lab-group {
    margin-bottom: 17px;
    padding: 19px;
    border: 1px solid rgba(136, 202, 220, .24);
    border-radius: 15px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-lab-group:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-lab-group h4 { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-lab-group > p { color: #bcd7e1; font-size: .7rem; }
  #rk-heat-guide .rk-heat-lab-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-result-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-result-tile {
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 12px;
    background: rgba(255, 255, 255, .055);
  }
  #rk-heat-guide .rk-heat-result-tile span {
    display: block;
    color: #96bdca;
    font-size: .56rem;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-result-tile strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-white);
    font-size: 1.12rem;
    line-height: 1.22;
  }
  #rk-heat-guide .rk-heat-chart-list {
    display: grid;
    gap: 11px;
    margin: 18px 0 0;
  }
  #rk-heat-guide .rk-heat-chart-row {
    display: grid;
    grid-template-columns: minmax(110px, 1.05fr) minmax(170px, 3fr) minmax(92px, .85fr);
    gap: 11px;
    align-items: center;
  }
  #rk-heat-guide .rk-heat-chart-label { color: #d8edf3; font-size: .66rem; font-weight: 850; }
  #rk-heat-guide .rk-heat-chart-track {
    overflow: hidden;
    height: 16px;
    border-radius: 999px;
    background: #27495a;
  }
  #rk-heat-guide .rk-heat-chart-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), #64e4ef);
    transition: width .28s ease;
  }
  #rk-heat-guide .rk-heat-chart-row:nth-child(2) .rk-heat-chart-fill { background: linear-gradient(90deg, #ff6a3d, #ff9b76); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(3) .rk-heat-chart-fill { background: linear-gradient(90deg, #16836b, #43c69f); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(4) .rk-heat-chart-fill { background: linear-gradient(90deg, #695ac9, #9c8ff3); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(5) .rk-heat-chart-fill { background: linear-gradient(90deg, #d69a16, #ffd062); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(6) .rk-heat-chart-fill { background: linear-gradient(90deg, #078fbe, #43caef); }
  #rk-heat-guide .rk-heat-chart-value { color: var(--rk-white); font-size: .66rem; font-weight: 900; text-align: right; }
  #rk-heat-guide .rk-heat-formula-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 19px 0 13px;
  }
  #rk-heat-guide .rk-heat-formula-tab {
    padding: 8px 11px;
    border: 1px solid rgba(136, 202, 220, .31);
    border-radius: 999px;
    color: #d9edf3;
    background: rgba(255, 255, 255, .045);
    cursor: pointer;
    font-size: .63rem;
    font-weight: 900;
  }
  #rk-heat-guide .rk-heat-formula-tab[aria-pressed="true"] {
    border-color: var(--rk-cyan);
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-live-formula {
    padding: 18px;
    border: 1px solid rgba(37, 199, 216, .28);
    border-radius: 13px;
    background: rgba(7, 143, 190, .1);
  }
  #rk-heat-guide .rk-heat-live-formula strong { display: block; color: var(--rk-white); font-size: 1rem; }
  #rk-heat-guide .rk-heat-live-formula code {
    display: block;
    overflow-wrap: anywhere;
    margin: 8px 0;
    padding: 11px 13px;
    border: 1px solid rgba(126, 239, 255, .38);
    border-left: 4px solid var(--rk-cyan);
    border-radius: 9px;
    color: #f2fdff !important;
    background: #0b2d3f !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .73rem;
    font-weight: 800;
    line-height: 1.55;
    white-space: normal;
  }
  #rk-heat-guide .rk-heat-live-formula span { color: #bcd7e1; font-size: .68rem; }
  #rk-heat-guide .rk-heat-example-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
  }
  #rk-heat-guide .rk-heat-example-step {
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-example-step b { display: block; margin-bottom: 5px; color: var(--rk-blue); }
  #rk-heat-guide .rk-heat-example-step p { margin: 0; font-size: .78rem; }
  #rk-heat-guide .rk-heat-inline-code {
    padding: .12em .35em;
    border-radius: 5px;
    color: var(--rk-dark);
    background: #e9f1f4;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .88em;
  }
  #rk-heat-guide .rk-heat-source a { overflow-wrap: anywhere; }

  @media (max-width: 900px) {
    #rk-heat-guide .rk-heat-lab-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-result-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  @media (max-width: 620px) {
    #rk-heat-guide .rk-heat-lab-fields,
    #rk-heat-guide .rk-heat-result-strip,
    #rk-heat-guide .rk-heat-example-flow { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-chart-row { grid-template-columns: 1fr; gap: 5px; }
    #rk-heat-guide .rk-heat-chart-value { text-align: left; }
  }
</style>

<div id="rk-heat-guide">
  <article class="rk-heat-shell">
    <header class="rk-heat-hero">
      <span class="rk-heat-kicker">Bilans cieplny budynku • wzory i przykład • aktualizacja 2026</span>
      <p class="rk-heat-hero-title">Jak oblicza się straty ciepła w budynku: <span>od W/K do mocy pomieszczenia</span></p>
      <p class="rk-heat-lead">Nie wystarczy pomnożyć powierzchni domu przez przypadkowy wskaźnik W/m². Rzetelne obliczenie rozdziela przenikanie przez przegrody, mostki cieplne oraz wymianę powietrza, a wynik określa osobno dla każdego pomieszczenia i warunków projektowych.</p>
      <div class="rk-heat-hero-tags" aria-label="Zakres artykułu">
        <span class="rk-heat-hero-tag">U × A × Δθ</span>
        <span class="rk-heat-hero-tag">mostki liniowe ψ</span>
        <span class="rk-heat-hero-tag">wentylacja i infiltracja</span>
        <span class="rk-heat-hero-tag">wynik W oraz W/m²</span>
        <span class="rk-heat-hero-tag">laboratorium jednego pokoju</span>
      </div>
      <div class="rk-heat-byline">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: około 24 minuty</span>
        <span>Aktualizacja techniczna: 2 września 2026 r.</span>
      </div>
      <div class="rk-heat-hero-metrics" aria-label="Najważniejsze reguły obliczeń">
        <div class="rk-heat-hero-metric"><b>W to nie kWh</b><span>Strata projektowa jest mocą w określonych warunkach, a nie miesięcznym zużyciem energii.</span></div>
        <div class="rk-heat-hero-metric"><b>Pomieszczenia liczymy osobno</b><span>Suma obciążeń pokojów tworzy wynik budynku, lecz nie zastępuje doboru mocy w każdym wnętrzu.</span></div>
        <div class="rk-heat-hero-metric"><b>Granice mają znaczenie</b><span>Ściana zewnętrzna, grunt i strefa nieogrzewana wymagają różnych warunków brzegowych.</span></div>
      </div>
    </header>

    <nav class="rk-heat-nav" aria-label="Nawigacja po wszystkich rozdziałach artykułu">
      <span class="rk-heat-nav-label">Na skróty</span>
      <div class="rk-heat-nav-track">
        <a href="#rk-heat-szybka">Szybka odpowiedź</a>
        <a href="#rk-heat-wynik">Jaki wynik liczymy?</a>
        <a href="#rk-heat-moc-energia">W, kW i kWh</a>
        <a href="#rk-heat-skladniki">Składniki bilansu</a>
        <a href="#rk-heat-dane">Dane wejściowe</a>
        <a href="#rk-heat-temperatury">Temperatury</a>
        <a href="#rk-heat-przenikanie">Ściany i dach</a>
        <a href="#rk-heat-okna">Okna Uw i Ug</a>
        <a href="#rk-heat-grunt">Podłoga i grunt</a>
        <a href="#rk-heat-mostki">Mostki cieplne</a>
        <a href="#rk-heat-wentylacja">Wentylacja</a>
        <a href="#rk-heat-laboratorium">Laboratorium</a>
        <a href="#rk-heat-wykres">Wykres wyniku</a>
        <a href="#rk-heat-wm2">Wynik W/m²</a>
        <a href="#rk-heat-pomieszczenie-budynek">Pokój a budynek</a>
        <a href="#rk-heat-zyski">Zyski ciepła</a>
        <a href="#rk-heat-nagrzewanie">Nagrzewanie</a>
        <a href="#rk-heat-podlogowka">Straty a podłogówka</a>
        <a href="#rk-heat-zrodlo">Dobór źródła</a>
        <a href="#rk-heat-koszt">Moc a koszt</a>
        <a href="#rk-heat-bledy">Najczęstsze błędy</a>
        <a href="#rk-heat-checklista">Checklista</a>
        <a href="#rk-heat-faq">FAQ</a>
        <a href="#rk-heat-zrodla">Źródła</a>
        <a href="#rk-heat-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-heat-content">
      <section class="rk-heat-section" id="rk-heat-szybka">
        <span class="rk-heat-eyebrow">Odpowiedź w 30 sekund</span>
        <h2>Jak oblicza się straty ciepła w budynku?</h2>
        <div class="rk-heat-answer">
          <p><strong>Najpierw wyznacza się projektową stratę ciepła każdego pomieszczenia.</strong> Sumuje się strumienie przez przegrody, liniowe mostki cieplne oraz wentylację i infiltrację przy przyjętych temperaturach obliczeniowych. Dopiero suma pomieszczeń opisuje obciążenie całego budynku.</p>
        </div>
        <div class="rk-heat-formula">
          <strong>Φ<sub>HL</sub> ≈ Φ<sub>op</sub> + Φ<sub>TB</sub> + Φ<sub>V</sub></strong>
          <span>przenikanie przez przegrody + mostki cieplne + wymiana powietrza</span>
        </div>
        <p>Dla zwykłej jednorodnej przegrody punktem wyjścia jest zależność <strong>Φ = U · A · Δθ</strong>. Nie wolno jednak zastosować jej bezrefleksyjnie do każdego elementu budynku: podłoga na gruncie ma inną metodykę, okno opisuje się współczynnikiem całego wyrobu <strong>Uw</strong>, a mostki liniowe wymagają wartości <strong>ψ</strong> i długości połączeń.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">1</span><h3>Współczynnik H</h3><p>Mówi, ile watów budynek lub jego składnik traci przy różnicy temperatur 1 K. Jednostka: W/K.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">2</span><h3>Różnica temperatur</h3><p>Wynika z projektowej temperatury wewnętrznej i odpowiedniej temperatury po drugiej stronie przegrody.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">3</span><h3>Moc Φ</h3><p>Iloczyn współczynnika strat i różnicy temperatur daje chwilową moc potrzebną do utrzymania warunków.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-wynik">
        <span class="rk-heat-eyebrow">Najpierw właściwa wielkość fizyczna</span>
        <h2>Jaki wynik naprawdę obliczamy?</h2>
        <p class="rk-heat-intro">W obliczeniach projektowych szukamy <strong>projektowego obciążenia cieplnego</strong>, czyli mocy potrzebnej do utrzymania zadanej temperatury wewnętrznej przy określonych warunkach zewnętrznych. To właśnie ta wielkość pomaga później projektować ogrzewanie.</p>
        <p>Oficjalny opis metody BS EN 12831-1 odnosi wynik do pojedynczych pomieszczeń, części budynku oraz całych budynków. Szczegółowy kontekst definicji i norm znajdziesz także w naszym opracowaniu o <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowym obciążeniu cieplnym OZC</a>.</p>
        <div class="rk-heat-note"><p><strong>Termin „straty ciepła” bywa używany potocznie w dwóch znaczeniach.</strong> Może oznaczać moc w W albo energię w kWh. W tym artykule, jeśli nie zaznaczono inaczej, mówimy o projektowej mocy cieplnej.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-moc-energia">
        <span class="rk-heat-eyebrow">Jednostki bez skrótów myślowych</span>
        <h2>W, kW, W/K i kWh — dlaczego nie wolno ich mieszać?</h2>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Wielkość</th><th>Jednostka</th><th>Co opisuje?</th><th>Przykład interpretacji</th></tr></thead>
            <tbody>
              <tr><td data-label="Wielkość">Moc cieplna Φ</td><td data-label="Jednostka">W lub kW</td><td data-label="Co opisuje?">Tempo przekazywania energii w danej chwili.</td><td data-label="Przykład interpretacji">Pomieszczenie potrzebuje 1016 W przy warunkach projektowych.</td></tr>
              <tr><td data-label="Wielkość">Współczynnik strat H</td><td data-label="Jednostka">W/K</td><td data-label="Co opisuje?">Zmianę straty mocy na każdy 1 K różnicy temperatur.</td><td data-label="Przykład interpretacji">H = 25,4 W/K oznacza 25,4 W na każdy kelwin różnicy.</td></tr>
              <tr><td data-label="Wielkość">Energia Q</td><td data-label="Jednostka">Wh lub kWh</td><td data-label="Co opisuje?">Moc działającą przez czas i zmieniającą się wraz z warunkami.</td><td data-label="Przykład interpretacji">Roczne kWh wymagają profilu temperatur, pracy instalacji i okresu.</td></tr>
              <tr><td data-label="Wielkość">Wskaźnik powierzchniowy</td><td data-label="Jednostka">W/m²</td><td data-label="Co opisuje?">Obciążenie odniesione do określonej powierzchni.</td><td data-label="Przykład interpretacji">Trzeba podać, czy dzielimy przez podłogę, powierzchnię użytkową czy powierzchnię czynną.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-heat-formula">
          <strong>Q = ∫ Φ(t) dt</strong>
          <span>energia jest całką zmiennej mocy w czasie; samo „moc × 720 godzin” nie opisuje realnego miesiąca</span>
        </div>
        <div class="rk-heat-warning"><p><strong>Zapis „W/godz.” jest błędny jako jednostka straty ciepła.</strong> Wat już określa tempo przepływu energii. Jeżeli obliczasz energię, używaj Wh lub kWh i jawnie uwzględnij czas oraz zmienność warunków.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-skladniki">
        <span class="rk-heat-eyebrow">Bilans rozłożony na elementy</span>
        <h2>Z jakich składników składa się projektowa strata ciepła?</h2>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">A</span><h3>Przegrody płaskie</h3><p>Ściany, okna, drzwi, dach, strop oraz podłoga. Każdy element ma powierzchnię, właściwości cieplne i warunki po obu stronach.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">B</span><h3>Mostki cieplne</h3><p>Połączenia ściany ze stropem, nadproża, ościeża, wieńce i inne detale opisane liniowym współczynnikiem ψ.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">C</span><h3>Wymiana powietrza</h3><p>Wentylacja i infiltracja powodują konieczność ogrzania napływającego powietrza do warunków wewnętrznych.</p></div>
        </div>
        <p>W praktycznym modelu występują też współczynniki korekcyjne, przepływy między strefami, straty do pomieszczeń nieogrzewanych oraz — zależnie od celu — dodatkowa moc na nagrzewanie po obniżeniu temperatury. Pełny <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny budynku</a> jest więc czymś więcej niż jedną regułą W/m².</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-dane">
        <span class="rk-heat-eyebrow">Jakość wyniku zaczyna się na rzucie</span>
        <h2>Jakie dane są potrzebne do obliczenia strat ciepła?</h2>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Grupa danych</th><th>Co zebrać?</th><th>Dlaczego to ważne?</th></tr></thead>
            <tbody>
              <tr><td data-label="Grupa danych">Geometria</td><td data-label="Co zebrać?">Wymiary wewnętrzne i zewnętrzne, wysokości, powierzchnie brutto i netto, długości połączeń.</td><td data-label="Dlaczego to ważne?">Błąd w polu albo długości mostka przechodzi bezpośrednio do wyniku.</td></tr>
              <tr><td data-label="Grupa danych">Przegrody</td><td data-label="Co zebrać?">Warstwy, grubości, przewodności lub wiarygodne współczynniki U.</td><td data-label="Dlaczego to ważne?">Nie wolno przypisywać jednego U wszystkim ścianom tylko na podstawie wieku domu.</td></tr>
              <tr><td data-label="Grupa danych">Stolarka</td><td data-label="Co zebrać?">Wymiary, Uw okien, Ud drzwi, sposób montażu i detale ościeży.</td><td data-label="Dlaczego to ważne?">Ug szyby nie jest współczynnikiem całego okna.</td></tr>
              <tr><td data-label="Grupa danych">Warunki brzegowe</td><td data-label="Co zebrać?">Temperatury pomieszczeń, klimat zewnętrzny, sąsiednie strefy i grunt.</td><td data-label="Dlaczego to ważne?">Nie każda przegroda ma po drugiej stronie powietrze zewnętrzne.</td></tr>
              <tr><td data-label="Grupa danych">Powietrze</td><td data-label="Co zebrać?">Projektowe strumienie wentylacji, infiltrację, odzysk i sposób pracy instalacji.</td><td data-label="Dlaczego to ważne?">Przypadkowa liczba wymian na godzinę może zawyżyć albo zaniżyć wynik.</td></tr>
              <tr><td data-label="Grupa danych">Mostki</td><td data-label="Co zebrać?">Typy połączeń, wartości ψ, długości oraz zgodny system wymiarowania.</td><td data-label="Dlaczego to ważne?">Stały procent „na mostki” nie odzwierciedla rzeczywistych detali.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Jeżeli współczynnik U trzeba dopiero wyznaczyć z warstw, pomocny jest oficjalny <a href="https://budowlaneabc.gov.pl/charakterystyka-energetyczna-budynkow/kalkulatory/calc-wpc/" target="_blank" rel="nofollow noopener noreferrer">kalkulator współczynnika przenikania ciepła na portalu Budowlane ABC</a>. Wynik zawsze porównaj z dokumentacją konkretnej przegrody.</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-temperatury">
        <span class="rk-heat-eyebrow">Różnica temperatur nie zawsze jest taka sama</span>
        <h2>Jak przyjąć temperaturę wewnętrzną i zewnętrzną?</h2>
        <p>Temperaturę wewnętrzną ustala się dla funkcji pomieszczenia i założeń projektu. Temperatury zewnętrznej nie wybiera się jedną wartością „dla całej Polski”; zależy ona od lokalizacji i przyjętej metody. Zależność lokalizacji i parametrów obliczeniowych rozwijamy w artykule o <a href="https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/">strefach klimatycznych w Polsce</a>.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Z</span><h3>Do powietrza zewnętrznego</h3><p>Różnica wynika z temperatury pomieszczenia i projektowej temperatury zewnętrznej właściwej dla lokalizacji.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">N</span><h3>Do strefy nieogrzewanej</h3><p>Po drugiej stronie może występować temperatura pośrednia, zależna od bilansu tej strefy lub współczynnika korekcyjnego.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">G</span><h3>Do gruntu</h3><p>Temperatura i przepływ nie zachowują się jak przy zwykłej ścianie zewnętrznej; znaczenie ma geometria i kontakt z gruntem.</p></div>
        </div>
        <div class="rk-heat-note"><p><strong>Kelwin i stopień Celsjusza mają tę samą wartość liczbową dla różnicy temperatur.</strong> Jeżeli wewnątrz jest 20°C, a na zewnątrz −20°C, różnica wynosi 40 K.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-przenikanie">
        <span class="rk-heat-eyebrow">Ściana, dach i strop</span>
        <h2>Jak obliczyć straty ciepła przez zwykłą przegrodę?</h2>
        <p>Dla jednorodnego fragmentu przegrody o znanym współczynniku U można najpierw wyznaczyć współczynnik strat, a następnie moc:</p>
        <div class="rk-heat-formula">
          <strong>H<sub>T,i</sub> = U<sub>i</sub> · A<sub>i</sub> &nbsp;&nbsp; oraz &nbsp;&nbsp; Φ<sub>T,i</sub> = H<sub>T,i</sub> · Δθ</strong>
          <span>U [W/(m²K)] · A [m²] = H [W/K], a następnie H [W/K] · Δθ [K] = Φ [W]</span>
        </div>
        <div class="rk-heat-example-flow">
          <div class="rk-heat-example-step"><b>1. Pole netto</b><p>Ściana ma 22 m² brutto, lecz okno zajmuje 4 m². Do ściany nieprzezroczystej przyjmujemy 18 m².</p></div>
          <div class="rk-heat-example-step"><b>2. Współczynnik H</b><p><span class="rk-heat-inline-code">0,20 × 18 = 3,60 W/K</span></p></div>
          <div class="rk-heat-example-step"><b>3. Moc</b><p>Przy Δθ = 40 K otrzymujemy <span class="rk-heat-inline-code">3,60 × 40 = 144 W</span>.</p></div>
        </div>
        <p>Wartość U dotyczy konkretnego układu warstw i kierunku przepływu ciepła. Zakres metody obliczania oporu i współczynnika przenikania dla elementów budowlanych opisuje <a href="https://www.iso.org/standard/65708.html" target="_blank" rel="nofollow noopener noreferrer">ISO 6946</a>; norma ta nie jest metodą dla okien ani elementów stykających się z gruntem.</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-okna">
        <span class="rk-heat-eyebrow">Najczęstsza pomyłka przy stolarce</span>
        <h2>Jak liczyć straty przez okna i czym różni się Uw od Ug?</h2>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Uw</span><h3>Uw — całe okno</h3><p>Obejmuje wpływ szyby, ramy i ich połączenia w deklarowanym układzie. To właściwy punkt wyjścia do obliczania straty przez cały wyrób.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">Ug</span><h3>Ug — samo oszklenie</h3><p>Opisuje środkową część szyby. Zastąpienie nim Uw zwykle przedstawia okno korzystniej, niż wynika z parametrów całego elementu.</p></div>
        </div>
        <div class="rk-heat-formula">
          <strong>A<sub>ściany,netto</sub> = A<sub>ściany,brutto</sub> − A<sub>okien</sub> − A<sub>drzwi</sub></strong>
          <span>otworów nie wolno policzyć drugi raz jako fragmentu ściany</span>
        </div>
        <p>Stratę samego okna w uproszczonym zapisie liczymy jako <strong>Φ<sub>w</sub> = Uw · A<sub>w</sub> · Δθ</strong>. Osobno trzeba uwzględnić liniowy wpływ montażu i ościeży, jeżeli nie został już ujęty w przyjętym modelu mostków.</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-grunt">
        <span class="rk-heat-eyebrow">Inna droga przepływu ciepła</span>
        <h2>Dlaczego podłogi na gruncie nie liczymy jak ściany?</h2>
        <p>Przepływ ciepła do gruntu zależy nie tylko od warstw podłogi. Znaczenie mają również geometria podłogi, obwód zewnętrzny, zagłębienie, warunki gruntu oraz rozwiązanie krawędzi. Dlatego proste <strong>U · A · (temperatura pokoju − temperatura powietrza zewnętrznego)</strong> nie jest pełną metodą.</p>
        <p>Obliczenia wymiany ciepła przez elementy w kontakcie z gruntem opisuje <a href="https://www.iso.org/standard/65716.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13370</a>. Wstępną ocenę układu izolacji możesz połączyć z naszymi materiałami o <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">izolacji pod ogrzewanie podłogowe</a> oraz o tym, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">jak wyznaczać grubość izolacji</a>.</p>
        <div class="rk-heat-warning"><p><strong>W laboratorium poniżej stosujemy jawny współczynnik warunków brzegowych b dla podłogi.</strong> To celowe uproszczenie dydaktyczne, które pokazuje strukturę równania. Nie zastępuje obliczenia podłogi na gruncie właściwą metodą.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-mostki">
        <span class="rk-heat-eyebrow">Detale zamiast procentu</span>
        <h2>Jak uwzględnić liniowe mostki cieplne?</h2>
        <div class="rk-heat-formula">
          <strong>H<sub>TB</sub> = Σ(ψ<sub>j</sub> · l<sub>j</sub>) &nbsp;&nbsp; oraz &nbsp;&nbsp; Φ<sub>TB</sub> = H<sub>TB</sub> · Δθ</strong>
          <span>ψ [W/(mK)] · długość l [m] = H [W/K]</span>
        </div>
        <p>Każdy typ połączenia ma własną długość oraz wartość ψ zgodną z geometrią, materiałami i przyjętym systemem wymiarowania. Metody uproszczone i wartości orientacyjne dla mostków liniowych opisuje <a href="https://www.iso.org/standard/65706.html" target="_blank" rel="nofollow noopener noreferrer">ISO 14683</a>.</p>
        <div class="rk-heat-warning"><p><strong>Nie dodawaj automatycznie 10%, 20% albo 30% „na mostki”.</strong> Taki procent może przypadkiem pasować do jednego budynku, ale nie opisuje jakości konkretnych detali i może ukryć zarówno dobre, jak i bardzo słabe rozwiązanie.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-wentylacja">
        <span class="rk-heat-eyebrow">Powietrze też trzeba ogrzać</span>
        <h2>Jak obliczyć straty przez wentylację i infiltrację?</h2>
        <p>W uproszczonym modelu dla powietrza można posłużyć się efektywnym strumieniem objętości:</p>
        <div class="rk-heat-formula">
          <strong>H<sub>V</sub> ≈ 0,34 · V̇<sub>eff</sub> &nbsp;&nbsp; oraz &nbsp;&nbsp; Φ<sub>V</sub> ≈ 0,34 · V̇<sub>eff</sub> · Δθ</strong>
          <span>V̇<sub>eff</sub> [m³/h], H<sub>V</sub> [W/K], Φ<sub>V</sub> [W]</span>
        </div>
        <p>Wartość <strong>V̇<sub>eff</sub></strong> powinna wynikać z projektu wentylacji i przyjętej metody. W systemie mechanicznym trzeba prawidłowo uwzględnić pracę odzysku, niezbilansowanie oraz infiltrację; nie wystarczy pomnożyć całego strumienia przez katalogową sprawność centrali. Więcej o współpracy systemów opisujemy w artykule <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a>.</p>
        <div class="rk-heat-note"><p><strong>Wymiana powietrza n = 1 h<sup>−1</sup> nie jest uniwersalnym założeniem.</strong> Jeżeli używasz przeliczenia z liczby wymian, najpierw musisz znać kubaturę i uzasadnić przepływ dla konkretnego pomieszczenia oraz systemu.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-laboratorium">
        <span class="rk-heat-eyebrow">Narzędzie edukacyjne, nie drugi kalkulator całego domu</span>
        <h2>Interaktywne laboratorium strat ciepła jednego pomieszczenia</h2>
        <p class="rk-heat-intro">Zmień dane referencyjnego pokoju i obserwuj drogę od współczynników <strong>H [W/K]</strong> do mocy <strong>Φ [W]</strong>. Wszystkie składniki korzystają z tej samej różnicy temperatur, z wyjątkiem podłogi, dla której jawnie podajemy uproszczony współczynnik warunków brzegowych.</p>

        <div class="rk-heat-tool" id="rk-heat-tool">
          <div class="rk-heat-tool-head">
            <h3>Rozłóż wynik na sześć składowych</h3>
            <p>Model na żywo pokazuje przegrody, mostki i wentylację. Wpisane wartości są przykładem dydaktycznym — zastąp je danymi właściwymi dla rozpatrywanego pokoju.</p>
          </div>
          <div class="rk-heat-tool-body">
            <div class="rk-heat-lab-group">
              <div class="rk-heat-step-title"><b>1</b><h4>Warunki projektowe i powierzchnia pokoju</h4></div>
              <div class="rk-heat-lab-fields">
                <div class="rk-heat-field"><label for="rk-heat-ti">Temperatura wewnętrzna [°C]</label><input id="rk-heat-ti" type="number" value="20" min="5" max="35" step="0.5"><small>Założenie dla rozpatrywanego pomieszczenia.</small></div>
                <div class="rk-heat-field"><label for="rk-heat-te">Temperatura zewnętrzna [°C]</label><input id="rk-heat-te" type="number" value="-20" min="-40" max="20" step="0.5"><small>W przykładzie; w projekcie dobierz ją do lokalizacji.</small></div>
                <div class="rk-heat-field"><label for="rk-heat-room-area">Powierzchnia podłogi [m²]</label><input id="rk-heat-room-area" type="number" value="20" min="0" max="500" step="0.1"><small>Służy wyłącznie do obliczenia wskaźnika W/m².</small></div>
                <div class="rk-heat-field"><label for="rk-heat-room-name">Nazwa robocza</label><input id="rk-heat-room-name" type="text" value="Pokój referencyjny" maxlength="50"><small>Nie wpływa na wynik liczbowy.</small></div>
              </div>
            </div>

            <div class="rk-heat-lab-group">
              <div class="rk-heat-step-title"><b>2</b><h4>Przenikanie przez przegrody</h4></div>
              <p>Powierzchnie ściany i okna muszą być rozdzielone. Dla podłogi współczynnik b jest jedynie uproszczeniem warunków po drugiej stronie.</p>
              <div class="rk-heat-lab-fields">
                <div class="rk-heat-field"><label for="rk-heat-wall-a">Ściana netto A [m²]</label><input id="rk-heat-wall-a" type="number" value="18" min="0" max="500" step="0.1"></div>
                <div class="rk-heat-field"><label for="rk-heat-wall-u">Ściana U [W/(m²K)]</label><input id="rk-heat-wall-u" type="number" value="0.20" min="0" max="5" step="0.01"></div>
                <div class="rk-heat-field"><label for="rk-heat-window-a">Okno A [m²]</label><input id="rk-heat-window-a" type="number" value="4" min="0" max="100" step="0.1"></div>
                <div class="rk-heat-field"><label for="rk-heat-window-u">Okno Uw [W/(m²K)]</label><input id="rk-heat-window-u" type="number" value="0.90" min="0" max="8" step="0.01"><small>Uw całego okna, nie Ug szyby.</small></div>
                <div class="rk-heat-field"><label for="rk-heat-ceiling-a">Dach lub strop A [m²]</label><input id="rk-heat-ceiling-a" type="number" value="20" min="0" max="500" step="0.1"></div>
                <div class="rk-heat-field"><label for="rk-heat-ceiling-u">Dach lub strop U [W/(m²K)]</label><input id="rk-heat-ceiling-u" type="number" value="0.15" min="0" max="5" step="0.01"></div>
                <div class="rk-heat-field"><label for="rk-heat-floor-a">Podłoga A [m²]</label><input id="rk-heat-floor-a" type="number" value="20" min="0" max="500" step="0.1"></div>
                <div class="rk-heat-field"><label for="rk-heat-floor-u">Podłoga U [W/(m²K)]</label><input id="rk-heat-floor-u" type="number" value="0.20" min="0" max="5" step="0.01"></div>
                <div class="rk-heat-field"><label for="rk-heat-floor-b">Uproszczony współczynnik b [–]</label><input id="rk-heat-floor-b" type="number" value="0.50" min="0" max="1" step="0.05"><small>Model dydaktyczny; nie zastępuje ISO 13370.</small></div>
              </div>
            </div>

            <div class="rk-heat-lab-group">
              <div class="rk-heat-step-title"><b>3</b><h4>Mostki oraz efektywny strumień powietrza</h4></div>
              <div class="rk-heat-lab-fields">
                <div class="rk-heat-field"><label for="rk-heat-bridge-h">Suma H mostków [W/K]</label><input id="rk-heat-bridge-h" type="number" value="3" min="0" max="200" step="0.1"><small>H<sub>TB</sub> = Σ(ψ · l) dla przypisanych detali.</small></div>
                <div class="rk-heat-field"><label for="rk-heat-airflow">Efektywny strumień V̇ [m³/h]</label><input id="rk-heat-airflow" type="number" value="30" min="0" max="2000" step="1"><small>Po prawidłowym uwzględnieniu systemu i infiltracji.</small></div>
              </div>
              <button class="rk-heat-tool-button" id="rk-heat-calculate" type="button">Przelicz model referencyjny</button>
            </div>

            <div class="rk-heat-lab-group" aria-live="polite">
              <div class="rk-heat-step-title"><b>4</b><h4>Wynik: H, Δθ, Φ i udziały składowych</h4></div>
              <div class="rk-heat-result-strip">
                <div class="rk-heat-result-tile"><span>Różnica Δθ</span><strong id="rk-heat-out-delta">—</strong></div>
                <div class="rk-heat-result-tile"><span>Suma H</span><strong id="rk-heat-out-h">—</strong></div>
                <div class="rk-heat-result-tile"><span>Moc Φ</span><strong id="rk-heat-out-w">—</strong></div>
                <div class="rk-heat-result-tile"><span>Moc w kW</span><strong id="rk-heat-out-kw">—</strong></div>
                <div class="rk-heat-result-tile"><span>Wskaźnik</span><strong id="rk-heat-out-wm2">—</strong></div>
              </div>

              <h4 id="rk-heat-chart-title">Dynamiczny wykres mocy składowych</h4>
              <div class="rk-heat-chart-list" role="img" aria-labelledby="rk-heat-chart-title" id="rk-heat-live-chart">
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Ściana netto</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-wall"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-wall">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Okno</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-window"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-window">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Dach lub strop</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-ceiling"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-ceiling">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Podłoga — model</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-floor"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-floor">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Mostki liniowe</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-bridge"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-bridge">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Wentylacja</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-vent"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-vent">—</span></div>
              </div>

              <div class="rk-heat-formula-tabs" aria-label="Wybierz składnik równania">
                <button class="rk-heat-formula-tab" type="button" data-part="wall" aria-pressed="true">Ściana</button>
                <button class="rk-heat-formula-tab" type="button" data-part="window" aria-pressed="false">Okno</button>
                <button class="rk-heat-formula-tab" type="button" data-part="ceiling" aria-pressed="false">Dach / strop</button>
                <button class="rk-heat-formula-tab" type="button" data-part="floor" aria-pressed="false">Podłoga</button>
                <button class="rk-heat-formula-tab" type="button" data-part="bridge" aria-pressed="false">Mostki</button>
                <button class="rk-heat-formula-tab" type="button" data-part="vent" aria-pressed="false">Wentylacja</button>
              </div>
              <div class="rk-heat-live-formula">
                <strong id="rk-heat-formula-name">Ściana netto</strong>
                <code id="rk-heat-formula-equation">—</code>
                <span id="rk-heat-formula-note">—</span>
              </div>
              <div class="rk-heat-diagnostics" id="rk-heat-diagnostics"></div>
            </div>
          </div>
        </div>

        <div class="rk-heat-note"><p><strong>Potrzebujesz rozbudowanych obliczeń całego budynku?</strong> Skorzystaj z osobnego <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora strat ciepła budynku</a>. To odrębne narzędzie; laboratorium powyżej celowo skupia się na zrozumieniu jednego pokoju i pojedynczych składników.</p></div>
      </section>

      <aside class="rk-heat-sales-cta" aria-label="Indywidualny projekt ogrzewania podłogowego">
        <h3>Od modelu jednego pokoju do rzeczywistego projektu</h3>
        <p>W przykładzie znamy powierzchnie, współczynniki U, długości mostków i strumień powietrza. W rzeczywistym domu dane trzeba zebrać osobno dla każdego pomieszczenia, a następnie powiązać wynik z powierzchnią czynną i możliwościami ogrzewania podłogowego.</p>
        <p>Jeżeli potrzebujesz obliczeń dla własnego budynku oraz tras, rozstawów, długości i przepływów pętli, potrzebny jest indywidualny projekt.</p>
        <a class="rk-heat-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczeniami cieplnymi pomieszczeń</a>
      </aside>

      <section class="rk-heat-section" id="rk-heat-wykres">
        <span class="rk-heat-eyebrow">Nie tylko suma</span>
        <h2>Jak czytać dynamiczny wykres strat ciepła?</h2>
        <p>Każdy pasek w laboratorium odpowiada mocy jednego składnika. Długość paska jest liczona względem największej składowej, a obok widzisz zarówno moc w W, jak i procentowy udział w wyniku pokoju. Dzięki temu można rozróżnić dwie sytuacje:</p>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Δθ</span><h3>Zmiana temperatury zewnętrznej</h3><p>Jeżeli wszystkie składniki korzystają z tego samego Δθ, ich moce zmieniają się proporcjonalnie, natomiast udziały procentowe pozostają zbliżone.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">U·A</span><h3>Zmiana konkretnej przegrody</h3><p>Zmiana U albo pola jednej przegrody wpływa bezpośrednio na jej H, moc, udział w sumie i kształt całego wykresu.</p></div>
        </div>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Składowa w modelu domyślnym</th><th>H [W/K]</th><th>Φ przy Δθ = 40 K [W]</th><th>Co kontrolować?</th></tr></thead>
            <tbody>
              <tr><td data-label="Składowa">Ściana netto</td><td data-label="H [W/K]">3,60</td><td data-label="Φ [W]">144</td><td data-label="Co kontrolować?">Pole po odjęciu okna oraz U przegrody.</td></tr>
              <tr><td data-label="Składowa">Okno</td><td data-label="H [W/K]">3,60</td><td data-label="Φ [W]">144</td><td data-label="Co kontrolować?">Uw całego okna i rzeczywisty wymiar.</td></tr>
              <tr><td data-label="Składowa">Dach lub strop</td><td data-label="H [W/K]">3,00</td><td data-label="Φ [W]">120</td><td data-label="Co kontrolować?">Rodzaj granicy oraz U układu warstw.</td></tr>
              <tr><td data-label="Składowa">Podłoga — uproszczenie</td><td data-label="H [W/K]">2,00</td><td data-label="Φ [W]">80</td><td data-label="Co kontrolować?">Metodę dla gruntu i geometrię; b nie jest pełnym obliczeniem.</td></tr>
              <tr><td data-label="Składowa">Mostki cieplne</td><td data-label="H [W/K]">3,00</td><td data-label="Φ [W]">120</td><td data-label="Co kontrolować?">Wartości ψ, długości i system wymiarowania.</td></tr>
              <tr><td data-label="Składowa">Wentylacja</td><td data-label="H [W/K]">10,20</td><td data-label="Φ [W]">408</td><td data-label="Co kontrolować?">Efektywny strumień, odzysk, niezbilansowanie i infiltrację.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-heat-note"><p><strong>Najdłuższy pasek nie oznacza automatycznie „błędu”.</strong> W pomieszczeniu wymagającym dużego strumienia świeżego powietrza wentylacja może naturalnie dominować. Wniosek wymaga porównania z funkcją pokoju i projektem systemu.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-wm2">
        <span class="rk-heat-eyebrow">Wskaźnik pomocniczy, nie metoda obliczeń</span>
        <h2>Co mówi wynik w W/m²?</h2>
        <p>Wskaźnik W/m² powstaje dopiero po obliczeniu mocy. Pomaga porównywać pomieszczenia i kontrolować skalę wyniku, ale sam nie wyznacza strat ciepła. Trzeba też podać mianownik:</p>
        <div class="rk-heat-formula">
          <strong>q = Φ<sub>pomieszczenia</sub> / A</strong>
          <span>ta sama moc da inny wskaźnik dla powierzchni podłogi i inny dla powierzchni rzeczywiście grzewczej</span>
        </div>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">20</span><h3>Cała podłoga: 20 m²</h3><p>Dla 1016 W wskaźnik wynosi 50,8 W/m². To opis obciążenia odniesionego do powierzchni pokoju.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">14</span><h3>Powierzchnia czynna: 14 m²</h3><p>Jeśli tylko 14 m² może oddawać ciepło, wymagana moc jednostkowa podłogi rośnie do około 72,6 W/m².</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">?</span><h3>Bez informacji o A</h3><p>Sam zapis „dom ma 45 W/m²” nie mówi, według jakiej powierzchni i w jakich warunkach uzyskano wartość.</p></div>
        </div>
        <div class="rk-heat-warning"><p><strong>Nie przypisuj automatycznie klasy energetycznej budynku do pojedynczego przedziału W/m².</strong> Wynik zależy między innymi od klimatu, temperatur pomieszczeń, geometrii, wentylacji i definicji powierzchni.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-pomieszczenie-budynek">
        <span class="rk-heat-eyebrow">Dwa wyniki, dwa zastosowania</span>
        <h2>Czym różnią się straty pomieszczenia od strat całego budynku?</h2>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Poziom obliczeń</th><th>Co trzeba zachować?</th><th>Do czego służy wynik?</th></tr></thead>
            <tbody>
              <tr><td data-label="Poziom">Pomieszczenie</td><td data-label="Co zachować?">Własne przegrody zewnętrzne, wentylację, temperaturę, mostki i warunki sąsiednich stref.</td><td data-label="Zastosowanie">Dobór powierzchni grzewczej, rozstawu, przepływu i mocy emitera.</td></tr>
              <tr><td data-label="Poziom">Strefa lub kondygnacja</td><td data-label="Co zachować?">Równoczesność warunków oraz przepływy między strefami.</td><td data-label="Zastosowanie">Podział hydrauliczny, gałęzie instalacji i ocena pracy strefy.</td></tr>
              <tr><td data-label="Poziom">Cały budynek</td><td data-label="Co zachować?">Spójne warunki projektowe i prawidłowe sumowanie bez podwójnego liczenia przegród wewnętrznych.</td><td data-label="Zastosowanie">Punkt wyjścia do doboru źródła, głównej instalacji i strategii pracy.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Nie należy najpierw obliczyć jednej wartości dla domu i rozdzielić jej na pokoje proporcjonalnie do metrażu. Narożna łazienka, salon z przeszkleniami i sypialnia pomiędzy ogrzewanymi wnętrzami mają inne obciążenia nawet przy podobnej powierzchni.</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-zyski">
        <span class="rk-heat-eyebrow">Bilans chwilowy i energetyczny</span>
        <h2>Czy od strat odejmuje się zyski od ludzi, słońca i urządzeń?</h2>
        <p>Zyski wewnętrzne i słoneczne są ważne w analizie zapotrzebowania na energię, temperatury operacyjnej oraz obciążeń zmiennych. Nie należy jednak odejmować od projektowej mocy grzewczej przypadkowo przyjętej liczby watów od mieszkańców albo słońca, które w krytycznym momencie mogą nie występować.</p>
        <p>Norma <a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1</a> rozróżnia obliczenia potrzeb energetycznych oraz obciążeń cieplnych. To ważne, ponieważ model rocznego zużycia i model mocy potrzebnej w warunkach projektowych odpowiadają na inne pytania.</p>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Φ</span><h3>Projektowa moc grzewcza</h3><p>Ma zapewnić warunki w uzgodnionym stanie projektowym. Założenia dotyczące zysków muszą wynikać z właściwej metody, a nie z optymistycznego scenariusza.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">Q</span><h3>Energia w sezonie</h3><p>Uwzględnia zmienność pogody, harmonogramy, zyski, sterowanie i zachowanie budynku w czasie.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-nagrzewanie">
        <span class="rk-heat-eyebrow">Powrót po obniżeniu temperatury</span>
        <h2>Czy trzeba doliczyć moc na ponowne nagrzanie budynku?</h2>
        <p>Jeżeli instalacja pracuje z planowanym obniżeniem temperatury, może być potrzebna dodatkowa moc umożliwiająca powrót do warunków komfortu w założonym czasie. Wielkość ta zależy od pojemności cieplnej budynku, czasu przerwy, głębokości obniżenia, mocy emiterów i strategii sterowania.</p>
        <div class="rk-heat-warning"><p><strong>Nie dodawaj automatycznego zapasu 10% lub 20% do każdego wyniku.</strong> W ciężkim budynku z podłogówką i stałą temperaturą duży zapas może pogorszyć dobór źródła, a w obiekcie okresowo ogrzewanym znaczenie czasu nagrzewania może być istotne. To trzeba zdefiniować w założeniach.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-podlogowka">
        <span class="rk-heat-eyebrow">Most między OZC i projektem podłogi</span>
        <h2>Jak straty ciepła wpływają na projekt ogrzewania podłogowego?</h2>
        <p>Dla każdego pomieszczenia moc obliczeniową odnosimy do powierzchni, która rzeczywiście może ogrzewać wnętrze. Nie wliczamy bezrefleksyjnie stałej zabudowy, wyłączonych stref i fragmentów, na których nie wolno ułożyć rur.</p>
        <div class="rk-heat-formula">
          <strong>q<sub>wym</sub> = Φ<sub>pomieszczenia</sub> / A<sub>czynna</sub></strong>
          <span>wymagana jednostkowa moc podłogi [W/m²]</span>
        </div>
        <p>Dopiero tę wartość porównuje się z wydajnością wybranej konstrukcji podłogi przy określonym rozstawie, temperaturze wody, oporze okładziny i dopuszczalnej temperaturze powierzchni. Dlatego z samego wyniku strat nie wynika automatycznie rozstaw 10 albo 15 cm. Praktyczne konsekwencje opisujemy w poradnikach <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">jak gęsto rozkładać podłogówkę</a> i <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>.</p>
        <div class="rk-heat-note"><p><strong>Jeżeli powierzchnia czynna jest za mała, problemu nie rozwiązuje samo zagęszczanie rur.</strong> Trzeba sprawdzić temperaturę powierzchni, możliwą moc systemu, opór posadzki oraz ewentualne dodatkowe źródło ciepła.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-zrodlo">
        <span class="rk-heat-eyebrow">Moc budynku to początek doboru</span>
        <h2>Czy wynik strat wystarcza do doboru pompy ciepła lub kotła?</h2>
        <p>Obciążenie cieplne budynku jest kluczowym wejściem do doboru źródła, ale nie jedynym. Trzeba uwzględnić charakterystykę urządzenia w punkcie obliczeniowym, minimalną modulację, sposób przygotowania ciepłej wody, ewentualne grzałki lub źródło szczytowe, wymagane temperatury zasilania oraz logikę sterowania.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">1</span><h3>Punkt obliczeniowy</h3><p>Moc urządzenia trzeba odczytywać dla konkretnej temperatury zewnętrznej i wymaganej temperatury wody, nie tylko z nazwy modelu.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">2</span><h3>Praca częściowa</h3><p>Przez większość sezonu zapotrzebowanie jest niższe od projektowego, dlatego znaczenie ma modulacja i współpraca z instalacją.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">3</span><h3>Ciepła woda</h3><p>Potrzeby c.w.u. analizuje się osobno; nie sumuje się ich mechanicznie ze stratami pomieszczeń jako stałej mocy całodobowej.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-koszt">
        <span class="rk-heat-eyebrow">Od mocy projektowej do energii</span>
        <h2>Dlaczego z jednej straty w kW nie policzymy rachunku za miesiąc?</h2>
        <p>Projektowa strata występuje dla określonego zestawu warunków. W rzeczywistości temperatura zewnętrzna zmienia się, występują zyski, budynek akumuluje ciepło, a instalacja pracuje z różną sprawnością i temperaturą. Pomnożenie mocy projektowej przez 720 godzin zakładałoby, że przez cały miesiąc stale panują najtrudniejsze warunki i urządzenie pracuje bez przerwy z tą samą mocą.</p>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Aby oszacować energię i koszt</th><th>Potrzebna informacja</th></tr></thead>
            <tbody>
              <tr><td data-label="Element">Pogoda</td><td data-label="Potrzebna informacja">Zmienne temperatury lub dane klimatyczne dla analizowanego okresu.</td></tr>
              <tr><td data-label="Element">Budynek</td><td data-label="Potrzebna informacja">Pojemność cieplna, zyski, harmonogram temperatur i wymiana powietrza.</td></tr>
              <tr><td data-label="Element">System</td><td data-label="Potrzebna informacja">Sprawność albo COP zależne od warunków, straty dystrybucji i sterowanie.</td></tr>
              <tr><td data-label="Element">Taryfa lub paliwo</td><td data-label="Potrzebna informacja">Cena właściwej jednostki energii i koszty stałe rozpatrywane osobno.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-heat-warning"><p><strong>Obciążenie 8 kW nie oznacza zużycia 8 kWh w każdej godzinie sezonu.</strong> Moc źródła, energia dostarczona do budynku i energia kupiona z sieci albo paliwa to trzy różne wielkości.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-bledy">
        <span class="rk-heat-eyebrow">Kontrola jakości obliczeń</span>
        <h2>Najczęstsze błędy przy liczeniu strat ciepła</h2>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">1</span><h3>Jedna liczba W/m² dla wszystkich pokojów</h3><p>Pomija geometrię, przeszklenia, narożniki, wentylację i różne temperatury wewnętrzne.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">2</span><h3>Podwójne pole okien</h3><p>Okno zostaje policzone osobno, ale jego powierzchni nie odjęto od ściany nieprzezroczystej.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">3</span><h3>Ug zamiast Uw</h3><p>Parametr samej szyby zostaje przypisany do całego okna, co pomija gorszy wpływ ramy i połączeń.</p></div>
          <div class="rk-heat-card is-purple"><span class="rk-heat-card-icon">4</span><h3>Grunt traktowany jak powietrze</h3><p>Podłogę liczy się z pełną różnicą do temperatury zewnętrznej bez właściwej metody i geometrii.</p></div>
          <div class="rk-heat-card"><span class="rk-heat-card-icon">5</span><h3>Stały procent mostków</h3><p>Detale zastępuje arbitralny dodatek, który nie mówi, gdzie i dlaczego ciepło ucieka.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">6</span><h3>Katalogowa sprawność odzysku</h3><p>Jedna wartość z urządzenia redukuje całą wentylację bez sprawdzenia przepływów i infiltracji.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">7</span><h3>W pomylone z kWh</h3><p>Moc projektową mnoży się przez liczbę godzin i przedstawia jako przewidywany rachunek.</p></div>
          <div class="rk-heat-card is-purple"><span class="rk-heat-card-icon">8</span><h3>Zaokrąglenia ukrywające dane</h3><p>Końcowy „zapas” zastępuje brak wymiarów, brak U, brak mostków albo nieznany strumień powietrza.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-checklista">
        <span class="rk-heat-eyebrow">Przed zaakceptowaniem wyniku</span>
        <h2>Checklista obliczeń strat ciepła</h2>
        <ul class="rk-heat-checklist">
          <li>Czy każde pomieszczenie ma osobny wynik i temperaturę wewnętrzną?</li>
          <li>Czy projektowa temperatura zewnętrzna odpowiada lokalizacji i metodzie?</li>
          <li>Czy powierzchnie przegród mają spójny system wymiarowania?</li>
          <li>Czy pola okien i drzwi odjęto od powierzchni ścian?</li>
          <li>Czy dla okien użyto Uw, a nie wyłącznie Ug?</li>
          <li>Czy U przegród wynika z dokumentacji albo obliczenia warstw?</li>
          <li>Czy podłogę na gruncie policzono właściwą metodą?</li>
          <li>Czy strefy nieogrzewane mają odpowiednie warunki brzegowe?</li>
          <li>Czy mostki mają wartości ψ i rzeczywiste długości?</li>
          <li>Czy wentylacja i infiltracja wynikają z uzasadnionych przepływów?</li>
          <li>Czy wynik odróżnia W, W/K, W/m² i kWh?</li>
          <li>Czy powierzchnia czynna podłogi jest oddzielona od całej powierzchni pokoju?</li>
          <li>Czy ewentualną moc na nagrzewanie uzasadniono harmonogramem?</li>
          <li>Czy założenia, źródła danych i uproszczenia są zapisane obok wyniku?</li>
        </ul>
        <div class="rk-heat-success"><p><strong>Dobry arkusz obliczeniowy pozwala przejść od wyniku wstecz do danych.</strong> Jeżeli widzisz tylko końcowe kW, ale nie potrafisz sprawdzić powierzchni, U, ψ, przepływów i temperatur, nie możesz rzetelnie ocenić obliczenia.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-faq">
        <span class="rk-heat-eyebrow">Najczęstsze pytania</span>
        <h2>FAQ — obliczanie strat ciepła w budynku</h2>
        <div class="rk-heat-faq">
          <details>
            <summary>Co oznacza wynik strat ciepła podany w W?</summary>
            <div class="rk-heat-faq-answer"><p>Wynik w W oznacza moc cieplną potrzebną w zdefiniowanych warunkach obliczeniowych. Nie jest to miesięczne ani roczne zużycie energii. Aby otrzymać kWh, trzeba uwzględnić zmienną moc w czasie.</p></div>
          </details>
          <details>
            <summary>Czy jednostka W/godz. jest poprawna dla strat ciepła?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Wat jest już jednostką mocy, czyli tempa przekazywania energii. Projektową stratę ciepła podaje się w W lub kW, współczynnik strat w W/K, a energię zużytą w czasie w Wh lub kWh.</p></div>
          </details>
          <details>
            <summary>Jak obliczyć stratę ciepła przez ścianę?</summary>
            <div class="rk-heat-faq-answer"><p>Dla prostego fragmentu ściany można obliczyć H = U · A, a następnie Φ = H · Δθ. Powierzchnia A powinna być polem netto po odjęciu okien i drzwi, U musi dotyczyć rzeczywistej przegrody, a Δθ właściwych warunków po obu jej stronach.</p></div>
          </details>
          <details>
            <summary>Czy dla każdej przegrody stosuje się tę samą różnicę temperatur?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Ściana zewnętrzna, przegroda do strefy nieogrzewanej i podłoga na gruncie mają różne warunki brzegowe. Dla gruntu stosuje się osobną metodykę, a dla sąsiednich stref trzeba określić ich temperaturę lub właściwy współczynnik korekcyjny.</p></div>
          </details>
          <details>
            <summary>Do obliczeń okna przyjąć Uw czy Ug?</summary>
            <div class="rk-heat-faq-answer"><p>Do uproszczonego obliczenia straty przez całe okno należy przyjąć Uw całego wyrobu. Ug opisuje oszklenie i nie uwzględnia w pełni wpływu ramy oraz połączenia szyby z ramą.</p></div>
          </details>
          <details>
            <summary>Jak obliczyć straty przez podłogę na gruncie?</summary>
            <div class="rk-heat-faq-answer"><p>Podłogi na gruncie nie należy liczyć jak zwykłej ściany z pełną różnicą temperatur do powietrza zewnętrznego. Trzeba uwzględnić właściwości podłogi, geometrię, obwód, rozwiązanie krawędzi i kontakt z gruntem zgodnie z odpowiednią metodą, na przykład zakresem ISO 13370.</p></div>
          </details>
          <details>
            <summary>Czy mostki cieplne można dodać jako stały procent?</summary>
            <div class="rk-heat-faq-answer"><p>Stały procent może służyć co najwyżej do bardzo wstępnej kontroli, ale nie zastępuje obliczeń. Właściwe podejście przypisuje liniowy współczynnik ψ do konkretnego detalu, mnoży go przez długość połączenia i zachowuje spójny system wymiarowania.</p></div>
          </details>
          <details>
            <summary>Jak w uproszczeniu policzyć stratę przez wentylację?</summary>
            <div class="rk-heat-faq-answer"><p>Dla powietrza można użyć zależności ΦV ≈ 0,34 · V̇eff · Δθ, gdzie efektywny strumień V̇eff podaje się w m³/h. Strumień musi jednak wynikać z projektu i prawidłowo uwzględniać sposób wentylacji, odzysk, niezbilansowanie oraz infiltrację.</p></div>
          </details>
          <details>
            <summary>Czy rekuperator całkowicie usuwa straty wentylacyjne?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Rzeczywisty odzysk zależy od warunków pracy, strumieni i charakterystyki systemu, a ponadto pozostają infiltracja, niezbilansowanie oraz energia pomocnicza. Nie należy więc zerować straty wentylacyjnej ani redukować całego przepływu jedną katalogową sprawnością.</p></div>
          </details>
          <details>
            <summary>Czy moc projektową można pomnożyć przez 720 godzin, aby policzyć miesiąc?</summary>
            <div class="rk-heat-faq-answer"><p>Nie jako prognozę rzeczywistego zużycia. Takie działanie zakładałoby stałą moc projektową przez cały miesiąc. Do obliczenia energii potrzebny jest przebieg temperatur, zyski, harmonogramy, zachowanie budynku oraz sprawność systemu w zmiennych warunkach.</p></div>
          </details>
          <details>
            <summary>Czy wynik W/m² wystarcza do projektu ogrzewania podłogowego?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Trzeba znać moc każdego pomieszczenia, powierzchnię rzeczywiście ogrzewaną, konstrukcję podłogi, opór okładziny, dopuszczalną temperaturę powierzchni, parametry wody, rozstawy, długości pętli i hydraulikę instalacji.</p></div>
          </details>
          <details>
            <summary>Czy laboratorium z artykułu zastępuje pełne OZC?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Laboratorium pokazuje zależności i przejrzysty model jednego pomieszczenia. Nie odtwarza pełnej geometrii budynku, wszystkich stref, szczegółowego gruntu, wentylacji, mostków ani kompletnej procedury projektowej.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-zrodla">
        <span class="rk-heat-eyebrow">Podstawa techniczna</span>
        <h2>Oficjalne źródła i zakres metodyki</h2>
        <p>Poniższe odnośniki prowadzą wyłącznie do oficjalnych stron instytucji normalizacyjnych i portalu rządowego. Pełne normy mogą być płatne; strony zakresu pomagają ustalić, którego zagadnienia dotyczy dany dokument.</p>
        <div class="rk-heat-sources">
          <div class="rk-heat-source"><a href="https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3" target="_blank" rel="nofollow noopener noreferrer">BSI — BS EN 12831-1, metoda obliczania projektowego obciążenia cieplnego</a><p>Oficjalny opis zakresu: obciążenie ogrzewania pojedynczych pomieszczeń, części budynku i całych budynków.</p></div>
          <div class="rk-heat-source"><a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1 — potrzeby energetyczne i obciążenia cieplne</a><p>Zakres metod obliczeń energii do ogrzewania i chłodzenia oraz obciążeń wewnętrznych.</p></div>
          <div class="rk-heat-source"><a href="https://www.iso.org/standard/65708.html" target="_blank" rel="nofollow noopener noreferrer">ISO 6946 — opór cieplny i współczynnik przenikania U</a><p>Metoda dla elementów budowlanych; zakres wyłącza między innymi okna i elementy w kontakcie z gruntem.</p></div>
          <div class="rk-heat-source"><a href="https://www.iso.org/standard/65716.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13370 — wymiana ciepła przez grunt</a><p>Metody obliczania współczynników przenoszenia ciepła i strumieni dla elementów stykających się z gruntem.</p></div>
          <div class="rk-heat-source"><a href="https://www.iso.org/standard/65706.html" target="_blank" rel="nofollow noopener noreferrer">ISO 14683 — liniowe mostki cieplne</a><p>Metody uproszczone i wartości liniowego współczynnika przenikania ciepła.</p></div>
          <div class="rk-heat-source"><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</a><p>Narzędzie pomocnicze do wyznaczania U przegród na podstawie ich układu warstw.</p></div>
        </div>
      </section>

      <section class="rk-heat-author" id="rk-heat-autor" aria-label="Autor opracowania">
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-about" checked>
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-exp">
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-method">
        <header class="rk-heat-author-head">
          <div>
            <span class="rk-heat-eyebrow">Autor i odpowiedzialność merytoryczna</span>
            <h2>Robert Kucharski — autor opracowania</h2>
            <p>Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego.</p>
          </div>
          <span class="rk-heat-author-mark">OZC POMIESZCZEŃ • OGRZEWANIE PŁASZCZYZNOWE • HYDRAULIKA INSTALACJI</span>
        </header>
        <div class="rk-heat-author-layout">
          <aside class="rk-heat-author-side">
            <div class="rk-heat-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
            <div class="rk-heat-author-name">Robert Kucharski</div>
            <div class="rk-heat-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
            <div class="rk-heat-author-social-label">Profile autora</div>
            <div class="rk-heat-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="LinkedIn Roberta Kucharskiego"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 3.5A2.2 2.2 0 1 1 5.2 8a2.2 2.2 0 0 1 0-4.5zM3.3 9.6h3.8V21H3.3V9.6zm6.2 0h3.6v1.6h.1c.5-.9 1.7-2 3.6-2 3.9 0 4.6 2.5 4.6 5.9V21h-3.8v-5.2c0-1.2 0-2.9-1.8-2.9s-2.1 1.4-2.1 2.8V21H9.5V9.6z"/></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Facebook Projekt Ogrzewania"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14 8h3V4.4c-.5-.1-2.2-.2-3.3-.2-3.2 0-5.3 1.9-5.3 5.4V12H5v4h3.4v8H13v-8h3.5l.6-4H13V10c0-1.2.3-2 1-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.3 2H22l-8.1 9.2L23.4 22H16l-5.8-7.6L3.5 22H0l8.5-9.8L-.6 2H7l5.2 6.9L18.3 2zm-1.3 18h2L5.9 3.9H3.8L17 20z"/></svg></a>
            </div>
          </aside>
          <div class="rk-heat-author-main">
            <blockquote class="rk-heat-author-quote"><p>„Wynik strat ciepła jest wiarygodny dopiero wtedy, gdy można prześledzić jego drogę: od geometrii i warunków brzegowych, przez U, ψ i przepływy powietrza, aż do mocy każdego pomieszczenia.”</p></blockquote>
            <div class="rk-heat-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-heat-author-tab" for="rk-heat-author-about">O autorze</label>
              <label class="rk-heat-author-tab" for="rk-heat-author-exp">Doświadczenie</label>
              <label class="rk-heat-author-tab" for="rk-heat-author-method">Metodyka</label>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-about">
              <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia strat ciepła oraz analizy hydrauliczne dla budynków nowych i modernizowanych. W dokumentacji łączy wynik każdego pomieszczenia z jego rzeczywistą geometrią, powierzchnią czynną, planowaną okładziną, konstrukcją podłogi i parametrami instalacji.</p>
              <p>Materiały edukacyjne tworzy dla inwestorów, projektantów i wykonawców, którzy chcą rozumieć założenia stojące za liczbami. Szczególny nacisk kładzie na rozróżnienie mocy i energii oraz na możliwość zweryfikowania danych wejściowych, zamiast opierania decyzji na uniwersalnym wskaźniku W/m².</p>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-exp">
              <p>Zakres praktyki obejmuje bilanse cieplne pomieszczeń, ocenę przegród i warunków brzegowych, wyznaczanie powierzchni grzewczych, dobór temperatur i rozstawów, planowanie pętli, obliczenia przepływów oraz oporów hydraulicznych.</p>
              <p>W projektach ogrzewania płaszczyznowego autor analizuje nie tylko sumę kW dla budynku, lecz także lokalne obciążenie łazienek, pomieszczeń narożnych, stref z przeszkleniami i wnętrz z ograniczoną powierzchnią czynną. To pozwala powiązać bilans z realnym układem rur oraz nastawami rozdzielacza.</p>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-method">
              <p>Artykuł rozdziela współczynnik strat H [W/K], projektową moc Φ [W] i energię Q [kWh]. Interaktywne laboratorium pokazuje jawny model dydaktyczny jednego pomieszczenia. Nie udaje pełnego OZC: upraszcza grunt współczynnikiem b i wymaga podania efektywnego strumienia powietrza już po poprawnym uwzględnieniu działania systemu.</p>
              <p>Treść została skonfrontowana z oficjalnym zakresem BS EN 12831-1, ISO 52016-1, ISO 6946, ISO 13370 i ISO 14683. Szczegółowe obliczenia konkretnego budynku wymagają pełnych danych, aktualnych wydań dokumentów oraz spójnej metody projektowej.</p>
            </div>
            <div class="rk-heat-mini-label">Więcej materiałów autora</div>
            <div class="rk-heat-portals">
              <a href="https://projekt-ogrzewania.pl/author/admin3399/">Wszystkie wpisy autora</a>
              <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a>
              <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>
            </div>
          </div>
        </div>
      </section>

      <aside class="rk-heat-sales-cta" aria-label="Końcowe zaproszenie do zamówienia projektu">
        <h3>Przełóż straty każdego pomieszczenia na gotowy projekt podłogówki</h3>
        <p>Indywidualny projekt łączy obliczenia cieplne z powierzchnią czynną, układem kondygnacji, trasami rur, rozstawami, długościami pętli, przepływami i nastawami rozdzielacza. Otrzymujesz dokumentację opartą na danych Twojego budynku, a nie na jednej orientacyjnej wartości W/m².</p>
        <a class="rk-heat-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a>
      </aside>
    </div>
  </article>
</div>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@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": "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": [
        "obliczenia strat ciepła",
        "projektowe obciążenie cieplne",
        "ogrzewanie podłogowe",
        "hydraulika instalacji grzewczych",
        "dobór temperatur i przepływów"
      ],
      "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": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/" },
        { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://projekt-ogrzewania.pl/blog/" },
        { "@type": "ListItem", "position": 3, "name": "Jak oblicza się straty ciepła w budynku?", "item": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#webpage",
      "url": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/",
      "name": "Jak oblicza się straty ciepła w budynku? Wzory i przykład krok po kroku",
      "description": "Metodyka obliczania strat ciepła pomieszczeń i budynku: przegrody, mostki, wentylacja, W/K, W oraz W/m².",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#breadcrumb" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#article" },
      "dateModified": "2026-09-02",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#article",
      "headline": "Jak oblicza się straty ciepła w budynku? Wzory i przykład krok po kroku",
      "description": "Praktyczne wyjaśnienie wzorów U · A · Δθ, współczynnika H, mostków cieplnych, wentylacji oraz różnicy między W i kWh.",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#webpage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "dateModified": "2026-09-02",
      "proficiencyLevel": "Beginner",
      "dependencies": "Geometria przegród, współczynniki U, wartości psi, temperatury projektowe oraz strumienie wentylacji",
      "keywords": [
        "jak oblicza się straty ciepła w budynku",
        "straty ciepła pomieszczenia",
        "U A delta T",
        "współczynnik strat ciepła W/K",
        "mostki cieplne psi",
        "straty wentylacyjne",
        "projektowe obciążenie cieplne"
      ],
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#laboratorium",
      "name": "Interaktywne laboratorium strat ciepła jednego pomieszczenia",
      "url": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#rk-heat-laboratorium",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "description": "Model edukacyjny rozkładający moc strat pokoju na ścianę, okno, dach lub strop, podłogę, mostki i wentylację.",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#webpage" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#howto",
      "name": "Jak obliczyć projektową stratę ciepła pomieszczenia",
      "description": "Sześć etapów prowadzących od danych budynku do mocy pomieszczenia w W.",
      "totalTime": "PT45M",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zbierz geometrię i parametry", "text": "Ustal powierzchnie netto przegród, współczynniki U, długości mostków oraz dane wentylacji." },
        { "@type": "HowToStep", "position": 2, "name": "Ustal warunki brzegowe", "text": "Przypisz temperaturę wewnętrzną oraz właściwe warunki zewnętrzne, strefy nieogrzewanej lub gruntu." },
        { "@type": "HowToStep", "position": 3, "name": "Policz przenikanie", "text": "Dla odpowiednich przegród wyznacz H jako U razy A, a następnie moc jako H razy różnica temperatur." },
        { "@type": "HowToStep", "position": 4, "name": "Dodaj mostki liniowe", "text": "Pomnóż wartości psi konkretnych detali przez ich długości i uwzględnij spójny system wymiarowania." },
        { "@type": "HowToStep", "position": 5, "name": "Policz wymianę powietrza", "text": "Wyznacz stratę wentylacyjną na podstawie uzasadnionego efektywnego strumienia powietrza i różnicy temperatur." },
        { "@type": "HowToStep", "position": 6, "name": "Zsumuj i zinterpretuj", "text": "Zsumuj składowe w W, zapisz H w W/K i odnieś moc pomieszczenia do właściwej powierzchni." }
      ],
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Co oznacza wynik strat ciepła podany w W?",
          "acceptedAnswer": { "@type": "Answer", "text": "Wynik w W oznacza moc cieplną potrzebną w zdefiniowanych warunkach obliczeniowych. Nie jest to miesięczne ani roczne zużycie energii. Aby otrzymać kWh, trzeba uwzględnić zmienną moc w czasie." }
        },
        {
          "@type": "Question",
          "name": "Czy jednostka W/godz. jest poprawna dla strat ciepła?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Wat jest już jednostką mocy, czyli tempa przekazywania energii. Projektową stratę ciepła podaje się w W lub kW, współczynnik strat w W/K, a energię zużytą w czasie w Wh lub kWh." }
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć stratę ciepła przez ścianę?",
          "acceptedAnswer": { "@type": "Answer", "text": "Dla prostego fragmentu ściany można obliczyć H = U · A, a następnie Φ = H · Δθ. Powierzchnia A powinna być polem netto po odjęciu okien i drzwi, U musi dotyczyć rzeczywistej przegrody, a Δθ właściwych warunków po obu jej stronach." }
        },
        {
          "@type": "Question",
          "name": "Czy dla każdej przegrody stosuje się tę samą różnicę temperatur?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Ściana zewnętrzna, przegroda do strefy nieogrzewanej i podłoga na gruncie mają różne warunki brzegowe. Dla gruntu stosuje się osobną metodykę, a dla sąsiednich stref trzeba określić ich temperaturę lub właściwy współczynnik korekcyjny." }
        },
        {
          "@type": "Question",
          "name": "Do obliczeń okna przyjąć Uw czy Ug?",
          "acceptedAnswer": { "@type": "Answer", "text": "Do uproszczonego obliczenia straty przez całe okno należy przyjąć Uw całego wyrobu. Ug opisuje oszklenie i nie uwzględnia w pełni wpływu ramy oraz połączenia szyby z ramą." }
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć straty przez podłogę na gruncie?",
          "acceptedAnswer": { "@type": "Answer", "text": "Podłogi na gruncie nie należy liczyć jak zwykłej ściany z pełną różnicą temperatur do powietrza zewnętrznego. Trzeba uwzględnić właściwości podłogi, geometrię, obwód, rozwiązanie krawędzi i kontakt z gruntem zgodnie z odpowiednią metodą, na przykład zakresem ISO 13370." }
        },
        {
          "@type": "Question",
          "name": "Czy mostki cieplne można dodać jako stały procent?",
          "acceptedAnswer": { "@type": "Answer", "text": "Stały procent może służyć co najwyżej do bardzo wstępnej kontroli, ale nie zastępuje obliczeń. Właściwe podejście przypisuje liniowy współczynnik ψ do konkretnego detalu, mnoży go przez długość połączenia i zachowuje spójny system wymiarowania." }
        },
        {
          "@type": "Question",
          "name": "Jak w uproszczeniu policzyć stratę przez wentylację?",
          "acceptedAnswer": { "@type": "Answer", "text": "Dla powietrza można użyć zależności ΦV ≈ 0,34 · V̇eff · Δθ, gdzie efektywny strumień V̇eff podaje się w m³/h. Strumień musi jednak wynikać z projektu i prawidłowo uwzględniać sposób wentylacji, odzysk, niezbilansowanie oraz infiltrację." }
        },
        {
          "@type": "Question",
          "name": "Czy rekuperator całkowicie usuwa straty wentylacyjne?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rzeczywisty odzysk zależy od warunków pracy, strumieni i charakterystyki systemu, a ponadto pozostają infiltracja, niezbilansowanie oraz energia pomocnicza. Nie należy więc zerować straty wentylacyjnej ani redukować całego przepływu jedną katalogową sprawnością." }
        },
        {
          "@type": "Question",
          "name": "Czy moc projektową można pomnożyć przez 720 godzin, aby policzyć miesiąc?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie jako prognozę rzeczywistego zużycia. Takie działanie zakładałoby stałą moc projektową przez cały miesiąc. Do obliczenia energii potrzebny jest przebieg temperatur, zyski, harmonogramy, zachowanie budynku oraz sprawność systemu w zmiennych warunkach." }
        },
        {
          "@type": "Question",
          "name": "Czy wynik W/m² wystarcza do projektu ogrzewania podłogowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Trzeba znać moc każdego pomieszczenia, powierzchnię rzeczywiście ogrzewaną, konstrukcję podłogi, opór okładziny, dopuszczalną temperaturę powierzchni, parametry wody, rozstawy, długości pętli i hydraulikę instalacji." }
        },
        {
          "@type": "Question",
          "name": "Czy laboratorium z artykułu zastępuje pełne OZC?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Laboratorium pokazuje zależności i przejrzysty model jednego pomieszczenia. Nie odtwarza pełnej geometrii budynku, wszystkich stref, szczegółowego gruntu, wentylacji, mostków ani kompletnej procedury projektowej." }
        }
      ],
      "inLanguage": "pl-PL"
    }
  ]
}
</script>

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

  var root = document.getElementById("rk-heat-tool");
  if (root === null) { return; }

  var currentPart = "wall";
  var latest = null;

  function element(id) {
    return document.getElementById(id);
  }

  function readNumber(id, fallback) {
    var input = element(id);
    if (input === null) { return fallback; }
    var parsed = Number(String(input.value).replace(",", "."));
    if (Number.isFinite(parsed) === false) { return fallback; }
    return parsed;
  }

  function nonNegative(id, fallback) {
    var value = readNumber(id, fallback);
    if (value < 0) { return 0; }
    return value;
  }

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

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

  function setBar(key, value, total, maximum) {
    var bar = element("rk-heat-bar-" + key);
    var label = element("rk-heat-val-" + key);
    var width = 0;
    var share = 0;
    if (maximum > 0) { width = value / maximum * 100; }
    if (total > 0) { share = value / total * 100; }
    if (bar !== null) { bar.style.width = Math.max(0, Math.min(100, width)) + "%"; }
    if (label !== null) { label.textContent = format(value, 0) + " W · " + format(share, 1) + "%"; }
  }

  function formulaFor(part, data) {
    if (data === null) { return; }
    var name = "";
    var equation = "";
    var note = "";

    if (part === "wall") {
      name = "Ściana netto";
      equation = "H = " + format(data.wallU, 2) + " × " + format(data.wallA, 1) + " = " + format(data.hWall, 2) + " W/K; Φ = " + format(data.hWall, 2) + " × " + format(data.delta, 1) + " = " + format(data.wall, 0) + " W";
      note = "Pole ściany musi być pomniejszone o otwory policzone osobno.";
    } else if (part === "window") {
      name = "Okno";
      equation = "H = " + format(data.windowU, 2) + " × " + format(data.windowA, 1) + " = " + format(data.hWindow, 2) + " W/K; Φ = " + format(data.hWindow, 2) + " × " + format(data.delta, 1) + " = " + format(data.window, 0) + " W";
      note = "W modelu stosujemy Uw całego okna, a nie Ug samej szyby.";
    } else if (part === "ceiling") {
      name = "Dach lub strop";
      equation = "H = " + format(data.ceilingU, 2) + " × " + format(data.ceilingA, 1) + " = " + format(data.hCeiling, 2) + " W/K; Φ = " + format(data.hCeiling, 2) + " × " + format(data.delta, 1) + " = " + format(data.ceiling, 0) + " W";
      note = "Przed obliczeniem trzeba ustalić, co znajduje się po drugiej stronie przegrody.";
    } else if (part === "floor") {
      name = "Podłoga — uproszczony model";
      equation = "H = " + format(data.floorU, 2) + " × " + format(data.floorA, 1) + " × " + format(data.floorB, 2) + " = " + format(data.hFloor, 2) + " W/K; Φ = " + format(data.hFloor, 2) + " × " + format(data.delta, 1) + " = " + format(data.floor, 0) + " W";
      note = "Współczynnik b służy tu do nauki struktury równania i nie zastępuje metody dla gruntu.";
    } else if (part === "bridge") {
      name = "Liniowe mostki cieplne";
      equation = "H_TB = Σ(ψ × l) = " + format(data.hBridge, 2) + " W/K; Φ_TB = " + format(data.hBridge, 2) + " × " + format(data.delta, 1) + " = " + format(data.bridge, 0) + " W";
      note = "Sumę H należy zbudować z konkretnych detali, ich wartości ψ i rzeczywistych długości.";
    } else {
      name = "Wentylacja i infiltracja";
      equation = "H_V = 0,34 × " + format(data.airflow, 0) + " = " + format(data.hVent, 2) + " W/K; Φ_V = " + format(data.hVent, 2) + " × " + format(data.delta, 1) + " = " + format(data.vent, 0) + " W";
      note = "Efektywny strumień powinien wynikać z projektu wentylacji i sposobu uwzględnienia odzysku oraz infiltracji.";
    }

    setText("rk-heat-formula-name", name);
    setText("rk-heat-formula-equation", equation);
    setText("rk-heat-formula-note", note);
  }

  function renderDiagnostics(data) {
    var container = element("rk-heat-diagnostics");
    if (container === null) { return; }
    container.textContent = "";
    var messages = [];

    if (data.roomArea <= 0) {
      messages.push({ type: "is-bad", text: "Powierzchnia pokoju musi być większa od zera, aby obliczyć wskaźnik W/m²." });
    }
    if (data.delta <= 0) {
      messages.push({ type: "is-bad", text: "Temperatura zewnętrzna nie jest niższa od wewnętrznej, dlatego model grzewczy daje Δθ = 0 K." });
    }
    if (data.hBridge === 0) {
      messages.push({ type: "", text: "Mostki mają H = 0 W/K. Upewnij się, że to świadome założenie, a nie brak danych o detalach." });
    }
    if (data.airflow === 0) {
      messages.push({ type: "", text: "Strumień powietrza wynosi 0 m³/h. Rzeczywisty model musi uwzględnić wentylację i infiltrację." });
    }
    messages.push({ type: "", text: "Podłoga jest tu liczona uproszczonym współczynnikiem b. Pełne obliczenie elementu na gruncie wymaga odrębnej metody." });
    messages.push({ type: "is-good", text: "Wynik " + format(data.total, 0) + " W jest mocą modelu przy Δθ = " + format(data.delta, 1) + " K. Nie jest miesięcznym zużyciem w kWh." });

    messages.forEach(function (message) {
      var item = document.createElement("div");
      item.className = "rk-heat-diagnostic";
      if (message.type !== "") { item.className += " " + message.type; }
      item.textContent = message.text;
      container.appendChild(item);
    });
  }

  function calculate() {
    var ti = readNumber("rk-heat-ti", 20);
    var te = readNumber("rk-heat-te", -20);
    var delta = ti - te;
    if (delta < 0) { delta = 0; }

    var roomArea = nonNegative("rk-heat-room-area", 20);
    var wallA = nonNegative("rk-heat-wall-a", 18);
    var wallU = nonNegative("rk-heat-wall-u", 0.20);
    var windowA = nonNegative("rk-heat-window-a", 4);
    var windowU = nonNegative("rk-heat-window-u", 0.90);
    var ceilingA = nonNegative("rk-heat-ceiling-a", 20);
    var ceilingU = nonNegative("rk-heat-ceiling-u", 0.15);
    var floorA = nonNegative("rk-heat-floor-a", 20);
    var floorU = nonNegative("rk-heat-floor-u", 0.20);
    var floorB = nonNegative("rk-heat-floor-b", 0.50);
    if (floorB > 1) { floorB = 1; }
    var hBridge = nonNegative("rk-heat-bridge-h", 3);
    var airflow = nonNegative("rk-heat-airflow", 30);

    var hWall = wallU * wallA;
    var hWindow = windowU * windowA;
    var hCeiling = ceilingU * ceilingA;
    var hFloor = floorU * floorA * floorB;
    var hVent = 0.34 * airflow;

    var wall = hWall * delta;
    var windowLoss = hWindow * delta;
    var ceiling = hCeiling * delta;
    var floor = hFloor * delta;
    var bridge = hBridge * delta;
    var vent = hVent * delta;
    var totalH = hWall + hWindow + hCeiling + hFloor + hBridge + hVent;
    var total = wall + windowLoss + ceiling + floor + bridge + vent;
    var wattsPerSquareMetre = null;
    if (roomArea > 0) { wattsPerSquareMetre = total / roomArea; }

    latest = {
      ti: ti,
      te: te,
      delta: delta,
      roomArea: roomArea,
      wallA: wallA,
      wallU: wallU,
      windowA: windowA,
      windowU: windowU,
      ceilingA: ceilingA,
      ceilingU: ceilingU,
      floorA: floorA,
      floorU: floorU,
      floorB: floorB,
      hBridge: hBridge,
      airflow: airflow,
      hWall: hWall,
      hWindow: hWindow,
      hCeiling: hCeiling,
      hFloor: hFloor,
      hVent: hVent,
      wall: wall,
      window: windowLoss,
      ceiling: ceiling,
      floor: floor,
      bridge: bridge,
      vent: vent,
      totalH: totalH,
      total: total,
      wattsPerSquareMetre: wattsPerSquareMetre
    };

    setText("rk-heat-out-delta", format(delta, 1) + " K");
    setText("rk-heat-out-h", format(totalH, 2) + " W/K");
    setText("rk-heat-out-w", format(total, 0) + " W");
    setText("rk-heat-out-kw", format(total / 1000, 2) + " kW");
    if (wattsPerSquareMetre === null) {
      setText("rk-heat-out-wm2", "—");
    } else {
      setText("rk-heat-out-wm2", format(wattsPerSquareMetre, 1) + " W/m²");
    }

    var values = [wall, windowLoss, ceiling, floor, bridge, vent];
    var maximum = Math.max.apply(null, values);
    setBar("wall", wall, total, maximum);
    setBar("window", windowLoss, total, maximum);
    setBar("ceiling", ceiling, total, maximum);
    setBar("floor", floor, total, maximum);
    setBar("bridge", bridge, total, maximum);
    setBar("vent", vent, total, maximum);

    var chart = element("rk-heat-live-chart");
    var nameInput = element("rk-heat-room-name");
    var roomName = "Pokój referencyjny";
    if (nameInput !== null) {
      if (nameInput.value.trim() !== "") { roomName = nameInput.value.trim(); }
    }
    if (chart !== null) { chart.setAttribute("aria-label", roomName + ": wykres sześciu składowych o łącznej mocy " + format(total, 0) + " W"); }

    formulaFor(currentPart, latest);
    renderDiagnostics(latest);
  }

  var numericInputs = root.querySelectorAll("input[type='number']");
  numericInputs.forEach(function (input) {
    input.addEventListener("input", calculate);
    input.addEventListener("change", calculate);
  });

  var nameField = element("rk-heat-room-name");
  if (nameField !== null) { nameField.addEventListener("input", calculate); }

  var calculateButton = element("rk-heat-calculate");
  if (calculateButton !== null) { calculateButton.addEventListener("click", calculate); }

  var tabs = root.querySelectorAll(".rk-heat-formula-tab");
  tabs.forEach(function (tab) {
    tab.addEventListener("click", function () {
      currentPart = tab.getAttribute("data-part") || "wall";
      tabs.forEach(function (candidate) {
        candidate.setAttribute("aria-pressed", candidate === tab ? "true" : "false");
      });
      formulaFor(currentPart, latest);
    });
  });

  calculate();
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">Jak oblicza się straty cieplne w budynkach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
