<?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 rury pex pert - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/rury-pex-pert/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/rury-pex-pert/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sat, 16 May 2026 15:11:38 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa rury pex pert - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/rury-pex-pert/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ile wody mieści się w 1 metrze rury PEX / PERT 16.</title>
		<link>https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 04 Feb 2025 20:40:08 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja zużycia energii]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[ciepło w domu]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[optymalizacja systemu]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pojemność wody w rurach]]></category>
		<category><![CDATA[pompy obiegowe]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[rury pex pert]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2081</guid>

					<description><![CDATA[<p>Czy zastanawiałeś się, ile wody mieści się w 1 metrze rury PEX / PERT 16? To kluczowe pytanie przy projektowaniu instalacji grzewczych i wodnych. Dokładne obliczenia pozwalają na dobór odpowiedniej pompy, minimalizację strat ciepła i optymalizację pracy systemu. W tym artykule pokażemy, jak szybko wyliczyć pojemność wody w rurach PEX/PERT 16, dlaczego warto to wiedzieć oraz jak wykorzystać kalkulator online do szybkich obliczeń. Dzięki temu unikniesz błędów i zoptymalizujesz swoją instalację!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/">Ile wody mieści się w 1 metrze rury PEX / PERT 16.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-panel: #1e293b;
    --rk-intro-primary: #0284c7; /* Hydrauliczny błękit */
    --rk-intro-primary-light: #e0f2fe;
    --rk-intro-accent: #38bdf8; /* Jasny cyjan */
    --rk-intro-warning: #fbbf24;
    --rk-intro-bg: #ffffff;
    --rk-intro-text: #334155;
    --rk-intro-border: #e2e8f0;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid rgba(2, 132, 199, 0.2);
    overflow: hidden;
}

/* Sekcja Bohatera (Hero / Intro) */
.rk-intro-header {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #172554 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-primary);
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.15);
    color: var(--rk-intro-accent);
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-intro-content {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    align-items: center;
}

.rk-intro-text-box {
    font-size: 16px;
    line-height: 1.8;
    color: #e2e8f0;
}

.rk-intro-text-box strong {
    color: #ffffff;
    font-weight: 800;
    background: rgba(2, 132, 199, 0.4);
    padding: 2px 6px;
    border-radius: 4px;
}

.rk-intro-link {
    color: var(--rk-intro-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-intro-accent);
    transition: all 0.3s;
}

.rk-intro-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Interaktywny Widget Hydrauliczny */
.rk-intro-widget {
    background: var(--rk-intro-panel);
    border-radius: 16px;
    padding: 25px;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.4);
    border: 1px solid #334155;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-widget-title {
    font-size: 14px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0;
    text-align: center;
}

/* SVG Wizualizacja Zładu */
.rk-widget-svg-box {
    height: 120px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-anim-water-level {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: bottom;
}

.rk-anim-flow {
    stroke-dasharray: 8 8;
    animation: pipeFlow 1.5s linear infinite;
}

@keyframes pipeFlow {
    to { stroke-dashoffset: -16; }
}

/* Sterowanie - Suwak */
.rk-intro-controls {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-intro-labels {
    display: flex;
    justify-content: space-between;
    color: #f8fafc;
    font-size: 14px;
    font-weight: 700;
}

.rk-intro-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #334155;
    outline: none;
}

.rk-intro-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-intro-accent);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 15px rgba(56, 189, 248, 0.5);
    transition: transform 0.1s;
}

.rk-intro-range::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.rk-widget-result {
    text-align: center;
    background: #0f172a;
    padding: 12px;
    border-radius: 12px;
    border: 1px solid #475569;
}

.rk-val-big {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-intro-accent);
}

.rk-val-unit {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 700;
    text-transform: uppercase;
}

/* Pasek Informacyjny poniżej */
.rk-intro-footer {
    padding: 20px 50px;
    background: #f8fafc;
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid var(--rk-intro-border);
}

.rk-feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-text);
}

.rk-feature-icon {
    width: 32px;
    height: 32px;
    background: var(--rk-intro-primary-light);
    color: var(--rk-intro-primary);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (max-width: 768px) {
    .rk-intro-header { padding: 30px 20px; }
    .rk-intro-content { grid-template-columns: 1fr; gap: 30px; }
    .rk-intro-footer { flex-direction: column; padding: 20px; align-items: flex-start; }
}
</style>

<!-- JSON-LD (Invisible Data) -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Ile wody mieści się w 1 metrze rury PEX / PERT 16 - Wprowadzenie",
    "description": "Kluczowy parametr hydrauliczny niezbędny do prawidłowego zbalansowania instalacji, doboru naczynia wzbiorczego i stabilnej pracy pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset",
    "name": "Parametry geometryczne i objętościowe rury PEX/PERT 16",
    "description": "Baza danych określająca pojemność wodną rur polietylenowych w instalacjach płaszczyznowych oraz ich wpływ na bezwładność systemu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zład wody w podłogówce",
      "pojemność rury PEX 16",
      "objętość instalacji CO",
      "parametry hydrauliczne",
      "dobór naczynia wzbiorczego"
    ],
    "measurementTechnique": "Wyliczenia oparte na średnicy wewnętrznej rury (ID = 12mm dla 16x2.0) przy użyciu standardowego wzoru na objętość walca.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pojemność jednostkowa: 0,113 litra na metr bieżący (l/m)",
        "Parametr wejściowy do obliczeń doboru naczynia przeponowego",
        "Kluczowa zmienna do zabezpieczenia minimalnego przepływu dla pompy ciepła"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp",
    "name": "Symulator Przyrostu Zładu Wodnego",
    "description": "Interaktywny widget na żywo przeliczający długość ułożonej pętli grzewczej PEX 16 na rzeczywistą pojemność wody w układzie (w litrach).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript for dynamic SVG rendering",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
            Wstęp Inżynieryjny
        </div>

        <div class="rk-intro-content">
            <!-- Kolumna Tekstowa -->
            <div class="rk-intro-text-box">
                <strong>Ile wody mieści się w 1 metrze rury PEX / PERT 16</strong> określa absolutnie kluczowy parametr hydrauliczny, czyli pojemność jednostkową przewodu grzewczego (średnica zewnętrzna 16 mm). 
                <br><br>
                Dla instalatora i inwestora brak tej wiedzy oznacza ryzyko niedoszacowania <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/" class="rk-intro-link">zładu instalacji</a>, niebezpiecznie małego doboru <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/" class="rk-intro-link">naczynia wzbiorczego</a> oraz wysoce niestabilnej pracy <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-intro-link">pompy ciepła</a>. Precyzyjne określenie ilości medium w układzie decyduje o bezwładności termicznej podłogówki oraz efektywności dystrybucji energii w budynku. 
                <br><br>
                W tym artykule rozbijamy ten temat na czynniki pierwsze, podając <strong>twarde wzory, normy oraz gotowe algorytmy</strong> obliczeniowe.
            </div>

            <!-- Kolumna Widgetu -->
            <div class="rk-intro-widget">
                <h4 class="rk-widget-title">Symulator Zładu Instalacji (PEX 16)</h4>
                
                <div class="rk-widget-svg-box">
                    <svg viewBox="0 0 200 120" style="width: 100%; height: 100%;">
                        <!-- Rura zasilająca z animacją przepływu -->
                        <path d="M10 20 L50 20 Q70 20 70 40 L70 90" fill="none" stroke="#334155" stroke-width="12" stroke-linecap="round"/>
                        <path class="rk-anim-flow" d="M10 20 L50 20 Q70 20 70 40 L70 90" fill="none" stroke="#38bdf8" stroke-width="4" stroke-linecap="round"/>
                        
                        <!-- Zbiornik / Bufor reprezentujący całkowitą pojemność -->
                        <path d="M110 20 L110 100 Q110 110 120 110 L170 110 Q180 110 180 100 L180 20" fill="none" stroke="#64748b" stroke-width="4"/>
                        <rect x="112" y="20" width="66" height="88" fill="#1e293b"/>
                        
                        <!-- Animowana woda w zbiorniku -->
                        <g transform="translate(0, 108)">
                            <rect class="rk-anim-water-level" id="svgWaterFill" x="112" y="-88" width="66" height="88" fill="#0284c7" transform="scale(1, 0.1)"/>
                        </g>
                        
                        <!-- Kropelka animacyjna wpadająca z rury -->
                        <circle cx="70" cy="100" r="4" fill="#38bdf8">
                            <animate attributeName="cy" values="90;115;90" dur="1s" repeatCount="indefinite" />
                            <animate attributeName="opacity" values="1;0;0" dur="1s" repeatCount="indefinite" />
                        </circle>
                    </svg>
                </div>

                <div class="rk-intro-controls">
                    <div class="rk-intro-labels">
                        <span>Długość rury:</span>
                        <span id="labelLenOut">10 m</span>
                    </div>
                    <input type="range" class="rk-intro-range" id="pipeSimSlider" min="10" max="1000" step="10" value="10">
                </div>

                <div class="rk-widget-result">
                    <div class="rk-val-big" id="labelVolOut">1.13 <span class="rk-val-unit">Litrów wody</span></div>
                </div>
            </div>
        </div>
    </div>

    <!-- Pasek Dolny -->
    <div class="rk-intro-footer">
        <div class="rk-feature-item">
            <div class="rk-feature-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg></div>
            Zgodność z PN-EN 1264
        </div>
        <div class="rk-feature-item">
            <div class="rk-feature-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div>
            Czas czytania: 5 min
        </div>
        <div class="rk-feature-item">
            <div class="rk-feature-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="20" x2="12" y2="10"></line><line x1="18" y1="20" x2="18" y2="4"></line><line x1="6" y1="20" x2="6" y2="16"></line></svg></div>
            Wartość inżynieryjna
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border-top: 4px solid #ef4444; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: 800; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten interaktywny kontener oraz jego struktura JSON-LD są własnością serwisu Projekt-Ogrzewania.pl. Wykryto próbę użycia na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // Logika Symulatora Pojemności
    const slider = document.getElementById('pipeSimSlider');
    const labelLen = document.getElementById('labelLenOut');
    const labelVol = document.getElementById('labelVolOut');
    const waterFill = document.getElementById('svgWaterFill');
    
    const CAPACITY_PER_METER = 0.113; // litra na metr dla rury 16x2.0

    function updateSimulator() {
        const length = parseInt(slider.value);
        const volume = (length * CAPACITY_PER_METER).toFixed(2);
        
        // Aktualizacja tekstów
        labelLen.textContent = length + ' m';
        labelVol.innerHTML = volume + ' <span class="rk-val-unit">Litrów wody</span>';
        
        // Aktualizacja SVG - Skalowanie słupa wody
        // length min = 10, max = 1000
        // Skala Y od 0.05 do 1.0
        const scaleY = Math.max(0.05, length / 1000);
        waterFill.setAttribute('transform', `scale(1, ${scaleY})`);
    }

    // Nasłuchiwanie zdarzeń
    if (slider) {
        slider.addEventListener('input', updateSimulator);
        // Inicjalizacja początkowa
        updateSimulator();
    }
});
</script>



<style>
:root {
    --rk-dim-dark: #0f172a;
    --rk-dim-primary: #2563eb; /* Inżynieryjny kobalt */
    --rk-dim-primary-light: #dbeafe;
    --rk-dim-accent: #f59e0b; /* Pomarańcz ostrzegawczy */
    --rk-dim-danger: #ef4444;
    --rk-dim-bg: #ffffff;
    --rk-dim-surface: #f8fafc;
    --rk-dim-border: #e2e8f0;
    --rk-dim-text: #334155;
    --rk-dim-text-light: #64748b;
}

.rk-dim-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dim-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -5px rgba(37, 99, 235, 0.15);
    border: 1px solid rgba(37, 99, 235, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-dim-header {
    background: linear-gradient(135deg, var(--rk-dim-dark) 0%, #1e3a8a 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dim-primary);
}

.rk-dim-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(219, 234, 254, 0.15);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-dim-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
}

.rk-dim-title span {
    color: #93c5fd;
}

/* Siatka Kafelków (Zamiast ściany tekstu) */
.rk-dim-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px;
    background: var(--rk-dim-bg);
}

.rk-dim-card {
    background: var(--rk-dim-surface);
    border: 1px solid var(--rk-dim-border);
    border-radius: 16px;
    padding: 25px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    position: relative;
    overflow: hidden;
}

.rk-dim-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    border-color: #bfdbfe;
}

.rk-dim-card-icon {
    width: 40px;
    height: 40px;
    background: #ffffff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-dim-primary);
    margin-bottom: 15px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-dim-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-dim-dark);
}

.rk-dim-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-dim-text);
}

.rk-dim-card strong {
    color: var(--rk-dim-primary);
    font-weight: 800;
}

/* Linki wewnętrzne */
.rk-dim-link {
    color: var(--rk-dim-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-dim-primary);
    transition: 0.3s;
}
.rk-dim-link:hover { border-bottom-style: solid; color: #1d4ed8; }

/* Interaktywny Mikrometr */
.rk-dim-interactive {
    margin: 0 50px 40px;
    background: #ffffff;
    border: 2px solid var(--rk-dim-border);
    border-radius: 20px;
    padding: 30px;
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 40px;
    align-items: center;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.02);
}

.rk-dim-controls {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dim-btn {
    padding: 16px 20px;
    background: var(--rk-dim-surface);
    border: 2px solid var(--rk-dim-border);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dim-text-light);
    cursor: pointer;
    transition: all 0.3s;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-dim-btn:hover { background: #f1f5f9; }
.rk-dim-btn.active {
    background: var(--rk-dim-primary-light);
    border-color: var(--rk-dim-primary);
    color: var(--rk-dim-primary);
}

.rk-dim-btn.active .rk-dim-radio {
    border-color: var(--rk-dim-primary);
}
.rk-dim-btn.active .rk-dim-radio::after {
    transform: scale(1);
}

.rk-dim-radio {
    width: 20px; height: 20px; border-radius: 50%; border: 2px solid #cbd5e1; display: flex; align-items: center; justify-content: center;
}
.rk-dim-radio::after {
    content: ''; width: 10px; height: 10px; background: var(--rk-dim-primary); border-radius: 50%; transform: scale(0); transition: 0.2s;
}

/* Wizualizacja przekroju */
.rk-dim-visual {
    display: flex;
    gap: 40px;
    align-items: center;
}

.rk-dim-svg-box {
    width: 160px;
    height: 160px;
    position: relative;
    flex-shrink: 0;
}

.rk-dim-stats {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
}

.rk-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--rk-dim-border);
}

.rk-stat-label { font-size: 13px; font-weight: 700; color: var(--rk-dim-text-light); text-transform: uppercase; }
.rk-stat-val { font-size: 20px; font-weight: 900; color: var(--rk-dim-dark); transition: color 0.3s; }
.rk-stat-val span { font-size: 12px; color: var(--rk-dim-text-light); font-weight: 700; }

.rk-alert-box {
    background: #fef2f2;
    border-left: 4px solid var(--rk-dim-danger);
    padding: 12px 15px;
    border-radius: 0 8px 8px 0;
    font-size: 13px;
    font-weight: 700;
    color: #991b1b;
    margin-top: 10px;
    display: none;
    animation: fadeIn 0.5s ease;
}

@keyframes fadeIn { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: translateX(0); } }

/* Elementy SVG */
.rk-pipe-outer { fill: #e2e8f0; stroke: #94a3b8; stroke-width: 2; }
.rk-pipe-wall { fill: #cbd5e1; transition: r 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.rk-pipe-inner { fill: #3b82f6; transition: r 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.rk-water-flow { stroke-dasharray: 4 12; animation: dimFlow 1s linear infinite; opacity: 0.5; }

@keyframes dimFlow { to { stroke-dashoffset: -16; } }

/* Oznaczenia wymiarów w SVG */
.rk-dim-line { stroke: var(--rk-dim-dark); stroke-width: 1.5; stroke-dasharray: 2 2; }
.rk-dim-text-svg { font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 800; fill: var(--rk-dim-dark); }

@media (max-width: 768px) {
    .rk-dim-header { padding: 30px 20px; }
    .rk-dim-grid { grid-template-columns: 1fr; padding: 20px; gap: 15px; }
    .rk-dim-interactive { grid-template-columns: 1fr; margin: 0 20px 30px; padding: 20px; gap: 25px; }
    .rk-dim-visual { flex-direction: column; text-align: center; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Ile wody mieści się w 1 metrze rury PEX / PERT 16 w standardowych instalacjach?",
    "description": "Dokładna analiza pojemności rur PEX 16x2.0 (113 ml/m) oraz 16x2.2 (106 ml/m) w oparciu o normę PN-EN ISO 15875. Wpływ średnicy wewnętrznej na opory i taktowanie pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-wstep",
    "name": "Parametry geometryczne i pojemnościowe rur PEX/PERT 16 wg PN-EN ISO 15875",
    "description": "Zestawienie średnic wewnętrznych (ID) oraz odpowiadających im pojemności zładu wodnego na metr bieżący dla rur instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zład wody rura PEX 16",
      "średnica wewnętrzna rury ogrzewania",
      "PN-EN ISO 15875",
      "taktowanie pompy ciepła przez mały zład",
      "objętość pętli ogrzewania podłogowego"
    ],
    "measurementTechnique": "Obliczenia objętości walca na podstawie wymiarów nominalnych określonych w normie PN-EN ISO 15875-2:2005.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura PEX 16 ze ścianką 2.0 mm = Średnica wewnętrzna 12.0 mm = Pojemność 0.113 l/m.",
        "Rura PEX 16 ze ścianką 2.2 mm = Średnica wewnętrzna 11.6 mm = Pojemność 0.106 l/m."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-wstep",
    "name": "Wirtualny Mikrometr Rury PEX",
    "description": "Interaktywne narzędzie edukacyjne pozwalające inwestorom na wizualizację różnic w średnicy wewnętrznej rur grzewczych i ich wpływu na pojemność wodną układu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS Transitions and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dim-container" id="rk-dim-app">
    <div class="rk-dim-header">
        <div class="rk-dim-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
            Analiza Geometryczna
        </div>
        <h2 class="rk-dim-title">Pojemność PEX 16 – <span>Prawda o Średnicy Wewnętrznej</span></h2>
    </div>

    <!-- Kafelki Informacyjne -->
    <div class="rk-dim-grid">
        <div class="rk-dim-card">
            <div class="rk-dim-card-icon">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path><line x1="4" y1="22" x2="4" y2="15"></line></svg>
            </div>
            <h3>Standard wg Normy</h3>
            <p>W standardowej rurze 16&#215;2.0 mm mieści się <strong>0,113 litra wody</strong> (113 ml) na metr, co określa norma <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/" class="rk-dim-link">PN-EN ISO 15875</a>. Dla tańszych rur 16&#215;2.2 mm pojemność spada do <strong>0,106 litra</strong>. To absolutny fundament obliczeń.</p>
        </div>

        <div class="rk-dim-card">
            <div class="rk-dim-card-icon">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
            </div>
            <h3>Fizyka Przepływu</h3>
            <p>Średnica zewnętrzna (OD = 16 mm) to tylko wymiar montażowy. Dla hydrauliki liczy się wyłącznie średnica wewnętrzna (<strong>ID 12,0 mm vs 11,6 mm</strong>). Ta przestrzeń decyduje o oporze i transporcie energii cieplnej.</p>
        </div>

        <div class="rk-dim-card">
            <div class="rk-dim-card-icon" style="color: var(--rk-dim-danger);">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            </div>
            <h3>Błąd za 45 000 PLN</h3>
            <p>Projektowanie zładu &#8222;na oko&#8221; i przeszacowanie pojemności to główna przyczyna <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/" class="rk-dim-link">niestabilnej pracy</a> i zabójczego dla sprężarek taktowania <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-dim-link">pompy ciepła</a>.</p>
        </div>
    </div>

    <!-- Narzędzie Interaktywne -->
    <div class="rk-dim-interactive">
        <div class="rk-dim-controls">
            <button class="rk-dim-btn active" id="rkBtn20">
                Wersja 16&#215;2.0 (Standard)
                <div class="rk-dim-radio"></div>
            </button>
            <button class="rk-dim-btn" id="rkBtn22">
                Wersja 16&#215;2.2 (Market)
                <div class="rk-dim-radio"></div>
            </button>
        </div>

        <div class="rk-dim-visual">
            <div class="rk-dim-svg-box">
                <svg viewBox="0 0 100 100" width="100%" height="100%">
                    <!-- Rura Zewnętrzna 16mm -->
                    <circle class="rk-pipe-outer" cx="50" cy="50" r="45"/>
                    <!-- Ścianka rury - początkowo 2.0 (skalowana relatywnie) -->
                    <circle class="rk-pipe-wall" id="svgWall" cx="50" cy="50" r="45"/>
                    <!-- Wnętrze (woda) -->
                    <circle class="rk-pipe-inner" id="svgWater" cx="50" cy="50" r="33"/>
                    
                    <!-- Animacja przepływu -->
                    <circle class="rk-water-flow" cx="50" cy="50" r="20" fill="none" stroke="#60a5fa" stroke-width="6"/>
                    <circle class="rk-water-flow" cx="50" cy="50" r="10" fill="none" stroke="#93c5fd" stroke-width="4" style="animation-direction: reverse; animation-duration: 2s;"/>

                    <!-- Wymiary (Zmienne) -->
                    <path class="rk-dim-line" d="M 17 50 L 5 50" />
                    <path class="rk-dim-line" d="M 83 50 L 95 50" />
                    <text class="rk-dim-text-svg" x="50" y="54" text-anchor="middle" id="svgIdText">ID: 12.0</text>
                </svg>
            </div>

            <div class="rk-dim-stats">
                <div class="rk-stat-row">
                    <div class="rk-stat-label">Grubość ścianki (g)</div>
                    <div class="rk-stat-val" id="valWall">2.0 <span>mm</span></div>
                </div>
                <div class="rk-stat-row">
                    <div class="rk-stat-label">Średnica wewnętrzna (ID)</div>
                    <div class="rk-stat-val" id="valID" style="color: var(--rk-dim-primary);">12.0 <span>mm</span></div>
                </div>
                <div class="rk-stat-row" style="border:none; padding:0;">
                    <div class="rk-stat-label">Pojemność / 100m</div>
                    <div class="rk-stat-val" id="valCap">11.3 <span>Litrów</span></div>
                </div>
                
                <div class="rk-alert-box" id="warnBox">
                    Zmniejszony przekrój generuje wyższe opory! Pompa ciepła wymaga kalibracji.
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-dim-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:2px solid #ef4444; border-radius:20px; font-weight:800;">
                BŁĄD LICENCJI: Kod należy do projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Mikrometru
    const btn20 = document.getElementById('rkBtn20');
    const btn22 = document.getElementById('rkBtn22');
    
    // SVG Elements
    const svgWall = document.getElementById('svgWall');
    const svgWater = document.getElementById('svgWater');
    const svgIdText = document.getElementById('svgIdText');
    
    // Text Values
    const valWall = document.getElementById('valWall');
    const valID = document.getElementById('valID');
    const valCap = document.getElementById('valCap');
    const warnBox = document.getElementById('warnBox');

    if (btn20 && btn22) {
        btn20.addEventListener('click', () => {
            btn22.classList.remove('active');
            btn20.classList.add('active');
            
            // Wizualizacja (Promienie relatywne dla efektu wizualnego)
            svgWall.setAttribute('r', '45');
            svgWater.setAttribute('r', '33'); // Właściwa średnica
            svgIdText.textContent = 'ID: 12.0';
            
            // Wartości
            valWall.innerHTML = '2.0 <span>mm</span>';
            valID.innerHTML = '12.0 <span>mm</span>';
            valID.style.color = 'var(--rk-dim-primary)';
            valCap.innerHTML = '11.3 <span>Litrów</span>';
            
            // Ostrzeżenie
            warnBox.style.display = 'none';
        });

        btn22.addEventListener('click', () => {
            btn20.classList.remove('active');
            btn22.classList.add('active');
            
            // Wizualizacja - grubsza ścianka = mniejsze r wnętrza
            svgWall.setAttribute('r', '45');
            svgWater.setAttribute('r', '27'); // Węższe światło rury
            svgIdText.textContent = 'ID: 11.6';
            
            // Wartości
            valWall.innerHTML = '2.2 <span>mm</span>';
            valID.innerHTML = '11.6 <span>mm</span>';
            valID.style.color = 'var(--rk-dim-danger)';
            valCap.innerHTML = '10.6 <span>Litrów</span>';
            
            // Ostrzeżenie
            warnBox.style.display = 'block';
        });
    }
});
</script>



<style>
:root {
    --rk-wall-dark: #0f172a;
    --rk-wall-primary: #0284c7;
    --rk-wall-primary-light: #e0f2fe;
    --rk-wall-alert: #ef4444; /* Czerwony dla oporów */
    --rk-wall-alert-light: #fee2e2;
    --rk-wall-bg: #ffffff;
    --rk-wall-surface: #f8fafc;
    --rk-wall-border: #cbd5e1;
    --rk-wall-text: #334155;
    --rk-wall-muted: #64748b;
}

.rk-wall-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-wall-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-wall-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-wall-header {
    background: linear-gradient(135deg, var(--rk-wall-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-wall-primary);
}

.rk-wall-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.15);
    color: #38bdf8;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-wall-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
}

