<?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 weryfikacja projektu ogrzewania podłogowego - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/weryfikacja-projektu-ogrzewania-podlogowego/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/weryfikacja-projektu-ogrzewania-podlogowego/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Mon, 07 Sep 2026 11:37:14 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa weryfikacja projektu ogrzewania podłogowego - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/weryfikacja-projektu-ogrzewania-podlogowego/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 07 Sep 2026 11:18:34 +0000</pubDate>
				<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Hydraulika instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Obliczenia cieplne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projekt ogrzewania]]></category>
		<category><![CDATA[Projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Sztuczna inteligencja]]></category>
		<category><![CDATA[ai hvac]]></category>
		<category><![CDATA[chatgpt ogrzewanie podłogowe]]></category>
		<category><![CDATA[długość pętli ogrzewania podłogowego]]></category>
		<category><![CDATA[dobór pompy obiegowej]]></category>
		<category><![CDATA[obliczanie strat ciepła]]></category>
		<category><![CDATA[opory hydrauliczne podłogówki]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego ai]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego z chatgpt]]></category>
		<category><![CDATA[projekt podłogówki online]]></category>
		<category><![CDATA[projekt podłogówki samemu]]></category>
		<category><![CDATA[przepływ w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[rozstaw rur ogrzewania podłogowego]]></category>
		<category><![CDATA[sztuczna inteligencja w hvac]]></category>
		<category><![CDATA[weryfikacja projektu ogrzewania podłogowego]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7493</guid>

					<description><![CDATA[<p>AI + HVAC • analiza techniczna 2026 Projekt wygląda profesjonalnie. Teraz sprawdź, czy liczby naprawdę się spinają. ChatGPT może uporządkować dane, objaśnić wzory i przygotować logicznie brzmiącą koncepcję. Nie oznacza to jeszcze, że podłoga pokryje straty ciepła, pętle dadzą się wyregulować, a pompa obsłuży krytyczny obieg. Czytanie: około 28 minut Interaktywny audyt projektu AI Aktualizacja:&#8230;&#160;<a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/" rel="bookmark">Dowiedz się więcej &#187;<span class="screen-reader-text">Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?</span></a></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/">Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-ai-floor-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-orange-soft: #fff2ec;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e7ad2f;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  update();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/">Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