.rk-wall-title span { color: #38bdf8; }

/* Kafelki z teorią (zamiast ściany tekstu) */
.rk-wall-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px;
    background: var(--rk-wall-bg);
}

.rk-wall-card {
    background: var(--rk-wall-surface);
    border: 1px solid var(--rk-wall-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    transition: all 0.3s ease;
}

.rk-wall-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    border-color: var(--rk-wall-primary);
}

.rk-wall-card-icon {
    width: 44px;
    height: 44px;
    background: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-wall-primary);
    margin-bottom: 15px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-wall-card h4 {
    margin: 0 0 12px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-wall-dark);
}

.rk-wall-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-wall-text);
}

.rk-wall-formula {
    background: #e2e8f0;
    padding: 8px 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-wall-dark);
    margin-top: 10px;
    display: inline-block;
}

.rk-wall-link {
    color: var(--rk-wall-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-wall-primary);
    transition: 0.3s;
}
.rk-wall-link:hover { border-bottom-style: solid; color: #0369a1; }

/* Sekcja Interaktywna - Symulator */
.rk-wall-interactive {
    margin: 0 50px 40px;
    background: #ffffff;
    border: 2px solid var(--rk-wall-border);
    border-radius: 20px;
    padding: 30px;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 40px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.02);
}

/* Kontrolki (Przełącznik) */
.rk-wall-controls {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-wall-toggle-btn {
    padding: 16px 20px;
    background: var(--rk-wall-surface);
    border: 2px solid var(--rk-wall-border);
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-wall-muted);
    cursor: pointer;
    transition: all 0.3s;
    text-align: left;
    position: relative;
    overflow: hidden;
}

.rk-wall-toggle-btn:hover { background: #f1f5f9; }
.rk-wall-toggle-btn.active {
    background: var(--rk-wall-primary-light);
    border-color: var(--rk-wall-primary);
    color: var(--rk-wall-primary);
}
.rk-wall-toggle-btn.active[data-wall="2.2"] {
    background: var(--rk-wall-alert-light);
    border-color: var(--rk-wall-alert);
    color: var(--rk-wall-alert);
}

/* Panel Danych i SVG */
.rk-wall-dashboard {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-wall-visuals {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 20px;
    align-items: center;
}

.rk-svg-cross { width: 100%; max-width: 140px; height: auto; margin: 0 auto; display: block; }
.rk-svg-flow { width: 100%; height: 60px; }

/* Animacje SVG */
.rk-anim-inner-pipe { transition: r 0.4s cubic-bezier(0.4, 0, 0.2, 1), fill 0.4s; }
.rk-anim-flow-lines { stroke-dasharray: 15 15; transition: stroke 0.4s; }

@keyframes flowFast { to { stroke-dashoffset: -30; } }
@keyframes flowSlow { to { stroke-dashoffset: -15; } }

.flow-state-normal { animation: flowSlow 1.5s linear infinite; stroke: var(--rk-wall-primary); }
.flow-state-alert { animation: flowFast 0.6s linear infinite; stroke: var(--rk-wall-alert); }

/* Wyniki (Tabela) */
.rk-wall-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-wall-data-box {
    background: var(--rk-wall-surface);
    padding: 15px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-wall-primary);
    transition: all 0.3s;
}

.rk-wall-data-box.alert-mode {
    border-left-color: var(--rk-wall-alert);
    background: #fef2f2;
}

.rk-data-label { font-size: 12px; font-weight: 800; color: var(--rk-wall-muted); text-transform: uppercase; margin-bottom: 5px; }
.rk-data-val { font-size: 22px; font-weight: 900; color: var(--rk-wall-dark); }
.rk-data-val span { font-size: 13px; font-weight: 700; color: var(--rk-wall-muted); }

.rk-wall-data-box.alert-mode .rk-data-val { color: var(--rk-wall-alert); }

@media (max-width: 768px) {
    .rk-wall-header { padding: 30px 20px; }
    .rk-wall-grid { grid-template-columns: 1fr; padding: 20px; }
    .rk-wall-interactive { grid-template-columns: 1fr; margin: 0 20px 30px; padding: 20px; }
    .rk-wall-visuals { grid-template-columns: 1fr; gap: 30px; }
    .rk-wall-data-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-scianka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Dlaczego grubość ścianki rury PEX/PERT ma kluczowe znaczenie dla pojemności wodnej?",
    "description": "Zmiana grubości ścianki z 2.0 mm na 2.2 mm redukuje pojemność rury o 6.2%, co drastycznie zwiększa opory hydrauliczne i obciąża pompę obiegową, generując wyższe koszty.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-scianka",
    "name": "Wpływ grubości ścianki na pole przekroju i opory liniowe",
    "description": "Zestawienie zmian średnicy wewnętrznej (ID) rury PEX 16 i wynikających z tego różnic w objętości (113 ml vs 106 ml) oraz wpływu na opory w paskalach na metr (Pa/m).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opory hydrauliczne ogrzewania",
      "grubość ścianki PEX 16",
      "pojemność wodna rury",
      "pole przekroju koła instalacje",
      "koszty pompy obiegowej"
    ],
    "measurementTechnique": "Obliczenia pola przekroju poprzecznego z wykorzystaniem liczby Pi oraz średnicy wewnętrznej (ID), zestawiające rury o ściance 2.0 mm i 2.2 mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ścianka 2.0 mm: ID = 12.0 mm, Pojemność = 0.113 l/m, Optymalne opory hydrauliczne.",
        "Ścianka 2.2 mm: ID = 11.6 mm, Pojemność = 0.106 l/m, Spadek pojemności o 6.2%, Wzrost oporów powyżej 150-200 Pa/m."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-scianka",
    "name": "Kalkulator Przekroju i Oporów Hydraulicznych",
    "description": "Interaktywne narzędzie wizualizujące wpływ zmiany grubości ścianki rury (2.0 mm vs 2.2 mm) na pole przekroju, dynamikę przepływu i koszty eksploatacyjne pompy obiegowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS Animations, and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wall-container" id="rk-wall-app">
    
    <div class="rk-wall-header">
        <div class="rk-wall-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Fizyka Budowli
        </div>
        <h2 class="rk-wall-title">Grubość ścianki PEX a <span>pojemność i opory hydrauliczne</span></h2>
    </div>

    <div class="rk-wall-grid">
        <!-- Karta 1 -->
        <div class="rk-wall-card">
            <div class="rk-wall-card-icon">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
            </div>
            <h3>Geometria i Pojemność</h3>
            <p>Zmiana grubości ścianki rury z 2,0 na 2,2 mm redukuje wewnętrzne pole przekroju. Pojemność na metrze spada ze <strong>113 ml do 106 ml</strong> (ubytek 6,2%).</p>
            <div class="rk-wall-formula">A = (π × ID²) / 4</div>
        </div>

        <!-- Karta 2 -->
        <div class="rk-wall-card">
            <div class="rk-wall-card-icon">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            </div>
            <h3>Opory Hydrauliczne</h3>
            <p>Mniejsza średnica to wyższa prędkość liniowa płynu. Przekroczenie granicznych oporów <strong>150-200 Pa/m</strong> w pętli zmusza pompę do pracy na wysokim biegu.</p>
        </div>

        <!-- Karta 3 -->
        <div class="rk-wall-card">
            <div class="rk-wall-card-icon" style="color: var(--rk-wall-alert);">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 1v22M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            </div>
            <h3>Koszty Eksploatacji</h3>
            <p>Zmiana geometrii rury bez przeliczenia wymusza korektę <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-wall-link">rozdzielacza</a> i podnosi zużycie prądu przez <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-wall-link">pompę obiegową</a> o kolejne <strong>150-300 PLN</strong> rocznie.</p>
        </div>
    </div>

    <!-- Symulator Interaktywny -->
    <div class="rk-wall-interactive">
        
        <div class="rk-wall-controls">
            <button class="rk-wall-toggle-btn active" data-wall="2.0" id="btnWall20">
                Ścianka: 2.0 mm
                <div style="font-size: 11px; font-weight: 500; margin-top:4px;">Standardowa pojemność</div>
            </button>
            <button class="rk-wall-toggle-btn" data-wall="2.2" id="btnWall22">
                Ścianka: 2.2 mm
                <div style="font-size: 11px; font-weight: 500; margin-top:4px;">Grubsza ścianka (Market)</div>
            </button>
        </div>

        <div class="rk-wall-dashboard">
            <div class="rk-wall-visuals">
                <!-- Przekrój Rury -->
                <svg class="rk-svg-cross" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="45" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
                    <circle id="svgCrossWall" cx="50" cy="50" r="38" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="1"/>
                    <circle id="svgCrossWater" class="rk-anim-inner-pipe" cx="50" cy="50" r="34" fill="#0ea5e9"/>
                    <!-- Wymiar ID -->
                    <line x1="16" y1="50" x2="84" y2="50" stroke="#ffffff" stroke-width="2" stroke-dasharray="2 2"/>
                    <text x="50" y="45" fill="#ffffff" font-size="12" font-weight="bold" text-anchor="middle" id="svgIdText">ID: 12.0 mm</text>
                </svg>

                <!-- Animacja Przepływu -->
                <svg class="rk-svg-flow" viewBox="0 0 200 60">
                    <path d="M 0 5 L 200 5 M 0 55 L 200 55" stroke="#94a3b8" stroke-width="4" fill="none"/>
                    <path id="svgFlowPipe" d="M 0 15 L 200 15 M 0 45 L 200 45" stroke="#cbd5e1" stroke-width="2" fill="none" class="rk-anim-inner-pipe"/>
                    <path id="svgFlowWater" class="rk-anim-flow-lines flow-state-normal" d="M 0 30 L 200 30" stroke-width="14" fill="none" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-wall-data-grid">
                <div class="rk-wall-data-box" id="boxVolume">
                    <div class="rk-data-label">Pojemność / 1 m</div>
                    <div class="rk-data-val" id="valVol">0,113 <span>Litrów</span></div>
                </div>
                <div class="rk-wall-data-box" id="boxResistance">
                    <div class="rk-data-label">Opory liniowe i Pompa</div>
                    <div class="rk-data-val" id="valRes">Optymalne <span>prędkości</span></div>
                </div>
            </div>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-wall-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:2px solid #ef4444; border-radius:20px; font-weight:800;">
                BŁĄD LICENCJI: Ten interaktywny element jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Symulatora
    const btn20 = document.getElementById('btnWall20');
    const btn22 = document.getElementById('btnWall22');
    
    // SVG Elements
    const svgCrossWater = document.getElementById('svgCrossWater');
    const svgIdText = document.getElementById('svgIdText');
    const svgFlowPipe = document.getElementById('svgFlowPipe');
    const svgFlowWater = document.getElementById('svgFlowWater');
    
    // Data Boxes
    const boxVolume = document.getElementById('boxVolume');
    const boxResistance = document.getElementById('boxResistance');
    const valVol = document.getElementById('valVol');
    const valRes = document.getElementById('valRes');

    if(btn20 && btn22) {
        btn20.addEventListener('click', () => {
            // UI State
            btn22.classList.remove('active');
            btn20.classList.add('active');
            boxResistance.classList.remove('alert-mode');
            
            // SVG Cross Section Update
            svgCrossWater.setAttribute('r', '34');
            svgCrossWater.setAttribute('fill', '#0ea5e9'); // Niebieski
            svgIdText.textContent = 'ID: 12.0 mm';
            
            // SVG Flow Update
            svgFlowPipe.setAttribute('d', 'M 0 15 L 200 15 M 0 45 L 200 45');
            svgFlowWater.className.baseVal = 'rk-anim-flow-lines flow-state-normal';
            
            // Data Update
            valVol.innerHTML = '0,113 <span>Litrów</span>';
            valRes.innerHTML = 'Optymalne <span>prędkości</span>';
        });

        btn22.addEventListener('click', () => {
            // UI State
            btn20.classList.remove('active');
            btn22.classList.add('active');
            boxResistance.classList.add('alert-mode');
            
            // SVG Cross Section Update
            svgCrossWater.setAttribute('r', '27');
            svgCrossWater.setAttribute('fill', '#ef4444'); // Czerwony
            svgIdText.textContent = 'ID: 11.6 mm';
            
            // SVG Flow Update (Zwężenie rury)
            svgFlowPipe.setAttribute('d', 'M 0 22 L 200 22 M 0 38 L 200 38');
            svgFlowWater.className.baseVal = 'rk-anim-flow-lines flow-state-alert';
            
            // Data Update
            valVol.innerHTML = '0,106 <span>Litrów</span>';
            valRes.innerHTML = '> 150 Pa/m <span>(Przeciążenie)</span>';
        });
    }
});
</script>



<style>
:root {
    --rk-dash-dark: #0f172a;
    --rk-dash-panel: #1e293b;
    --rk-dash-primary: #8b5cf6; /* Ekspercki fiolet/indygo dla odmiany */
    --rk-dash-primary-light: #ede9fe;
    --rk-dash-alert: #ef4444; /* Czerwony alarmowy */
    --rk-dash-alert-bg: #450a0a;
    --rk-dash-success: #10b981;
    --rk-dash-success-bg: #064e3b;
    --rk-dash-bg: #ffffff;
    --rk-dash-text: #334155;
    --rk-dash-muted: #94a3b8;
    --rk-dash-border: #e2e8f0;
}

.rk-dash-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dash-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.2);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Header - Pełna szerokość */
.rk-dash-header {
    background: linear-gradient(90deg, var(--rk-dash-dark) 0%, #2e1065 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
}

.rk-dash-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(167, 139, 250, 0.2);
    color: #c4b5fd;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(167, 139, 250, 0.3);
}

.rk-dash-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-dash-title span { color: #a78bfa; }

.rk-dash-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #e2e8f0;
    max-width: 800px;
    margin: 0;
}

.rk-dash-link-light {
    color: #c4b5fd;
    text-decoration: none;
    border-bottom: 1px dashed #c4b5fd;
    font-weight: 700;
    transition: 0.3s;
}
.rk-dash-link-light:hover { color: #fff; border-bottom-style: solid; }

/* Ciało kontenera - Split layout (nie kafelki!) */
.rk-dash-body {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    background: #ffffff;
}

/* Lewa strona - Lista konsekwencji (Timeline style) */
.rk-dash-theory {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-dash-border);
    background: #f8fafc;
}

.rk-dash-h3 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-dash-dark);
    margin: 0 0 25px 0;
}

.rk-timeline {
    position: relative;
    padding-left: 30px;
}

.rk-timeline::before {
    content: '';
    position: absolute;
    top: 0; left: 11px; bottom: 0;
    width: 2px;
    background: var(--rk-dash-border);
}

.rk-timeline-item {
    position: relative;
    margin-bottom: 30px;
}

.rk-timeline-item:last-child { margin-bottom: 0; }

.rk-timeline-dot {
    position: absolute;
    left: -35px; top: 0;
    width: 24px; height: 24px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-dash-alert);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 0 0 4px #f8fafc;
}

.rk-timeline-dot svg { width: 12px; height: 12px; color: var(--rk-dash-alert); }

.rk-timeline-content h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dash-dark);
}

.rk-timeline-content p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-dash-text);
}

/* Prawa strona - Panel sterowania i symulator (Mroczny tech-look) */
.rk-dash-simulator {
    padding: 40px;
    background: var(--rk-dash-panel);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-sim-controls {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-slider-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-dash-muted);
    text-transform: uppercase;
}

.rk-slider-val { color: #ffffff; font-size: 15px; font-weight: 900; }

.rk-dash-range {
    -webkit-appearance: none;
    width: 100%; height: 6px;
    border-radius: 3px;
    background: #334155;
    outline: none;
}
.rk-dash-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 20px; height: 20px; border-radius: 50%;
    background: var(--rk-dash-primary);
    cursor: pointer; border: 3px solid #ffffff;
    box-shadow: 0 0 10px rgba(139, 92, 246, 0.5);
    transition: 0.1s;
}
.rk-dash-range::-webkit-slider-thumb:active { transform: scale(1.2); }

/* Ekran parametrów bieżących */
.rk-sim-screen {
    background: #0f172a;
    border: 1px solid #334155;
    border-radius: 12px;
    padding: 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    position: relative;
    overflow: hidden;
}

.rk-screen-col { display: flex; flex-direction: column; gap: 5px; }
.rk-screen-label { font-size: 11px; color: var(--rk-dash-muted); text-transform: uppercase; font-weight: 800; }
.rk-screen-value { font-size: 22px; font-weight: 900; font-family: monospace; }
.rk-screen-value span { font-size: 12px; color: #64748b; }

/* SVG Wizualizacja */
.rk-sim-visual {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px;
    background: #0f172a;
    border-radius: 12px;
    border: 1px solid #334155;
    height: 140px;
}

.rk-svg-tank { width: 80px; height: 100px; }
.rk-svg-fan { width: 100px; height: 100px; }

/* Animacje w zależności od stanu */
.state-stable .rk-screen-value.dynamic-cop { color: var(--rk-dash-success); }
.state-stable .rk-fan-blades { animation: spinFan 2s linear infinite; transform-origin: center; }
.state-stable .rk-fan-housing { stroke: var(--rk-dash-success); }
.state-stable .rk-sim-screen { border-color: var(--rk-dash-success); box-shadow: inset 0 0 20px var(--rk-dash-success-bg); }

.state-alert .rk-screen-value.dynamic-cop { color: var(--rk-dash-alert); }
.state-alert .rk-fan-blades { animation: tacticFan 1.5s ease-in-out infinite; transform-origin: center; }
.state-alert .rk-fan-housing { stroke: var(--rk-dash-alert); }
.state-alert .rk-sim-screen { border-color: var(--rk-dash-alert); box-shadow: inset 0 0 20px var(--rk-dash-alert-bg); }

@keyframes spinFan { to { transform: rotate(360deg); } }
@keyframes tacticFan { 
    0% { transform: rotate(0deg); } 
    20% { transform: rotate(180deg); } 
    50% { transform: rotate(180deg); }
    70% { transform: rotate(360deg); }
    100% { transform: rotate(360deg); }
}

.rk-tank-fill { transition: y 0.3s, height 0.3s, fill 0.3s; }
.rk-tank-req-line { transition: y 0.3s; }

@media (max-width: 768px) {
    .rk-dash-header { padding: 30px 20px; }
    .rk-dash-body { grid-template-columns: 1fr; }
    .rk-dash-theory { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dash-border); }
    .rk-dash-simulator { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-konsekwencje",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Konsekwencje błędnego obliczenia zładu wody – Taktowanie Pompy Ciepła",
    "description": "Niedoszacowanie objętości zładu prowadzi do częstego załączania sprężarki, drastycznego spadku wskaźnika COP z 4.5 do 3.1 i wzrostu rachunków za prąd o 30%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-konsekwencje",
    "name": "Wpływ deficytu zładu wody na efektywność sprężarki",
    "description": "Analiza bilansu hydraulicznego instalacji podłogowej względem wymaganej mocy nominalnej źródła ciepła. Prezentuje spadek wskaźnika COP i ryzyko uszkodzeń mechanicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "taktowanie pompy ciepła",
      "minimalny zład wody",
      "żywotność sprężarki",
      "spadek COP",
      "obliczenia zładu CO"
    ],
    "measurementTechnique": "Analiza bilansu hydraulicznego (V_min vs V_rzeczywiste) względem mocy nominalnej źródła ciepła (zakładane min. 20 l/kW).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg producenta: Zład minimalny na poziomie 20 litrów na 1 kW mocy pompy ciepła.",
        "Skutek deficytu: Taktowanie sprężarki (cykle 10-15 minutowe), spadek COP z 4.5 do 3.1.",
        "Skutek nagłego zamknięcia pętli: Uderzenia hydrauliczne niszczące zawory na belkach rozdzielacza."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-konsekwencje",
    "name": "Symulator Taktowania Sprężarki",
    "description": "Interaktywny pulpit pozwalający zasymulować deficyt zładu wody na podstawie mocy pompy ciepła i długości pętli PEX 16. Obrazuje moment wystąpienia taktowania i spadek sprawności.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS Variables, and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dash-container" id="rk-dash-app">
    
    <!-- Header -->
    <div class="rk-dash-header">
        <div class="rk-dash-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Krytyczne Błędy
        </div>
        <h2 class="rk-dash-title">Błędny zład wody a <span>awaria systemu</span></h2>
        <p class="rk-dash-intro">
            Niedoszacowanie pojemności prowadzi do braku wymaganego minimum (np. 20 l/kW mocy nominalnej). Skutkuje to <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-dash-link-light">taktowaniem pompy ciepła</a>. Wymiana zniszczonej przedwcześnie sprężarki to koszt rzędu <strong>12 000 PLN</strong>.
        </p>
    </div>

    <!-- Body / Split -->
    <div class="rk-dash-body">
        
        <!-- Kolumna 1: Teoria / Timeline -->
        <div class="rk-dash-theory">
            <h3 class="rk-dash-h3">Skutki taktowania co 10-15 minut:</h3>
            
            <div class="rk-timeline">
                <div class="rk-timeline-item">
                    <div class="rk-timeline-dot"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg></div>
                    <div class="rk-timeline-content">
                        <h3>Drastyczny spadek COP</h3>
                        <p>Krótkie cykle nie pozwalają układowi chłodniczemu osiągnąć nominalnych parametrów. Deklarowany wskaźnik COP spada z poziomu <strong>4,5 do 3,1</strong>.</p>
                    </div>
                </div>

                <div class="rk-timeline-item">
                    <div class="rk-timeline-dot"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                    <div class="rk-timeline-content">
                        <h3>Wzrost rachunków za prąd</h3>
                        <p>Zaburzona praca inwertera i ciągłe rozruchy przekładają się na bezpośredni wzrost kosztów energii elektrycznej o <strong>25-30% w skali roku</strong>.</p>
                    </div>
                </div>

                <div class="rk-timeline-item">
                    <div class="rk-timeline-dot"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg></div>
                    <div class="rk-timeline-content">
                        <h3>Uderzenia hydrauliczne</h3>
                        <p>Nagłe zamykanie obwodów przez <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/" class="rk-dash-link-light" style="color: var(--rk-dash-primary);">siłowniki termoelektryczne</a> niszczy gniazda zaworów na belkach rozdzielacza i uszkadza uszczelnienia.</p>
                    </div>
                </div>
            </div>
        </div>

        <!-- Kolumna 2: Symulator Interfejs -->
        <div class="rk-dash-simulator" id="simWrapper">
            
            <div class="rk-sim-controls">
                <!-- Slider 1: Moc Pompy -->
                <div class="rk-slider-group">
                    <div class="rk-slider-labels">
                        <span>Moc nominalna PC (Q):</span>
                        <span class="rk-slider-val" id="valPowOut">8 kW</span>
                    </div>
                    <input type="range" class="rk-dash-range" id="sliderPower" min="5" max="16" step="1" value="8">
                </div>

                <!-- Slider 2: Długość Rur -->
                <div class="rk-slider-group">
                    <div class="rk-slider-labels">
                        <span>Łączna dł. PEX 16&#215;2.0:</span>
                        <span class="rk-slider-val" id="valLenOut">1000 m</span>
                    </div>
                    <input type="range" class="rk-dash-range" id="sliderPipe" min="400" max="1800" step="50" value="1000">
                </div>
            </div>

            <!-- Parametry Live -->
            <div class="rk-sim-screen">
                <div class="rk-screen-col">
                    <div class="rk-screen-label">Wymagany zład (20 l/kW)</div>
                    <div class="rk-screen-value" id="dispReq">160 <span>L</span></div>
                </div>
                <div class="rk-screen-col">
                    <div class="rk-screen-label">Zład faktyczny (+15L osprzętu)</div>
                    <div class="rk-screen-value" id="dispAct">128 <span>L</span></div>
                </div>
                <div class="rk-screen-col" style="grid-column: span 2;">
                    <div class="rk-screen-label">Stan Pracy (Wskaźnik COP)</div>
                    <div class="rk-screen-value dynamic-cop" id="dispCop">~ 3.1 <span>(Taktowanie)</span></div>
                </div>
            </div>

            <!-- SVG Wizualizacja Zbiornik + Wiatrak -->
            <div class="rk-sim-visual">
                <!-- Zład wody - Zbiornik -->
                <svg class="rk-svg-tank" viewBox="0 0 100 120">
                    <!-- Obudowa -->
                    <path d="M 10 10 L 10 110 Q 10 115 15 115 L 85 115 Q 90 115 90 110 L 90 10" fill="none" stroke="#475569" stroke-width="4"/>
                    <!-- Woda (Dynamiczna) -->
                    <rect id="svgTankWater" class="rk-tank-fill" x="12" y="50" width="76" height="63" fill="#ef4444" opacity="0.8"/>
                    <!-- Linia Wymagana (Dynamiczna) -->
                    <line id="svgTankReq" class="rk-tank-req-line" x1="5" y1="30" x2="95" y2="30" stroke="#f8fafc" stroke-width="2" stroke-dasharray="4 2"/>
                    <text id="svgTankText" x="50" y="25" fill="#f8fafc" font-size="10" font-weight="bold" text-anchor="middle">V min</text>
                </svg>

                <!-- Wiatrak pompy ciepła (Animowany) -->
                <svg class="rk-svg-fan" viewBox="0 0 100 100">
                    <circle class="rk-fan-housing" cx="50" cy="50" r="45" fill="#020617" stroke="#ef4444" stroke-width="4"/>
                    <circle cx="50" cy="50" r="40" fill="none" stroke="#334155" stroke-width="1"/>
                    <g class="rk-fan-blades">
                        <path d="M 50 50 L 50 15 Q 65 15 65 50 Z" fill="#94a3b8"/>
                        <path d="M 50 50 L 50 85 Q 35 85 35 50 Z" fill="#94a3b8"/>
                        <path d="M 50 50 L 85 50 Q 85 65 50 65 Z" fill="#94a3b8"/>
                        <path d="M 50 50 L 15 50 Q 15 35 50 35 Z" fill="#94a3b8"/>
                    </g>
                    <circle cx="50" cy="50" r="8" fill="#cbd5e1"/>
                </svg>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-dash-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:2px solid #ef4444; border-radius:20px; font-weight:800;">
                BŁĄD LICENCJI: Ten interfejs jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Symulatora (Dashboard)
    const powerSlider = document.getElementById('sliderPower');
    const pipeSlider = document.getElementById('sliderPipe');
    
    // Outputs
    const valPowOut = document.getElementById('valPowOut');
    const valLenOut = document.getElementById('valLenOut');
    const dispReq = document.getElementById('dispReq');
    const dispAct = document.getElementById('dispAct');
    const dispCop = document.getElementById('dispCop');
    
    // SVG Elements
    const wrapper = document.getElementById('simWrapper');
    const tankWater = document.getElementById('svgTankWater');
    const tankReqLine = document.getElementById('svgTankReq');
    const tankReqText = document.getElementById('svgTankText');

    function updateSimulation() {
        const power = parseInt(powerSlider.value);
        const pipeLen = parseInt(pipeSlider.value);
        
        // Aktualizacja labeli suwaków
        valPowOut.textContent = power + ' kW';
        valLenOut.textContent = pipeLen + ' m';
        
        // Obliczenia
        // Zład wymagany: 20 l / kW
        const reqVol = power * 20; 
        
        // Zład rzeczywisty: dlugosc * 0.113 l/m + 15 l (rozdzielacze, podejścia)
        const actVol = Math.round((pipeLen * 0.113) + 15);
        
        // Wyświetlanie wartości w panelu
        dispReq.innerHTML = reqVol + ' <span>L</span>';
        dispAct.innerHTML = actVol + ' <span>L</span>';
        
        // Logika Taktowania (Zład faktyczny < Wymagany)
        const isTaktowanie = actVol < reqVol;
        
        // Wizualizacja - Wysokość zbiornika (Max ~320L wizualnie)
        // Oś Y w SVG: 10 (góra) do 115 (dno). Wysokość użyteczna = 100px
        const maxVol = 320; 
        
        // Mapowanie wartości na piksele SVG
        const pxPerL = 100 / maxVol;
        
        // Linia wymaganego zładu (y spada od dołu w górę)
        const reqY = 115 - (reqVol * pxPerL);
        tankReqLine.setAttribute('y1', reqY);
        tankReqLine.setAttribute('y2', reqY);
        tankReqText.setAttribute('y', reqY - 5);
        
        // Prostokąt wody
        const actHeight = Math.min(100, actVol * pxPerL);
        const actY = 115 - actHeight;
        tankWater.setAttribute('y', actY);
        tankWater.setAttribute('height', actHeight);

        // Aplikacja klas i kolorów
        if (isTaktowanie) {
            wrapper.className = 'rk-dash-simulator state-alert';
            tankWater.setAttribute('fill', '#ef4444'); // Czerwony płyn
            dispCop.innerHTML = '~ 3.1 <span>(Taktowanie sprężarki)</span>';
        } else {
            wrapper.className = 'rk-dash-simulator state-stable';
            tankWater.setAttribute('fill', '#10b981'); // Zielony płyn
            dispCop.innerHTML = '~ 4.6 <span>(Praca stabilna)</span>';
        }
    }

    if (powerSlider && pipeSlider) {
        powerSlider.addEventListener('input', updateSimulation);
        pipeSlider.addEventListener('input', updateSimulation);
        updateSimulation(); // Init
    }
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-brand: #0891b2; /* Cyjan inżynieryjny */
    --rk-calc-brand-light: #cffafe;
    --rk-calc-accent: #38bdf8;
    --rk-calc-hot: #ef4444;
    --rk-calc-cold: #3b82f6;
    --rk-calc-bg: #ffffff;
    --rk-calc-border: #cbd5e1;
    --rk-calc-text: #334155;
}

.rk-calc-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-bg);
    border-radius: 20px;
    box-shadow: 0 25px 50px -12px rgba(8, 145, 178, 0.15);
    border: 1px solid rgba(8, 145, 178, 0.3);
    overflow: hidden;
}

/* Header - Poprawiony układ Flexbox, by tekst nie łamał się pod inne elementy */
.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #164e63 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-calc-brand);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.rk-calc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(8, 145, 178, 0.3);
    color: #67e8f9;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(103, 232, 249, 0.3);
}

.rk-calc-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    /* Usunięto display:block i width:100% aby naprawić oblewanie */
}
.rk-calc-title span { color: #67e8f9; }

.rk-calc-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #e2e8f0;
    margin: 0;
    /* Usunięto display:block i width:100% */
}
.rk-calc-link {
    color: var(--rk-calc-brand-light);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-calc-brand-light);
    transition: 0.3s;
}
.rk-calc-link:hover { color: #fff; border-bottom-style: solid; }

/* Inżynieryjna Konsola - Zamiast standardowych kafelków */
.rk-calc-console {
    background: var(--rk-calc-panel);
    display: grid;
    grid-template-columns: 320px 1fr;
    border-bottom: 1px solid #334155;
}

/* Panel Suwaków */
.rk-calc-controls {
    padding: 40px;
    border-right: 1px solid #334155;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-calc-slider-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-calc-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
}
.rk-calc-val-readout {
    color: #ffffff;
    font-weight: 900;
    font-size: 15px;
}

.rk-calc-range {
    -webkit-appearance: none;
    width: 100%; height: 6px;
    border-radius: 3px;
    background: #475569;
    outline: none;
}
.rk-calc-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--rk-calc-brand);
    cursor: pointer; border: 3px solid #ffffff;
    box-shadow: 0 0 10px rgba(8, 145, 178, 0.6);
    transition: transform 0.1s;
}
.rk-calc-range::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Panel Wyświetlacza Digital */
.rk-calc-display-area {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-digital-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.rk-digital-box {
    background: #0f172a;
    border: 1px solid #334155;
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-digital-box::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 3px;
}
.rk-digital-box.t-pipe::before { background: var(--rk-calc-brand); }
.rk-digital-box.t-man::before { background: var(--rk-calc-hot); }
.rk-digital-box.t-total { border-color: var(--rk-calc-brand); box-shadow: inset 0 0 20px rgba(8, 145, 178, 0.1); }
.rk-digital-box.t-total::before { background: var(--rk-calc-brand); height: 100%; opacity: 0.05; }

.rk-digital-label { font-size: 11px; font-weight: 800; color: #64748b; text-transform: uppercase; margin-bottom: 8px; }
.rk-digital-val { font-size: 24px; font-weight: 900; color: #f8fafc; font-family: monospace; }
.rk-digital-val span { font-size: 12px; color: #94a3b8; }
.rk-digital-box.t-total .rk-digital-val { color: var(--rk-calc-brand-light); font-size: 28px; }

/* SVG Dynamiczny Rozdzielacz */
.rk-svg-manifold-wrapper {
    background: #0f172a;
    border-radius: 12px;
    border: 1px solid #334155;
    padding: 20px;
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Algorytm Matematyczny - Step by Step */
.rk-math-steps {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-math-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-step-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-step-item {
    display: flex;
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-step-num {
    background: var(--rk-calc-brand);
    color: #ffffff;
    width: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
}

.rk-step-content {
    padding: 15px 20px;
    flex: 1;
}

.rk-step-content h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-calc-dark);
}

.rk-step-content p {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-calc-text);
}

.rk-formula-code {
    display: block;
    background: #f1f5f9;
    padding: 8px 12px;
    border-radius: 6px;
    font-family: monospace;
    font-size: 13px;
    color: #0f172a;
    margin-top: 8px;
    border-left: 3px solid var(--rk-calc-brand);
}

@media (max-width: 768px) {
    .rk-calc-header { padding: 30px 20px; }
    .rk-calc-console { grid-template-columns: 1fr; }
    .rk-calc-controls { padding: 30px 20px; border-right: none; border-bottom: 1px solid #334155; }
    .rk-calc-display-area { padding: 30px 20px; }
    .rk-digital-grid { grid-template-columns: 1fr; gap: 10px; }
    .rk-math-steps { padding: 30px 20px; }
    .rk-step-item { flex-direction: column; }
    .rk-step-num { width: 100%; height: 40px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-obliczenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Jak dokładnie obliczyć całkowitą pojemność wody w pętli ogrzewania podłogowego?",
    "description": "Profesjonalny inżynierski algorytm zgodny z PN-EN 1264-4, uwzględniający pojemność rur PEX oraz wewnętrzną objętość belek rozdzielacza.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-obliczenia",
    "name": "Algorytm obliczeniowy zładu wody wg PN-EN 1264-4",
    "description": "Wzory i stałe używane do wyznaczania całkowitej pojemności hydraulicznej instalacji ogrzewania podłogowego, bazujące na wymiarach promienia wewnętrznego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pojemność wodna pętli ogrzewania",
      "algorytm obliczania podłogówki",
      "norma PN-EN 1264-4",
      "pojemność rozdzielacza",
      "wzór na objętość walca w rurach"
    ],
    "measurementTechnique": "Algorytm 5-krokowy: wyznaczenie promienia (r), obliczenie objętości walca na metr bieżący, konwersja na litry, mnożenie przez długość pętli i dodanie pojemności osprzętu (0.35l na sekcję).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Promień wewnętrzny rury 16x2.0: 6 mm (0,006 m)",
        "Pojemność rury 16x2.0: 0,113 litra na metr",
        "Pojemność sekcji rozdzielacza: uśrednione 0,35 litra"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-obliczenia",
    "name": "Kalkulator Całkowitej Pojemności Zładu Wodnego",
    "description": "Interaktywne narzędzie Inżynierskie pozwalające zsumować pojemność rur PEX oraz belek rozdzielacza na podstawie zadanych parametrów długości i ilości sekcji.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS Grid, and JavaScript for dynamic SVG generation",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-calc-app">
    
    <div class="rk-calc-header">
        <div class="rk-calc-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"></path><path d="M12 12v9"></path><path d="M8 17l4 4 4-4"></path></svg>
            Algorytm Projektowy
        </div>
        <h2 class="rk-calc-title">Jak obliczyć całkowitą pojemność <span>zładu w pętli?</span></h2>
        <p class="rk-calc-intro">
            Całkowitą objętość wody oblicza się poprzez pomnożenie długości rury przez jej pojemność jednostkową oraz dodanie pojemności wewnętrznej <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-calc-link">belek rozdzielacza</a>. Zgodnie z normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-calc-link">PN-EN 1264-4</a>, dla 100 m rury 16&#215;2,0 mm to równe 11,3 litra. Przetestuj to w symulatorze inżynierskim:
        </p>
    </div>

    <div class="rk-calc-console">
        
        <div class="rk-calc-controls">
            <div class="rk-calc-slider-group">
                <div class="rk-calc-label">
                    <span>Łączna dł. rur (L):</span>
                    <span class="rk-calc-val-readout" id="readoutLength">800 m</span>
                </div>
                <input type="range" class="rk-calc-range" id="sliderLength" min="100" max="2500" step="50" value="800">
            </div>

            <div class="rk-calc-slider-group">
                <div class="rk-calc-label">
                    <span>Sekcje rozdzielacza (n):</span>
                    <span class="rk-calc-val-readout" id="readoutManifold">8 szt.</span>
                </div>
                <input type="range" class="rk-calc-range" id="sliderManifold" min="2" max="14" step="1" value="8">
            </div>
        </div>

        <div class="rk-calc-display-area">
            
            <div class="rk-digital-grid">
                <div class="rk-digital-box t-pipe">
                    <div class="rk-digital-label">V_rur (Rurociąg)</div>
                    <div class="rk-digital-val" id="dispPipe">90.4 <span>L</span></div>
                </div>
                <div class="rk-digital-box t-man">
                    <div class="rk-digital-label">V_osprz (Rozdzielacz)</div>
                    <div class="rk-digital-val" id="dispManifold">2.8 <span>L</span></div>
                </div>
                <div class="rk-digital-box t-total">
                    <div class="rk-digital-label">V_całk (Zład Total)</div>
                    <div class="rk-digital-val" id="dispTotal">93.2 <span>L</span></div>
                </div>
            </div>

            <div class="rk-svg-manifold-wrapper" id="svgContainer">
                </div>

        </div>
    </div>

    <div class="rk-math-steps">
        <h3 class="rk-math-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-calc-brand)" stroke-width="2.5"><polyline points="4 7 4 4 20 4 20 7"></polyline><line x1="9" y1="20" x2="15" y2="20"></line><line x1="12" y1="4" x2="12" y2="20"></line></svg>
            Algorytm inżynierski stosowany w programach hydraulicznych
        </h3>
        
        <div class="rk-step-list">
            <div class="rk-step-item">
                <div class="rk-step-num">1</div>
                <div class="rk-step-content">
                    <h3>Wyznaczenie wewnętrznego promienia rury (r)</h3>
                    <p>Na podstawie średnicy zewnętrznej (OD) i grubości ścianki (g), obliczamy promień w metrach.</p>
                    <code class="rk-formula-code">r = (OD - 2g) / 2000 &rarr; r = (16 - 4) / 2000 = 0,006 m</code>
                </div>
            </div>

            <div class="rk-step-item">
                <div class="rk-step-num">2</div>
                <div class="rk-step-content">
                    <h3>Pojemność jednostkowa 1 metra (V₁)</h3>
                    <p>Używamy wzoru na objętość walca (h = 1m). Wynik w m³/m.</p>
                    <code class="rk-formula-code">V₁ = &pi; &times; r&sup2; &times; 1 &rarr; 3.14 &times; (0.006)&sup2; &asymp; 0,000113 m&sup3;/m</code>
                </div>
            </div>

            <div class="rk-step-item">
                <div class="rk-step-num">3</div>
                <div class="rk-step-content">
                    <h3>Konwersja na litry (V<sub>l/m</sub>)</h3>
                    <p>Mnożymy wynik przez 1000, ponieważ 1 m&sup3; to dokładnie 1000 litrów.</p>
                    <code class="rk-formula-code">V(l/m) = 0,000113 &times; 1000 = 0,113 l/m</code>
                </div>
            </div>

            <div class="rk-step-item">
                <div class="rk-step-num">4</div>
                <div class="rk-step-content">
                    <h3>Pojemność rurociągów (V<sub>rur</sub>)</h3>
                    <p>Mnożymy łączną długość wszystkich ułożonych pętli (L) przez pojemność jednostkową.</p>
                    <code class="rk-formula-code">V_rur = L &times; V(l/m)</code>
                </div>
            </div>

            <div class="rk-step-item">
                <div class="rk-step-num">5</div>
                <div class="rk-step-content">
                    <h3>Uwzględnienie osprzętu (V<sub>osprz</sub>)</h3>
                    <p>Dodajemy stałą pojemność belek rozdzielacza (ok. 0,35 litra na każdą parę obwodów 'n&#8217;).</p>
                    <code class="rk-formula-code">V_całk = V_rur + (n &times; 0,35) + V_podejść</code>
                </div>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-calc-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:2px solid #ef4444; border-radius:20px; font-weight:800;">
                BŁĄD LICENCJI: Ten kalkulator jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Elementy DOM
    const sliderLen = document.getElementById('sliderLength');
    const sliderMan = document.getElementById('sliderManifold');
    
    const readLen = document.getElementById('readoutLength');
    const readMan = document.getElementById('readoutManifold');
    
    const dispPipe = document.getElementById('dispPipe');
    const dispManifold = document.getElementById('dispManifold');
    const dispTotal = document.getElementById('dispTotal');
    
    const svgContainer = document.getElementById('svgContainer');

    // 3. Funkcja generująca SVG Rozdzielacza
    function renderManifoldSVG(n) {
        // Obliczamy szerokość w zależności od ilości portów (n)
        const portSpacing = 30;
        const startX = 30;
        const totalWidth = startX + (n * portSpacing) + 30;
        
        let svgHTML = `<svg viewBox="0 0 ${totalWidth} 140" style="width:100%; height:100%; max-width:${totalWidth}px;">`;
        
        // Rury zasilające PEX wychodzące w dół
        for(let i = 0; i < n; i++) {
            const x = startX + (i * portSpacing);
            // Pętla PEX (Zasilanie i powrót wizualnie)
            svgHTML += `<path d="M ${x-4} 90 L ${x-4} 130" stroke="#94a3b8" stroke-width="4" fill="none"/>`;
            svgHTML += `<path d="M ${x+4} 45 L ${x+4} 130" stroke="#94a3b8" stroke-width="4" fill="none"/>`;
        }

        // Belka powrotna (Niebieska) - Górna (w rzeczywistości bywa różnie, tu dla czytelności)
        svgHTML += `<rect x="10" y="30" width="${totalWidth - 20}" height="20" fill="#1e293b" stroke="#3b82f6" stroke-width="2" rx="4"/>`;
        
        // Belka zasilająca (Czerwona) - Dolna
        svgHTML += `<rect x="10" y="75" width="${totalWidth - 20}" height="20" fill="#1e293b" stroke="#ef4444" stroke-width="2" rx="4"/>`;

        // Zawory i rotametry
        for(let i = 0; i < n; i++) {
            const x = startX + (i * portSpacing);
            // Rotametr góra (Niebieska belka)
            svgHTML += `<rect x="${x-6}" y="10" width="12" height="20" fill="#0f172a" stroke="#cbd5e1" stroke-width="1"/>`;
            svgHTML += `<rect x="${x-4}" y="15" width="8" height="10" fill="#ef4444"/>`; // Pływak
            // Siłownik dół (Czerwona belka)
            svgHTML += `<rect x="${x-7}" y="60" width="14" height="15" fill="#f8fafc" rx="2"/>`;
        }

        svgHTML += `</svg>`;
        svgContainer.innerHTML = svgHTML;
    }

    // 4. Główna funkcja licząca
    function updateCalculator() {
        const L = parseInt(sliderLen.value);
        const n = parseInt(sliderMan.value);
        
        // Aktualizacja etykiet suwaków
        readLen.textContent = L + ' m';
        readMan.textContent = n + ' szt.';
        
        // Matematyka
        const vPipe = L * 0.113;
        const vMan = n * 0.35;
        const vTotal = vPipe + vMan;
        
        // Wyświetlacze
        dispPipe.innerHTML = vPipe.toFixed(1) + ' <span>L</span>';
        dispManifold.innerHTML = vMan.toFixed(1) + ' <span>L</span>';
        dispTotal.innerHTML = vTotal.toFixed(1) + ' <span>L</span>';

        // Renderowanie Grafiki SVG
        renderManifoldSVG(n);
    }

    // 5. Inicjalizacja i Nasłuchiwanie
    if (sliderLen && sliderMan) {
        sliderLen.addEventListener('input', updateCalculator);
        sliderMan.addEventListener('input', updateCalculator);
        updateCalculator();
    }
});
</script>



<style>
:root {
    --rk-lab-dark: #0f172a;
    --rk-lab-panel: #1e293b;
    --rk-lab-brand: #3b82f6; /* Laboratoryjny niebieski */
    --rk-lab-brand-light: #eff6ff;
    --rk-lab-success: #10b981;
    --rk-lab-warning: #f59e0b;
    --rk-lab-danger: #ef4444;
    --rk-lab-danger-bg: #fef2f2;
    --rk-lab-bg: #ffffff;
    --rk-lab-border: #cbd5e1;
    --rk-lab-text: #334155;
    --rk-lab-muted: #64748b;
}

.rk-lab-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-lab-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(59, 130, 246, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.2);
    overflow: hidden;
}

/* Header */
.rk-lab-header {
    background: linear-gradient(135deg, var(--rk-lab-dark) 0%, #172554 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-lab-brand);
}

.rk-lab-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 15px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-lab-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}
.rk-lab-title span { color: #93c5fd; }

.rk-lab-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #e2e8f0;
    margin: 0;
}

.rk-lab-link {
    color: #93c5fd;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed #93c5fd;
    transition: 0.3s;
}
.rk-lab-link:hover { color: #ffffff; border-bottom-style: solid; }

/* Sekcja Testowa (Symulator i Tabela) */
.rk-lab-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Interaktywny Panel Kontrolny */
.rk-test-panel {
    background: #ffffff;
    border: 1px solid var(--rk-lab-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 40px;
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 30px;
    align-items: center;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}

.rk-thermometer-box {
    width: 100%;
    height: 120px;
    display: flex;
    justify-content: center;
}

.rk-controls {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-controls-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-controls-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-lab-muted);
    text-transform: uppercase;
}

.rk-temp-display {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-lab-dark);
    font-family: monospace;
    transition: color 0.3s;
}

.rk-slider {
    -webkit-appearance: none;
    width: 100%; height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
}
.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 24px; height: 24px; border-radius: 50%;
    background: var(--rk-lab-brand);
    cursor: pointer; border: 4px solid #ffffff;
    box-shadow: 0 0 10px rgba(59, 130, 246, 0.4);
    transition: transform 0.1s, background 0.3s;
}
.rk-slider::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Tabela jako responsywne kafelki materiałowe */
.rk-mat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.rk-mat-card {
    background: #ffffff;
    border: 2px solid var(--rk-lab-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.rk-mat-header {
    background: #f1f5f9;
    padding: 15px;
    text-align: center;
    border-bottom: 1px solid var(--rk-lab-border);
    transition: background 0.4s;
}

.rk-mat-title {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-lab-dark);
    margin: 0;
}

.rk-mat-subtitle {
    font-size: 11px;
    font-weight: 700;
    color: var(--rk-lab-muted);
    text-transform: uppercase;
    display: block;
    margin-top: 4px;
}

.rk-mat-body { padding: 0; }

.rk-mat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    border-bottom: 1px solid #f1f5f9;
}
.rk-mat-row:last-child { border-bottom: none; }

.rk-mat-label { font-size: 11px; color: var(--rk-lab-muted); font-weight: 600; }
.rk-mat-val { font-size: 13px; font-weight: 800; color: var(--rk-lab-text); text-align: right; }

/* Statusy zniszczenia cieplnego (Interakcja) */
.rk-mat-card.status-fail {
    border-color: var(--rk-lab-danger);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.2);
}
.rk-mat-card.status-fail .rk-mat-header {
    background: var(--rk-lab-danger);
}
.rk-mat-card.status-fail .rk-mat-title,
.rk-mat-card.status-fail .rk-mat-subtitle { color: #ffffff; }

.rk-fail-overlay {
    position: absolute;
    top: 60px; left: 0; width: 100%; bottom: 0;
    background: rgba(254, 242, 242, 0.9);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s;
    backdrop-filter: blur(2px);
}
.rk-mat-card.status-fail .rk-fail-overlay { opacity: 1; pointer-events: auto; }

.rk-fail-icon { color: var(--rk-lab-danger); margin-bottom: 8px; }
.rk-fail-text { font-size: 14px; font-weight: 900; color: var(--rk-lab-danger); text-transform: uppercase; }

/* SVG Thermometer Anim */
.rk-thermo-glass { fill: #f8fafc; stroke: #cbd5e1; stroke-width: 3; }
.rk-thermo-liquid { transition: height 0.3s ease-out, y 0.3s ease-out, fill 0.3s; }
.rk-thermo-bulb { transition: fill 0.3s; }

@media (max-width: 768px) {
    .rk-lab-header { padding: 30px 20px; }
    .rk-lab-body { padding: 30px 20px; }
    .rk-test-panel { grid-template-columns: 1fr; padding: 25px; text-align: center; gap: 20px; }
    .rk-thermometer-box { height: 80px; }
    .rk-mat-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/"
    },
    "headline": "Jakie parametry techniczne różnią rury PEX i PERT o średnicy 16 mm?",
    "description": "Szczegółowa tabela parametrów i interaktywny test wytrzymałości termicznej rur PEX-a, PEX-b, PEX-c oraz PERT Typ II (zgodnie z ISO 15875 i ISO 22391).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#dataset-parametry",
    "name": "Specyfikacja techniczna rur instalacyjnych (PEX vs PERT)",
    "description": "Baza danych parametrów termicznych, mechanicznych oraz wytrzymałościowych dla polietylenu sieciowanego i polietylenu o podwyższonej odporności termicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "różnica PEX a PERT",
      "maksymalna temperatura rur PEX",
      "stopień sieciowania ISO 15875",
      "wytrzymałość rur do ogrzewania podłogowego",
      "przewodnictwo cieplne rur"
    ],
    "measurementTechnique": "Zestawienie tabelaryczne oparte na wytycznych normatywnych PN-EN ISO 15875 dla PEX oraz PN-EN ISO 22391 dla PERT.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "PEX-a: Temp max 95°C, Sieciowanie >70%, Wytrzymałość 10 bar.",
        "PEX-b: Temp max 95°C, Sieciowanie >65%, Wytrzymałość 10 bar.",
        "PEX-c: Temp max 90°C, Sieciowanie >60%, Wytrzymałość 10 bar.",
        "PERT Typ II: Temp max 70°C, Brak sieciowania (0%), Wytrzymałość 6 bar."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#webapp-parametry",
    "name": "Symulator Odporności Termicznej Rur CO",
    "description": "Interaktywny panel badawczy. Pozwala na symulację temperatury czynnika grzewczego i wizualizuje przekroczenie krytycznych punktów pracy dla różnych typów rur (PEX vs PERT).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS Grid, and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-lab-container" id="rk-lab-app">
    
    <!-- Header -->
    <div class="rk-lab-header">
        <div class="rk-lab-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Karta Materiałowa
        </div>
        <h2 class="rk-lab-title">Parametry techniczne: <span>PEX vs PERT 16 mm</span></h2>
        <p class="rk-lab-intro">
            Rury <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" class="rk-lab-link">PEX (polietylen sieciowany)</a> charakteryzują się wyższą odpornością termiczną i mechaniczną w porównaniu do rur <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/" class="rk-lab-link">PERT (polietylen o podwyższonej odporności termicznej)</a>. Mimo identycznej pojemności wodnej (0,113 l/m), ich zachowanie pod ekstremalnym obciążeniem ciśnieniowym diametralnie się różni.
        </p>
    </div>

    <div class="rk-lab-body">
        
        <!-- Interaktywny Symulator -->
        <div class="rk-test-panel">
            <div class="rk-thermometer-box">
                <svg viewBox="0 0 40 100" style="height: 100%; width: auto;">
                    <!-- Obudowa -->
                    <rect class="rk-thermo-glass" x="15" y="5" width="10" height="70" rx="5"/>
                    <circle class="rk-thermo-glass" cx="20" cy="80" r="12"/>
                    <!-- Skala -->
                    <path d="M15 20h-5M15 40h-5M15 60h-5" stroke="#94a3b8" stroke-width="1.5"/>
                    <!-- Płyn -->
                    <circle id="svgThermoBulb" class="rk-thermo-bulb" cx="20" cy="80" r="8" fill="#10b981"/>
                    <rect id="svgThermoLiquid" class="rk-thermo-liquid" x="17" y="60" width="6" height="20" fill="#10b981"/>
                </svg>
            </div>
            
            <div class="rk-controls">
                <div class="rk-controls-header">
                    <span class="rk-controls-title">Symulacja temp. zasilania</span>
                    <span class="rk-temp-display" id="valTempDisp">40°C</span>
                </div>
                <input type="range" class="rk-slider" id="tempSimulator" min="20" max="110" step="5" value="40">
                <div style="font-size: 12px; color: var(--rk-lab-muted); display: flex; justify-content: space-between;">
                    <span>Pompa Ciepła (20-40°C)</span>
                    <span>Kocioł zasypowy (80-100°C)</span>
                </div>
            </div>
        </div>

        <!-- Tabela Parametrów jako Grid Kafelków -->
        <div class="rk-mat-grid">
            
            <!-- PERT -->
            <div class="rk-mat-card" id="cardPERT" data-max="70">
                <div class="rk-mat-header">
                    <h3 class="rk-mat-title">PERT Typ II</h3>
                    <span class="rk-mat-subtitle">Norma ISO 22391</span>
                </div>
                <div class="rk-mat-body">
                    <div class="rk-mat-row"><span class="rk-mat-label">Sieciowanie</span><span class="rk-mat-val">0% (Brak)</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Temp. max</span><span class="rk-mat-val">70°C</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Ciśnienie (60°C)</span><span class="rk-mat-val">6 bar</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Przewodzenie (λ)</span><span class="rk-mat-val">0,40 W/(m·K)</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Promień gięcia</span><span class="rk-mat-val">5 x OD</span></div>
                </div>
                <div class="rk-fail-overlay">
                    <svg class="rk-fail-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    <span class="rk-fail-text">Degradacja Termiczna</span>
                </div>
            </div>

            <!-- PEX C -->
            <div class="rk-mat-card" id="cardPEXC" data-max="90">
                <div class="rk-mat-header">
                    <h3 class="rk-mat-title">PEX-c</h3>
                    <span class="rk-mat-subtitle">Norma ISO 15875</span>
                </div>
                <div class="rk-mat-body">
                    <div class="rk-mat-row"><span class="rk-mat-label">Sieciowanie</span><span class="rk-mat-val">&gt; 60%</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Temp. max</span><span class="rk-mat-val">90°C</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Ciśnienie (60°C)</span><span class="rk-mat-val">10 bar</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Przewodzenie (λ)</span><span class="rk-mat-val">0,35 W/(m·K)</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Promień gięcia</span><span class="rk-mat-val">5 x OD</span></div>
                </div>
                <div class="rk-fail-overlay">
                    <svg class="rk-fail-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    <span class="rk-fail-text">Utrata właściwości</span>
                </div>
            </div>

            <!-- PEX B -->
            <div class="rk-mat-card" id="cardPEXB" data-max="95">
                <div class="rk-mat-header">
                    <h3 class="rk-mat-title">PEX-b</h3>
                    <span class="rk-mat-subtitle">Norma ISO 15875</span>
                </div>
                <div class="rk-mat-body">
                    <div class="rk-mat-row"><span class="rk-mat-label">Sieciowanie</span><span class="rk-mat-val">&gt; 65%</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Temp. max</span><span class="rk-mat-val">95°C</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Ciśnienie (60°C)</span><span class="rk-mat-val">10 bar</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Przewodzenie (λ)</span><span class="rk-mat-val">0,41 W/(m·K)</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Promień gięcia</span><span class="rk-mat-val">6 x OD</span></div>
                </div>
                <div class="rk-fail-overlay">
                    <svg class="rk-fail-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    <span class="rk-fail-text">Awaria Hydrauliczna</span>
                </div>
            </div>

            <!-- PEX A -->
            <div class="rk-mat-card" id="cardPEXA" data-max="95">
                <div class="rk-mat-header">
                    <h3 class="rk-mat-title">PEX-a</h3>
                    <span class="rk-mat-subtitle">Norma ISO 15875</span>
                </div>
                <div class="rk-mat-body">
                    <div class="rk-mat-row"><span class="rk-mat-label">Sieciowanie</span><span class="rk-mat-val">&gt; 70%</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Temp. max</span><span class="rk-mat-val">95°C</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Ciśnienie (60°C)</span><span class="rk-mat-val">10 bar</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Przewodzenie (λ)</span><span class="rk-mat-val">0,38 W/(m·K)</span></div>
                    <div class="rk-mat-row"><span class="rk-mat-label">Promień gięcia</span><span class="rk-mat-val">5 x OD</span></div>
                </div>
                <div class="rk-fail-overlay">
                    <svg class="rk-fail-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    <span class="rk-fail-text">Awaria Hydrauliczna</span>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-lab-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:2px solid #ef4444; border-radius:24px; font-weight:800;">
                BŁĄD LICENCJI: Ten interfejs materiałowy jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Symulatora Termicznego
    const slider = document.getElementById('tempSimulator');
    const tempDisp = document.getElementById('valTempDisp');
    
    // SVG
    const thermoLiquid = document.getElementById('svgThermoLiquid');
    const thermoBulb = document.getElementById('svgThermoBulb');
    
    // Karty materiałów
    const cards = document.querySelectorAll('.rk-mat-card');

    function updateSimulation() {
        const currentTemp = parseInt(slider.value);
        tempDisp.textContent = currentTemp + '°C';

        // Kolor i logika termometru
        let color = '#10b981'; // Green for normal PC temps (20-40)
        if (currentTemp > 45 && currentTemp <= 70) color = '#f59e0b'; // Yellow (Gas boiler)
        if (currentTemp > 70) color = '#ef4444'; // Red (Danger/Solid fuel)

        tempDisp.style.color = color;
        thermoBulb.setAttribute('fill', color);
        thermoLiquid.setAttribute('fill', color);

        // SVG Thermometer Height logic (Min temp = 20, Max = 110)
        // Y range for liquid: from Y=60 (height=20) to Y=10 (height=70)
        const percentage = (currentTemp - 20) / (110 - 20);
        const maxHeight = 70;
        const currentHeight = Math.max(10, percentage * maxHeight);
        const currentY = 80 - currentHeight;

        thermoLiquid.setAttribute('height', currentHeight);
        thermoLiquid.setAttribute('y', currentY);

        // Kafelki - sprawdzanie uszkodzeń
        cards.forEach(card => {
            const maxTemp = parseInt(card.getAttribute('data-max'));
            if (currentTemp > maxTemp) {
                card.classList.add('status-fail');
            } else {
                card.classList.remove('status-fail');
            }
        });
    }

    if (slider) {
        slider.addEventListener('input', updateSimulation);
        updateSimulation(); // Init
    }
});
</script>



<style>
:root {
    --rk-bp-base: #020617; /* Głęboki granat wchodzący w czerń */
    --rk-bp-panel: rgba(15, 23, 42, 0.85); /* Ciemny slate z przezroczystością */
    --rk-bp-primary: #0ea5e9; /* Blueprint Cyan */
    --rk-bp-primary-glow: rgba(14, 165, 233, 0.4);
    --rk-bp-accent: #f59e0b; /* Pomarańcz do akcentów */
    --rk-bp-text: #f8fafc;
    --rk-bp-text-dim: #94a3b8;
    --rk-bp-border: #1e293b;
    --rk-bp-grid: rgba(14, 165, 233, 0.08);
}

.rk-bp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background-color: var(--rk-bp-base);
    /* Tło typu Blueprint - Siatka */
    background-image: 
        linear-gradient(var(--rk-bp-grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--rk-bp-grid) 1px, transparent 1px);
    background-size: 20px 20px;
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(2, 6, 23, 0.8), 0 0 0 1px var(--rk-bp-border);
    overflow: hidden;
    color: var(--rk-bp-text);
    position: relative;
}

/* Header */
.rk-bp-header {
    padding: 40px 50px;
    background: linear-gradient(180deg, rgba(2,6,23,0.9) 0%, rgba(2,6,23,0) 100%);
    position: relative;
    z-index: 2;
}

.rk-bp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.15);
    color: var(--rk-bp-primary);
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 20px;
    border-left: 3px solid var(--rk-bp-primary);
}

.rk-bp-title {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    letter-spacing: -0.5px;
}
.rk-bp-title span { color: var(--rk-bp-primary); }

.rk-bp-intro {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-bp-text-dim);
    max-width: 800px;
    margin: 0;
}

/* Algorytm & Workspace */
.rk-bp-workspace {
    padding: 0 50px 40px;
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}

/* Węzły (Nodes) inżynieryjne */
.rk-node {
    background: var(--rk-bp-panel);
    backdrop-filter: blur(10px);
    border: 1px solid var(--rk-bp-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
}

.rk-node::before {
    content: ''; position: absolute; top: 15px; left: -1px; width: 3px; height: 30px; background: var(--rk-bp-primary);
}

.rk-node-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.rk-node-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-bp-text);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0;
}

.rk-node-formula {
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    color: var(--rk-bp-primary);
    background: rgba(14, 165, 233, 0.1);
    padding: 4px 10px;
    border-radius: 4px;
    font-weight: 700;
}

/* Węzeł 1: Kalkulator OZC */
.rk-input-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-slider-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-bp-text-dim);
}
.rk-slider-val { color: #ffffff; font-weight: 900; font-size: 15px; }

.rk-bp-range {
    -webkit-appearance: none;
    width: 100%; height: 4px;
    background: #334155;
    outline: none;
}
.rk-bp-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 18px; height: 18px; border-radius: 50%;
    background: var(--rk-bp-base);
    cursor: pointer; border: 3px solid var(--rk-bp-primary);
    box-shadow: 0 0 10px var(--rk-bp-primary-glow);
    transition: 0.2s;
}
.rk-bp-range::-webkit-slider-thumb:active { transform: scale(1.2); background: var(--rk-bp-primary); }

/* Węzeł 2: Rozdzielacz i Pętle (SVG) */
.rk-flow-dashboard {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-metrics-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-item {
    background: #020617;
    border: 1px solid #1e293b;
    padding: 15px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-metric-label { font-size: 11px; color: var(--rk-bp-text-dim); text-transform: uppercase; font-weight: 800; }
.rk-metric-val { font-size: 22px; font-weight: 900; color: #ffffff; font-family: monospace; }
.rk-metric-val span { font-size: 12px; color: var(--rk-bp-primary); }

.rk-metric-item.highlight { border-color: var(--rk-bp-primary); box-shadow: inset 0 0 20px rgba(14, 165, 233, 0.05); }

/* SVG Rozdzielacz */
.rk-svg-manifold {
    width: 100%;
    height: 160px;
    background: #020617;
    border: 1px solid #1e293b;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Mocne CTA */
.rk-bp-cta {
    background: var(--rk-bp-primary);
    padding: 40px 50px;
    text-align: center;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.rk-bp-cta-title {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 10px 0;
}

.rk-bp-cta-text {
    font-size: 15px;
    margin: 0 auto 25px auto;
    max-width: 600px;
    opacity: 0.9;
}

.rk-btn-cad {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    color: var(--rk-bp-base);
    font-size: 16px;
    font-weight: 900;
    padding: 18px 36px;
    border-radius: 8px;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}

.rk-btn-cad:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 25px rgba(0,0,0,0.4);
    background: #f8fafc;
}

/* Animacje SVG */
.anim-flow-water { stroke-dasharray: 4 8; animation: flowPEX 1s linear infinite; }
@keyframes flowPEX { to { stroke-dashoffset: -12; } }
.anim-float { transition: y 0.3s ease-out; }

@media (max-width: 768px) {
    .rk-bp-header { padding: 30px 20px; }
    .rk-bp-workspace { padding: 0 20px 30px; }
    .rk-input-grid { grid-template-columns: 1fr; }
    .rk-flow-dashboard { grid-template-columns: 1fr; }
    .rk-bp-cta { padding: 30px 20px; }
    .rk-btn-cad { width: 100%; justify-content: center; padding: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Jak pojemność wodna rur wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Powiązanie pojemności rur PEX 16 z Projektowym Obciążeniem Cieplnym (OZC), przepływem masowym i ilością pętli w celu eliminacji szumów i kawitacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-projekt",
    "name": "Parametry przepływu masowego i podziału pętli",
    "description": "Zależności matematyczne między mocą grzewczą a przepływem dla instalacji ogrzewania płaszczyznowego z rur 16x2.0.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ masowy czynnika OZC",
      "maksymalna długość pętli",
      "wskazania rotametru podłogówka",
      "kawitacja pompy obiegowej",
      "projekt ogrzewania podłogowego"
    ],
    "measurementTechnique": "Obliczenia inżynieryjne przepływu w oparciu o ciepło właściwe wody (1.163 Wh/kgK) przy delta T 5K oraz podział na pętle wg limitu 2.0 l/min.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wzór na przepływ masowy: m = Q / (cw * deltaT).",
        "Limit prędkości przepływu dla rury 16x2.0: max 0.3 m/s, co daje ok. 2.0 l/min na rotametrze.",
        "Generowane opory dla pętli 100m przy 2.1 l/min: ok. 18 kPa (1.8 m słupa wody)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-projekt",
    "name": "Kalkulator Podziału Pętli Ogrzewania Podłogowego",
    "description": "Zautomatyzowane narzędzie inżynierskie przeliczające obciążenie cieplne na przepływ masowy, wymaganą ilość rotametrów oraz całkowitą objętość wody w strefie.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-bp-container" id="rk-bp-app">
    
    <!-- Header -->
    <div class="rk-bp-header">
        <div class="rk-bp-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path></svg>
            Inżynieria Projektowa
        </div>
        <h2 class="rk-bp-title">Projekt podłogówki to nie zgadywanka. <span>To matematyka.</span></h2>
        <p class="rk-bp-intro">
            Pojemność wodna rurociągów PEX 16 bezpośrednio determinuje wymagany przepływ masowy czynnika grzewczego. Na podstawie obliczeń OZC (norma PN-EN 12831) dobieramy rozstaw rur, aby uniknąć szumów w instalacji i zjawiska kawitacji w pompie.
        </p>
    </div>

    <!-- Obszar roboczy / Węzły -->
    <div class="rk-bp-workspace">
        
        <!-- Węzeł 1: Parametry wejściowe -->
        <div class="rk-node">
            <div class="rk-node-header">
                <h3 class="rk-node-title">Krok 1: Wymagania Pomieszczenia (OZC)</h3>
                <div class="rk-node-formula">Q = Area × W/m²</div>
            </div>
            
            <div class="rk-input-grid">
                <div class="rk-slider-group">
                    <div class="rk-slider-label">
                        <span>Powierzchnia salonu:</span>
                        <span class="rk-slider-val" id="valAreaOut">30 m²</span>
                    </div>
                    <input type="range" class="rk-bp-range" id="sliderArea" min="10" max="60" step="1" value="30">
                </div>

                <div class="rk-slider-group">
                    <div class="rk-slider-label">
                        <span>Zapotrzebowanie na ciepło:</span>
                        <span class="rk-slider-val" id="valHeatOut">73 W/m²</span>
                    </div>
                    <input type="range" class="rk-bp-range" id="sliderHeat" min="30" max="120" step="1" value="73">
                </div>
            </div>
        </div>

        <!-- Węzeł 2: Hydraulika i Rozdzielacz -->
        <div class="rk-node">
            <div class="rk-node-header">
                <h3 class="rk-node-title">Krok 2: Bilans Hydrauliczny &#038; Podział na Pętle</h3>
                <div class="rk-node-formula">m = Q / (1.163 × &Delta;T)</div>
            </div>
            
            <div class="rk-flow-dashboard">
                <div class="rk-metrics-list">
                    <div class="rk-metric-item">
                        <span class="rk-metric-label">Całkowite obciążenie (Q)</span>
                        <span class="rk-metric-val" id="dispQ">2200 <span>W</span></span>
                    </div>
                    <div class="rk-metric-item highlight">
                        <span class="rk-metric-label">Przepływ masowy (ΔT=5K)</span>
                        <span class="rk-metric-val" id="dispFlow">6.3 <span>l/min</span></span>
                    </div>
                    <div class="rk-metric-item">
                        <span class="rk-metric-label">Wymagane pętle (Max 2.0 l/min)</span>
                        <span class="rk-metric-val" id="dispLoops" style="color:var(--rk-bp-primary);">4 <span>szt.</span></span>
                    </div>
                    <div class="rk-metric-item">
                        <span class="rk-metric-label">Zład wody (rozstaw 10cm)</span>
                        <span class="rk-metric-val" id="dispVolume">33.9 <span>L</span></span>
                    </div>
                </div>

                <div class="rk-svg-manifold" id="svgManifoldContainer">
                    <!-- Dynamic SVG -->
                </div>
            </div>
        </div>

    </div>

    <!-- Mocne CTA -->
    <div class="rk-bp-cta">
        <h3 class="rk-bp-cta-title">Brak projektu to opory, szumy i wysokie rachunki</h3>
        <p class="rk-bp-cta-text">
            Koszt profesjonalnego projektu ogrzewania to ułamek wartości pompy ciepła, który zwraca się już w pierwszym sezonie grzewczym dzięki optymalizacji pracy układu. Nie buduj na oko.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cad">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            ZAMÓW PROJEKT INŻYNIERSKI Z OZC
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-bp-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#020617; color:#ef4444; border:1px solid #ef4444; font-weight:800;">
                BŁĄD LICENCJI: Ten moduł inżynieryjny należy do projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Elementy DOM
    const sliderArea = document.getElementById('sliderArea');
    const sliderHeat = document.getElementById('sliderHeat');
    
    const valAreaOut = document.getElementById('valAreaOut');
    const valHeatOut = document.getElementById('valHeatOut');
    
    const dispQ = document.getElementById('dispQ');
    const dispFlow = document.getElementById('dispFlow');
    const dispLoops = document.getElementById('dispLoops');
    const dispVolume = document.getElementById('dispVolume');
    
    const svgContainer = document.getElementById('svgManifoldContainer');

    // Funkcja Renderująca SVG Rozdzielacza
    function renderDynamicManifold(loops, flowPerLoop) {
        // Zabezpieczenie przed zbyt dużą ilością do renderu (max np 8 na ten widok)
        const renderLoops = Math.min(loops, 8);
        const spacing = 35;
        const width = Math.max(100, renderLoops * spacing + 40);
        
        let svg = `<svg viewBox="0 0 ${width} 140" style="width:100%; height:100%; max-width:${width}px;">`;
        
        // Rury powrotne
        for(let i=0; i<renderLoops; i++) {
            let x = 20 + (i * spacing);
            svg += `<path class="anim-flow-water" d="M ${x+5} 40 L ${x+5} 130" fill="none" stroke="#0ea5e9" stroke-width="3"/>`;
        }
        
        // Belka górna (Zasilanie z rotametrami)
        svg += `<rect x="5" y="25" width="${width-10}" height="18" fill="#1e293b" stroke="#ef4444" stroke-width="2" rx="3"/>`;
        
        // Belka dolna (Powrót)
        svg += `<rect x="5" y="80" width="${width-10}" height="18" fill="#1e293b" stroke="#3b82f6" stroke-width="2" rx="3"/>`;

        // Rotametry i zawory
        for(let i=0; i<renderLoops; i++) {
            let x = 20 + (i * spacing);
            
            // Szklana rurka rotametru
            svg += `<rect x="${x-6}" y="5" width="12" height="20" fill="rgba(255,255,255,0.1)" stroke="#cbd5e1" stroke-width="1"/>`;
            
            // Obliczenie pozycji pływaka (flowPerLoop max 2.0)
            // Y: 5 (max flow) do 20 (min flow)
            let flowRatio = Math.min(1, flowPerLoop / 2.5);
            let floatY = 20 - (flowRatio * 10); // wizualny zakres

            svg += `<rect class="anim-float" x="${x-5}" y="${floatY}" width="10" height="6" fill="#ef4444"/>`;
            
            // Siłowniki (dolna belka)
            svg += `<rect x="${x-7}" y="65" width="14" height="15" fill="#e2e8f0" rx="2"/>`;
            
            // Rury zasilające wychodzące w dół z czerwonej belki
            svg += `<path class="anim-flow-water" d="M ${x-5} 98 L ${x-5} 130" fill="none" stroke="#ef4444" stroke-width="3"/>`;
        }

        // Złącze wejścia (czerwone) i wyjścia (niebieskie)
        svg += `<rect x="${width-10}" y="24" width="8" height="20" fill="#ef4444"/>`;
        svg += `<rect x="${width-10}" y="79" width="8" height="20" fill="#3b82f6"/>`;

        svg += `</svg>`;
        svgContainer.innerHTML = svg;
    }

    // Główny Algorytm
    function calculateCAD() {
        const area = parseFloat(sliderArea.value);
        const heatLoad = parseFloat(sliderHeat.value);
        
        valAreaOut.textContent = area + ' m²';
        valHeatOut.textContent = heatLoad + ' W/m²';
        
        // 1. Zapotrzebowanie całkowite (Q)
        const Q = area * heatLoad;
        
        // 2. Przepływ masowy w l/min
        // m = Q / (cw * deltaT), cw = 1.163 Wh/kgK, deltaT = 5K
        // m w kg/h = Q / (1.163 * 5) = Q / 5.815
        // l/min = (Q / 5.815) / 60 = Q / 348.9
        const flowTotal = Q / 348.9;
        
        // 3. Ilość pętli (limit ok 2.0 l/min na pętlę przy rurze 16x2.0 dla uniknięcia hałasu)
        const loops = Math.max(1, Math.ceil(flowTotal / 2.0));
        const flowPerLoop = flowTotal / loops;

        // 4. Całkowita długość i objętość
        // Rozstaw 10cm = 10 mb rury na 1 m2
        const pipeLen = area * 10;
        const volume = pipeLen * 0.113;

        // Wyświetlanie wyników
        dispQ.innerHTML = Math.round(Q) + ' <span>W</span>';
        dispFlow.innerHTML = flowTotal.toFixed(1) + ' <span>l/min</span>';
        dispLoops.innerHTML = loops + ' <span>szt.</span>';
        dispVolume.innerHTML = volume.toFixed(1) + ' <span>L</span>';

        // Renderowanie SVG
        renderDynamicManifold(loops, flowPerLoop);
    }

    if (sliderArea && sliderHeat) {
        sliderArea.addEventListener('input', calculateCAD);
        sliderHeat.addEventListener('input', calculateCAD);
        calculateCAD(); // Init
    }
});
</script>



<style>
:root {
    --rk-sum-dark: #020617;
    --rk-sum-panel: #0f172a;
    --rk-sum-primary: #10b981; /* Emerald/Green for success/summary */
    --rk-sum-primary-light: #d1fae5;
    --rk-sum-accent: #3b82f6; /* Blue for water */
    --rk-sum-warning: #f59e0b;
    --rk-sum-bg: #f8fafc;
    --rk-sum-border: #cbd5e1;
    --rk-sum-text: #334155;
    --rk-sum-text-dim: #64748b;
}

.rk-summary-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Header z ekspertem */
.rk-summary-header {
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    display: flex;
    align-items: center;
    gap: 30px;
    border-bottom: 4px solid var(--rk-sum-primary);
    position: relative;
    overflow: hidden;
}

.rk-summary-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
}

.rk-expert-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-primary);
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
    object-fit: cover;
    position: relative;
    z-index: 2;
}

.rk-header-content {
    position: relative;
    z-index: 2;
}

.rk-header-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    border: 1px solid rgba(110, 231, 183, 0.3);
}

.rk-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 8px 0;
    line-height: 1.2;
}

.rk-header-content p {
    color: #94a3b8;
    font-size: 14px;
    margin: 0;
    font-weight: 500;
}

/* Sekcja z zakładkami i wiedzą */
.rk-summary-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

.rk-rules-list {
    padding: 30px;
    border-right: 1px solid var(--rk-sum-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #f8fafc;
}

.rk-rule-btn {
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    padding: 18px 20px;
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-rule-btn:hover {
    border-color: var(--rk-sum-primary);
    transform: translateX(4px);
}

.rk-rule-btn.active {
    background: var(--rk-sum-primary-light);
    border-color: var(--rk-sum-primary);
    box-shadow: inset 4px 0 0 var(--rk-sum-primary);
}

.rk-rule-icon {
    width: 32px; height: 32px;
    background: #f1f5f9;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-sum-text-dim);
    flex-shrink: 0;
    transition: 0.3s;
}

.rk-rule-btn.active .rk-rule-icon {
    background: var(--rk-sum-primary);
    color: #ffffff;
}

.rk-rule-text h3 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-sum-dark);
}

.rk-rule-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-sum-text-dim);
    line-height: 1.5;
}

/* Panel Detali (Prawy) */
.rk-rule-details {
    padding: 40px;
    position: relative;
}

.rk-detail-panel {
    display: none;
    animation: fadeScale 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-detail-panel.active {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

@keyframes fadeScale {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

.rk-detail-panel h4 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-sum-dark);
}

.rk-detail-panel p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-sum-text);
}

.rk-sum-link {
    color: var(--rk-sum-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-sum-accent);
    transition: 0.3s;
}
.rk-sum-link:hover { border-bottom-style: solid; color: #1d4ed8; }

.rk-detail-svg {
    width: 100%;
    height: 160px;
    background: var(--rk-sum-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
}

/* Narzędzie Szybkiego Szacowania (Kalkulator) */
.rk-quick-calc {
    background: var(--rk-sum-panel);
    padding: 35px 50px;
    border-top: 1px solid #1e293b;
    color: #ffffff;
}

.rk-calc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
}

.rk-calc-header h4 {
    margin: 0; font-size: 18px; font-weight: 900; color: #ffffff;
    display: flex; align-items: center; gap: 10px;
}

.rk-calc-grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    align-items: center;
}

.rk-calc-input-area {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-calc-label { font-size: 13px; font-weight: 700; color: #94a3b8; display: flex; justify-content: space-between; }
.rk-calc-label span { color: #ffffff; font-size: 16px; font-weight: 900; }

.rk-sum-range {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: #334155; outline: none;
}
.rk-sum-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 22px; height: 22px; border-radius: 50%;
    background: var(--rk-sum-primary); cursor: pointer; border: 3px solid #ffffff; transition: 0.1s;
}
.rk-sum-range::-webkit-slider-thumb:active { transform: scale(1.15); }

.rk-calc-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.rk-result-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.rk-result-box.highlight { border-color: var(--rk-sum-primary); background: rgba(16, 185, 129, 0.1); }

.rk-res-val { display: block; font-size: 22px; font-weight: 900; color: #ffffff; margin-bottom: 5px; }
.rk-result-box.highlight .rk-res-val { color: var(--rk-sum-primary); }
.rk-res-lab { display: block; font-size: 11px; color: #94a3b8; text-transform: uppercase; font-weight: 700; line-height: 1.4; }

/* SEKACJA AUTORSKA - PODPIS EKSPERTA */
.rk-summary-author {
    background: #f1f5f9;
    padding: 30px 50px;
    display: flex;
    align-items: flex-start;
    gap: 25px;
    border-top: 1px solid var(--rk-sum-border);
}

.rk-author-photo-small {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-primary);
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-author-info {
    flex-grow: 1;
}

.rk-author-info h4 {
    margin: 0 0 6px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-sum-dark);
}

.rk-author-info p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-sum-text);
    line-height: 1.6;
}

.rk-author-links {
    display: flex;
    gap: 15px;
    margin-top: 12px;
}

.rk-author-links a {
    color: var(--rk-sum-accent);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.2s;
}

.rk-author-links a:hover {
    color: #1d4ed8;
    text-decoration: underline;
}

/* Animacje SVG */
.anim-check-draw { stroke-dasharray: 100; stroke-dashoffset: 100; animation: drawCheck 1s forwards; }
@keyframes drawCheck { to { stroke-dashoffset: 0; } }

.anim-pulse-ring { animation: pulseRing 2s infinite; transform-origin: center; }
@keyframes pulseRing { 0% { transform: scale(0.8); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }

.anim-water-wave { animation: waveWater 3s linear infinite; }
@keyframes waveWater { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

@media (max-width: 768px) {
    .rk-summary-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-expert-avatar { width: 70px; height: 70px; }
    .rk-summary-body { grid-template-columns: 1fr; }
    .rk-rules-list { border-right: none; border-bottom: 1px solid var(--rk-sum-border); padding: 20px; }
    .rk-rule-details { padding: 25px 20px; }
    .rk-calc-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-quick-calc { padding: 30px 20px; }
    .rk-calc-results { grid-template-columns: 1fr; }
    .rk-summary-author { flex-direction: column; text-align: center; padding: 30px 20px; align-items: center; }
    .rk-author-links { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-summary-final",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Inżynierskie podsumowanie: Zład wody w pętli PEX 16",
    "description": "Kompaktowe zestawienie najważniejszych parametrów i narzędzie do błyskawicznego szacowania zładu wodnego w ogrzewaniu podłogowym. Twórca i CEO portalu: Robert Kucharski.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-summary",
    "name": "Wskaźniki materiałowo-pojemnościowe dla PEX 16x2.0",
    "description": "Twarde dane przeliczeniowe łączące metraż budynku z szacunkowym zładem wody i zapotrzebowaniem na chemię instalacyjną (inhibitory).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie instalacji pex",
      "szybki kalkulator podłogówki",
      "ilość inhibitora korozji",
      "zład całkowity instalacji",
      "złote zasady ogrzewania"
    ],
    "measurementTechnique": "Szacowanie oparte na średnim wskaźniku 8 mb rury 16x2.0 na 1m2 powierzchni oraz normatywnym stężeniu inhibitora na poziomie 1%.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kluczowa pojemność: 0,113 l/m dla rury 16x2.0",
        "Szacunkowe zużycie rury: ~8m na 1m2 (przy zróżnicowanym rozstawie)",
        "Stężenie ochronne: 1 litr inhibitora na 100 litrów wody demineralizowanej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-summary",
    "name": "Kalkulator Szybkiego Szacowania Inwestycji",
    "description": "Moduł podsumowujący. Przelicza powierzchnię domu na orientacyjną długość rur, zład wody oraz wymaganą ilość profesjonalnej chemii zabezpieczającej.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-container" id="rk-summary-app">
    
    <div class="rk-summary-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-avatar" loading="lazy">
        <div class="rk-header-content">
            <div class="rk-header-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Wnioski Eksperta
            </div>
            <h2>Inżynierskie podsumowanie: Zład wody w pętli PEX 16</h2>
            <p>Zebrałem dla Ciebie 3 najważniejsze reguły projektowe, które decydują o bezawaryjnej pracy systemu przez dekady. Błędy na tym etapie są nieodwracalne.</p>
        </div>
    </div>

    <div class="rk-summary-body">
        
        <div class="rk-rules-list">
            <button class="rk-rule-btn active" data-panel="det-1">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>Pojemność to fundament</h3>
                    <p>0,113 litra na metr dla 16&#215;2.0</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="det-2">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg></div>
                <div class="rk-rule-text">
                    <h3>Ochrona Pompy Ciepła</h3>
                    <p>Zład chroni przed taktowaniem</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="det-3">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10 2v7.31"></path><path d="M14 9.3V1.99"></path><path d="M8.5 2h7"></path><path d="M14 9.3a6.5 6.5 0 1 1-4 0"></path><path d="M5.52 16h12.96"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>Chemia i Jakość Wody</h3>
                    <p>pH i woda demineralizowana</p>
                </div>
            </button>
        </div>

        <div class="rk-rule-details">
            
            <div class="rk-detail-panel active" id="det-1">
                <h4>Nie projektuj &#8222;na oko&#8221;</h4>
                <p>Każda pętla to konkretna pojemność i opór. Zmiana grubości ścianki (z 2.0 na 2.2 mm) to spadek objętości do 0,106 l/m, co błyskawicznie zmienia dynamikę całego <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-sum-link">rozdzielacza</a> i narusza projektowe <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-sum-link">obliczenia OZC</a>.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <circle cx="100" cy="50" r="30" fill="none" stroke="#334155" stroke-width="2"/>
                        <circle cx="100" cy="50" r="26" fill="none" stroke="#10b981" stroke-width="4"/>
                        <circle cx="100" cy="50" r="24" fill="#0ea5e9"/>
                        <path class="anim-check-draw" d="M 90 50 L 98 58 L 115 40" fill="none" stroke="#ffffff" stroke-width="4" stroke-linecap="round"/>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="det-2">
                <h4>Stabilność źródła ciepła</h4>
                <p>Niedoszacowany zład wodny to najczęstsza przyczyna uszkodzeń nowoczesnych sprężarek. Jeśli brakuje litrów w układzie (względem wymogów <a href="https://projekt-ogrzewania.pl/kociol-gazowy/" class="rk-sum-link">kotła</a> lub PC), niezbędny jest montaż <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-sum-link">bufora ciepła</a> lub sprzęgła.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <circle class="anim-pulse-ring" cx="100" cy="50" r="20" fill="none" stroke="#ef4444" stroke-width="2"/>
                        <rect x="80" y="30" width="40" height="40" fill="#1e293b" stroke="#f59e0b" stroke-width="2" rx="4"/>
                        <path d="M 85 45 L 95 45 L 90 60 Z" fill="#f59e0b"/>
                        <path d="M 105 45 L 115 45 L 110 60 Z" fill="#f59e0b"/>
                        <text x="100" y="85" fill="#f59e0b" font-size="10" text-anchor="middle" font-weight="bold">STOP TAKTOWANIU</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="det-3">
                <h4>Zabezpieczenie przed korozją</h4>
                <p>Nigdy nie wlewaj kranówki! Instalację napełniaj wyłącznie <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" class="rk-sum-link">wodą demineralizowaną</a>. Znając dokładną pojemność (wyliczoną ze wzorów), dodaj precyzyjnie 1% inhibitora korozji (np. 2L na 200L wody).</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="70" y="30" width="60" height="50" fill="none" stroke="#cbd5e1" stroke-width="3" rx="4"/>
                        <path class="anim-water-wave" d="M 70 50 Q 80 40 90 50 T 110 50 T 130 50 L 130 80 L 70 80 Z" fill="#3b82f6" opacity="0.8"/>
                        <circle cx="100" cy="65" r="5" fill="#10b981"/>
                        <text x="100" y="20" fill="#10b981" font-size="12" text-anchor="middle" font-weight="bold">+ 1% INHIBITOR</text>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-quick-calc">
        <div class="rk-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sum-primary)" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                Szybki estymator materiałowy
            </h4>
            <span style="font-size:12px; color:#64748b;">(Dla rury PEX 16&#215;2.0)</span>
        </div>

        <div class="rk-calc-grid">
            
            <div class="rk-calc-input-area">
                <div class="rk-calc-label">
                    Powierzchnia domu:
                    <span id="sumAreaOut">120 m²</span>
                </div>
                <input type="range" class="rk-sum-range" id="sumAreaSlider" min="50" max="300" step="10" value="120">
                <p style="font-size: 11px; color:#64748b; margin:0;">*Przyjmując średnio 8 mb rury na 1m².</p>
            </div>

            <div class="rk-calc-results">
                <div class="rk-result-box">
                    <span class="rk-res-val" id="resPipe">960 <span style="font-size:14px;color:#64748b;">m</span></span>
                    <span class="rk-res-lab">Szacunkowa dł. rur</span>
                </div>
                <div class="rk-result-box highlight">
                    <span class="rk-res-val" id="resWater">108.5 <span style="font-size:14px;color:var(--rk-sum-primary);">L</span></span>
                    <span class="rk-res-lab">Zład wody w pętlach</span>
                </div>
                <div class="rk-result-box">
                    <span class="rk-res-val" id="resChem">1.1 <span style="font-size:14px;color:#64748b;">L</span></span>
                    <span class="rk-res-lab">Wymagany inhibitor (1%)</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-summary-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - CEO i Projektant HVAC" class="rk-author-photo-small" loading="lazy">
        <div class="rk-author-info">
            <h4>Robert Kucharski</h4>
            <p>CEO i twórca portalu Projekt-Ogrzewania.pl. Główny projektant i audytor instalacji HVAC. Wszystkie publikowane tu treści opieram na wieloletnim, praktycznym doświadczeniu zdobytym bezpośrednio na placach budowy. Moją misją jest dostarczanie twardej, inżynierskiej wiedzy, która na co dzień kształtuje decyzje tysięcy inwestorów i wykonawców w Polsce.</p>
            <div class="rk-author-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-summary-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:1px solid #ef4444; border-radius:24px; font-weight:800;">
                BŁĄD LICENCJI: Kod podsumowania jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Zakładek (Złote Zasady)
    const btns = document.querySelectorAll('.rk-rule-btn');
    const panels = document.querySelectorAll('.rk-detail-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Reset
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Set Active
            btn.classList.add('active');
            const target = document.getElementById(btn.getAttribute('data-panel'));
            if(target) {
                // Restart animation
                void target.offsetWidth;
                target.classList.add('active');
            }
        });
    });

    // 3. Logika Szybkiego Estymatora
    const slider = document.getElementById('sumAreaSlider');
    const areaOut = document.getElementById('sumAreaOut');
    const resPipe = document.getElementById('resPipe');
    const resWater = document.getElementById('resWater');
    const resChem = document.getElementById('resChem');

    function updateEstimator() {
        const area = parseInt(slider.value);
        areaOut.textContent = area + ' m²';

        // Obliczenia:
        // Średnio 8 mb rury na 1m2 (mieszany rozstaw)
        const pipeLen = area * 8;
        // Zład wody dla 16x2.0 = 0.113 l/m
        const waterVol = pipeLen * 0.113;
        // Chemia (1% z całkowitej objętości)
        const chemVol = waterVol * 0.01;

        resPipe.innerHTML = pipeLen + ' <span style="font-size:14px;color:#64748b;">m</span>';
        resWater.innerHTML = waterVol.toFixed(1) + ' <span style="font-size:14px;color:var(--rk-sum-primary);">L</span>';
        resChem.innerHTML = chemVol.toFixed(1) + ' <span style="font-size:14px;color:#64748b;">L</span>';
    }

    if(slider) {
        slider.addEventListener('input', updateEstimator);
        updateEstimator(); // Init
    }
});
</script>



<style>
:root {
    --rk-diag-dark: #09090b;
    --rk-diag-panel: #18181b;
    --rk-diag-surface: #27272a;
    --rk-diag-accent: #f59e0b; /* Bursztynowy - ostrzegawczy */
    --rk-diag-accent-dim: #78350f;
    --rk-diag-danger: #ef4444;
    --rk-diag-success: #10b981;
    --rk-diag-text: #e4e4e7;
    --rk-diag-muted: #a1a1aa;
    --rk-diag-border: #3f3f46;
}

.rk-diag-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-diag-dark);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.6);
    border: 1px solid var(--rk-diag-border);
    overflow: hidden;
    color: var(--rk-diag-text);
}

/* Header */
.rk-diag-header {
    background: linear-gradient(180deg, #1f2937 0%, var(--rk-diag-dark) 100%);
    padding: 40px 50px;
    border-bottom: 1px solid var(--rk-diag-border);
    position: relative;
}

.rk-diag-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(245, 158, 11, 0.15);
    color: var(--rk-diag-accent);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

.rk-diag-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-diag-title span { color: var(--rk-diag-accent); }

.rk-diag-intro {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-diag-muted);
    max-width: 800px;
    margin: 0;
}

/* Layout Inspektora (Zakładki Pionowe) */
.rk-diag-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    min-height: 500px;
}

/* Lewy Panel - Zakładki */
.rk-diag-sidebar {
    background: var(--rk-diag-panel);
    border-right: 1px solid var(--rk-diag-border);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-diag-tab {
    background: transparent;
    border: 1px solid transparent;
    padding: 15px;
    border-radius: 12px;
    color: var(--rk-diag-muted);
    text-align: left;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-diag-tab:hover {
    background: var(--rk-diag-surface);
    color: #ffffff;
}

.rk-diag-tab.active {
    background: var(--rk-diag-accent-dim);
    border-color: var(--rk-diag-accent);
    color: #ffffff;
    box-shadow: inset 4px 0 0 var(--rk-diag-accent);
}

.rk-tab-title { font-size: 14px; font-weight: 800; }
.rk-tab-sub { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; opacity: 0.8; }

/* Prawy Panel - Treść i Wizualizacje */
.rk-diag-content-wrapper {
    position: relative;
    background: var(--rk-diag-dark);
}

.rk-diag-panel {
    display: none;
    padding: 40px;
    animation: diagFadeIn 0.4s ease-out;
}

.rk-diag-panel.active {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

@keyframes diagFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Nagłówek Panelu */
.rk-panel-header h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
    color: #ffffff;
}

.rk-panel-text {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-diag-text);
    margin: 0;
}

.rk-diag-link {
    color: var(--rk-diag-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-diag-accent);
    transition: 0.3s;
}
.rk-diag-link:hover { color: #fcd34d; border-bottom-style: solid; }

/* Statystyki Błędu */
.rk-error-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-stat-box {
    background: var(--rk-diag-panel);
    border: 1px solid var(--rk-diag-border);
    padding: 15px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-stat-box.alert { border-color: var(--rk-diag-danger); background: rgba(239, 68, 68, 0.1); }
.rk-stat-box.correct { border-color: var(--rk-diag-success); background: rgba(16, 185, 129, 0.1); }

.rk-stat-label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--rk-diag-muted); }
.rk-stat-val { font-size: 20px; font-weight: 900; font-family: monospace; }
.rk-stat-box.alert .rk-stat-val { color: var(--rk-diag-danger); }
.rk-stat-box.correct .rk-stat-val { color: var(--rk-diag-success); }

/* Kontener SVG */
.rk-svg-stage {
    background: #000000;
    border: 1px solid var(--rk-diag-border);
    border-radius: 12px;
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-svg-stage::after {
    content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at center, transparent 30%, rgba(0,0,0,0.6) 100%);
    pointer-events: none;
}

/* Animacje specyficzne dla paneli */
/* Panel 1: Rury i objętość */
.rk-anim-fill-bad { transition: height 1s cubic-bezier(0.4, 0, 0.2, 1); fill: var(--rk-diag-danger); }
.rk-anim-fill-good { transition: height 1s cubic-bezier(0.4, 0, 0.2, 1); fill: var(--rk-diag-success); }
.rk-diag-panel.active .rk-anim-fill-bad { height: 80px; }
.rk-diag-panel.active .rk-anim-fill-good { height: 60px; }

/* Panel 2: Ciśnienie */
.rk-anim-needle { transform-origin: 50px 70px; transform: rotate(-45deg); transition: transform 1.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-diag-panel.active .rk-anim-needle { transform: rotate(55deg); }
.rk-anim-vessel { transform-origin: center; transition: transform 1.5s ease-out; }
.rk-diag-panel.active .rk-anim-vessel { transform: scale(1.15); }

/* Panel 3: Korozja */
.rk-anim-drop { opacity: 0; }
.rk-diag-panel.active .rk-anim-drop { animation: acidDrop 2s infinite; }
@keyframes acidDrop {
    0% { transform: translateY(-20px); opacity: 0; }
    30% { opacity: 1; }
    60% { transform: translateY(30px); opacity: 0; }
    100% { opacity: 0; }
}
.rk-anim-rust { opacity: 0; transition: opacity 2s 1s ease-in; fill: #991b1b; }
.rk-diag-panel.active .rk-anim-rust { opacity: 1; }

@media (max-width: 768px) {
    .rk-diag-header { padding: 30px 20px; }
    .rk-diag-layout { grid-template-columns: 1fr; display: flex; flex-direction: column; }
    .rk-diag-sidebar { border-right: none; border-bottom: 1px solid var(--rk-diag-border); flex-direction: row; overflow-x: auto; padding: 15px; }
    .rk-diag-tab { flex: 0 0 200px; padding: 12px; }
    .rk-diag-panel { padding: 25px 20px; }
    .rk-error-stats { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-zlad",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Jakie błędy najczęściej popełniają instalatorzy przy szacowaniu objętości zładu?",
    "description": "Analiza krytycznych błędów hydraulicznych: uśrednianie pojemności rur, ignorowanie średnic podejść zasilających oraz błędne dozowanie inhibitorów korozji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-zlad",
    "name": "Baza najczęstszych błędów szacowania zładu wodnego w instalacjach CO",
    "description": "Zestawienie techniczne konsekwencji wynikających z błędów projektowych i wykonawczych przy obliczaniu pojemności instalacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy instalatorów podłogówki",
      "pojemność rury zasilającej PEX 32",
      "korozja wżerowa rozdzielacza",
      "stężenie inhibitora korozji",
      "norma VDI 2035"
    ],
    "measurementTechnique": "Analiza porównawcza założeń uśrednionych (na oko) z rzeczywistymi parametrami geometrycznymi i chemicznymi wymaganymi przez normy branżowe.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Uśrednianie pojemności do 0.15 l/m zamiast 0.113 l/m (błąd rzędu 25%).",
        "Błąd 2: Pomijanie rur zasilających np. PEX 32x3.0 (ID 26 mm = 0.531 l/m), co powoduje zły dobór naczynia wzbiorczego.",
        "Błąd 3: Błędne pH i złe stężenie inhibitorów prowadzące do korozji wżerowej elementów mosiężnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webapp-zlad",
    "name": "Audytor Błędów Hydraulicznych",
    "description": "Interaktywny symulator diagnostyczny prezentujący wizualizacje skutków błędnego szacowania pojemności zładu (skoki ciśnienia, korozja mosiądzu).",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS Animations",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-diag-app">
    
    <!-- Nagłówek -->
    <div class="rk-diag-header">
        <div class="rk-diag-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Audyt Wykonawczy
        </div>
        <h2 class="rk-diag-title">3 krytyczne błędy przy <span>szacowaniu zładu</span></h2>
        <p class="rk-diag-intro">
            Szacowanie parametrów instalacji &#8222;na oko&#8221; i ignorowanie zasad fizyki budowli to plaga wśród instalatorów. Niewielkie odchylenia w obliczeniach prowadzą do destabilizacji hydraulicznej, zniszczenia osprzętu i utraty gwarancji na źródło ciepła.
        </p>
    </div>

    <!-- Układ z zakładkami -->
    <div class="rk-diag-layout">
        
        <!-- Sidebar Zakładki -->
        <div class="rk-diag-sidebar">
            <button class="rk-diag-tab active" data-target="panel-1">
                <span class="rk-tab-sub">Błąd #1</span>
                <span class="rk-tab-title">Mit &#8222;0,15 litra na metr&#8221;</span>
            </button>
            <button class="rk-diag-tab" data-target="panel-2">
                <span class="rk-tab-sub">Błąd #2</span>
                <span class="rk-tab-title">Ignorowanie zasilania</span>
            </button>
            <button class="rk-diag-tab" data-target="panel-3">
                <span class="rk-tab-sub">Błąd #3</span>
                <span class="rk-tab-title">Chemia i Korozja</span>
            </button>
        </div>

        <!-- Treść Paneli -->
        <div class="rk-diag-content-wrapper">
            
            <!-- PANEL 1: Uśrednianie pojemności -->
            <div class="rk-diag-panel active" id="panel-1">
                <div class="rk-panel-header">
                    <h3>Mylenie profili i uśrednianie</h3>
                    <p class="rk-panel-text">
                        Najczęstszym błędem jest przyjmowanie uśrednionego przelicznika pojemności <strong>0,15 l/m</strong> dla każdej rury 16 mm. W rurach PEX/PERT rzeczywista pojemność to 0,113 l/m. Przy marketowych rurach 16&#215;2,2 pojemność spada do 0,106 l/m. Wyliczenie układu z błędem rzędu 25% całkowicie burzy równoważenie hydrauliczne wg normy PN-EN 1264.
                    </p>
                </div>
                
                <div class="rk-error-stats">
                    <div class="rk-stat-box alert">
                        <span class="rk-stat-label">Błędne założenie &#8222;na oko&#8221;</span>
                        <span class="rk-stat-val">0,150 L/m</span>
                    </div>
                    <div class="rk-stat-box correct">
                        <span class="rk-stat-label">Rzeczywistość (16&#215;2.0)</span>
                        <span class="rk-stat-val">0,113 L/m</span>
                    </div>
                </div>

                <div class="rk-svg-stage">
                    <svg viewBox="0 0 200 120" style="width: 100%; height: 100%;">
                        <!-- Rura Błędna -->
                        <text x="60" y="20" fill="#a1a1aa" font-size="10" text-anchor="middle">Obliczenia &#8222;na oko&#8221;</text>
                        <rect x="40" y="30" width="40" height="80" fill="none" stroke="#3f3f46" stroke-width="2"/>
                        <rect class="rk-anim-fill-bad" x="41" y="110" width="38" height="0" transform="scale(1,-1) translate(0,-220)"/>
                        
                        <!-- Rura Prawidłowa -->
                        <text x="140" y="20" fill="#a1a1aa" font-size="10" text-anchor="middle">Stan faktyczny</text>
                        <rect x="120" y="30" width="40" height="80" fill="none" stroke="#3f3f46" stroke-width="2"/>
                        <rect class="rk-anim-fill-good" x="121" y="110" width="38" height="0" transform="scale(1,-1) translate(0,-220)"/>
                        
                        <!-- Linia różnicy -->
                        <line x1="30" y1="50" x2="170" y2="50" stroke="#ef4444" stroke-width="1" stroke-dasharray="4 4"/>
                        <text x="100" y="45" fill="#ef4444" font-size="9" text-anchor="middle">Brakujące 25%</text>
                    </svg>
                </div>
            </div>

            <!-- PANEL 2: Zasilanie i Ciśnienie -->
            <div class="rk-diag-panel" id="panel-2">
                <div class="rk-panel-header">
                    <h3>Brak uwzględnienia rur zasilających</h3>
                    <p class="rk-panel-text">
                        Rozdzielacze bywają oddalone od maszynowni o kilkanaście metrów. Zasilanie rurą PEX 32&#215;3,0 mm (ID = 26 mm) to potężny zład: <strong>0,531 litra na każdy metr</strong>! Pominięcie tych grubych odcinków skutkuje niedowymiarowaniem <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/" class="rk-diag-link">naczynia wzbiorczego przeponowego</a>, co wywołuje groźne skoki ciśnienia w układzie zamkniętym.
                    </p>
                </div>

                <div class="rk-error-stats">
                    <div class="rk-stat-box alert">
                        <span class="rk-stat-label">Skutek błędu</span>
                        <span class="rk-stat-val">Wyrzuty z zaworu</span>
                    </div>
                    <div class="rk-stat-box correct">
                        <span class="rk-stat-label">Pojemność PEX 32&#215;3.0</span>
                        <span class="rk-stat-val">0,531 L/m</span>
                    </div>
                </div>

                <div class="rk-svg-stage">
                    <svg viewBox="0 0 200 120" style="width: 100%; height: 100%;">
                        <!-- Naczynie wzbiorcze -->
                        <path class="rk-anim-vessel" d="M30 40 Q50 30 70 40 L70 80 Q50 90 30 80 Z" fill="#b91c1c" stroke="#f87171" stroke-width="2"/>
                        <path d="M50 35 L50 20 L130 20" fill="none" stroke="#a1a1aa" stroke-width="3"/>
                        
                        <!-- Manometr -->
                        <circle cx="140" cy="70" r="30" fill="#18181b" stroke="#3f3f46" stroke-width="4"/>
                        <!-- Skala -->
                        <path d="M 120 70 A 20 20 0 0 1 160 70" fill="none" stroke="#10b981" stroke-width="4"/>
                        <path d="M 154 56 A 20 20 0 0 1 160 70" fill="none" stroke="#ef4444" stroke-width="4"/>
                        <!-- Wskazówka animowana -->
                        <line class="rk-anim-needle" x1="140" y1="70" x2="140" y2="45" stroke="#ffffff" stroke-width="2" stroke-linecap="round"/>
                        <circle cx="140" cy="70" r="3" fill="#a1a1aa"/>
                    </svg>
                </div>
            </div>

            <!-- PANEL 3: Chemia i Korozja -->
            <div class="rk-diag-panel" id="panel-3">
                <div class="rk-panel-header">
                    <h3>Nieprawidłowe dozowanie chemii</h3>
                    <p class="rk-panel-text">
                        Zabezpieczenie instalacji wymaga precyzji. Przeszacowanie zładu oznacza wlanie zbyt dużej ilości chemii. Natomiast uzupełnienie układu zwykłą kranówką zaburza pH (powinno wynosić 8,2 &#8211; 9,5 wg normy VDI 2035). Efekt? Błyskawiczna <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/" class="rk-diag-link">korozja wżerowa elementów mosiężnych</a> i zapychanie rotametrów.
                    </p>
                </div>

                <div class="rk-error-stats">
                    <div class="rk-stat-box alert">
                        <span class="rk-stat-label">Woda kranowa (Błąd)</span>
                        <span class="rk-stat-val">pH &lt; 7.0 (Korozja)</span>
                    </div>
                    <div class="rk-stat-box correct">
                        <span class="rk-stat-label">Zalecenie wg VDI 2035</span>
                        <span class="rk-stat-val"><a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/" style="color:inherit; text-decoration:none;">Woda demin. (pH 8.5)</a></span>
                    </div>
                </div>

                <div class="rk-svg-stage">
                    <svg viewBox="0 0 200 120" style="width: 100%; height: 100%;">
                        <!-- Kropla chemii -->
                        <path class="rk-anim-drop" d="M100 20 Q105 35 105 45 A 5 5 0 0 1 95 45 Q95 35 100 20 Z" fill="#10b981"/>
                        
                        <!-- Belka Mosiężna -->
                        <rect x="40" y="60" width="120" height="30" fill="#ca8a04" rx="4"/>
                        <rect x="40" y="60" width="120" height="5" fill="#facc15" opacity="0.5"/>
                        
                        <!-- Oznaki Korozji Wżerowej -->
                        <g class="rk-anim-rust">
                            <circle cx="60" cy="70" r="3"/>
                            <circle cx="65" cy="75" r="2"/>
                            <circle cx="100" cy="65" r="4"/>
                            <circle cx="110" cy="72" r="2"/>
                            <circle cx="140" cy="80" r="3"/>
                        </g>
                        
                        <text x="100" y="110" fill="#ef4444" font-size="10" font-weight="bold" text-anchor="middle">ROZWÓJ KOROZJI WŻEROWEJ</text>
                    </svg>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-diag-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#09090b; color:#ef4444; border:1px solid #ef4444; border-radius:24px; font-weight:800;">
                BŁĄD LICENCJI: Ten komponent audytowy jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Zakładek (Tabs)
    const tabs = document.querySelectorAll('.rk-diag-tab');
    const panels = document.querySelectorAll('.rk-diag-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            // Reset active states
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Set active state for clicked tab
            tab.classList.add('active');
            
            // Show corresponding panel
            const targetId = tab.getAttribute('data-target');
            const targetPanel = document.getElementById(targetId);
            if(targetPanel) {
                // Mały trick wymuszający reflow, by animacje CSS w panelu zadziałały od nowa
                void targetPanel.offsetWidth;
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq2-dark: #0f172a;
    --rk-faq2-brand: #0d9488; /* Ekspercki Teal (Morski) */
    --rk-faq2-brand-light: #ccfbf1;
    --rk-faq2-accent: #0284c7; /* Niebieski detal */
    --rk-faq2-bg: #ffffff;
    --rk-faq2-surface: #f8fafc;
    --rk-faq2-border: #cbd5e1;
    --rk-faq2-text: #334155;
    --rk-faq2-muted: #64748b;
}

.rk-faq2-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-faq2-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(13, 148, 136, 0.15);
    border: 1px solid rgba(13, 148, 136, 0.2);
    overflow: hidden;
}

/* Sekcja Nagłówka */
.rk-faq2-header {
    background: linear-gradient(135deg, var(--rk-faq2-dark) 0%, #134e4a 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.rk-faq2-badge {
    background: rgba(204, 251, 241, 0.15);
    color: #5eead4;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 15px;
    border: 1px solid rgba(94, 234, 212, 0.3);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-faq2-title {
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
    color: #ffffff;
}

.rk-faq2-title span { color: #5eead4; }

/* Akordeon i Kontent */
.rk-faq2-body {
    padding: 40px 50px;
    background: var(--rk-faq2-surface);
}

.rk-faq2-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-faq2-item {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-faq2-border);
    transition: all 0.3s ease;
}

.rk-faq2-item.active {
    border-color: var(--rk-faq2-brand);
    box-shadow: 0 10px 20px -5px rgba(13, 148, 136, 0.2);
}

.rk-faq2-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 22px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq2-dark);
    transition: all 0.3s ease;
    border-radius: 12px;
}

.rk-faq2-item.active .rk-faq2-question {
    background: var(--rk-faq2-brand-light);
    color: #0f766e;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.rk-faq2-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--rk-faq2-surface);
    color: var(--rk-faq2-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s, color 0.3s;
}

.rk-faq2-item.active .rk-faq2-icon {
    background: var(--rk-faq2-brand);
    color: #ffffff;
    transform: rotate(45deg);
}

/* Wnętrze Odpowiedzi */
.rk-faq2-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-item.active .rk-faq2-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq2-answer-inner {
    overflow: hidden;
}

.rk-faq2-content {
    padding: 30px 25px;
    border-top: 1px solid var(--rk-faq2-brand-light);
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 35px;
    align-items: center;
}

.rk-faq2-text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq2-text);
}

.rk-faq2-link {
    color: var(--rk-faq2-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dotted rgba(13, 148, 136, 0.5);
    transition: all 0.3s;
}

.rk-faq2-link:hover {
    color: #0f766e;
    border-bottom-style: solid;
}

/* Interaktywny Widget SVG */
.rk-faq2-widget {
    background: var(--rk-faq2-dark);
    border-radius: 12px;
    padding: 15px;
    height: 160px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    border: 2px solid #1e293b;
    box-shadow: inset 0 4px 15px rgba(0,0,0,0.4);
}

.rk-faq2-svg { width: 100%; height: 100%; }

/* --- Animacje i Style Widgetów --- */
/* Widget 1: Pojemność 2.0 vs 2.2 */
.rk-w1-switch {
    background: #1e293b; border-radius: 20px; display: flex; padding: 4px; margin-bottom: 10px; width: 90%;
}
.rk-w1-btn {
    flex: 1; border: none; background: transparent; color: #94a3b8; font-size: 10px; font-weight: 800; padding: 4px; border-radius: 16px; cursor: pointer; transition: 0.3s;
}
.rk-w1-btn.active { background: var(--rk-faq2-brand); color: #fff; }
.rk-w1-pipe-wall { transition: stroke-width 0.4s ease; }
.rk-w1-water { transition: r 0.4s ease; }
.rk-w1-drop { animation: w1Drop 1.5s infinite; }
@keyframes w1Drop { 0% { transform: translateY(-10px); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateY(15px); opacity: 0; } }

/* Widget 2: Glikol vs Woda */
.rk-w2-flow { stroke-dasharray: 8 16; animation: w2Flow 1s linear infinite; }
.rk-faq2-item.active .rk-w2-flow { stroke: var(--rk-faq2-brand); }
@keyframes w2Flow { to { stroke-dashoffset: -24; } }
.rk-faq2-item.active .rk-w2-gear { animation: w2Spin 3s linear infinite; transform-origin: center; }
@keyframes w2Spin { to { transform: rotate(360deg); } }

/* Widget 3: Naczynie Wzbiorcze */
.rk-w3-balloon { transform-origin: bottom center; transition: transform 2s ease-in-out; }
.rk-faq2-item.active .rk-w3-balloon { transform: scale(1.15); fill: #ef4444; }
.rk-w3-arrow { opacity: 0; transition: opacity 0.5s 1.5s; }
.rk-faq2-item.active .rk-w3-arrow { opacity: 1; animation: w3Float 1s infinite alternate; }
@keyframes w3Float { to { transform: translateY(-3px); } }

/* Widget 4: Demineralizowana */
.rk-w4-scale { opacity: 0; transition: opacity 2s ease; }
.rk-faq2-item.active .rk-w4-scale { opacity: 1; }
.rk-w4-clean { stroke-dasharray: 5 10; animation: w4CleanFlow 2s linear infinite; stroke: #38bdf8; }
@keyframes w4CleanFlow { to { stroke-dashoffset: -15; } }

/* Widget 5: Wodomierz */
.rk-w5-dial { transform-origin: center; transition: transform 2.5s cubic-bezier(0.2, 0.8, 0.2, 1); }
.rk-faq2-item.active .rk-w5-dial { transform: rotate(270deg); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-faq2-header, .rk-faq2-body { padding: 30px 20px; }
    .rk-faq2-title { font-size: 22px; }
    .rk-faq2-question { font-size: 14px; padding: 18px 20px; }
    .rk-faq2-content { grid-template-columns: 1fr; gap: 25px; padding: 20px; }
    .rk-faq2-widget { max-width: 250px; margin: 0 auto; width: 100%; height: 140px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-faq2",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o pojemność rur PEX 16",
    "description": "Szczegółowe odpowiedzi na pytania dotyczące obliczania zładu wody, wpływu glikolu, doboru naczynia wzbiorczego i weryfikacji pomiarów w instalacjach PEX/PERT.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#faq-zlad",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Ile dokładnie litrów wody mieści pętla rury PEX 16 o długości 100 metrów?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowa pętla rury PEX 16x2,0 mm o długości 100 metrów mieści w sobie dokładnie 11,3 litra wody. W przypadku rury o ściance 2,2 mm objętość ta wynosi 10,6 litra, co należy bezwzględnie uwzględnić podczas równoważenia hydraulicznego rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rodzaj medium grzewczego, np. glikol, zmienia objętość zładu w rurze PEX 16?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Fizyczna objętość geometryczna rury pozostaje niezmienna i wynosi 0,113 l/m, jednak zastosowanie roztworu glikolu zmienia gęstość i lepkość kinematyczną medium. Wpływa to na konieczność zwiększenia mocy pompy obiegowej o około 15-20% ze względu na wyższe opory przepływu."
        }
      },
      {
        "@type": "Question",
        "name": "Jak pojemność wodna rury 16 mm wpływa na dobór naczynia wzbiorczego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pojemność jednostkowa 0,113 l/m pozwala wyliczyć całkowitą masę wody, która pod wpływem temperatury zwiększa swoją objętość właściwą. Precyzyjne zsumowanie zładu zapobiega skokom ciśnienia w układzie i chroni zawór bezpieczeństwa o ciśnieniu otwarcia 3 bar przed ciągłym zrzucaniem wody."
        }
      },
      {
        "@type": "Question",
        "name": "Czy do napełnienia instalacji z rurami PEX 16 lepsza jest woda z kranu czy demineralizowana?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zdecydowanie najlepszym wyborem jest woda demineralizowana, która chroni wewnętrzne ścianki rur PEX i PERT przed odkładaniem się kamienia kotłowego. Zastosowanie zwykłej wody kranowej o wysokiej twardości ogólnej drastycznie obniża sprawność wymiany ciepła i może prowadzić do zapychania rotametrów."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy instalator nie popełnił błędu przy obliczaniu pojemności instalacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najprostszą metodą weryfikacji jest kontrola ilości wody wtłoczonej do układu za pomocą wodomierza podłączonego do zaworu napełniającego podczas próby szczelności. Rzeczywiste wskazanie licznika powinno pokrywać się z obliczeniami projektowymi, dopuszczając maksymalny błąd pomiarowy na poziomie 5%."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-faq2",
    "name": "Parametry Fizykochemiczne Zładu w Instalacjach Płaszczyznowych",
    "description": "Baza danych obejmująca wpływ grubości ścianki, rodzaju medium oraz jakości wody na wydajność hydrauliczną rur PEX/PERT 16.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "pojemność pętli 100m",
      "glikol a opory przepływu",
      "dobór naczynia wzbiorczego",
      "woda demineralizowana w CO",
      "weryfikacja pojemności instalacji"
    ],
    "measurementTechnique": "Przeliczenia geometryczne pojemności wewnętrznej rurociągów oraz analiza kinematyczna oporów dla roztworów glikolowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "100m rury 16x2.0 mm = 11,3 litra objętości.",
        "100m rury 16x2.2 mm = 10,6 litra objętości.",
        "Dodatek glikolu = +15-20% zapotrzebowania na moc pompy obiegowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-faq2",
    "name": "Interaktywny Asystent Hydrauliczny FAQ",
    "description": "Interfejs edukacyjny pozwalający na wizualizację kluczowych zagadnień fizyki budowli w zakresie zładu wodnego, gęstości czynnika oraz wzrostu ciśnienia.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-faq2-container" id="rk-faq2-app">
    <div class="rk-faq2-header">
        <div class="rk-faq2-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Baza Inżynierska
        </div>
        <h2 class="rk-faq2-title">FAQ – Najczęściej zadawane pytania o <span>pojemność rur PEX 16</span></h2>
    </div>

    <div class="rk-faq2-body">
        <div class="rk-faq2-list">
            
            <!-- Pytanie 1 -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>1. Ile dokładnie litrów wody mieści pętla rury PEX 16 o długości 100 metrów?</span>
                    <div class="rk-faq2-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Standardowa pętla rury PEX 16&#215;2,0 mm o długości 100 metrów mieści w sobie dokładnie <strong>11,3 litra wody</strong>. W przypadku marketowej rury o ściance 2,2 mm objętość ta wynosi <strong>10,6 litra</strong>. Tę różnicę należy bezwzględnie uwzględnić podczas równoważenia hydraulicznego <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-faq2-link">rozdzielacza</a>.
                            </div>
                            <div class="rk-faq2-widget">
                                <div class="rk-w1-switch">
                                    <button class="rk-w1-btn active" id="btnW1-20">16&#215;2.0 (11.3L)</button>
                                    <button class="rk-w1-btn" id="btnW1-22">16&#215;2.2 (10.6L)</button>
                                </div>
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <!-- Rura zewn -->
                                    <circle cx="50" cy="45" r="30" fill="none" stroke="#64748b" stroke-width="2"/>
                                    <!-- Scianka rury (zmienna szerokosc) -->
                                    <circle cx="50" cy="45" r="26" fill="none" stroke="#f8fafc" stroke-width="4" id="w1Wall"/>
                                    <!-- Woda w srodku -->
                                    <circle cx="50" cy="45" r="24" fill="#0ea5e9" id="w1Water"/>
                                    <path class="rk-w1-drop" d="M47 38 Q50 34 53 38 A4 4 0 0 1 47 38 Z" fill="#ffffff" opacity="0.8"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 2 -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>2. Czy rodzaj medium grzewczego, np. glikol, zmienia objętość zładu w rurze?</span>
                    <div class="rk-faq2-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Fizyczna objętość geometryczna rury pozostaje niezmienna i wynosi <strong>0,113 l/m</strong>. Jednak zastosowanie <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/" class="rk-faq2-link">roztworu glikolu</a> zmienia gęstość i lepkość kinematyczną medium. Wpływa to na konieczność zwiększenia mocy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-faq2-link">pompy obiegowej</a> o około 15-20% ze względu na znacząco wyższe opory przepływu.
                            </div>
                            <div class="rk-faq2-widget">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 100">
                                    <path d="M 10 50 L 90 50" fill="none" stroke="#334155" stroke-width="20" stroke-linecap="round"/>
                                    <path class="rk-w2-flow" d="M 15 50 L 85 50" fill="none" stroke="#475569" stroke-width="6" stroke-linecap="round"/>
                                    <g transform="translate(50,50)" class="rk-w2-gear">
                                        <circle cx="0" cy="0" r="10" fill="#cbd5e1"/>
                                        <path d="M-2-14h4v4h-4zM-2 10h4v4h-4zM10-2h4v4h-4zM-14-2h4v4h-4z" fill="#cbd5e1"/>
                                        <circle cx="0" cy="0" r="4" fill="#0f172a"/>
                                    </g>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 3 -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>3. Jak pojemność wodna rury 16 mm wpływa na dobór naczynia wzbiorczego?</span>
                    <div class="rk-faq2-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Pojemność jednostkowa 0,113 l/m pozwala wyliczyć całkowitą masę wody w układzie. Woda pod wpływem temperatury <strong>zwiększa swoją objętość właściwą</strong>. Precyzyjne zsumowanie zładu pozwala na właściwy dobór <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/" class="rk-faq2-link">naczynia wzbiorczego</a>, co zapobiega skokom ciśnienia i chroni zawór bezpieczeństwa (3 bar) przed ciągłym wyrzutem wody.
                            </div>
                            <div class="rk-faq2-widget">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 100">
                                    <path d="M40 80 h20 v10 h-20 z" fill="#64748b"/>
                                    <circle class="rk-w3-balloon" cx="50" cy="50" r="25" fill="#0ea5e9"/>
                                    <g class="rk-w3-arrow" stroke="#ffffff" stroke-width="3" stroke-linecap="round" fill="none">
                                        <path d="M45 40 L50 30 L55 40 M50 30 V50"/>
                                    </g>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 4 -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>4. Do napełnienia instalacji z rur PEX lepsza woda z kranu czy demineralizowana?</span>
                    <div class="rk-faq2-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Zdecydowanie najlepszym wyborem jest <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" class="rk-faq2-link">woda demineralizowana</a> (często z inhibitorem korozji). Chroni ona wewnętrzne ścianki rur przed odkładaniem się kamienia kotłowego. Zastosowanie zwykłej wody kranowej o wysokiej twardości drastycznie <strong>obniża sprawność wymiany ciepła</strong> i w konsekwencji prowadzi do zapychania się rotametrów na belce rozdzielacza.
                            </div>
                            <div class="rk-faq2-widget">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 100">
                                    <!-- Rura -->
                                    <rect x="10" y="30" width="80" height="40" fill="none" stroke="#64748b" stroke-width="4" rx="4"/>
                                    <!-- Czysta woda -->
                                    <path class="rk-w4-clean" d="M 15 50 L 85 50" fill="none" stroke-width="8" stroke-linecap="round"/>
                                    <!-- Osad z kranu -->
                                    <g class="rk-w4-scale" fill="#fcd34d">
                                        <circle cx="25" cy="65" r="4"/><circle cx="45" cy="67" r="3"/>
                                        <circle cx="65" cy="66" r="4"/><circle cx="80" cy="64" r="2"/>
                                        <circle cx="35" cy="35" r="3"/><circle cx="75" cy="34" r="2"/>
                                    </g>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 5 -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>5. Jak sprawdzić błędy instalatora przy obliczaniu pojemności?</span>
                    <div class="rk-faq2-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Najprostszą i najbardziej wiarygodną metodą weryfikacji jest <strong>kontrola ilości wody wtłoczonej do układu</strong> za pomocą precyzyjnego wodomierza podłączonego do zaworu napełniającego podczas <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-faq2-link">próby szczelności</a>. Rzeczywiste wskazanie licznika na koniec musi pokrywać się z wyliczeniami projektowymi (dopuszcza się maksymalny błąd pomiarowy i rozbieżność na poziomie 5%).
                            </div>
                            <div class="rk-faq2-widget">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 100">
                                    <circle cx="50" cy="50" r="35" fill="none" stroke="#64748b" stroke-width="6"/>
                                    <circle cx="50" cy="50" r="28" fill="#1e293b"/>
                                    <!-- Skala -->
                                    <path d="M50 22v4M78 50h-4M50 78v-4M22 50h4" stroke="#94a3b8" stroke-width="2"/>
                                    <!-- Wskazówka -->
                                    <line class="rk-w5-dial" x1="50" y1="50" x2="50" y2="28" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
                                    <circle cx="50" cy="50" r="4" fill="#cbd5e1"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-faq2-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:2px solid #ef4444; border-radius:20px; font-weight:800;">
                BŁĄD LICENCJI: Ten komponent jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Akordeonu
    const faqItems = document.querySelectorAll('.rk-faq2-item');
    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq2-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamykamy wszystkie
            faqItems.forEach(i => i.classList.remove('active'));
            
            // Otwieramy kliknięty, o ile nie był już otwarty
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Otwórz pierwszy element na start
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }

    // 3. Logika wewnętrzna widgetu 1 (Toggle 2.0 vs 2.2 mm)
    const btn20 = document.getElementById('btnW1-20');
    const btn22 = document.getElementById('btnW1-22');
    const wall = document.getElementById('w1Wall');
    const water = document.getElementById('w1Water');

    if(btn20 && btn22 && wall && water) {
        btn20.addEventListener('click', function() {
            btn22.classList.remove('active');
            this.classList.add('active');
            wall.style.strokeWidth = '4'; // cienka ścianka (2.0)
            water.style.r = '24';         // więcej wody
        });

        btn22.addEventListener('click', function() {
            btn20.classList.remove('active');
            this.classList.add('active');
            wall.style.strokeWidth = '8'; // gruba ścianka marketowa (2.2)
            water.style.r = '22';         // mniej wody
        });
    }
});
</script>



<style>
:root {
    --rk-cs2-dark: #0a0a0a;
    --rk-cs2-panel: #171717;
    --rk-cs2-brand: #2563eb;
    --rk-cs2-brand-glow: rgba(37, 99, 235, 0.4);
    --rk-cs2-danger: #dc2626;
    --rk-cs2-success: #16a34a;
    --rk-cs2-text: #f4f4f5;
    --rk-cs2-muted: #a1a1aa;
    --rk-cs2-border: #27272a;
}

.rk-cs2-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-cs2-dark);
    border-radius: 20px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8);
    border: 1px solid var(--rk-cs2-border);
    overflow: hidden;
    color: var(--rk-cs2-text);
}

/* Sekcja Nagłówkowa */
.rk-cs2-header {
    padding: 40px 50px 30px;
    position: relative;
    background: radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.15) 0%, var(--rk-cs2-dark) 50%);
    border-bottom: 1px solid var(--rk-cs2-border);
}

.rk-cs2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.2);
    color: #60a5fa;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

.rk-cs2-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-cs2-meta-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-cs2-meta-box {
    background: var(--rk-cs2-panel);
    border: 1px solid var(--rk-cs2-border);
    padding: 12px 15px;
    border-radius: 10px;
}

.rk-meta-label { font-size: 11px; color: var(--rk-cs2-muted); text-transform: uppercase; font-weight: 700; display: block; margin-bottom: 4px; }
.rk-meta-val { font-size: 14px; font-weight: 800; color: #ffffff; display: block; }

/* Sekcja Tekstowa */
.rk-cs2-content {
    padding: 30px 50px;
    font-size: 15px;
    line-height: 1.7;
    color: #d4d4d8;
    background: var(--rk-cs2-panel);
}

.rk-cs2-content strong { color: #ffffff; }

.rk-cs2-link {
    color: #60a5fa;
    text-decoration: none;
    border-bottom: 1px dashed #60a5fa;
    font-weight: 700;
    transition: 0.3s;
}
.rk-cs2-link:hover { color: #93c5fd; border-bottom-style: solid; }

/* Interaktywny Dashboard Before/After */
.rk-cs2-dashboard {
    padding: 40px 50px;
    background: var(--rk-cs2-dark);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Przełącznik Stanu */
.rk-cs2-toggle-wrapper {
    display: flex;
    background: var(--rk-cs2-panel);
    border-radius: 12px;
    padding: 6px;
    border: 1px solid var(--rk-cs2-border);
    position: relative;
}

.rk-cs2-toggle-btn {
    flex: 1;
    padding: 15px;
    border: none;
    background: transparent;
    color: var(--rk-cs2-muted);
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-cs2-toggle-btn.active[data-state="before"] {
    background: rgba(220, 38, 38, 0.1);
    color: #fca5a5;
    box-shadow: inset 0 0 0 1px var(--rk-cs2-danger);
}

.rk-cs2-toggle-btn.active[data-state="after"] {
    background: rgba(22, 163, 74, 0.1);
    color: #86efac;
    box-shadow: inset 0 0 0 1px var(--rk-cs2-success);
}

/* Ekran Danych i SVG */
.rk-cs2-screen {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-cs2-metrics {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-card {
    background: var(--rk-cs2-panel);
    border: 1px solid var(--rk-cs2-border);
    padding: 15px 20px;
    border-radius: 12px;
    transition: all 0.4s ease;
}

.rk-metric-card .label { font-size: 11px; color: var(--rk-cs2-muted); text-transform: uppercase; font-weight: 800; margin-bottom: 5px; display: block; }
.rk-metric-card .val { font-size: 20px; font-weight: 900; font-family: monospace; transition: color 0.4s; }

/* SVG Stage */
.rk-cs2-svg-stage {
    background: #000000;
    border: 1px solid var(--rk-cs2-border);
    border-radius: 16px;
    height: 220px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rk-cs2-svg-stage::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at center, transparent 20%, rgba(0,0,0,0.8) 100%);
    pointer-events: none;
}

/* SVG Elements & Animations */
.anim-hp-status { transition: stroke 0.4s, fill 0.4s; }
.anim-fan { transform-origin: 30px 110px; transition: transform 0.2s; }
.anim-separator { transition: opacity 0.5s, transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-water-flow { stroke-dasharray: 6 12; transition: stroke 0.4s; }

/* State: BEFORE */
.state-before .anim-hp-status { stroke: var(--rk-cs2-danger); }
.state-before .anim-hp-fill { fill: rgba(220, 38, 38, 0.1); }
.state-before .anim-separator { opacity: 0; transform: translateY(-20px); }
.state-before .anim-water-flow { stroke: var(--rk-cs2-danger); animation: flowBad 0.5s linear infinite; }
.state-before .anim-fan { animation: fanBad 1s ease-in-out infinite; }

.state-before #card1 { border-color: var(--rk-cs2-danger); box-shadow: inset 4px 0 0 var(--rk-cs2-danger); }
.state-before #card1 .val { color: #fca5a5; }

/* State: AFTER */
.state-after .anim-hp-status { stroke: var(--rk-cs2-success); }
.state-after .anim-hp-fill { fill: rgba(22, 163, 74, 0.1); }
.state-after .anim-separator { opacity: 1; transform: translateY(0); }
.state-after .anim-water-flow { stroke: var(--rk-cs2-success); animation: flowGood 1.5s linear infinite; }
.state-after .anim-fan { animation: fanGood 2s linear infinite; }

.state-after #card1 { border-color: var(--rk-cs2-success); box-shadow: inset 4px 0 0 var(--rk-cs2-success); }
.state-after #card1 .val { color: #86efac; }
.state-after #card2 { border-color: var(--rk-cs2-brand); box-shadow: inset 4px 0 0 var(--rk-cs2-brand); }
.state-after #card2 .val { color: #93c5fd; }

@keyframes flowBad { to { stroke-dashoffset: -18; } }
@keyframes flowGood { to { stroke-dashoffset: -18; } }
@keyframes fanBad { 0% { transform: rotate(0deg); } 20% { transform: rotate(180deg); } 100% { transform: rotate(180deg); } }
@keyframes fanGood { to { transform: rotate(360deg); } }

@media (max-width: 768px) {
    .rk-cs2-header { padding: 30px 20px; }
    .rk-cs2-meta-grid { grid-template-columns: 1fr 1fr; }
    .rk-cs2-content { padding: 25px 20px; }
    .rk-cs2-dashboard { padding: 30px 20px; }
    .rk-cs2-screen { grid-template-columns: 1fr; }
    .rk-cs2-toggle-btn { font-size: 12px; padding: 12px 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-real-case",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Case Study: Optymalizacja zładu wody w domu 165 m² z pompą ciepła 7 kW",
    "description": "Realny przypadek z Podkarpacia (kwiecień 2026), gdzie weryfikacja projektu uchroniła inwestora przed awarią. Zastosowanie rur PEX 16x2.2 mm wywołało deficyt zładu, skorygowany sprzęgłem 35L.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-real-case",
    "name": "Bilans zładu wody przed i po korekcie projektowej (Sanok 2026)",
    "description": "Zestawienie parametrów wyjściowych błędnego montażu (rury 16x2.2 mm) i działań korygujących (montaż sprzęgła hydraulicznego 35L) dla pompy 7 kW.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sprzęgło hydrauliczne w instalacji ogrzewania podłogowego",
      "taktowanie pompy ciepła",
      "zład wody PEX 16x2.2",
      "współczynnik COP",
      "projekt ogrzewania podkarpackie"
    ],
    "measurementTechnique": "Weryfikacja hydrauliczna pojemności rurociągu (1450m x 0.106 l/m = 153.7L) w stosunku do wymagań min. zładu dla źródła 7 kW.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Zład z podłogi 153.7L (zamiast zakładanych 163.8L). Skutek: Taktowanie.",
        "Działanie korygujące: Dodanie sprzęgła hydraulicznego o pojemności 35L (Koszt: 1150 PLN).",
        "Wynik: COP ustabilizowane na poziomie 4.35 przy temp. zewn. -20°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-real-case",
    "name": "Symulator Interwencji Projektowej",
    "description": "Wizualizacja wpływu sprzęgła hydraulicznego 35L na stabilizację pracy pompy ciepła przy wykrytym deficycie zładu w rurach 16x2.2 mm.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS Variables, and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs2-container" id="rk-cs2-app">
    
    <!-- Metryczka -->
    <div class="rk-cs2-header">
        <div class="rk-cs2-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Case Study (Realny Projekt)
        </div>
        <h2 class="rk-cs2-title">Weryfikacja błędu instalatora przed zalaniem jastrychu</h2>
        
        <div class="rk-cs2-meta-grid">
            <div class="rk-cs2-meta-box">
                <span class="rk-meta-label">Data audytu</span>
                <span class="rk-meta-val">14 Kwietnia 2026</span>
            </div>
            <div class="rk-cs2-meta-box">
                <span class="rk-meta-label">Inwestor / Lok.</span>
                <span class="rk-meta-val">P. Tomasz / Sanok</span>
            </div>
            <div class="rk-cs2-meta-box">
                <span class="rk-meta-label">Powierzchnia</span>
                <span class="rk-meta-val">165 m²</span>
            </div>
            <div class="rk-cs2-meta-box">
                <span class="rk-meta-label">Źródło ciepła</span>
                <span class="rk-meta-val"><a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color:inherit;text-decoration:none;">Pompa 7 kW</a></span>
            </div>
        </div>
    </div>

    <!-- Treść merytoryczna -->
    <div class="rk-cs2-content">
        W projekcie energooszczędnego domu parterowego w okolicach Sanoka (woj. podkarpackie), precyzyjne wyliczenie pojemności rur <strong>zapobiegło kosztownej awarii</strong>. Instalator planował montaż układu bezpośredniego bez bufora, zakładając zład na podstawie uproszczonych tabel. <br><br>
        Przeprowadzona przeze mnie weryfikacja wykazała, że użycie <strong>1450 m</strong> marketowych rur o ściance 2,2 mm (zamiast standardowych 2,0 mm) obniżyło fizyczny zład w podłodze ze 163,8 do <strong>153,7 litra</strong>. Przy wymogach pompy ciepła, generowało to niebezpieczny deficyt medium obiegowego. Zobacz, jak interwencja inżynierska uratowała sprzęt:
    </div>

    <!-- Dashboard Interaktywny -->
    <div class="rk-cs2-dashboard state-before" id="cs2-workspace">
        
        <div class="rk-cs2-toggle-wrapper">
            <button class="rk-cs2-toggle-btn active" data-state="before" id="btn-cs2-before">
                Stan Pierwotny (Błąd Instalatora)
            </button>
            <button class="rk-cs2-toggle-btn" data-state="after" id="btn-cs2-after">
                Korekta Projektowa (Sukces)
            </button>
        </div>

        <div class="rk-cs2-screen">
            <!-- Statystyki -->
            <div class="rk-cs2-metrics">
                <div class="rk-metric-card" id="card1">
                    <span class="label">Status Pompy 7 kW</span>
                    <span class="val" id="val-status">Taktowanie (Błąd)</span>
                </div>
                <div class="rk-metric-card" id="card2">
                    <span class="label">Pojemność zładu całkowita</span>
                    <span class="val" id="val-zlad">153.7 L <span style="font-size:12px;color:var(--rk-cs2-muted);">/ min. 160 L</span></span>
                </div>
                <div class="rk-metric-card" id="card3">
                    <span class="label">Współczynnik COP (@ -20°C)</span>
                    <span class="val" id="val-cop" style="color:#ffffff;">~ 3.10</span>
                </div>
            </div>

            <!-- SVG Stage -->
            <div class="rk-cs2-svg-stage">
                <svg viewBox="0 0 300 160" style="width:100%; height:100%;">
                    <!-- Linie rur (tło) -->
                    <path d="M 60 120 L 250 120 M 60 135 L 250 135" fill="none" stroke="#27272a" stroke-width="6" stroke-linecap="round"/>
                    
                    <!-- Pompa Ciepła (Lewa strona) -->
                    <rect class="anim-hp-status anim-hp-fill" x="10" y="40" width="60" height="100" stroke-width="3" rx="4"/>
                    <circle cx="40" cy="55" r="10" fill="#27272a"/>
                    <!-- Wiatrak PC -->
                    <g class="anim-fan">
                        <line x1="40" y1="55" x2="40" y2="47" stroke="#a1a1aa" stroke-width="2"/>
                        <line x1="40" y1="55" x2="40" y2="63" stroke="#a1a1aa" stroke-width="2"/>
                        <line x1="40" y1="55" x2="32" y2="55" stroke="#a1a1aa" stroke-width="2"/>
                        <line x1="40" y1="55" x2="48" y2="55" stroke="#a1a1aa" stroke-width="2"/>
                    </g>

                    <!-- Pętle podłogówki (Prawa strona) -->
                    <path class="anim-water-flow" d="M 60 120 L 150 120 Q 250 120 250 80 Q 250 40 150 40 Q 130 40 130 60 Q 130 80 230 80 Q 250 80 250 135 L 60 135" fill="none" stroke-width="3" stroke-linecap="round"/>

                    <!-- Zarys miejsca na sprzęgło (Kropkowany) -->
                    <rect x="90" y="50" width="30" height="60" fill="none" stroke="#3f3f46" stroke-width="2" stroke-dasharray="4 4" rx="2"/>
                    
                    <!-- Sprzęgło Hydrauliczne 35L (Pojawia się po kliknięciu) -->
                    <g class="anim-separator">
                        <rect x="90" y="50" width="30" height="60" fill="#1e3a8a" stroke="#60a5fa" stroke-width="2" rx="4"/>
                        <text x="105" y="83" fill="#ffffff" font-size="10" font-weight="bold" text-anchor="middle">+35L</text>
                        <!-- Rurki podłączeniowe do sprzęgła -->
                        <line x1="100" y1="110" x2="100" y2="120" stroke="#60a5fa" stroke-width="4"/>
                        <line x1="110" y1="110" x2="110" y2="135" stroke="#60a5fa" stroke-width="4"/>
                    </g>
                </svg>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-cs2-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0a0a0a; color:#dc2626; border:1px solid #dc2626; border-radius:20px; font-weight:800;">
                BŁĄD LICENCJI: Studium Przypadku chronione prawami autorskimi projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Toggle (Before/After)
    const workspace = document.getElementById('cs2-workspace');
    const btnBefore = document.getElementById('btn-cs2-before');
    const btnAfter = document.getElementById('btn-cs2-after');
    
    const valStatus = document.getElementById('val-status');
    const valZlad = document.getElementById('val-zlad');
    const valCop = document.getElementById('val-cop');

    if(btnBefore && btnAfter) {
        btnBefore.addEventListener('click', () => {
            btnAfter.classList.remove('active');
            btnBefore.classList.add('active');
            
            // Zmiana klas stanu głównego kontenera
            workspace.classList.remove('state-after');
            workspace.classList.add('state-before');
            
            // Zmiana tekstów
            valStatus.textContent = 'Taktowanie (Deficyt)';
            valZlad.innerHTML = '153.7 L <span style="font-size:12px;color:var(--rk-cs2-muted);">/ min. 160 L</span>';
            valCop.textContent = '~ 3.10';
        });

        btnAfter.addEventListener('click', () => {
            btnBefore.classList.remove('active');
            btnAfter.classList.add('active');
            
            // Zmiana klas stanu głównego kontenera
            workspace.classList.remove('state-before');
            workspace.classList.add('state-after');
            
            // Zmiana tekstów
            valStatus.innerHTML = 'Stabilna Praca <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/" style="color:inherit;text-decoration:none;">(Sprzęgło)</a>';
            valZlad.innerHTML = '188.7 L <span style="font-size:12px;color:var(--rk-cs2-muted);">/ Bezpieczne</span>';
            valCop.textContent = '4.35';
        });
    }
});
</script>



<style>
:root {
    --rk-vol-dark: #0f172a;
    --rk-vol-primary: #0284c7;
    --rk-vol-primary-hover: #0369a1;
    --rk-vol-accent: #38bdf8;
    --rk-vol-success: #059669;
    --rk-vol-warning: #ea580c;
    --rk-vol-danger: #dc2626;
    --rk-vol-bg: #ffffff;
    --rk-vol-surface: #f8fafc;
    --rk-vol-border: #e2e8f0;
    --rk-vol-text: #334155;
}

.rk-vol-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-vol-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-vol-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-vol-header {
    padding: 40px 50px;
    background: linear-gradient(145deg, var(--rk-vol-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-vol-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 80% 20%, rgba(56, 189, 248, 0.15) 0%, transparent 50%);
    pointer-events: none;
}

.rk-vol-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-vol-quote {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    color: #cbd5e1;
    max-width: 750px;
    margin: 0 auto;
    font-style: italic;
    border-left: 4px solid var(--rk-vol-accent);
    padding-left: 20px;
    text-align: left;
}

/* Zawartość tekstowa */
.rk-vol-content {
    padding: 40px 50px 20px;
    color: var(--rk-vol-text);
    line-height: 1.7;
    font-size: 16px;
}

.rk-vol-content p {
    margin-bottom: 20px;
}

.rk-vol-content strong {
    color: var(--rk-vol-dark);
    font-weight: 800;
}

/* Interaktywny Symulator Zładu */
.rk-vol-sim-box {
    background: var(--rk-vol-surface);
    border-radius: 20px;
    padding: 30px;
    margin: 0 50px 40px;
    border: 1px solid var(--rk-vol-border);
}

.rk-vol-sim-box h3 {
    margin: 0 0 25px 0;
    font-size: 22px;
    color: var(--rk-vol-dark);
    text-align: center;
}

.rk-vol-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

/* Toggle Typu Rury */
.rk-vol-toggle-group {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    position: relative;
}

.rk-vol-toggle-btn {
    flex: 1;
    padding: 12px;
    border: none;
    background: transparent;
    color: #64748b;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s ease;
    z-index: 1;
}

.rk-vol-toggle-btn.active {
    color: var(--rk-vol-primary);
    background: #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

/* Suwak Długości */
.rk-vol-slider-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-vol-slider-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-weight: 700;
    color: var(--rk-vol-dark);
    font-size: 14px;
}

.rk-vol-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
    transition: background 0.3s;
}

.rk-vol-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-vol-primary);
    cursor: pointer;
    box-shadow: 0 0 10px rgba(2, 132, 199, 0.4);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

.rk-vol-range::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Dashboard Wyników z Animacją */
.rk-vol-dashboard {
    display: flex;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--rk-vol-border);
    border-radius: 16px;
    padding: 25px;
    gap: 30px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}

.rk-vol-svg-container {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
}

.rk-anim-pump-rotor {
    transform-origin: center;
    transition: animation-duration 0.5s ease;
}

@keyframes spinRotor {
    100% { transform: rotate(360deg); }
}

.rk-vol-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    width: 100%;
}

.rk-vol-data-card {
    background: var(--rk-vol-surface);
    padding: 15px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-vol-primary);
}

.rk-vol-data-label {
    font-size: 12px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
    margin-bottom: 5px;
}

.rk-vol-data-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-vol-dark);
}

.rk-vol-data-value span { font-size: 14px; color: #94a3b8; }

.status-optimal { border-left-color: var(--rk-vol-success); }
.status-optimal .rk-vol-data-value { color: var(--rk-vol-success); }

.status-warning { border-left-color: var(--rk-vol-warning); }
.status-warning .rk-vol-data-value { color: var(--rk-vol-warning); }

/* CTA */
.rk-vol-cta {
    padding: 40px 50px;
    background: var(--rk-vol-surface);
    text-align: center;
    border-top: 1px solid var(--rk-vol-border);
}

.rk-vol-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-vol-primary);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 36px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-vol-cta-btn:hover {
    transform: translateY(-4px);
    background: var(--rk-vol-primary-hover);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
}

.rk-vol-cta-btn svg {
    transition: transform 0.3s;
}

.rk-vol-cta-btn:hover svg {
    transform: translateX(5px);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-vol-header { padding: 30px 20px; }
    .rk-vol-content { padding: 30px 20px 10px; }
    .rk-vol-sim-box { margin: 0 20px 30px; padding: 20px; }
    .rk-vol-cta { padding: 30px 20px; }
    
    .rk-vol-controls { grid-template-columns: 1fr; gap: 20px; }
    .rk-vol-dashboard { flex-direction: column; text-align: center; }
    .rk-vol-data-grid { grid-template-columns: 1fr; }
    .rk-vol-data-card { border-left: none; border-bottom: 4px solid var(--rk-vol-primary); }
    .rk-vol-cta-btn { width: 100%; justify-content: center; font-size: 16px; padding: 16px; }
}
</style>

<!-- JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article-zlad",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Podsumowanie fizyki zładu wodnego w ogrzewaniu podłogowym",
    "description": "Zrozumienie i dokładne wyliczenie objętości zładu w rurach PEX/PERT 16 to wymóg czystej inżynierii. Oszczędność na etapie projektu generuje problemy wykonawcze.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-zlad",
    "name": "Wpływ grubości ścianki rury polietylenowej na zład wodny i pracę pompy",
    "description": "Zestawienie parametrów hydraulicznych rur PEX 16x2.0 (0,113 l/m) oraz 16x2.2 (0,106 l/m) w kontekście oporów instalacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zład wody w podłogówce",
      "pojemność rury PEX 16",
      "opory hydrauliczne ogrzewania",
      "taktowanie pompy ciepła",
      "optymalizacja instalacji grzewczej"
    ],
    "measurementTechnique": "Obliczenia geometryczne objętości walca w funkcji grubości ścianki rury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura PEX 16x2.0: Pojemność 0,113 litra na metr bieżący.",
        "Rura PEX 16x2.2: Pojemność 0,106 litra na metr bieżący (wzrost oporów hydraulicznych)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp-zlad",
    "name": "Symulator Zładu i Obciążenia Pompy Obiegowej",
    "description": "Interaktywny kalkulator pozwalający na przeliczenie pojemności wodnej instalacji z uwzględnieniem różnic w grubości ścianki rury (2.0 mm vs 2.2 mm).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-vol-container" id="zlad-sum-app">
    
    <div class="rk-vol-header">
        <h2>Podsumowanie fizyki zładu wodnego w ogrzewaniu podłogowym</h2>
        <div class="rk-vol-quote">
            &#8222;Zrozumienie i dokładne wyliczenie objętości zładu w rurach PEX/PERT 16 to nie teoretyczny kaprys, a wymóg czystej inżynierii. Oszczędność na etapie projektu to prosta droga do problemów, których po zalaniu betonu nie da się naprawić.&#8221;
        </div>
    </div>

    <div class="rk-vol-content">
        <p>Każdy metr rury to dokładnie <strong>0,113 litra</strong> (lub <strong>0,106 litra</strong> dla rur marketowych o ściance 2,2 mm) płynu, który musi zostać precyzyjnie wprawiony w ruch przez pompę obiegową i zbalansowany na rotametrach. Ignorowanie tych, wydawałoby się małych, wartości prowadzi do destabilizacji termicznej, generuje niepotrzebne koszty eksploatacyjne i bezpośrednio skraca żywotność nowoczesnych pomp ciepła z powodu taktowania sprężarki.</p>
    </div>

    <!-- Symulator -->
    <div class="rk-vol-sim-box">
        <h3>Interaktywny Symulator Zładu Instalacji</h3>
        
        <div class="rk-vol-controls">
            <div class="rk-vol-toggle-group" id="pipeTypeToggle">
                <button class="rk-vol-toggle-btn active" data-cap="0.113" data-wall="2.0">Standard PEX 16&#215;2.0</button>
                <button class="rk-vol-toggle-btn" data-cap="0.106" data-wall="2.2">Zastępcza 16&#215;2.2</button>
            </div>
            
            <div class="rk-vol-slider-wrap">
                <div class="rk-vol-slider-header">
                    <span>Łączna długość rur w domu:</span>
                    <span id="valLenOut">1000 m</span>
                </div>
                <input type="range" class="rk-vol-range" id="pipeLenSlider" min="100" max="2500" step="50" value="1000">
            </div>
        </div>

        <div class="rk-vol-dashboard">
            <div class="rk-vol-svg-container">
                <!-- Animowana pompa -->
                <svg viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <circle cx="50" cy="50" r="45" stroke="#e2e8f0" stroke-width="8"/>
                    <circle cx="50" cy="50" r="35" fill="#f8fafc" stroke="var(--rk-vol-primary)" stroke-width="4"/>
                    <g class="rk-anim-pump-rotor" id="svgPumpRotor" style="animation: spinRotor 3s linear infinite;">
                        <path d="M50 15 V40 M85 50 H60 M50 85 V60 M15 50 H40" stroke="var(--rk-vol-primary)" stroke-width="6" stroke-linecap="round"/>
                        <circle cx="50" cy="50" r="10" fill="var(--rk-vol-dark)"/>
                    </g>
                </svg>
            </div>
            
            <div class="rk-vol-data-grid">
                <div class="rk-vol-data-card" id="cardVolume">
                    <div class="rk-vol-data-label">Całkowity zład wody</div>
                    <div class="rk-vol-data-value"><span id="valVolOut">113.0</span> <span>Litrów</span></div>
                </div>
                <div class="rk-vol-data-card status-optimal" id="cardPump">
                    <div class="rk-vol-data-label">Obciążenie pompy</div>
                    <div class="rk-vol-data-value" style="font-size: 20px;" id="valPumpOut">Optymalne / Zrównoważone</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-vol-cta">
        <h4 style="margin: 0 0 15px 0; font-size: 20px; color: var(--rk-vol-dark); font-weight: 800;">Chcesz unikać błędów, które kosztują tysiące?</h4>
        <p style="margin: 0 auto 25px auto; max-width: 600px; color: #64748b;">Dołącz do inwestorów, którzy budują na solidnych fundamentach inżynierskich. Poznaj zaawansowane poradniki i <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" style="color: var(--rk-vol-primary); font-weight: 700;">narzędzia doboru</a>.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-vol-cta-btn">
            CZYTAJ BLOG INŻYNIERSKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('zlad-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Kontener podsumowujący oraz struktura JSON-LD są własnością serwisu Projekt-Ogrzewania.pl. Wykryto próbę kradzieży kodu na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // Logika Kalkulatora / Symulatora
    const slider = document.getElementById('pipeLenSlider');
    const valLenOut = document.getElementById('valLenOut');
    const valVolOut = document.getElementById('valVolOut');
    const valPumpOut = document.getElementById('valPumpOut');
    const cardPump = document.getElementById('cardPump');
    const rotor = document.getElementById('svgPumpRotor');
    const btns = document.querySelectorAll('.rk-vol-toggle-btn');
    
    let currentCap = 0.113; // startowa pojemność (16x2.0)
    
    function updateDashboard() {
        const length = parseInt(slider.value);
        valLenOut.textContent = length + ' m';
        
        // Obliczenia Zładu
        const totalVol = (length * currentCap).toFixed(1);
        valVolOut.textContent = totalVol;
        
        // Logika Obciążenia (Symulacja problemu rury 2.2mm)
        if (currentCap === 0.106) {
            // Mniejsza średnica = większe opory, woda płynie szybciej by oddać moc
            cardPump.className = 'rk-vol-data-card status-warning';
            valPumpOut.textContent = 'Zwiększone opory (Spadek COP)';
            rotor.style.animationDuration = '1s'; // Pompa musi pracować na wyższym biegu
        } else {
            // Standardowa średnica 2.0
            cardPump.className = 'rk-vol-data-card status-optimal';
            valPumpOut.textContent = 'Optymalne / Zrównoważone';
            rotor.style.animationDuration = '3s'; // Spokojna praca
        }
    }

    // Eventy dla Toggle
    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            currentCap = parseFloat(this.getAttribute('data-cap'));
            updateDashboard();
        });
    });

    // Eventy dla Slidera
    slider.addEventListener('input', updateDashboard);
    
    // Inicjalizacja
    updateDashboard();
});
</script>



<style>
:root {
    --rk-dl-dark: #082f49; /* Głęboki, wodny granat */
    --rk-dl-panel: #0f172a;
    --rk-dl-accent: #0ea5e9; /* Jasny błękit (woda) */
    --rk-dl-hover: #0284c7;
    --rk-dl-bg: #f0f9ff;
    --rk-dl-border: #bae6fd;
    --rk-dl-text: #334155;
    --rk-dl-white: #ffffff;
    --rk-dl-muted: #64748b;
}

.rk-dl-hub-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-white);
    border-radius: 24px;
    border: 1px solid var(--rk-dl-border);
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    overflow: hidden;
    position: relative;
}

/* Tło z motywem wodnym (fale SVG) */
.rk-dl-hub-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 200px;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%230ea5e9" fill-opacity="0.05" d="M0,192L48,197.3C96,203,192,213,288,229.3C384,245,480,267,576,250.7C672,235,768,181,864,165.3C960,149,1056,171,1152,192C1248,213,1344,235,1392,245.3L1440,256L1440,0L1392,0C1344,0,1248,0,1152,0C1056,0,960,0,864,0C768,0,672,0,576,0C480,0,384,0,288,0C192,0,96,0,48,0L0,0Z"></path></svg>') no-repeat top center;
    background-size: cover;
    z-index: 0;
    pointer-events: none;
}

/* NAGŁÓWEK SEKCI */
.rk-dl-header {
    padding: 40px 50px 20px;
    position: relative;
    z-index: 2;
    text-align: center;
}

.rk-dl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-dl-dark);
    color: #7dd3fc;
    padding: 8px 16px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    box-shadow: 0 4px 10px rgba(8, 47, 73, 0.2);
}

.rk-dl-header h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

.rk-dl-header p {
    font-size: 16px;
    color: var(--rk-dl-muted);
    margin: 0 auto;
    max-width: 600px;
    line-height: 1.6;
}

/* GŁÓWNY WORKSPACE */
.rk-dl-workspace {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    padding: 30px 50px 50px;
    position: relative;
    z-index: 2;
    align-items: center;
}

/* WIZUALIZACJA / PODGLĄD */
.rk-dl-preview-wrapper {
    position: relative;
    border-radius: 16px;
    padding: 10px;
    background: #ffffff;
    border: 2px dashed var(--rk-dl-border);
    cursor: zoom-in;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px rgba(0,0,0,0.03);
}

.rk-dl-preview-wrapper:hover {
    transform: translateY(-5px) scale(1.02);
    border-color: var(--rk-dl-accent);
    box-shadow: 0 20px 30px rgba(14, 165, 233, 0.15);
}

.rk-dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-dl-hover-overlay {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%) scale(0.8);
    background: rgba(8, 47, 73, 0.85);
    color: #ffffff;
    padding: 12px 20px;
    border-radius: 50px;
    font-weight: 800;
    font-size: 13px;
    opacity: 0;
    transition: all 0.3s;
    pointer-events: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-dl-preview-wrapper:hover .rk-dl-hover-overlay {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

/* ZAWWARTOŚĆ PRAWEGO PANELU */
.rk-dl-info-box {
    display: flex;
    flex-direction: column;
}

.rk-dl-info-box h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-dl-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dl-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    font-size: 15px;
    color: var(--rk-dl-text);
    line-height: 1.5;
    background: var(--rk-dl-bg);
    padding: 12px 15px;
    border-radius: 12px;
    border-left: 3px solid var(--rk-dl-accent);
}

.rk-dl-feature-item strong {
    color: var(--rk-dl-dark);
    font-weight: 800;
    display: block;
    margin-bottom: 2px;
}

.rk-dl-icon-water {
    width: 24px;
    height: 24px;
    color: var(--rk-dl-accent);
    flex-shrink: 0;
    margin-top: 2px;
    animation: waterPulse 2s infinite;
}

@keyframes waterPulse {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.1); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}

/* PRZYCISK POBIERANIA */
.rk-dl-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl-accent);
    color: var(--rk-dl-white);
    text-decoration: none !important;
    padding: 20px 35px;
    border-radius: 16px;
    font-weight: 900;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 25px -5px rgba(14, 165, 233, 0.5);
    border: 2px solid transparent;
}

.rk-dl-btn-massive:hover {
    background: var(--rk-dl-hover);
    transform: translateY(-4px);
    box-shadow: 0 15px 35px -5px rgba(14, 165, 233, 0.6);
    border-color: #e0f2fe;
}

.rk-dl-btn-icon {
    background: rgba(255,255,255,0.2);
    padding: 8px;
    border-radius: 8px;
    display: flex;
}

/* STOPKA MODUŁU */
.rk-dl-footer {
    padding: 20px 50px;
    background: var(--rk-dl-dark);
    font-size: 13px;
    color: #bae6fd;
    text-align: center;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-dl-footer a {
    color: #ffffff;
    font-weight: 800;
    text-decoration: none;
    border-bottom: 1px dotted #0ea5e9;
    transition: color 0.3s;
}

.rk-dl-footer a:hover {
    color: #0ea5e9;
    border-bottom-style: solid;
}

@media (max-width: 800px) {
    .rk-dl-header { padding: 30px 20px 20px; }
    .rk-dl-header h2 { font-size: 24px; }
    .rk-dl-workspace { grid-template-columns: 1fr; padding: 20px 20px 40px; gap: 30px; }
    .rk-dl-footer { flex-direction: column; gap: 15px; padding: 20px; text-align: center; }
    .rk-dl-btn-massive { width: 100%; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#infografika-download",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Ile wody mieści się w 1 metrze rury PEX 16? (Infografika PDF)",
    "description": "Zestawienie inżynierskie w formacie PDF. Tabela objętości wody, algorytmy obliczeniowe i lista krytycznych błędów instalatorskich. Pobierz darmową ściągę.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Infografika-Ile-wody-miesci-sie-w-1-metrze-rury-PEX-PERT-16.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-16",
    "dateModified": "2026-05-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset-tabela",
    "name": "Tabela pojemności wodnej rur PEX/PERT 16",
    "description": "Zbiór danych określający dokładną objętość wody w litrach dla rur o średnicy zewnętrznej 16 mm (grubość ścianki 2.0 mm) dla długości od 1 do 100 metrów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika pex 16",
      "pojemność wodna rury pdf",
      "zład wody tabela",
      "kalkulator podłogówki materiały",
      "zestawienie hydrauliczne"
    ],
    "measurementTechnique": "Przeliczenie pola przekroju wewnętrznego (ID=12mm) na pojemność jednostkową wynoszącą 0,113 litra na 1 metr.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Parametry hydrauliczne rurociągów płaszczyznowych"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#download-hub",
    "name": "Centrum Pobierania: Zład Wody PEX",
    "description": "Interaktywny moduł z wizualizacją parametrów i możliwością pobrania dokumentacji technicznej PDF prosto na telefon instalatora.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl-hub-container" id="rk-download-app">
    
    <div class="rk-dl-header">
        <div class="rk-dl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Materiały dla Wykonawców
        </div>
        <h2>Pobierz darmową infografikę i zestawienie w PDF</h2>
        <p>Zabierz wiedzę inżynierską bezpośrednio na plac budowy. Tabela objętości dla rur 1-100m, przekroje hydrauliczne i lista błędów w jednym dokumencie wysokiej jakości.</p>
    </div>

    <div class="rk-dl-workspace">
        
        <div class="rk-dl-preview-wrapper" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Infografika-Ile-wody-miesci-sie-w-1-metrze-rury-PEX-PERT-16.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Infografika-Ile-wody-miesci-sie-w-1-metrze-rury-PEX-PERT-16.webp" alt="Infografika Ile wody mieści się w 1 metrze rury PEX PERT 16" class="rk-dl-preview-img" loading="lazy">
            <div class="rk-dl-hover-overlay">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ obraz
            </div>
        </div>

        <div class="rk-dl-info-box">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-dl-accent)" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                Co znajdziesz w dokumencie?
            </h3>
            
            <ul class="rk-dl-feature-list">
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-icon-water" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    <div>
                        <strong>Tabela pojemności wodnej</strong>
                        Szybki przelicznik zładu dla pętli od 1 do 100 metrów ułatwiający dobór naczynia przeponowego.
                    </div>
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-icon-water" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                    <div>
                        <strong>Checklista 3 krytycznych błędów</strong>
                        Jak unikać taktowania pompy ciepła i błędnego dozowania inhibitorów korozji.
                    </div>
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-icon-water" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12.01" y2="18"></line></svg>
                    <div>
                        <strong>Optymalizacja pod Smartfony</strong>
                        Format PDF specjalnie dostosowany do czytania na ekranach telefonów.
                    </div>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Infografika-Ile-wody-miesci-sie-w-1-metrze-rury-PEX-PERT-16.pdf" class="rk-dl-btn-massive" target="_blank" rel="nofollow noopener noreferrer">
                <div class="rk-dl-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                </div>
                Pobierz ściągę (PDF)
            </a>
        </div>

    </div>

    <div class="rk-dl-footer">
        <div>© 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong> (CEO)</div>
        <div>Szukasz rzetelnych wyliczeń? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" target="_blank">Zamów inżynierski projekt podłogówki</a></div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA (Domain Lock) ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-download-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #ef4444; text-transform: uppercase;">Zasoby Chronione Prawem Autorskim</div>
                    <p style="color: #cbd5e1; font-size: 14px;">Ta sekcja pobierania i pliki PDF są wyłączną własnością serwisu Projekt-Ogrzewania.pl.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/">Ile wody mieści się w 1 metrze rury PEX / PERT 16.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
