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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa rotametr - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/rotametr/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Rotametr (wskaźnik przepływu) w rozdzielaczu ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 29 Nov 2025 17:11:32 +0000</pubDate>
				<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Konserwacja systemów grzewczych]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Regulacja instalacji]]></category>
		<category><![CDATA[Rozdzielacz do podłogówki]]></category>
		<category><![CDATA[Rozdzielacze do podłogówki]]></category>
		<category><![CDATA[Rozdzielacze grzewcze]]></category>
		<category><![CDATA[Serwis i konserwacja]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[przepływomierz]]></category>
		<category><![CDATA[regulacja przepływu]]></category>
		<category><![CDATA[rotametr]]></category>
		<category><![CDATA[rozdzielacz]]></category>
		<category><![CDATA[wskaźnik przepływu]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2873</guid>

					<description><![CDATA[<p>Rotametr (wskaźnik przepływu) w rozdzielaczu ogrzewania podłogowego to jeden z tych elementów instalacji, które wyglądają niepozornie, ale mają ogromny wpływ na komfort cieplny całego domu. W artykule wyjaśniam, jak działa rotametr, dlaczego jest kluczowy dla równoważenia hydraulicznego oraz jak prawidłowo ustawić przepływy na każdej pętli podłogówki. Dzięki temu dowiesz się, jak uniknąć przegrzewania pomieszczeń, zimnych stref na podłodze i niepotrzebnych strat energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">Rotametr (wskaźnik przepływu) w rozdzielaczu ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-flow-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e8fbff;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #f1b93e;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }

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

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

  #rk-flow-guide button,
  #rk-flow-guide input,
  #rk-flow-guide select,
  #rk-flow-guide label,
  #rk-flow-guide summary,
  #rk-flow-guide a {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

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

  #rk-flow-guide p,
  #rk-flow-guide ul,
  #rk-flow-guide ol {
    margin-top: 0;
    margin-bottom: 1.1em;
  }

  #rk-flow-guide h2,
  #rk-flow-guide h3,
  #rk-flow-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 950;
    letter-spacing: -0.035em;
  }

  #rk-flow-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.8rem, 4vw, 2.75rem);
    line-height: 1.08;
  }

  #rk-flow-guide h3 {
    margin-bottom: 10px;
    font-size: clamp(1.08rem, 2.2vw, 1.35rem);
    line-height: 1.22;
  }

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

  #rk-flow-guide .rk-flow-progress-track {
    position: sticky;
    z-index: 60;
    top: 0;
    height: 5px;
    background: rgba(213, 228, 235, 0.86);
  }

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

  #rk-flow-guide .rk-flow-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(40px, 7vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 17%, rgba(255, 106, 61, 0.35), transparent 28%),
      radial-gradient(circle at 76% 96%, rgba(37, 199, 216, 0.25), transparent 35%),
      linear-gradient(126deg, #0f2233, #143d53 72%, #2e3944);
  }

  #rk-flow-guide .rk-flow-hero::after {
    position: absolute;
    right: -75px;
    bottom: -110px;
    width: 370px;
    height: 370px;
    border: 42px solid rgba(255, 255, 255, 0.045);
    border-radius: 50%;
    content: "";
  }

  #rk-flow-guide .rk-flow-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 900px;
  }

  #rk-flow-guide .rk-flow-eyebrow,
  #rk-flow-guide .rk-flow-kicker {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 17px;
    color: var(--rk-orange);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.09em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-flow-guide .rk-flow-eyebrow {
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #e2fbff;
    background: rgba(255, 255, 255, 0.06);
  }

  #rk-flow-guide .rk-flow-eyebrow b {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 106, 61, 0.16);
  }

  #rk-flow-guide .rk-flow-hero-title {
    max-width: 880px;
    margin-bottom: 22px;
    color: var(--rk-white);
    font-size: clamp(2.15rem, 5.4vw, 4.4rem);
    font-weight: 980;
    letter-spacing: -0.058em;
    line-height: 0.99;
  }

  #rk-flow-guide .rk-flow-hero-lead {
    max-width: 840px;
    margin-bottom: 25px;
    color: #d9e9f0;
    font-size: clamp(1rem, 2vw, 1.22rem);
    line-height: 1.7;
  }

  #rk-flow-guide .rk-flow-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 24px;
    color: #c5dae3;
    font-size: 0.74rem;
    font-weight: 800;
  }

  #rk-flow-guide .rk-flow-meta span {
    display: inline-flex;
    gap: 8px;
    align-items: center;
  }

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

  #rk-flow-guide .rk-flow-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 20px clamp(22px, 5vw, 60px);
    border-bottom: 1px solid var(--rk-line);
    background: #f8fbfc;
  }

  #rk-flow-guide .rk-flow-nav strong {
    display: inline-flex;
    align-items: center;
    margin-right: 5px;
    color: var(--rk-dark);
    font-size: 0.76rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-flow-guide .rk-flow-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 39px;
    padding: 7px 13px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-navy);
    background: var(--rk-white);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-flow-guide .rk-flow-nav a:hover,
  #rk-flow-guide .rk-flow-nav a:focus-visible {
    border-color: var(--rk-cyan);
    outline: 0;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
  }

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

  #rk-flow-guide .rk-flow-intro {
    max-width: 900px;
    color: var(--rk-text);
    font-size: 1.05rem;
  }

  #rk-flow-guide .rk-flow-answer {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 22px;
    margin-top: 28px;
  }

  #rk-flow-guide .rk-flow-answer-main,
  #rk-flow-guide .rk-flow-answer-side {
    padding: clamp(25px, 4vw, 38px);
    border-radius: 24px;
  }

  #rk-flow-guide .rk-flow-answer-main {
    color: #e7f7fb;
    background: linear-gradient(135deg, var(--rk-dark), #19475d);
  }

  #rk-flow-guide .rk-flow-answer-main h3 {
    color: var(--rk-white);
  }

  #rk-flow-guide .rk-flow-answer-main strong {
    color: #8df3ff;
  }

  #rk-flow-guide .rk-flow-answer-side {
    border: 1px solid #f2d7ca;
    background: var(--rk-orange-soft);
  }

  #rk-flow-guide .rk-flow-formula {
    margin-top: 24px;
    padding: 23px;
    border: 1px solid #b9dce7;
    border-radius: 19px;
    text-align: center;
    background: var(--rk-cyan-soft);
  }

  #rk-flow-guide .rk-flow-formula strong {
    display: block;
    color: var(--rk-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.2rem, 3vw, 1.8rem);
    letter-spacing: 0;
  }

  #rk-flow-guide .rk-flow-formula span {
    display: block;
    margin-top: 8px;
    color: var(--rk-muted);
    font-size: 0.78rem;
  }

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

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

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

  #rk-flow-guide .rk-flow-card,
  #rk-flow-guide .rk-flow-error {
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-flow-guide .rk-flow-card p,
  #rk-flow-guide .rk-flow-error p {
    margin-bottom: 0;
    color: var(--rk-text);
    font-size: 0.9rem;
  }

  #rk-flow-guide .rk-flow-card-number,
  #rk-flow-guide .rk-flow-error b {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--rk-orange);
    font-size: 0.7rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-flow-guide .rk-flow-notice {
    margin-top: 24px;
    padding: 20px 22px;
    border-left: 5px solid var(--rk-yellow);
    border-radius: 0 15px 15px 0;
    color: var(--rk-text);
    background: var(--rk-yellow-soft);
  }

  #rk-flow-guide .rk-flow-notice.is-red {
    border-left-color: var(--rk-red);
    background: var(--rk-red-soft);
  }

  #rk-flow-guide .rk-flow-notice p:last-child {
    margin-bottom: 0;
  }

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

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

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

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

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

  #rk-flow-guide .rk-flow-table thead th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  #rk-flow-guide .rk-flow-table tbody th {
    width: 25%;
    color: var(--rk-dark);
    background: var(--rk-soft);
  }

  #rk-flow-guide .rk-flow-table td {
    color: var(--rk-text);
    font-size: 0.9rem;
  }

  #rk-flow-guide .rk-flow-lab {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid #b9dbe6;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 22px 55px rgba(16, 37, 54, 0.1);
  }

  #rk-flow-guide .rk-flow-tool-head {
    padding: 28px clamp(24px, 5vw, 46px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 20%, rgba(255, 106, 61, 0.28), transparent 30%),
      linear-gradient(128deg, #102b3d, #12516b);
  }

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

  #rk-flow-guide .rk-flow-tool-head p {
    max-width: 850px;
    margin-bottom: 0;
    color: #d5eaf1;
  }

  #rk-flow-guide .rk-flow-lab-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    align-items: stretch;
  }

  #rk-flow-guide .rk-flow-device-stage {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 640px;
    padding: 28px;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    background:
      radial-gradient(circle at 50% 38%, rgba(37, 199, 216, 0.14), transparent 35%),
      linear-gradient(145deg, #0d2232, #132f42);
  }

  #rk-flow-guide .rk-flow-device-svg {
    width: min(100%, 390px);
    height: auto;
    overflow: visible;
    filter: drop-shadow(0 24px 24px rgba(0, 0, 0, 0.22));
  }

  #rk-flow-guide .rk-flow-svg-label {
    fill: #c9e1e9;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 14px;
    font-weight: 850;
  }

  #rk-flow-guide .rk-flow-svg-unit {
    fill: #78efff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  #rk-flow-guide .rk-flow-svg-float {
    transform: translateY(var(--rk-flow-offset, 0px));
    transition: transform 240ms ease;
  }

  #rk-flow-guide .rk-flow-device-svg.is-jumping .rk-flow-svg-float {
    animation: rk-flow-jump 0.36s infinite alternate ease-in-out;
  }

  #rk-flow-guide .rk-flow-device-svg.is-dirty .rk-flow-svg-window {
    fill: rgba(183, 157, 79, 0.42);
  }

  @keyframes rk-flow-jump {
    from { transform: translateY(calc(var(--rk-flow-offset, 0px) - 9px)); }
    to { transform: translateY(calc(var(--rk-flow-offset, 0px) + 9px)); }
  }

  #rk-flow-guide .rk-flow-part-buttons {
    position: absolute;
    right: 18px;
    bottom: 18px;
    left: 18px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
  }

  #rk-flow-guide .rk-flow-part-button {
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    color: #d9edf4;
    background: rgba(255, 255, 255, 0.07);
    cursor: pointer;
    font-size: 0.68rem;
    font-weight: 850;
  }

  #rk-flow-guide .rk-flow-part-button.is-active {
    border-color: var(--rk-cyan);
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }

  #rk-flow-guide .rk-flow-lab-panel {
    min-width: 0;
    padding: clamp(25px, 4vw, 42px);
    background: var(--rk-white);
  }

  #rk-flow-guide .rk-flow-part-info {
    margin-bottom: 24px;
    padding: 19px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-soft);
  }

  #rk-flow-guide .rk-flow-part-info h4 {
    margin-bottom: 6px;
  }

  #rk-flow-guide .rk-flow-part-info p {
    margin-bottom: 0;
    color: var(--rk-text);
    font-size: 0.84rem;
  }

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

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

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

  #rk-flow-guide .rk-flow-field > label {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-flow-guide .rk-flow-field input[type="number"],
  #rk-flow-guide .rk-flow-field select {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #bcd0d9;
    border-radius: 11px;
    outline: 0;
    color: var(--rk-ink);
    background: var(--rk-white);
    font-size: 0.87rem;
  }

  #rk-flow-guide .rk-flow-field input:focus,
  #rk-flow-guide .rk-flow-field select:focus {
    border-color: var(--rk-blue);
    box-shadow: 0 0 0 4px rgba(7, 143, 190, 0.12);
  }

  #rk-flow-guide .rk-flow-range-wrap {
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-flow-guide .rk-flow-range-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 9px;
    color: var(--rk-dark);
    font-size: 0.78rem;
    font-weight: 900;
  }

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

  #rk-flow-guide .rk-flow-live-result {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 20px;
  }

  #rk-flow-guide .rk-flow-live-stat {
    padding: 15px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    text-align: center;
    background: var(--rk-white);
  }

  #rk-flow-guide .rk-flow-live-stat span {
    display: block;
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-flow-guide .rk-flow-live-stat strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-dark);
    font-size: 1.2rem;
    line-height: 1.2;
  }

  #rk-flow-guide .rk-flow-state-box {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid #b7e3d5;
    border-radius: 16px;
    background: var(--rk-green-soft);
  }

  #rk-flow-guide .rk-flow-state-box.is-warning {
    border-color: #ecd58a;
    background: var(--rk-yellow-soft);
  }

  #rk-flow-guide .rk-flow-state-box.is-danger {
    border-color: #efbbb5;
    background: var(--rk-red-soft);
  }

  #rk-flow-guide .rk-flow-state-box h4 {
    margin-bottom: 6px;
  }

  #rk-flow-guide .rk-flow-state-box p {
    margin-bottom: 0;
    color: var(--rk-text);
    font-size: 0.83rem;
  }

  #rk-flow-guide .rk-flow-tool-note {
    margin: 0;
    padding: 18px clamp(24px, 5vw, 46px);
    border-top: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: #f8fbfc;
    font-size: 0.77rem;
    line-height: 1.55;
  }

  #rk-flow-guide .rk-flow-manifold {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid #b9dbe6;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 22px 55px rgba(16, 37, 54, 0.1);
  }

  #rk-flow-guide .rk-flow-manifold-controls {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
    padding: 22px clamp(22px, 4vw, 38px);
    border-bottom: 1px solid var(--rk-line);
    background: #f8fbfc;
  }

  #rk-flow-guide .rk-flow-scenario-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 18px clamp(22px, 4vw, 38px);
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-flow-guide .rk-flow-scenario-button {
    padding: 9px 13px;
    border: 1px solid #b8cfd9;
    border-radius: 999px;
    color: var(--rk-navy);
    background: var(--rk-white);
    cursor: pointer;
    font-size: 0.73rem;
    font-weight: 850;
  }

  #rk-flow-guide .rk-flow-scenario-button:hover,
  #rk-flow-guide .rk-flow-scenario-button:focus-visible,
  #rk-flow-guide .rk-flow-scenario-button.is-active {
    border-color: var(--rk-blue);
    outline: 0;
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-flow-guide .rk-flow-meters-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    padding: 26px clamp(18px, 3vw, 32px);
    background:
      linear-gradient(180deg, rgba(37, 199, 216, 0.04), transparent 25%),
      var(--rk-white);
  }

  #rk-flow-guide .rk-flow-loop-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-flow-guide .rk-flow-loop-head {
    padding: 14px 12px;
    color: var(--rk-white);
    text-align: center;
    background: var(--rk-navy);
  }

  #rk-flow-guide .rk-flow-loop-head strong {
    display: block;
    font-size: 0.82rem;
    line-height: 1.25;
  }

  #rk-flow-guide .rk-flow-loop-head span {
    display: block;
    margin-top: 3px;
    color: #c8dce4;
    font-size: 0.64rem;
    font-weight: 750;
  }

  #rk-flow-guide .rk-flow-mini-meter-wrap {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 300px;
    padding: 20px 8px;
    background: linear-gradient(180deg, #eff7fa, #f9fbfc);
  }

  #rk-flow-guide .rk-flow-mini-meter {
    position: relative;
    width: 78px;
    height: 245px;
  }

  #rk-flow-guide .rk-flow-mini-scale {
    position: absolute;
    top: 0;
    left: 0;
    width: 25px;
    height: 100%;
    color: var(--rk-muted);
    font-size: 0.6rem;
    font-weight: 850;
  }

  #rk-flow-guide .rk-flow-mini-scale span {
    position: absolute;
    right: 0;
    transform: translateY(-50%);
  }

  #rk-flow-guide .rk-flow-mini-tube {
    position: absolute;
    top: 0;
    right: 5px;
    width: 42px;
    height: 100%;
    overflow: hidden;
    border: 4px solid #9cb7c2;
    border-radius: 14px 14px 18px 18px;
    background:
      repeating-linear-gradient(180deg, transparent 0, transparent 39px, rgba(16, 37, 54, 0.12) 40px, transparent 41px),
      linear-gradient(90deg, rgba(255, 255, 255, 0.78), rgba(158, 218, 229, 0.28), rgba(255, 255, 255, 0.68));
    box-shadow: inset 6px 0 9px rgba(255, 255, 255, 0.65);
  }

  #rk-flow-guide .rk-flow-mini-float {
    position: absolute;
    top: 50%;
    right: 3px;
    left: 3px;
    height: 16px;
    border: 2px solid #9e2b22;
    border-radius: 6px;
    background: linear-gradient(180deg, #ff735f, #cf3129);
    box-shadow: 0 2px 5px rgba(125, 25, 18, 0.25);
    transform: translateY(-50%);
    transition: top 220ms ease;
  }

  #rk-flow-guide .rk-flow-mini-target {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: -9px;
    left: -9px;
    height: 3px;
    border-radius: 999px;
    background: var(--rk-green);
    box-shadow: 0 0 0 4px rgba(22, 131, 107, 0.13);
    transition: top 220ms ease;
  }

  #rk-flow-guide .rk-flow-mini-target::after {
    position: absolute;
    top: -8px;
    right: -7px;
    color: var(--rk-green);
    content: "cel";
    font-size: 0.55rem;
    font-weight: 950;
    text-transform: uppercase;
  }

  #rk-flow-guide .rk-flow-loop-status {
    position: absolute;
    right: 8px;
    bottom: 8px;
    left: 8px;
    padding: 6px 7px;
    border-radius: 9px;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.61rem;
    font-weight: 900;
    line-height: 1.25;
    text-align: center;
  }

  #rk-flow-guide .rk-flow-loop-status.is-low,
  #rk-flow-guide .rk-flow-loop-status.is-high {
    background: var(--rk-orange);
  }

  #rk-flow-guide .rk-flow-loop-status.is-zero,
  #rk-flow-guide .rk-flow-loop-status.is-limit {
    background: var(--rk-red);
  }

  #rk-flow-guide .rk-flow-loop-controls {
    padding: 13px;
  }

  #rk-flow-guide .rk-flow-loop-field {
    margin-bottom: 10px;
  }

  #rk-flow-guide .rk-flow-loop-field:last-child {
    margin-bottom: 0;
  }

  #rk-flow-guide .rk-flow-loop-field label {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
    color: var(--rk-muted);
    font-size: 0.61rem;
    font-weight: 850;
    line-height: 1.25;
  }

  #rk-flow-guide .rk-flow-loop-field input[type="number"] {
    width: 100%;
    min-height: 36px;
    padding: 6px 8px;
    border: 1px solid #c2d5dd;
    border-radius: 8px;
    outline: 0;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.72rem;
  }

  #rk-flow-guide .rk-flow-loop-field input[type="range"] {
    display: block;
  }

  #rk-flow-guide .rk-flow-manifold-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    padding: 22px clamp(22px, 4vw, 38px);
    border-top: 1px solid var(--rk-line);
    background: #f8fbfc;
  }

  #rk-flow-guide .rk-flow-summary-card {
    padding: 16px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    text-align: center;
    background: var(--rk-white);
  }

  #rk-flow-guide .rk-flow-summary-card span {
    display: block;
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-flow-guide .rk-flow-summary-card strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-dark);
    font-size: 1.15rem;
    line-height: 1.2;
  }

  #rk-flow-guide .rk-flow-chart {
    display: grid;
    gap: 13px;
    padding: 25px clamp(22px, 4vw, 38px);
    border-top: 1px solid var(--rk-line);
  }

  #rk-flow-guide .rk-flow-chart-row {
    display: grid;
    grid-template-columns: 95px minmax(0, 1fr) 70px;
    gap: 12px;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 850;
  }

  #rk-flow-guide .rk-flow-chart-bars {
    position: relative;
    height: 30px;
    overflow: hidden;
    border-radius: 9px;
    background: #e8f0f3;
  }

  #rk-flow-guide .rk-flow-chart-target,
  #rk-flow-guide .rk-flow-chart-actual {
    position: absolute;
    left: 0;
    border-radius: 0 999px 999px 0;
    transition: width 220ms ease;
  }

  #rk-flow-guide .rk-flow-chart-target {
    top: 4px;
    height: 9px;
    background: var(--rk-green);
  }

  #rk-flow-guide .rk-flow-chart-actual {
    bottom: 4px;
    height: 9px;
    background: var(--rk-orange);
  }

  #rk-flow-guide .rk-flow-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    padding: 0 clamp(22px, 4vw, 38px) 24px;
    color: var(--rk-muted);
    font-size: 0.68rem;
    font-weight: 800;
  }

  #rk-flow-guide .rk-flow-chart-legend span {
    display: inline-flex;
    gap: 6px;
    align-items: center;
  }

  #rk-flow-guide .rk-flow-chart-legend i {
    width: 18px;
    height: 7px;
    border-radius: 999px;
  }

  #rk-flow-guide .rk-flow-cta {
    margin-top: clamp(30px, 5vw, 54px);
    padding: clamp(30px, 5vw, 50px);
    border-radius: 27px;
    color: #e7f5fa;
    background:
      radial-gradient(circle at 90% 10%, rgba(255, 106, 61, 0.32), transparent 34%),
      linear-gradient(132deg, #10283a, #174b61);
  }

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

  #rk-flow-guide .rk-flow-cta p,
  #rk-flow-guide .rk-flow-final-cta p {
    max-width: 890px;
    color: #deedf3;
  }

  #rk-flow-guide .rk-flow-cta-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 56px;
    padding: 14px 25px;
    border-radius: 16px;
    color: #ffffff !important;
    background: linear-gradient(90deg, var(--rk-orange), #f24a3e);
    box-shadow: 0 15px 30px rgba(242, 74, 62, 0.25);
    font-weight: 950;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
  }

  #rk-flow-guide .rk-flow-cta-button:hover,
  #rk-flow-guide .rk-flow-cta-button:focus-visible {
    outline: 3px solid rgba(255, 255, 255, 0.3);
    transform: translateY(-1px);
  }

  #rk-flow-guide .rk-flow-disclosure {
    display: block;
    margin-top: 14px;
    color: #bcd2dc;
    font-size: 0.72rem;
    line-height: 1.45;
  }

  #rk-flow-guide .rk-flow-steps {
    counter-reset: rkstep;
    display: grid;
    gap: 15px;
    margin-top: 27px;
  }

  #rk-flow-guide .rk-flow-step {
    counter-increment: rkstep;
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 16px;
    align-items: start;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-flow-guide .rk-flow-step::before {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-navy);
    content: counter(rkstep, decimal-leading-zero);
    font-size: 0.78rem;
    font-weight: 950;
  }

  #rk-flow-guide .rk-flow-step h3 {
    margin-bottom: 4px;
  }

  #rk-flow-guide .rk-flow-step p {
    margin-bottom: 0;
    color: var(--rk-text);
    font-size: 0.9rem;
  }

  #rk-flow-guide .rk-flow-diagnostic {
    display: grid;
    grid-template-columns: 0.72fr 1.28fr;
    gap: 22px;
    margin-top: 28px;
  }

  #rk-flow-guide .rk-flow-diagnostic-buttons {
    display: grid;
    gap: 10px;
  }

  #rk-flow-guide .rk-flow-diagnostic-button {
    padding: 15px 16px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    color: var(--rk-dark);
    background: var(--rk-white);
    cursor: pointer;
    font-weight: 850;
    text-align: left;
  }

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

  #rk-flow-guide .rk-flow-diagnostic-result {
    padding: 28px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-flow-guide .rk-flow-diagnostic-result ul {
    margin-bottom: 0;
    padding-left: 1.2em;
    color: var(--rk-text);
  }

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

  #rk-flow-guide .rk-flow-checkitem {
    position: relative;
    padding: 16px 16px 16px 49px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-white);
    font-size: 0.88rem;
  }

  #rk-flow-guide .rk-flow-checkitem::before {
    position: absolute;
    top: 16px;
    left: 16px;
    display: grid;
    place-items: center;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    content: "✓";
    font-size: 0.75rem;
    font-weight: 950;
  }

  #rk-flow-guide .rk-flow-download {
    display: grid;
    grid-template-columns: 0.72fr 1.28fr;
    gap: 26px;
    align-items: center;
    margin-top: 28px;
    padding: clamp(24px, 5vw, 42px);
    border: 1px solid #b9dce7;
    border-radius: 24px;
    background: linear-gradient(135deg, var(--rk-cyan-soft), #f8fbfc);
  }

  #rk-flow-guide .rk-flow-download-preview {
    display: grid;
    place-items: center;
    min-height: 220px;
    border-radius: 18px;
    color: var(--rk-white);
    background:
      linear-gradient(160deg, rgba(255, 106, 61, 0.28), transparent 45%),
      var(--rk-navy);
  }

  #rk-flow-guide .rk-flow-download-preview svg {
    width: 135px;
    fill: none;
    stroke: #72efff;
    stroke-width: 3;
  }

  #rk-flow-guide .rk-flow-download-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 52px;
    padding: 12px 20px;
    border-radius: 14px;
    color: #ffffff !important;
    background: var(--rk-blue);
    font-weight: 900;
    text-decoration: none;
  }

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

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

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

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

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

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

  #rk-flow-guide .rk-flow-faq-answer {
    padding: 0 20px 18px;
    color: var(--rk-text);
    font-size: 0.92rem;
  }

  #rk-flow-guide .rk-flow-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-flow-guide .rk-flow-source-box {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-flow-guide .rk-flow-source-box p:last-child {
    margin-bottom: 0;
  }

  #rk-flow-guide .rk-flow-update {
    margin-top: 18px;
    padding: 16px 18px;
    border: 1px solid #badde7;
    border-radius: 14px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    font-size: 0.82rem;
    font-weight: 850;
  }

  #rk-flow-guide .rk-flow-author {
    overflow: hidden;
    margin: clamp(38px, 6vw, 70px);
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 25px 55px rgba(16, 37, 54, 0.09);
  }

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

  #rk-flow-guide .rk-flow-author-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
    padding: 30px 34px;
    border-bottom: 6px solid var(--rk-cyan);
    color: #dceaf0;
    background: var(--rk-dark);
  }

  #rk-flow-guide .rk-flow-author-head h2 {
    margin-bottom: 6px;
    color: #ffffff !important;
  }

  #rk-flow-guide .rk-flow-author-head p {
    margin-bottom: 0;
    color: #dceaf0;
  }

  #rk-flow-guide .rk-flow-author-mark {
    flex: 0 0 auto;
    padding: 10px 14px;
    border: 1px solid rgba(37, 199, 216, 0.5);
    border-radius: 999px;
    color: #70efff;
    font-size: 0.7rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    white-space: nowrap;
  }

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

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

  #rk-flow-guide .rk-flow-author-photo {
    width: 176px;
    margin: 0 auto 22px;
    overflow: hidden;
    border: 9px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 16px 35px rgba(16, 37, 54, 0.14);
    aspect-ratio: 1;
  }

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

  #rk-flow-guide .rk-flow-author-name {
    color: var(--rk-dark);
    font-size: 1.35rem;
    font-weight: 950;
    letter-spacing: -0.03em;
  }

  #rk-flow-guide .rk-flow-author-role {
    margin-top: 7px;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    line-height: 1.45;
    text-transform: uppercase;
  }

  #rk-flow-guide .rk-flow-author-social-label {
    margin-top: 25px;
    color: var(--rk-muted);
    font-size: 0.7rem;
    font-weight: 850;
    text-transform: uppercase;
  }

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

  #rk-flow-guide .rk-flow-author-social a {
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    border: 1px solid #bdd7e1;
    border-radius: 13px;
    color: var(--rk-navy);
    background: var(--rk-white);
    text-decoration: none;
  }

  #rk-flow-guide .rk-flow-author-social a:hover,
  #rk-flow-guide .rk-flow-author-social a:focus-visible {
    border-color: var(--rk-cyan);
    outline: 0;
    color: var(--rk-blue);
    background: var(--rk-cyan-soft);
  }

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

  #rk-flow-guide .rk-flow-author-main {
    min-width: 0;
    padding: 38px;
  }

  #rk-flow-guide .rk-flow-author-quote {
    position: relative;
    margin: 0 0 25px;
    padding: 27px 28px 27px 74px;
    border: 0;
    border-radius: 20px;
    background: var(--rk-cyan-soft);
  }

  #rk-flow-guide .rk-flow-author-quote::before {
    position: absolute;
    top: 6px;
    left: 24px;
    color: var(--rk-cyan);
    content: "“";
    font-family: Georgia, serif;
    font-size: 4.5rem;
    font-weight: 900;
    line-height: 1;
  }

  #rk-flow-guide .rk-flow-author-quote p {
    margin-bottom: 0;
    color: var(--rk-dark);
    font-weight: 850;
    font-style: italic;
  }

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

  #rk-flow-guide .rk-flow-author-tab {
    padding: 13px 8px;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: var(--rk-soft);
    cursor: pointer;
    font-size: 0.72rem;
    font-weight: 900;
    text-align: center;
    text-transform: uppercase;
  }

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

  #rk-flow-guide .rk-flow-author-panel {
    display: none;
    padding: 23px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 14px 14px;
    color: var(--rk-text);
  }

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

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

  #rk-flow-author-about:checked ~ .rk-flow-author-layout label[for="rk-flow-author-about"],
  #rk-flow-author-exp:checked ~ .rk-flow-author-layout label[for="rk-flow-author-exp"],
  #rk-flow-author-sites:checked ~ .rk-flow-author-layout label[for="rk-flow-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -4px 0 var(--rk-blue);
  }

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

  #rk-flow-guide .rk-flow-site-links a {
    padding: 8px 11px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    background: var(--rk-soft);
    font-size: 0.78rem;
    text-decoration: none;
  }

  #rk-flow-guide .rk-flow-final-cta {
    margin: 0 clamp(38px, 6vw, 70px) clamp(38px, 6vw, 70px);
    padding: clamp(34px, 6vw, 58px);
    border-radius: 28px;
    color: #e6f5fa;
    background:
      radial-gradient(circle at 91% 10%, rgba(255, 106, 61, 0.34), transparent 33%),
      linear-gradient(132deg, #10283a, #174b61);
  }

  @media (max-width: 980px) {
    #rk-flow-guide .rk-flow-lab-grid,
    #rk-flow-guide .rk-flow-author-layout,
    #rk-flow-guide .rk-flow-diagnostic,
    #rk-flow-guide .rk-flow-download {
      grid-template-columns: 1fr;
    }

    #rk-flow-guide .rk-flow-device-stage,
    #rk-flow-guide .rk-flow-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

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

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

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

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

    #rk-flow-guide .rk-flow-hero,
    #rk-flow-guide .rk-flow-section {
      padding: 30px 20px;
    }

    #rk-flow-guide .rk-flow-nav {
      gap: 8px;
      padding: 16px;
    }

    #rk-flow-guide .rk-flow-nav strong {
      width: 100%;
    }

    #rk-flow-guide .rk-flow-nav a {
      flex: 1 1 calc(50% - 8px);
      justify-content: center;
      white-space: normal;
      text-align: center;
    }

    #rk-flow-guide .rk-flow-answer,
    #rk-flow-guide .rk-flow-grid-3,
    #rk-flow-guide .rk-flow-grid-2,
    #rk-flow-guide .rk-flow-errors,
    #rk-flow-guide .rk-flow-field-grid,
    #rk-flow-guide .rk-flow-live-result,
    #rk-flow-guide .rk-flow-manifold-controls,
    #rk-flow-guide .rk-flow-meters-grid,
    #rk-flow-guide .rk-flow-manifold-summary,
    #rk-flow-guide .rk-flow-checklist {
      grid-template-columns: 1fr;
    }

    #rk-flow-guide .rk-flow-device-stage {
      min-height: 590px;
      padding: 20px 12px 110px;
    }

    #rk-flow-guide .rk-flow-part-buttons {
      right: 10px;
      bottom: 14px;
      left: 10px;
    }

    #rk-flow-guide .rk-flow-mini-meter-wrap {
      min-height: 280px;
    }

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

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

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

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

    #rk-flow-guide .rk-flow-table tbody th,
    #rk-flow-guide .rk-flow-table td {
      padding: 13px 15px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-flow-guide .rk-flow-table td::before {
      display: block;
      margin-bottom: 3px;
      color: var(--rk-blue);
      content: attr(data-label);
      font-size: 0.68rem;
      font-weight: 950;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }

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

    #rk-flow-guide .rk-flow-chart-row {
      grid-template-columns: 70px minmax(0, 1fr) 55px;
      gap: 8px;
    }

    #rk-flow-guide .rk-flow-step {
      grid-template-columns: 42px 1fr;
      padding: 16px;
    }

    #rk-flow-guide .rk-flow-step::before {
      width: 38px;
      height: 38px;
    }

    #rk-flow-guide .rk-flow-author,
    #rk-flow-guide .rk-flow-final-cta {
      margin: 28px 16px;
    }

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

    #rk-flow-guide .rk-flow-author-mark {
      display: inline-flex;
      margin-top: 17px;
      white-space: normal;
    }

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

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

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

    #rk-flow-guide .rk-flow-author-tabs {
      grid-template-columns: 1fr;
      border-radius: 13px 13px 0 0;
    }

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

    #rk-flow-guide .rk-flow-cta-button,
    #rk-flow-guide .rk-flow-download-link {
      width: 100%;
    }
  }

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

<article id="rk-flow-guide" aria-label="Rotametr i regulacja przepływu w ogrzewaniu podłogowym">
  <div class="rk-flow-shell">
    <div class="rk-flow-progress-track" aria-hidden="true"><div class="rk-flow-progress" id="rk-flow-progress"></div></div>

    <header class="rk-flow-hero">
      <div class="rk-flow-hero-inner">
        <span class="rk-flow-eyebrow"><b aria-hidden="true"></b> Hydraulika podłogówki • aktualizacja 2026</span>
        <div class="rk-flow-hero-title">Rotametr pokazuje przepływ. Projekt mówi, jaki przepływ ma być</div>
        <p class="rk-flow-hero-lead">Naucz się prawidłowo odczytywać wskaźnik, oblicz przepływ wynikający z mocy pętli i zobacz na pięciu animowanych rotametrach, co dzieje się z rozdzielaczem przed oraz po równoważeniu hydraulicznym.</p>
        <div class="rk-flow-meta">
          <span><i aria-hidden="true"></i> Czytanie: około 20 minut</span>
          <span><i aria-hidden="true"></i> Dwa narzędzia interaktywne</span>
          <span><i aria-hidden="true"></i> Aktualizacja: 29 sierpnia 2026 r.</span>
        </div>
      </div>
    </header>

    <nav class="rk-flow-nav" aria-label="Spis treści artykułu">
      <strong>Na skróty</strong>
      <a href="#rk-flow-answer">Szybka odpowiedź</a>
      <a href="#rk-flow-anatomy">Budowa i odczyt</a>
      <a href="#rk-flow-manifold-tool">Symulator 5 pętli</a>
      <a href="#rk-flow-reading">Skala i montaż</a>
      <a href="#rk-flow-regulation">Regulacja</a>
      <a href="#rk-flow-diagnostics">Diagnostyka</a>
      <a href="#rk-flow-checklist">Checklista</a>
      <a href="#rk-flow-faq">FAQ</a>
    </nav>

    <main>
      <section class="rk-flow-section" id="rk-flow-answer">
        <span class="rk-flow-kicker">Odpowiedź w 60 sekund</span>
        <h2>Co pokazuje rotametr w ogrzewaniu podłogowym?</h2>
        <p class="rk-flow-intro">Rotametr pokazuje chwilowy przepływ objętościowy przez konkretną pętlę, najczęściej w litrach na minutę. Nie mierzy bezpośrednio mocy cieplnej, temperatury podłogi ani sprawności instalacji. Prawidłową wartością nie jest jedna uniwersalna liczba, lecz przepływ obliczony dla danego obwodu.</p>

        <div class="rk-flow-answer">
          <div class="rk-flow-answer-main">
            <h3>Najważniejsza zasada</h3>
            <p><strong>Przepływ projektowy wynika przede wszystkim z mocy przekazywanej przez pętlę i przyjętego ΔT.</strong> Długość rury wpływa na opór hydrauliczny i decyduje, czy pompa oraz zawór pozwolą wymaganą wartość osiągnąć.</p>
          </div>
          <div class="rk-flow-answer-side">
            <h3>Nie ustawiaj wszystkich pętli jednakowo</h3>
            <p>Łazienka, salon i sypialnia mogą wymagać różnych przepływów, nawet gdy mają podobną długość rury. Decydują moc obwodu, parametry wody, powierzchnia, rozstaw rur i ograniczenia zastosowanej podłogi.</p>
          </div>
        </div>

        <div class="rk-flow-formula" aria-label="Wzór na przepływ w pętli ogrzewania podłogowego">
          <strong>V̇ [l/min] ≈ Q [W] ÷ (69,8 × ΔT [K])</strong>
          <span>Dla wody w typowych temperaturach ogrzewania podłogowego; przy innym medium należy uwzględnić jego właściwości.</span>
        </div>

        <div class="rk-flow-grid-3">
          <article class="rk-flow-card"><span class="rk-flow-card-number">Rotametr mierzy</span><h3>Przepływ objętościowy</h3><p>Odczyt informuje, ile litrów wody przepływa przez pętlę w ciągu minuty. Zakres skali zależy od konkretnego urządzenia.</p></article>
          <article class="rk-flow-card"><span class="rk-flow-card-number">Rotametr nie mierzy</span><h3>Mocy i temperatury</h3><p>Do określenia przenoszonej mocy potrzebny jest również spadek temperatury pomiędzy zasilaniem i powrotem.</p></article>
          <article class="rk-flow-card"><span class="rk-flow-card-number">Regulacja służy</span><h3>Równoważeniu obwodów</h3><p>Ograniczenie przepływu w części pętli zmienia warunki całego równoległego układu. Każdą korektę trzeba zweryfikować na pozostałych wskaźnikach.</p></article>
        </div>
      </section>

      <section class="rk-flow-section" id="rk-flow-anatomy">
        <span class="rk-flow-kicker">Interaktywna anatomia urządzenia</span>
        <h2>Budowa rotametru i nauka prawidłowego odczytu</h2>
        <p class="rk-flow-intro">Kliknij element urządzenia, ustaw parametry pętli i porusz suwakiem rzeczywistego odczytu. Model pokaże położenie wskaźnika, przepływ wymagany oraz różnicę pomiędzy projektem a stanem instalacji.</p>

        <div class="rk-flow-lab" id="rk-flow-lab">
          <div class="rk-flow-tool-head">
            <h3>Laboratorium rotametru</h3>
            <p>Model jest edukacyjnym przekrojem funkcjonalnym. Konkretna konstrukcja, punkt odczytu, kierunek skali i sposób regulacji muszą być sprawdzone w instrukcji danego rozdzielacza.</p>
          </div>

          <div class="rk-flow-lab-grid">
            <div class="rk-flow-device-stage">
              <svg class="rk-flow-device-svg" id="rk-flow-device-svg" viewBox="0 0 380 650" role="img" aria-labelledby="rk-flow-svg-title rk-flow-svg-desc">
                <title id="rk-flow-svg-title">Interaktywny przekrój rotametru</title>
                <desc id="rk-flow-svg-desc">Przezroczysty wskaźnik przepływu ze skalą, ruchomym pływakiem, zaworem regulacyjnym, uszczelką i przyłączem do rozdzielacza.</desc>
                <defs>
                  <linearGradient id="rk-flow-metal" x1="0" x2="1"><stop offset="0" stop-color="#8ba3ad"/><stop offset="0.28" stop-color="#eef5f7"/><stop offset="0.55" stop-color="#829ba6"/><stop offset="0.82" stop-color="#f5fafb"/><stop offset="1" stop-color="#718a95"/></linearGradient>
                  <linearGradient id="rk-flow-glass" x1="0" x2="1"><stop offset="0" stop-color="#ffffff" stop-opacity="0.82"/><stop offset="0.35" stop-color="#b9edf4" stop-opacity="0.38"/><stop offset="0.7" stop-color="#ffffff" stop-opacity="0.65"/><stop offset="1" stop-color="#7fc9d7" stop-opacity="0.36"/></linearGradient>
                  <linearGradient id="rk-flow-red" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#ff826c"/><stop offset="1" stop-color="#bd281f"/></linearGradient>
                  <filter id="rk-flow-shadow"><feDropShadow dx="0" dy="7" stdDeviation="8" flood-opacity="0.25"/></filter>
                </defs>

                <rect x="28" y="548" width="324" height="72" rx="26" fill="url(#rk-flow-metal)" filter="url(#rk-flow-shadow)"/>
                <rect x="160" y="530" width="60" height="92" rx="10" fill="#526b76"/>
                <rect x="168" y="538" width="44" height="76" rx="8" fill="#243d49"/>
                <path d="M176 614v22m14-22v22m14-22v22" stroke="#a9bec7" stroke-width="4"/>
                <ellipse cx="190" cy="533" rx="43" ry="12" fill="#e14d3d" opacity="0.86"/>
                <ellipse cx="190" cy="533" rx="31" ry="7" fill="#7f1f1a" opacity="0.7"/>

                <rect x="132" y="94" width="116" height="396" rx="29" fill="#6e8a96" opacity="0.55"/>
                <rect class="rk-flow-svg-window" x="140" y="103" width="100" height="378" rx="24" fill="url(#rk-flow-glass)" stroke="#bed3db" stroke-width="4"/>
                <rect x="153" y="118" width="18" height="345" rx="9" fill="#ffffff" opacity="0.46"/>
                <rect x="213" y="118" width="10" height="345" rx="5" fill="#47b4c7" opacity="0.16"/>

                <g stroke="#58727e" stroke-width="2">
                  <path d="M118 118h20"/><path d="M123 176h15"/><path d="M118 234h20"/><path d="M123 292h15"/><path d="M118 350h20"/><path d="M123 408h15"/><path d="M118 466h20"/>
                </g>
                <g class="rk-flow-svg-label" text-anchor="end">
                  <text id="rk-flow-scale-label-0" x="110" y="123">0,0</text>
                  <text id="rk-flow-scale-label-1" x="115" y="181">0,5</text>
                  <text id="rk-flow-scale-label-2" x="110" y="239">1,0</text>
                  <text id="rk-flow-scale-label-3" x="115" y="297">1,5</text>
                  <text id="rk-flow-scale-label-4" x="110" y="355">2,0</text>
                  <text id="rk-flow-scale-label-5" x="115" y="413">2,5</text>
                  <text id="rk-flow-scale-label-6" x="110" y="471">3,0</text>
                </g>
                <text class="rk-flow-svg-unit" x="190" y="77" text-anchor="middle">L/MIN</text>

                <line id="rk-flow-big-target" x1="127" y1="280" x2="253" y2="280" stroke="#42d4a4" stroke-width="4" stroke-dasharray="7 5"/>
                <text id="rk-flow-target-label" x="260" y="285" fill="#7af3c7" font-size="12" font-weight="900">CEL</text>

                <g id="rk-flow-big-float" class="rk-flow-svg-float">
                  <rect x="147" y="108" width="86" height="27" rx="9" fill="url(#rk-flow-red)" stroke="#8f251d" stroke-width="3"/>
                  <rect x="155" y="115" width="70" height="4" rx="2" fill="#ffd0c9" opacity="0.7"/>
                  <path d="M160 136h60l-8 13h-44z" fill="#9f261f"/>
                </g>

                <path d="M190 512c-15-13-15-32 0-45 15 13 15 32 0 45z" fill="#2fcfe0" opacity="0.8"/>
                <path d="M190 451v-34" stroke="#2fcfe0" stroke-width="5" stroke-linecap="round"/>
                <path d="M180 430l10-13 10 13" fill="none" stroke="#2fcfe0" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>

                <rect x="144" y="478" width="92" height="60" rx="15" fill="url(#rk-flow-red)" stroke="#8f251d" stroke-width="4"/>
                <path d="M154 493h72m-72 13h72m-72 13h72" stroke="#ffb2a6" stroke-width="3" opacity="0.7"/>
                <ellipse cx="190" cy="538" rx="37" ry="8" fill="#1d2d35" opacity="0.55"/>
                <ellipse cx="190" cy="538" rx="27" ry="5" fill="#e4edf0"/>
                <ellipse cx="190" cy="538" rx="20" ry="4" fill="#df4537"/>
              </svg>

              <div class="rk-flow-part-buttons" aria-label="Elementy rotametru">
                <button type="button" class="rk-flow-part-button is-active" data-part="scale">Korpus i skala</button>
                <button type="button" class="rk-flow-part-button" data-part="float">Wskaźnik</button>
                <button type="button" class="rk-flow-part-button" data-part="valve">Regulacja</button>
                <button type="button" class="rk-flow-part-button" data-part="seal">Uszczelnienie</button>
                <button type="button" class="rk-flow-part-button" data-part="connection">Przyłącze</button>
              </div>
            </div>

            <div class="rk-flow-lab-panel">
              <div class="rk-flow-part-info">
                <h4 id="rk-flow-part-title">Przezroczysty korpus i skala</h4>
                <p id="rk-flow-part-copy">Korpus umożliwia obserwację elementu pomiarowego. Zakres, kierunek skali, dopuszczalna temperatura, ciśnienie i medium zależą od modelu; należy je sprawdzić w dokumentacji producenta.</p>
              </div>

              <div class="rk-flow-field-grid">
                <div class="rk-flow-field">
                  <label for="rk-flow-lab-power">Moc przypisana do pętli [W]</label>
                  <input type="number" id="rk-flow-lab-power" min="50" max="1500" step="10" value="420">
                </div>
                <div class="rk-flow-field">
                  <label for="rk-flow-lab-dt">Projektowe ΔT [K]</label>
                  <input type="number" id="rk-flow-lab-dt" min="2" max="15" step="0.5" value="5">
                </div>
                <div class="rk-flow-field">
                  <label for="rk-flow-lab-direction">Kierunek skali modelu</label>
                  <select id="rk-flow-lab-direction"><option value="zero-top">Zero u góry</option><option value="zero-bottom">Zero na dole</option></select>
                </div>
                <div class="rk-flow-field">
                  <label for="rk-flow-lab-symptom">Zachowanie wskaźnika</label>
                  <select id="rk-flow-lab-symptom"><option value="stable">Stabilny odczyt</option><option value="jumping">Pływak skacze</option><option value="stuck">Zablokowany wskaźnik</option><option value="dirty">Zabrudzony korpus</option></select>
                </div>
                <div class="rk-flow-field is-wide">
                  <div class="rk-flow-range-wrap">
                    <div class="rk-flow-range-head"><span>Rzeczywisty odczyt</span><strong id="rk-flow-lab-actual-label">1,20 l/min</strong></div>
                    <input type="range" id="rk-flow-lab-actual" min="0" max="3" step="0.05" value="1.2">
                  </div>
                </div>
              </div>

              <div class="rk-flow-live-result">
                <div class="rk-flow-live-stat"><span>Przepływ wymagany</span><strong id="rk-flow-lab-required">1,20</strong></div>
                <div class="rk-flow-live-stat"><span>Odczyt</span><strong id="rk-flow-lab-actual-stat">1,20</strong></div>
                <div class="rk-flow-live-stat"><span>Odchylenie</span><strong id="rk-flow-lab-deviation">0%</strong></div>
              </div>

              <div class="rk-flow-state-box" id="rk-flow-lab-state">
                <h4 id="rk-flow-lab-state-title">Odczyt zgodny z celem</h4>
                <p id="rk-flow-lab-state-copy">Przepływ mieści się w przyjętym paśmie tolerancji. Po każdej korekcie sprawdź jeszcze pozostałe pętle oraz stabilność pompy.</p>
              </div>
            </div>
          </div>
          <p class="rk-flow-tool-note">Model nie określa rzeczywistej charakterystyki konkretnego przepływomierza. Punkt odczytu, kierunek ruchu i sposób regulacji należy zawsze zweryfikować w instrukcji rozdzielacza.</p>
        </div>
      </section>

<section class="rk-flow-section" id="rk-flow-manifold-tool">
        <span class="rk-flow-kicker">Pięć pętli, pięć różnych wartości</span>
        <h2>Interaktywny symulator równoważenia rozdzielacza</h2>
        <p class="rk-flow-intro">Zmień moc, długość i rzeczywisty odczyt każdego obwodu. Zielona linia pokaże przepływ obliczony z mocy oraz ΔT, a czerwony wskaźnik przesunie się dokładnie tak, jak pływak na rotametrze. Długość pętli nie zmienia celu — służy do oceny ryzyka nadmiernego oporu.</p>

        <div class="rk-flow-manifold" id="rk-flow-manifold">
          <div class="rk-flow-tool-head">
            <h3>Rozdzielacz pięcioobwodowy na żywo</h3>
            <p>Ustaw parametry, porównaj cel z odczytem albo wybierz gotowy scenariusz diagnostyczny. Wszystkie wartości pozostają edytowalne.</p>
          </div>

          <div class="rk-flow-manifold-controls">
            <div class="rk-flow-field"><label for="rk-flow-global-dt">Projektowe ΔT wszystkich pętli [K]</label><input type="number" id="rk-flow-global-dt" min="2" max="15" step="0.5" value="5"></div>
            <div class="rk-flow-field"><label for="rk-flow-scale-max">Zakres skali rotametrów</label><select id="rk-flow-scale-max"><option value="3">0–3 l/min</option><option value="4">0–4 l/min</option><option value="5">0–5 l/min</option></select></div>
            <div class="rk-flow-field"><label for="rk-flow-tolerance">Tolerancja porównania</label><select id="rk-flow-tolerance"><option value="10">±10%</option><option value="15">±15%</option><option value="20">±20%</option></select></div>
          </div>

          <div class="rk-flow-scenario-buttons" aria-label="Gotowe scenariusze pracy rozdzielacza">
            <button type="button" class="rk-flow-scenario-button is-active" data-scenario="unbalanced">Układ rozregulowany</button>
            <button type="button" class="rk-flow-scenario-button" data-scenario="balanced">Ustaw według projektu</button>
            <button type="button" class="rk-flow-scenario-button" data-scenario="air">Zapowietrzona pętla</button>
            <button type="button" class="rk-flow-scenario-button" data-scenario="filter">Zabrudzony filtr</button>
            <button type="button" class="rk-flow-scenario-button" data-scenario="actuator">Zamknięty obwód</button>
            <button type="button" class="rk-flow-scenario-button" data-scenario="reset">Przywróć dane</button>
          </div>

          <div class="rk-flow-meters-grid">
            <article class="rk-flow-loop-card" data-loop="0">
              <div class="rk-flow-loop-head"><strong>Salon</strong><span>Pętla 01</span></div>
              <div class="rk-flow-mini-meter-wrap">
                <div class="rk-flow-mini-meter">
                  <div class="rk-flow-mini-scale"><span data-scale-step="0" style="top:0%">0</span><span data-scale-step="1" style="top:25%">0,75</span><span data-scale-step="2" style="top:50%">1,5</span><span data-scale-step="3" style="top:75%">2,25</span><span data-scale-step="4" style="top:100%">3</span></div>
                  <div class="rk-flow-mini-tube"><div class="rk-flow-mini-target"></div><div class="rk-flow-mini-float"></div></div>
                </div>
                <div class="rk-flow-loop-status">Odczyt prawidłowy</div>
              </div>
              <div class="rk-flow-loop-controls">
                <div class="rk-flow-loop-field"><label><span>Moc [W]</span><b class="rk-flow-loop-target-label">cel 0,00</b></label><input class="rk-flow-loop-power" type="number" min="50" max="1500" step="10" value="650"></div>
                <div class="rk-flow-loop-field"><label><span>Długość [m]</span><b>kontrola oporu</b></label><input class="rk-flow-loop-length" type="number" min="10" max="150" step="1" value="85"></div>
                <div class="rk-flow-loop-field"><label><span>Odczyt [l/min]</span><b class="rk-flow-loop-actual-label">1,10</b></label><input class="rk-flow-loop-actual" type="range" min="0" max="3" step="0.05" value="1.1"></div>
              </div>
            </article>

            <article class="rk-flow-loop-card" data-loop="1">
              <div class="rk-flow-loop-head"><strong>Kuchnia</strong><span>Pętla 02</span></div>
              <div class="rk-flow-mini-meter-wrap">
                <div class="rk-flow-mini-meter">
                  <div class="rk-flow-mini-scale"><span data-scale-step="0" style="top:0%">0</span><span data-scale-step="1" style="top:25%">0,75</span><span data-scale-step="2" style="top:50%">1,5</span><span data-scale-step="3" style="top:75%">2,25</span><span data-scale-step="4" style="top:100%">3</span></div>
                  <div class="rk-flow-mini-tube"><div class="rk-flow-mini-target"></div><div class="rk-flow-mini-float"></div></div>
                </div>
                <div class="rk-flow-loop-status">Odczyt prawidłowy</div>
              </div>
              <div class="rk-flow-loop-controls">
                <div class="rk-flow-loop-field"><label><span>Moc [W]</span><b class="rk-flow-loop-target-label">cel 0,00</b></label><input class="rk-flow-loop-power" type="number" min="50" max="1500" step="10" value="420"></div>
                <div class="rk-flow-loop-field"><label><span>Długość [m]</span><b>kontrola oporu</b></label><input class="rk-flow-loop-length" type="number" min="10" max="150" step="1" value="65"></div>
                <div class="rk-flow-loop-field"><label><span>Odczyt [l/min]</span><b class="rk-flow-loop-actual-label">1,40</b></label><input class="rk-flow-loop-actual" type="range" min="0" max="3" step="0.05" value="1.4"></div>
              </div>
            </article>

            <article class="rk-flow-loop-card" data-loop="2">
              <div class="rk-flow-loop-head"><strong>Łazienka</strong><span>Pętla 03</span></div>
              <div class="rk-flow-mini-meter-wrap">
                <div class="rk-flow-mini-meter">
                  <div class="rk-flow-mini-scale"><span data-scale-step="0" style="top:0%">0</span><span data-scale-step="1" style="top:25%">0,75</span><span data-scale-step="2" style="top:50%">1,5</span><span data-scale-step="3" style="top:75%">2,25</span><span data-scale-step="4" style="top:100%">3</span></div>
                  <div class="rk-flow-mini-tube"><div class="rk-flow-mini-target"></div><div class="rk-flow-mini-float"></div></div>
                </div>
                <div class="rk-flow-loop-status">Odczyt prawidłowy</div>
              </div>
              <div class="rk-flow-loop-controls">
                <div class="rk-flow-loop-field"><label><span>Moc [W]</span><b class="rk-flow-loop-target-label">cel 0,00</b></label><input class="rk-flow-loop-power" type="number" min="50" max="1500" step="10" value="380"></div>
                <div class="rk-flow-loop-field"><label><span>Długość [m]</span><b>kontrola oporu</b></label><input class="rk-flow-loop-length" type="number" min="10" max="150" step="1" value="55"></div>
                <div class="rk-flow-loop-field"><label><span>Odczyt [l/min]</span><b class="rk-flow-loop-actual-label">1,70</b></label><input class="rk-flow-loop-actual" type="range" min="0" max="3" step="0.05" value="1.7"></div>
              </div>
            </article>

            <article class="rk-flow-loop-card" data-loop="3">
              <div class="rk-flow-loop-head"><strong>Sypialnia</strong><span>Pętla 04</span></div>
              <div class="rk-flow-mini-meter-wrap">
                <div class="rk-flow-mini-meter">
                  <div class="rk-flow-mini-scale"><span data-scale-step="0" style="top:0%">0</span><span data-scale-step="1" style="top:25%">0,75</span><span data-scale-step="2" style="top:50%">1,5</span><span data-scale-step="3" style="top:75%">2,25</span><span data-scale-step="4" style="top:100%">3</span></div>
                  <div class="rk-flow-mini-tube"><div class="rk-flow-mini-target"></div><div class="rk-flow-mini-float"></div></div>
                </div>
                <div class="rk-flow-loop-status">Odczyt prawidłowy</div>
              </div>
              <div class="rk-flow-loop-controls">
                <div class="rk-flow-loop-field"><label><span>Moc [W]</span><b class="rk-flow-loop-target-label">cel 0,00</b></label><input class="rk-flow-loop-power" type="number" min="50" max="1500" step="10" value="300"></div>
                <div class="rk-flow-loop-field"><label><span>Długość [m]</span><b>kontrola oporu</b></label><input class="rk-flow-loop-length" type="number" min="10" max="150" step="1" value="60"></div>
                <div class="rk-flow-loop-field"><label><span>Odczyt [l/min]</span><b class="rk-flow-loop-actual-label">0,70</b></label><input class="rk-flow-loop-actual" type="range" min="0" max="3" step="0.05" value="0.7"></div>
              </div>
            </article>

            <article class="rk-flow-loop-card" data-loop="4">
              <div class="rk-flow-loop-head"><strong>Korytarz</strong><span>Pętla 05</span></div>
              <div class="rk-flow-mini-meter-wrap">
                <div class="rk-flow-mini-meter">
                  <div class="rk-flow-mini-scale"><span data-scale-step="0" style="top:0%">0</span><span data-scale-step="1" style="top:25%">0,75</span><span data-scale-step="2" style="top:50%">1,5</span><span data-scale-step="3" style="top:75%">2,25</span><span data-scale-step="4" style="top:100%">3</span></div>
                  <div class="rk-flow-mini-tube"><div class="rk-flow-mini-target"></div><div class="rk-flow-mini-float"></div></div>
                </div>
                <div class="rk-flow-loop-status">Odczyt prawidłowy</div>
              </div>
              <div class="rk-flow-loop-controls">
                <div class="rk-flow-loop-field"><label><span>Moc [W]</span><b class="rk-flow-loop-target-label">cel 0,00</b></label><input class="rk-flow-loop-power" type="number" min="50" max="1500" step="10" value="180"></div>
                <div class="rk-flow-loop-field"><label><span>Długość [m]</span><b>kontrola oporu</b></label><input class="rk-flow-loop-length" type="number" min="10" max="150" step="1" value="35"></div>
                <div class="rk-flow-loop-field"><label><span>Odczyt [l/min]</span><b class="rk-flow-loop-actual-label">1,20</b></label><input class="rk-flow-loop-actual" type="range" min="0" max="3" step="0.05" value="1.2"></div>
              </div>
            </article>
          </div>

          <div class="rk-flow-manifold-summary">
            <div class="rk-flow-summary-card"><span>Przepływ wymagany</span><strong id="rk-flow-total-target">0,00 l/min</strong></div>
            <div class="rk-flow-summary-card"><span>Przepływ odczytany</span><strong id="rk-flow-total-actual">0,00 l/min</strong></div>
            <div class="rk-flow-summary-card"><span>Pętle w tolerancji</span><strong id="rk-flow-balanced-count">0 z 5</strong></div>
            <div class="rk-flow-summary-card"><span>Ocena rozdzielacza</span><strong id="rk-flow-manifold-verdict">Do regulacji</strong></div>
          </div>

          <div class="rk-flow-chart" aria-label="Wykres przepływów wymaganych i odczytanych">
            <div class="rk-flow-chart-row" data-chart-loop="0"><span>Salon</span><div class="rk-flow-chart-bars"><div class="rk-flow-chart-target"></div><div class="rk-flow-chart-actual"></div></div><b class="rk-flow-chart-value">0,00</b></div>
            <div class="rk-flow-chart-row" data-chart-loop="1"><span>Kuchnia</span><div class="rk-flow-chart-bars"><div class="rk-flow-chart-target"></div><div class="rk-flow-chart-actual"></div></div><b class="rk-flow-chart-value">0,00</b></div>
            <div class="rk-flow-chart-row" data-chart-loop="2"><span>Łazienka</span><div class="rk-flow-chart-bars"><div class="rk-flow-chart-target"></div><div class="rk-flow-chart-actual"></div></div><b class="rk-flow-chart-value">0,00</b></div>
            <div class="rk-flow-chart-row" data-chart-loop="3"><span>Sypialnia</span><div class="rk-flow-chart-bars"><div class="rk-flow-chart-target"></div><div class="rk-flow-chart-actual"></div></div><b class="rk-flow-chart-value">0,00</b></div>
            <div class="rk-flow-chart-row" data-chart-loop="4"><span>Korytarz</span><div class="rk-flow-chart-bars"><div class="rk-flow-chart-target"></div><div class="rk-flow-chart-actual"></div></div><b class="rk-flow-chart-value">0,00</b></div>
          </div>
          <div class="rk-flow-chart-legend"><span><i style="background:#16836b"></i> przepływ wymagany</span><span><i style="background:#ff6a3d"></i> przepływ odczytany</span></div>

          <div class="rk-flow-table-wrap" style="margin:0 clamp(22px,4vw,38px) 28px">
            <table class="rk-flow-table">
              <thead><tr><th scope="col">Pętla</th><th scope="col">Wymagany</th><th scope="col">Odczyt</th><th scope="col">Odchylenie</th><th scope="col">Ocena</th></tr></thead>
              <tbody>
                <tr data-result-loop="0"><th scope="row">Salon</th><td data-label="Wymagany" class="rk-flow-result-target">—</td><td data-label="Odczyt" class="rk-flow-result-actual">—</td><td data-label="Odchylenie" class="rk-flow-result-deviation">—</td><td data-label="Ocena" class="rk-flow-result-status">—</td></tr>
                <tr data-result-loop="1"><th scope="row">Kuchnia</th><td data-label="Wymagany" class="rk-flow-result-target">—</td><td data-label="Odczyt" class="rk-flow-result-actual">—</td><td data-label="Odchylenie" class="rk-flow-result-deviation">—</td><td data-label="Ocena" class="rk-flow-result-status">—</td></tr>
                <tr data-result-loop="2"><th scope="row">Łazienka</th><td data-label="Wymagany" class="rk-flow-result-target">—</td><td data-label="Odczyt" class="rk-flow-result-actual">—</td><td data-label="Odchylenie" class="rk-flow-result-deviation">—</td><td data-label="Ocena" class="rk-flow-result-status">—</td></tr>
                <tr data-result-loop="3"><th scope="row">Sypialnia</th><td data-label="Wymagany" class="rk-flow-result-target">—</td><td data-label="Odczyt" class="rk-flow-result-actual">—</td><td data-label="Odchylenie" class="rk-flow-result-deviation">—</td><td data-label="Ocena" class="rk-flow-result-status">—</td></tr>
                <tr data-result-loop="4"><th scope="row">Korytarz</th><td data-label="Wymagany" class="rk-flow-result-target">—</td><td data-label="Odczyt" class="rk-flow-result-actual">—</td><td data-label="Odchylenie" class="rk-flow-result-deviation">—</td><td data-label="Ocena" class="rk-flow-result-status">—</td></tr>
              </tbody>
            </table>
          </div>

          <p class="rk-flow-tool-note">Symulator nie wylicza rzeczywistego przepływu na podstawie długości. Do tego potrzebne są m.in. charakterystyka pompy, opory rur, zaworów, rozdzielacza, medium i magistrali. Długość służy wyłącznie do ostrzegania o konieczności kontroli hydraulicznej.</p>
        </div>

        <aside class="rk-flow-cta" aria-label="Projekt ogrzewania podłogowego z przepływami">
          <span class="rk-flow-kicker" style="color:#7af0ff">Znasz przepływ docelowy — teraz sprawdź możliwość jego osiągnięcia</span>
          <h2>Rotametr pokaże wynik, ale nie zaprojektuje hydrauliki instalacji</h2>
          <p>Symulator oblicza przepływ z mocy i ΔT oraz porównuje go z odczytem. Nie sprawdzi jednak, czy pompa zapewni wymagane ciśnienie, czy pętle mają prawidłowe długości ani jakie powinny być nastawy wszystkich zaworów. Do tego potrzebne są pełne obliczenia cieplne i hydrauliczne.</p>
          <a class="rk-flow-cta-button rk-flow-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z przepływami i nastawami rotametrów</a>
          <small class="rk-flow-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </aside>
      </section>


      <section class="rk-flow-section" id="rk-flow-reading">
        <span class="rk-flow-kicker">Skala, kierunek i miejsce montażu</span>
        <h2>Jak prawidłowo odczytać rotametr?</h2>
        <p class="rk-flow-intro">Najpierw rozpoznaj konstrukcję konkretnego przepływomierza. Nie w każdym modelu zero znajduje się w tym samym miejscu, a element wskazujący może poruszać się w przeciwnym kierunku. Również krawędź, z której wykonuje się odczyt, wynika z dokumentacji producenta.</p>

        <div class="rk-flow-grid-3">
          <article class="rk-flow-card"><span class="rk-flow-card-number">01 • Kierunek skali</span><h3>Zero może być u góry albo na dole</h3><p>W rozdzielaczach podłogowych często spotyka się skalę rosnącą w dół, ale nie jest to reguła dla wszystkich konstrukcji.</p></article>
          <article class="rk-flow-card"><span class="rk-flow-card-number">02 • Linia odczytu</span><h3>Sprawdź wskazaną krawędź</h3><p>Nie uśredniaj położenia całego pływaka. Odczyt wykonuje się z krawędzi określonej przez producenta danego wskaźnika.</p></article>
          <article class="rk-flow-card"><span class="rk-flow-card-number">03 • Warunki pracy</span><h3>Pompa i obwody muszą być otwarte</h3><p>Porównanie nastaw wykonuje się przy stabilnej pracy pompy, otwartych obwodach przeznaczonych do regulacji i odpowietrzonej instalacji.</p></article>
        </div>

        <div class="rk-flow-notice"><p><strong>Rotametr na zasilaniu czy na powrocie?</strong> Nie istnieje jedna odpowiedź dla wszystkich rozdzielaczy. Wielu producentów montuje przepływomierze na belce zasilającej, a zawory pod siłowniki na powrotnej. Inne konstrukcje mogą mieć odmienny układ. Należy zachować kierunek przepływu wymagany przez produkt.</p></div>

        <div class="rk-flow-table-wrap">
          <table class="rk-flow-table">
            <thead><tr><th scope="col">Parametr</th><th scope="col">Co należy sprawdzić</th><th scope="col">Dlaczego jest ważny</th></tr></thead>
            <tbody>
              <tr><th scope="row">Zakres skali</th><td data-label="Kontrola">Na przykład 0–3, 0–4 albo 0–5 l/min.</td><td data-label="Znaczenie">Wartość projektowa powinna mieścić się w użytecznej części skali, a nie tuż przy jej granicy.</td></tr>
              <tr><th scope="row">Kierunek przepływu</th><td data-label="Kontrola">Strzałkę, belkę zasilającą i powrotną oraz położenie rozdzielacza.</td><td data-label="Znaczenie">Odwrócony przepływ może powodować błędne wskazanie albo brak prawidłowej regulacji.</td></tr>
              <tr><th scope="row">Punkt odczytu</th><td data-label="Kontrola">Krawędź pływaka lub tłoczka wskazaną w instrukcji.</td><td data-label="Znaczenie">Błąd kilku milimetrów może dać zauważalną różnicę na krótkiej skali.</td></tr>
              <tr><th scope="row">Funkcja regulacyjna</th><td data-label="Kontrola">Czy rotametr ma zintegrowany zawór i blokadę nastawy.</td><td data-label="Znaczenie">Nie każdy wskaźnik jest jednocześnie elementem do dławienia obwodu.</td></tr>
              <tr><th scope="row">Medium</th><td data-label="Kontrola">Wodę, glikol oraz dopuszczone stężenie.</td><td data-label="Znaczenie">Inna gęstość i lepkość mogą wpływać na wskazanie i wymagają danych producenta.</td></tr>
              <tr><th scope="row">Temperatura i ciśnienie</th><td data-label="Kontrola">Dopuszczalne parametry robocze oraz próby.</td><td data-label="Znaczenie">Nie wolno przenosić wartości jednego modelu na wszystkie przepływomierze.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-flow-section" id="rk-flow-hydraulics">
        <span class="rk-flow-kicker">Moc, ΔT i opór hydrauliczny</span>
        <h2>Od czego naprawdę zależy przepływ pętli?</h2>
        <p class="rk-flow-intro">Przepływ wymagany wynika z bilansu energii. Długość, średnica i kształt pętli wpływają na stratę ciśnienia, dlatego decydują o tym, czy pompa jest w stanie taki przepływ wymusić. To dwie różne części projektu i nie wolno ich ze sobą utożsamiać.</p>

        <div class="rk-flow-grid-2">
          <article class="rk-flow-card"><span class="rk-flow-card-number">Przepływ projektowy</span><h3>Moc podzielona przez pojemność cieplną i ΔT</h3><p>Jeżeli pętla ma przekazać więcej watów przy tym samym spadku temperatury, potrzebuje większego przepływu. Zwiększenie ΔT zmniejsza wymagany przepływ, ale zmienia temperatury wody i rozkład temperatury podłogi.</p></article>
          <article class="rk-flow-card"><span class="rk-flow-card-number">Możliwość osiągnięcia</span><h3>Opory pętli, zaworu i całej drogi przepływu</h3><p>Na dostępny przepływ wpływają długość i średnica rury, kształtki, rozdzielacz, zawór, filtr, magistrala, medium oraz spręż dyspozycyjny pompy.</p></article>
        </div>

        <div class="rk-flow-table-wrap">
          <table class="rk-flow-table">
            <thead><tr><th scope="col">Moc pętli</th><th scope="col">ΔT = 5 K</th><th scope="col">ΔT = 7 K</th><th scope="col">Wniosek</th></tr></thead>
            <tbody>
              <tr><th scope="row">250 W</th><td data-label="ΔT = 5 K">około 0,72 l/min</td><td data-label="ΔT = 7 K">około 0,51 l/min</td><td data-label="Wniosek">Mała pętla może mieć prawidłowy przepływ poniżej 1 l/min.</td></tr>
              <tr><th scope="row">400 W</th><td data-label="ΔT = 5 K">około 1,15 l/min</td><td data-label="ΔT = 7 K">około 0,82 l/min</td><td data-label="Wniosek">Jedna uniwersalna nastawa dla całego rozdzielacza nie ma uzasadnienia.</td></tr>
              <tr><th scope="row">700 W</th><td data-label="ΔT = 5 K">około 2,01 l/min</td><td data-label="ΔT = 7 K">około 1,43 l/min</td><td data-label="Wniosek">Większy przepływ może być prawidłowy, jeśli wynika z projektu i mieści się w możliwościach hydraulicznych.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-flow-notice is-red"><p><strong>Nie ratuj zbyt opornej pętli samym zwiększaniem biegu pompy.</strong> Jeśli wymagany przepływ jest nieosiągalny, trzeba sprawdzić długość, średnicę, załamanie rury, zawory, filtr, odpowietrzenie, magistralę i dobór pompy. Wyższe ciśnienie może zwiększyć hałas oraz zużycie energii, nie usuwając przyczyny.</p></div>
      </section>

      <section class="rk-flow-section" id="rk-flow-regulation">
        <span class="rk-flow-kicker">Kolejność ma znaczenie</span>
        <h2>Jak ustawić rotametry na rozdzielaczu krok po kroku?</h2>
        <p class="rk-flow-intro">Poniższa procedura zakłada, że instalacja jest ukończona, szczelna, napełniona, przepłukana i posiada projektowe wartości przepływów. Jeżeli producent rozdzielacza określa inną kolejność regulacji, jego instrukcja ma pierwszeństwo.</p>

        <div class="rk-flow-steps">
          <article class="rk-flow-step"><div><h3>Przygotuj tabelę przepływów projektowych</h3><p>Dla każdej pętli zapisz nazwę pomieszczenia, numer obwodu i wymaganą wartość w l/min. Nie reguluj wszystkich wskaźników na jedną liczbę.</p></div></article>
          <article class="rk-flow-step"><div><h3>Sprawdź kierunek i zakres przepływomierzy</h3><p>Potwierdź belkę zasilającą i powrotną, kierunek strzałek, punkt odczytu, zakres skali oraz sposób odblokowania i regulacji danego modelu.</p></div></article>
          <article class="rk-flow-step"><div><h3>Otwórz obwody przeznaczone do równoważenia</h3><p>Siłowniki i zawory muszą pozwalać na przepływ. Upewnij się, że sterowanie pokojowe nie zamknęło części pętli podczas regulacji.</p></div></article>
          <article class="rk-flow-step"><div><h3>Odpowietrz i przepłucz instalację</h3><p>Niestabilny strumień oraz pęcherze powietrza uniemożliwiają wiarygodny odczyt. Pętle przepłukuje się zgodnie z procedurą rozruchu, zwykle pojedynczo.</p></div></article>
          <article class="rk-flow-step"><div><h3>Ustaw pompę w przewidzianym trybie pracy</h3><p>Pompa powinna pracować stabilnie i zapewniać projektowy punkt pracy. Regulacja na przypadkowym najwyższym biegu nie daje miarodajnych nastaw eksploatacyjnych.</p></div></article>
          <article class="rk-flow-step"><div><h3>Ustawiaj wartości projektowe na kolejnych pętlach</h3><p>Reguluj powoli i zgodnie z konstrukcją zaworu. Po zmianie poczekaj na uspokojenie wskazania przed oceną wartości.</p></div></article>
          <article class="rk-flow-step"><div><h3>Wróć do wcześniej ustawionych obwodów</h3><p>Pętle pracują równolegle, dlatego korekta jednej może zmienić przepływy w pozostałych. Wykonaj co najmniej jedną pełną rundę kontroli całego rozdzielacza.</p></div></article>
          <article class="rk-flow-step"><div><h3>Zablokuj i udokumentuj nastawy</h3><p>Zastosuj blokady przewidziane przez producenta, zapisz wartości, oznacz pętle oraz zweryfikuj pracę instalacji po osiągnięciu stabilnych temperatur.</p></div></article>
        </div>

        <p style="margin-top:24px">Więcej o doborze elementów belki znajdziesz w przewodniku <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz do ogrzewania podłogowego</a>, a zależność pomiędzy przepływem i dostępnym sprężem rozwija <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej</a>.</p>
      </section>

      <section class="rk-flow-section" id="rk-flow-diagnostics">
        <span class="rk-flow-kicker">Objaw nie jest jeszcze diagnozą</span>
        <h2>Rotametr wskazuje zero, skacze albo nie reaguje — co sprawdzić?</h2>
        <p class="rk-flow-intro">Kliknij objaw. Zamiast jednej automatycznej odpowiedzi otrzymasz uporządkowaną listę możliwych przyczyn oraz bezpieczną kolejność kontroli.</p>

        <div class="rk-flow-diagnostic">
          <div class="rk-flow-diagnostic-buttons" role="group" aria-label="Wybór objawu rotametru">
            <button type="button" class="rk-flow-diagnostic-button is-active" data-diagnostic="stable">Stabilny odczyt</button>
            <button type="button" class="rk-flow-diagnostic-button" data-diagnostic="jumping">Pływak skacze lub drga</button>
            <button type="button" class="rk-flow-diagnostic-button" data-diagnostic="onezero">Jeden rotametr wskazuje zero</button>
            <button type="button" class="rk-flow-diagnostic-button" data-diagnostic="allzero">Wszystkie wskazują zero</button>
            <button type="button" class="rk-flow-diagnostic-button" data-diagnostic="dirty">Wskaźnik jest mętny lub zablokowany</button>
          </div>

          <div class="rk-flow-diagnostic-result" aria-live="polite">
            <span class="rk-flow-kicker" id="rk-flow-diagnostic-label">Stan odniesienia</span>
            <h3 id="rk-flow-diagnostic-title">Stabilny odczyt zgodny z projektem</h3>
            <p id="rk-flow-diagnostic-copy">Wskaźnik nie pulsuje, a jego wartość pozostaje w pobliżu nastawy projektowej. To dobry punkt wyjścia, ale trzeba jeszcze zweryfikować pozostałe obwody i temperatury instalacji.</p>
            <h4>Sprawdź kolejno:</h4>
            <ul id="rk-flow-diagnostic-list"><li>zgodność odczytu z tabelą projektową,</li><li>stabilność wszystkich pętli,</li><li>temperaturę zasilania i powrotu po ustabilizowaniu pracy.</li></ul>
          </div>
        </div>

        <div class="rk-flow-notice"><p><strong>Nie odkręcaj rotametru pod ciśnieniem.</strong> Czyszczenie albo wymiana wkładki wymaga odcięcia odpowiedniej części instalacji, obniżenia ciśnienia i wykonania procedury przewidzianej przez producenta. Po ponownym montażu należy sprawdzić szczelność.</p></div>
      </section>

      <section class="rk-flow-section" id="rk-flow-errors">
        <span class="rk-flow-kicker">Błędy regulacji i interpretacji</span>
        <h2>Najczęstsze błędy przy rotametrach</h2>
        <div class="rk-flow-errors">
          <article class="rk-flow-error"><b>Błąd 01</b><h3>Jednakowy przepływ na każdej pętli</h3><p>Obwody mają różne moce, powierzchnie i warunki pracy. Jedna wartość dla całej belki zwykle nie odpowiada projektowi.</p></article>
          <article class="rk-flow-error"><b>Błąd 02</b><h3>Wyznaczanie przepływu wyłącznie z długości</h3><p>Długość wpływa na opór, ale przepływ docelowy wynika z mocy pętli i ΔT.</p></article>
          <article class="rk-flow-error"><b>Błąd 03</b><h3>Regulacja przy zamkniętych siłownikach</h3><p>Sterowanie pokojowe zmienia stan obwodów, więc odczyty nie przedstawiają pełnych warunków równoważenia.</p></article>
          <article class="rk-flow-error"><b>Błąd 04</b><h3>Najwyższy bieg pompy jako rozwiązanie</h3><p>Zwiększenie ciśnienia może jedynie zamaskować opór, zwiększyć hałas i zmienić wszystkie nastawy.</p></article>
          <article class="rk-flow-error"><b>Błąd 05</b><h3>Odczyt z niewłaściwej krawędzi</h3><p>Interpretacja zależy od konstrukcji wskaźnika. Punkt odczytu trzeba sprawdzić w instrukcji urządzenia.</p></article>
          <article class="rk-flow-error"><b>Błąd 06</b><h3>Założenie, że rotametr zawsze jest na powrocie</h3><p>W wielu rozdzielaczach przepływomierze pracują na zasilaniu. Liczy się układ i kierunek wymagany przez produkt.</p></article>
          <article class="rk-flow-error"><b>Błąd 07</b><h3>Regulacja zapowietrzonego układu</h3><p>Pęcherze gazu powodują niestabilny odczyt i mogą blokować część obwodu. Najpierw usuwa się przyczynę.</p></article>
          <article class="rk-flow-error"><b>Błąd 08</b><h3>Brak ponownej kontroli całej belki</h3><p>Każde dławienie zmienia rozdział ciśnienia. Poprzednio ustawione pętle trzeba sprawdzić ponownie.</p></article>
        </div>
      </section>

      <section class="rk-flow-section" id="rk-flow-checklist">
        <span class="rk-flow-kicker">Checklista przed odbiorem nastaw</span>
        <h2>Co powinno być sprawdzone i zapisane?</h2>
        <div class="rk-flow-checklist">
          <div class="rk-flow-checkitem">Numer i nazwa każdej pętli</div>
          <div class="rk-flow-checkitem">Projektowa moc przypisana do obwodu</div>
          <div class="rk-flow-checkitem">Wymagany przepływ w l/min</div>
          <div class="rk-flow-checkitem">Projektowe ΔT instalacji</div>
          <div class="rk-flow-checkitem">Długość oraz średnica rury</div>
          <div class="rk-flow-checkitem">Zakres i kierunek skali rotametru</div>
          <div class="rk-flow-checkitem">Stan siłowników i zaworów</div>
          <div class="rk-flow-checkitem">Odpowietrzenie oraz czystość filtra</div>
          <div class="rk-flow-checkitem">Tryb i nastawa pompy obiegowej</div>
          <div class="rk-flow-checkitem">Końcowy odczyt każdego obwodu</div>
          <div class="rk-flow-checkitem">Ponowna kontrola po pełnej regulacji</div>
          <div class="rk-flow-checkitem">Dokumentacja zdjęciowa rozdzielacza</div>
        </div>

        <div class="rk-flow-download" aria-label="Bezpłatna infografika o rotametrach">
          <div class="rk-flow-download-preview" aria-hidden="true">
            <svg viewBox="0 0 120 150"><rect x="24" y="8" width="72" height="134" rx="8"/><path d="M38 31h44M38 47h44M38 63h27M44 91h32v35H44zM52 98v20m8-20v20m8-20v20"/></svg>
          </div>
          <div>
            <span class="rk-flow-kicker">Darmowy materiał na budowę</span>
            <h3>Pobierz infografikę o rotametrach</h3>
            <p>Jednostronicowe opracowanie zawiera schemat budowy, podstawowe zasady odczytu, tabelę i checklistę najczęstszych błędów. Możesz zapisać je w telefonie albo wydrukować.</p>
            <a class="rk-flow-download-link" href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego.pdf" target="_blank" rel="noopener">Pobierz bezpłatny poradnik PDF</a>
          </div>
        </div>
      </section>

      <section class="rk-flow-section" id="rk-flow-faq">
        <span class="rk-flow-kicker">Najczęstsze pytania inwestorów i instalatorów</span>
        <h2>Rotametry w ogrzewaniu podłogowym — FAQ</h2>
        <div class="rk-flow-faq">
          <details><summary>Jaki przepływ ustawić na rotametrze ogrzewania podłogowego?</summary><div class="rk-flow-faq-answer"><p>Wartość powinna wynikać z mocy przypisanej do pętli i projektowego ΔT. Nie istnieje jeden przepływ właściwy dla wszystkich obwodów. Długość rury służy następnie do sprawdzenia oporu i możliwości osiągnięcia wymaganej wartości.</p></div></details>
          <details><summary>Jak obliczyć przepływ w pojedynczej pętli?</summary><div class="rk-flow-faq-answer"><p>Dla wody można orientacyjnie zastosować zależność: przepływ w l/min równa się mocy pętli w watach podzielonej przez iloczyn 69,8 i ΔT w kelwinach. Wynik trzeba skonfrontować z hydrauliką obwodu oraz zakresem rotametru.</p></div></details>
          <details><summary>Czy długość pętli wyznacza ustawienie rotametru?</summary><div class="rk-flow-faq-answer"><p>Nie bezpośrednio. Długość zwiększa lub zmniejsza stratę ciśnienia, natomiast przepływ projektowy wynika z mocy i ΔT. Długa pętla może nie osiągnąć potrzebnej wartości, jeśli jej opór jest zbyt duży dla dostępnego sprężu pompy.</p></div></details>
          <details><summary>Czy rotametry montuje się na zasilaniu czy na powrocie?</summary><div class="rk-flow-faq-answer"><p>Zależy to od konstrukcji rozdzielacza. W wielu rozwiązaniach przepływomierze znajdują się na belce zasilającej, a zawory z siłownikami na powrotnej. Należy zachować położenie i kierunek przepływu wskazany przez producenta.</p></div></details>
          <details><summary>Dlaczego jeden rotametr wskazuje zero?</summary><div class="rk-flow-faq-answer"><p>Możliwe przyczyny to zamknięty zawór lub siłownik, zapowietrzenie, zablokowana iglica, zabrudzony wskaźnik, niedrożność albo załamanie rury. Najpierw porównuje się ten obwód z pozostałymi i sprawdza elementy dostępne przy rozdzielaczu.</p></div></details>
          <details><summary>Dlaczego wszystkie rotametry wskazują zero?</summary><div class="rk-flow-faq-answer"><p>Należy sprawdzić pracę pompy, zawory główne, sterowanie, zasilanie siłowników, filtr, ciśnienie, odpowietrzenie i prawidłowy kierunek przepływu. Awaria pompy jest tylko jedną z możliwych przyczyn.</p></div></details>
          <details><summary>Co oznacza skaczący albo drgający pływak?</summary><div class="rk-flow-faq-answer"><p>Częstą przyczyną jest powietrze, ale możliwe są również niestabilna praca pompy, pulsowanie zaworu, zanieczyszczenie, niewłaściwy kierunek przepływu albo zbyt duża różnica ciśnienia. Sam objaw nie przesądza diagnozy.</p></div></details>
          <details><summary>Czy można ustawić wszystkie rotametry na 1,5 l/min?</summary><div class="rk-flow-faq-answer"><p>Tylko wtedy, gdy przypadkowo dokładnie takie wartości wynikają z projektu wszystkich pętli. W rzeczywistym domu obwody obsługują różne moce, dlatego jednakowa nastawa zwykle prowadzi do niedopasowania hydraulicznego.</p></div></details>
          <details><summary>Czy większy przepływ zawsze oznacza więcej ciepła?</summary><div class="rk-flow-faq-answer"><p>Nie w sposób nieograniczony. Przenoszona moc zależy jednocześnie od przepływu i różnicy temperatur, a emisja podłogi od jej konstrukcji oraz temperatury powierzchni. Nadmierny przepływ może zwiększać opory, hałas i pobór energii pompy.</p></div></details>
          <details><summary>Czy zabrudzony rotametr można samodzielnie wyczyścić?</summary><div class="rk-flow-faq-answer"><p>Tylko zgodnie z instrukcją producenta, po odcięciu odpowiedniej części instalacji i bezpiecznym obniżeniu ciśnienia. Nie wolno wykręcać wkładki z pracującego rozdzielacza. Po montażu należy sprawdzić szczelność.</p></div></details>
        </div>
      </section>

      <section class="rk-flow-section" id="rk-flow-sources">
        <span class="rk-flow-kicker">Podstawa techniczna opracowania</span>
        <h2>Dokumentacja producenta ma pierwszeństwo</h2>
        <div class="rk-flow-source-box">
          <p>Przykłady przepływomierzy montowanych na belce zasilającej można znaleźć w dokumentacjach rozdzielaczy <a href="https://www.caleffi.com/en-us/assembly-668s1-caleffi-6686c5s1a" target="_blank" rel="noopener nofollow">Caleffi TwistFlow</a>, <a href="https://www.watts.eu/en-gb/products/eu/hydronic-radiant-heating-solutions/stainless-steel-manifolds" target="_blank" rel="noopener nofollow">Watts</a> oraz <a href="https://www.rehau.com/us-en/mechanicalplumbing/search-by-product/pro-balance-manifolds" target="_blank" rel="noopener nofollow">REHAU PRO-BALANCE</a>. Pokazuje to, dlaczego nie wolno przyjmować uniwersalnej zasady o montażu wyłącznie na powrocie.</p>
          <p>Rozdzielacze, skale, blokady i automatyczne sposoby równoważenia różnią się pomiędzy systemami. Artykuł nie zastępuje instrukcji produktu, projektu hydraulicznego, procedury rozruchu ani oceny instalacji na miejscu.</p>
        </div>
        <div class="rk-flow-update">Ostatnia aktualizacja merytoryczna: 29 sierpnia 2026 r.</div>
      </section>
    </main>

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

      <header class="rk-flow-author-head">
        <div><span class="rk-flow-kicker">Autor opracowania</span><h2>Robert Kucharski</h2><p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p></div>
        <span class="rk-flow-author-mark">HYDRAULIKA • HVAC</span>
      </header>

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

        <div class="rk-flow-author-main">
          <blockquote class="rk-flow-author-quote"><p>„Rotametr nie mówi, ile wody powinno płynąć. On tylko pokazuje, ile płynie w tej chwili. Właściwa wartość musi najpierw wynikać z mocy, ΔT i obliczeń hydraulicznych konkretnej pętli.”</p></blockquote>
          <div class="rk-flow-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-flow-author-tab" for="rk-flow-author-about">O autorze</label>
            <label class="rk-flow-author-tab" for="rk-flow-author-exp">Doświadczenie</label>
            <label class="rk-flow-author-tab" for="rk-flow-author-sites">Portale</label>
          </div>
          <div class="rk-flow-author-panel rk-flow-author-panel-about"><p>Projektuję wodne ogrzewanie podłogowe, łącząc obliczenia strat ciepła z doborem temperatur, rozstawów, przepływów, długości pętli, strat ciśnienia i nastaw rozdzielaczy.</p></div>
          <div class="rk-flow-author-panel rk-flow-author-panel-exp"><p>Dokumentacja wykonawcza zawiera dla każdego obwodu długość, wymaganą moc, przepływ oraz nastawę. Dzięki temu rozruch instalacji nie polega na ustawianiu wszystkich rotametrów „na oko”.</p></div>
          <div class="rk-flow-author-panel rk-flow-author-panel-sites"><p>Jestem właścicielem trzech serwisów branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p><div class="rk-flow-site-links"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a></div></div>
        </div>
      </div>
    </section>

    <section class="rk-flow-final-cta" aria-label="Projekt ogrzewania podłogowego z nastawami rotametrów">
      <span class="rk-flow-kicker" style="color:#7af0ff">Zamknij hydraulikę przed uruchomieniem instalacji</span>
      <h2>Otrzymaj projekt z przepływem dla każdej pętli</h2>
      <p>Dokumentacja łączy straty ciepła, temperaturę zasilania i powrotu, rozstawy rur, długości obwodów, przepływy, straty ciśnienia, dobór rozdzielaczy i nastawy. Instalator otrzymuje wartości, które może ustawić i zweryfikować na budowie.</p>
      <a class="rk-flow-cta-button rk-flow-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      <small class="rk-flow-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#article",
      "url": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/",
      "headline": "Rotametr w ogrzewaniu podłogowym – jak odczytać i ustawić przepływ na rozdzielaczu?",
      "description": "Techniczny poradnik o odczycie rotametru, obliczaniu przepływu pętli, równoważeniu rozdzielacza i diagnostyce braku albo niestabilności przepływu.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-29",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "about": [
        {"@type": "Thing", "name": "Rotametr"},
        {"@type": "Thing", "name": "Ogrzewanie podłogowe"},
        {"@type": "Thing", "name": "Równoważenie hydrauliczne"},
        {"@type": "Thing", "name": "Rozdzielacz ogrzewania podłogowego"}
      ],
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"}
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/",
      "name": "Rotametr w ogrzewaniu podłogowym – odczyt i regulacja przepływu",
      "description": "Jak odczytać rotametr, obliczyć właściwy przepływ i wyregulować pętle ogrzewania podłogowego.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-29",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#breadcrumb"},
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#application"},
        {"@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Hydraulika", "item": "https://projekt-ogrzewania.pl/category/hydraulika/"},
        {"@type": "ListItem", "position": 3, "name": "Rotametr w ogrzewaniu podłogowym", "item": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#application",
      "name": "Symulator rotametrów i równoważenia rozdzielacza",
      "url": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#rk-flow-manifold-tool",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "Obsługa JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Interaktywne narzędzie oblicza przepływ wymagany z mocy pętli i delta T, porównuje go z odczytem oraz pokazuje pięć animowanych rotametrów."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#howto",
      "name": "Jak wyregulować rotametry ogrzewania podłogowego?",
      "description": "Bezpieczna kolejność przygotowania, ustawiania i dokumentowania przepływów na rozdzielaczu.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Przygotuj tabelę przepływów projektowych", "text": "Dla każdej pętli zapisz nazwę pomieszczenia, numer obwodu i wymaganą wartość w l/min. Nie reguluj wszystkich wskaźników na jedną liczbę."},
        {"@type": "HowToStep", "position": 2, "name": "Sprawdź kierunek i zakres przepływomierzy", "text": "Potwierdź belkę zasilającą i powrotną, kierunek strzałek, punkt odczytu, zakres skali oraz sposób odblokowania i regulacji danego modelu."},
        {"@type": "HowToStep", "position": 3, "name": "Otwórz obwody przeznaczone do równoważenia", "text": "Siłowniki i zawory muszą pozwalać na przepływ. Upewnij się, że sterowanie pokojowe nie zamknęło części pętli podczas regulacji."},
        {"@type": "HowToStep", "position": 4, "name": "Odpowietrz i przepłucz instalację", "text": "Niestabilny strumień oraz pęcherze powietrza uniemożliwiają wiarygodny odczyt. Pętle przepłukuje się zgodnie z procedurą rozruchu, zwykle pojedynczo."},
        {"@type": "HowToStep", "position": 5, "name": "Ustaw pompę w przewidzianym trybie pracy", "text": "Pompa powinna pracować stabilnie i zapewniać projektowy punkt pracy. Regulacja na przypadkowym najwyższym biegu nie daje miarodajnych nastaw eksploatacyjnych."},
        {"@type": "HowToStep", "position": 6, "name": "Ustawiaj wartości projektowe na kolejnych pętlach", "text": "Reguluj powoli i zgodnie z konstrukcją zaworu. Po zmianie poczekaj na uspokojenie wskazania przed oceną wartości."},
        {"@type": "HowToStep", "position": 7, "name": "Wróć do wcześniej ustawionych obwodów", "text": "Pętle pracują równolegle, dlatego korekta jednej może zmienić przepływy w pozostałych. Wykonaj co najmniej jedną pełną rundę kontroli całego rozdzielacza."},
        {"@type": "HowToStep", "position": 8, "name": "Zablokuj i udokumentuj nastawy", "text": "Zastosuj blokady przewidziane przez producenta, zapisz wartości, oznacz pętle oraz zweryfikuj pracę instalacji po osiągnięciu stabilnych temperatur."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@type": "Question", "name": "Jaki przepływ ustawić na rotametrze ogrzewania podłogowego?", "acceptedAnswer": {"@type": "Answer", "text": "Wartość powinna wynikać z mocy przypisanej do pętli i projektowego ΔT. Nie istnieje jeden przepływ właściwy dla wszystkich obwodów. Długość rury służy następnie do sprawdzenia oporu i możliwości osiągnięcia wymaganej wartości."}},
        {"@type": "Question", "name": "Jak obliczyć przepływ w pojedynczej pętli?", "acceptedAnswer": {"@type": "Answer", "text": "Dla wody można orientacyjnie zastosować zależność: przepływ w l/min równa się mocy pętli w watach podzielonej przez iloczyn 69,8 i ΔT w kelwinach. Wynik trzeba skonfrontować z hydrauliką obwodu oraz zakresem rotametru."}},
        {"@type": "Question", "name": "Czy długość pętli wyznacza ustawienie rotametru?", "acceptedAnswer": {"@type": "Answer", "text": "Nie bezpośrednio. Długość zwiększa lub zmniejsza stratę ciśnienia, natomiast przepływ projektowy wynika z mocy i ΔT. Długa pętla może nie osiągnąć potrzebnej wartości, jeśli jej opór jest zbyt duży dla dostępnego sprężu pompy."}},
        {"@type": "Question", "name": "Czy rotametry montuje się na zasilaniu czy na powrocie?", "acceptedAnswer": {"@type": "Answer", "text": "Zależy to od konstrukcji rozdzielacza. W wielu rozwiązaniach przepływomierze znajdują się na belce zasilającej, a zawory z siłownikami na powrotnej. Należy zachować położenie i kierunek przepływu wskazany przez producenta."}},
        {"@type": "Question", "name": "Dlaczego jeden rotametr wskazuje zero?", "acceptedAnswer": {"@type": "Answer", "text": "Możliwe przyczyny to zamknięty zawór lub siłownik, zapowietrzenie, zablokowana iglica, zabrudzony wskaźnik, niedrożność albo załamanie rury. Najpierw porównuje się ten obwód z pozostałymi i sprawdza elementy dostępne przy rozdzielaczu."}},
        {"@type": "Question", "name": "Dlaczego wszystkie rotametry wskazują zero?", "acceptedAnswer": {"@type": "Answer", "text": "Należy sprawdzić pracę pompy, zawory główne, sterowanie, zasilanie siłowników, filtr, ciśnienie, odpowietrzenie i prawidłowy kierunek przepływu. Awaria pompy jest tylko jedną z możliwych przyczyn."}},
        {"@type": "Question", "name": "Co oznacza skaczący albo drgający pływak?", "acceptedAnswer": {"@type": "Answer", "text": "Częstą przyczyną jest powietrze, ale możliwe są również niestabilna praca pompy, pulsowanie zaworu, zanieczyszczenie, niewłaściwy kierunek przepływu albo zbyt duża różnica ciśnienia. Sam objaw nie przesądza diagnozy."}},
        {"@type": "Question", "name": "Czy można ustawić wszystkie rotametry na 1,5 l/min?", "acceptedAnswer": {"@type": "Answer", "text": "Tylko wtedy, gdy przypadkowo dokładnie takie wartości wynikają z projektu wszystkich pętli. W rzeczywistym domu obwody obsługują różne moce, dlatego jednakowa nastawa zwykle prowadzi do niedopasowania hydraulicznego."}},
        {"@type": "Question", "name": "Czy większy przepływ zawsze oznacza więcej ciepła?", "acceptedAnswer": {"@type": "Answer", "text": "Nie w sposób nieograniczony. Przenoszona moc zależy jednocześnie od przepływu i różnicy temperatur, a emisja podłogi od jej konstrukcji oraz temperatury powierzchni. Nadmierny przepływ może zwiększać opory, hałas i pobór energii pompy."}},
        {"@type": "Question", "name": "Czy zabrudzony rotametr można samodzielnie wyczyścić?", "acceptedAnswer": {"@type": "Answer", "text": "Tylko zgodnie z instrukcją producenta, po odcięciu odpowiedniej części instalacji i bezpiecznym obniżeniu ciśnienia. Nie wolno wykręcać wkładki z pracującego rozdzielacza. Po montażu należy sprawdzić szczelność."}}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/robert-kucharski/",
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "affiliation": [
        {"@id": "https://projekt-ogrzewania.pl/#organization"},
        {"@id": "https://remont.biz.pl/#organization"},
        {"@id": "https://sobir.pl/#organization"}
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    }
  ]
}
</script>

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

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

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

  var toNumber = function (field, fallback) {
    var value = parseFloat(field.value);
    if (!Number.isFinite(value)) {
      return fallback;
    }
    return value;
  };

  var clamp = function (value, minimum, maximum) {
    return Math.min(maximum, Math.max(minimum, value));
  };

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

  var signedPercent = function (value) {
    var rounded = Math.round(value);
    if (rounded > 0) {
      return "+" + rounded + "%";
    }
    return rounded + "%";
  };

  var progress = byId("rk-flow-progress");
  var updateProgress = function () {
    if (!progress) {
      return;
    }
    var rootTop = window.scrollY + root.getBoundingClientRect().top;
    var distance = root.offsetHeight - window.innerHeight;
    if (distance < 1) {
      progress.style.width = "100%";
      return;
    }
    var percent = clamp((window.scrollY - rootTop) / distance * 100, 0, 100);
    progress.style.width = percent + "%";
  };
  window.addEventListener("scroll", updateProgress, {passive: true});
  window.addEventListener("resize", updateProgress);
  updateProgress();

  var partData = {
    scale: {
      title: "Przezroczysty korpus i skala",
      copy: "Korpus umożliwia obserwację elementu pomiarowego. Zakres, kierunek skali, dopuszczalna temperatura, ciśnienie i medium zależą od modelu; należy je sprawdzić w dokumentacji producenta."
    },
    float: {
      title: "Element wskazujący przepływ",
      copy: "Położenie pływaka albo tłoczka odpowiada przepływowi w warunkach kalibracji urządzenia. Odczyt wykonuje się z krawędzi wskazanej przez producenta, a nie z przypadkowego punktu całego elementu."
    },
    valve: {
      title: "Mechanizm regulacyjny",
      copy: "W zależności od konstrukcji rotametr może współpracować z regulacją przepływu albo sam zawierać element dławiący. Nie obracaj korpusu ani pierścienia bez sprawdzenia instrukcji i sposobu odblokowania."
    },
    seal: {
      title: "Uszczelnienie wkładki",
      copy: "O-ring albo inne uszczelnienie oddziela wodę instalacyjną od otoczenia. Demontaż pod ciśnieniem grozi wyciekiem. Po czyszczeniu lub wymianie elementu konieczna jest kontrola szczelności."
    },
    connection: {
      title: "Przyłącze do belki rozdzielacza",
      copy: "Przyłącze ustala położenie urządzenia oraz kierunek przepływu przez element pomiarowy. Rotametr trzeba montować na właściwej belce i zgodnie ze strzałką lub dokumentacją systemu."
    }
  };

  var partButtons = root.querySelectorAll(".rk-flow-part-button");
  var partTitle = byId("rk-flow-part-title");
  var partCopy = byId("rk-flow-part-copy");
  partButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      partButtons.forEach(function (item) {
        item.classList.remove("is-active");
      });
      button.classList.add("is-active");
      var selected = partData[button.getAttribute("data-part")];
      if (!selected) {
        return;
      }
      partTitle.textContent = selected.title;
      partCopy.textContent = selected.copy;
    });
  });

  var labPower = byId("rk-flow-lab-power");
  var labDt = byId("rk-flow-lab-dt");
  var labDirection = byId("rk-flow-lab-direction");
  var labSymptom = byId("rk-flow-lab-symptom");
  var labActual = byId("rk-flow-lab-actual");
  var labSvg = byId("rk-flow-device-svg");
  var labFloat = byId("rk-flow-big-float");
  var labTarget = byId("rk-flow-big-target");
  var labTargetLabel = byId("rk-flow-target-label");
  var labState = byId("rk-flow-lab-state");

  var updateLab = function () {
    var power = clamp(toNumber(labPower, 420), 50, 1500);
    var deltaT = clamp(toNumber(labDt, 5), 2, 15);
    var actual = clamp(toNumber(labActual, 1.2), 0, 3);
    var required = power / (69.8 * deltaT);
    var deviation = required > 0 ? (actual - required) / required * 100 : 0;
    var zeroAtTop = labDirection.value === "zero-top";
    var actualFraction = clamp(actual / 3, 0, 1);
    var targetFraction = clamp(required / 3, 0, 1);
    if (!zeroAtTop) {
      actualFraction = 1 - actualFraction;
      targetFraction = 1 - targetFraction;
    }

    labFloat.style.setProperty("--rk-flow-offset", format(actualFraction * 330, 1).replace(",", ".") + "px");
    var targetY = 121 + targetFraction * 330;
    labTarget.setAttribute("y1", targetY);
    labTarget.setAttribute("y2", targetY);
    labTargetLabel.setAttribute("y", targetY + 5);
    labTargetLabel.textContent = required > 3 ? "CEL > SKALA" : "CEL " + format(required, 2);

    for (var index = 0; index < 7; index += 1) {
      var label = byId("rk-flow-scale-label-" + index);
      var scaleValue = index * 0.5;
      if (!zeroAtTop) {
        scaleValue = 3 - scaleValue;
      }
      label.textContent = format(scaleValue, 1);
    }

    byId("rk-flow-lab-required").textContent = format(required, 2);
    byId("rk-flow-lab-actual-stat").textContent = format(actual, 2);
    byId("rk-flow-lab-actual-label").textContent = format(actual, 2) + " l/min";
    byId("rk-flow-lab-deviation").textContent = signedPercent(deviation);

    labSvg.classList.remove("is-jumping", "is-dirty");
    labState.classList.remove("is-warning", "is-danger");
    var stateTitle = "Odczyt zgodny z celem";
    var stateCopy = "Przepływ mieści się w paśmie ±10%. Po każdej korekcie sprawdź pozostałe pętle oraz stabilność pracy pompy.";
    var symptom = labSymptom.value;

    if (symptom === "jumping") {
      labSvg.classList.add("is-jumping");
      labState.classList.add("is-warning");
      stateTitle = "Odczyt jest niestabilny";
      stateCopy = "Skaczący wskaźnik może oznaczać powietrze, pulsowanie pompy albo zaworu, zanieczyszczenie lub niekorzystną różnicę ciśnienia. Najpierw ustabilizuj układ, dopiero potem reguluj.";
    } else if (symptom === "stuck") {
      labState.classList.add("is-danger");
      stateTitle = "Wskaźnik może być zablokowany";
      stateCopy = "Brak reakcji nie dowodzi braku przepływu. Sprawdź zawór, siłownik, odpowietrzenie i czystość elementu. Demontaż wykonuje się dopiero po odcięciu instalacji oraz obniżeniu ciśnienia.";
    } else if (symptom === "dirty") {
      labSvg.classList.add("is-dirty");
      labState.classList.add("is-warning");
      stateTitle = "Skala może być niewiarygodna do odczytu";
      stateCopy = "Osad ogranicza widoczność i może utrudniać ruch elementu wskazującego. Czyszczenie musi być zgodne z instrukcją produktu, a po złożeniu potrzebna jest kontrola szczelności.";
    } else if (required > 3) {
      labState.classList.add("is-danger");
      stateTitle = "Przepływ wymagany wykracza poza skalę";
      stateCopy = "Nie można wiarygodnie ustawić celu na wskaźniku 0–3 l/min. Trzeba zweryfikować założenia obwodu, ΔT, podział mocy i dobór elementów hydraulicznych.";
    } else if (deviation < -10) {
      labState.classList.add("is-warning");
      stateTitle = "Przepływ jest niższy od celu";
      stateCopy = "Sprawdź nastawę, otwarcie zaworu i siłownika, odpowietrzenie, filtr, opór pętli oraz dostępny spręż pompy. Nie podnoś temperatury zasilania zamiast usunięcia przyczyny.";
    } else if (deviation > 10) {
      labState.classList.add("is-warning");
      stateTitle = "Przepływ jest wyższy od celu";
      stateCopy = "Ograniczaj przepływ zgodnie z konstrukcją zaworu i obserwuj pozostałe pętle, ponieważ zmiana jednej gałęzi wpływa na cały równoległy układ.";
    }

    byId("rk-flow-lab-state-title").textContent = stateTitle;
    byId("rk-flow-lab-state-copy").textContent = stateCopy;
  };

  [labPower, labDt, labDirection, labSymptom, labActual].forEach(function (field) {
    field.addEventListener("input", updateLab);
    field.addEventListener("change", updateLab);
  });
  updateLab();

  var defaultLoops = [
    {power: 650, length: 85, actual: 1.1},
    {power: 420, length: 65, actual: 1.4},
    {power: 380, length: 55, actual: 1.7},
    {power: 300, length: 60, actual: 0.7},
    {power: 180, length: 35, actual: 1.2}
  ];
  var loopCards = Array.prototype.slice.call(root.querySelectorAll(".rk-flow-loop-card"));
  var globalDt = byId("rk-flow-global-dt");
  var scaleMax = byId("rk-flow-scale-max");
  var tolerance = byId("rk-flow-tolerance");
  var scenarioButtons = root.querySelectorAll(".rk-flow-scenario-button");

  var clearScenario = function () {
    scenarioButtons.forEach(function (button) {
      button.classList.remove("is-active");
    });
  };

  var updateManifold = function () {
    var deltaT = clamp(toNumber(globalDt, 5), 2, 15);
    var maximum = clamp(toNumber(scaleMax, 3), 3, 5);
    var allowed = clamp(toNumber(tolerance, 10), 5, 30);
    var totalTarget = 0;
    var totalActual = 0;
    var balanced = 0;

    loopCards.forEach(function (card, index) {
      var powerField = card.querySelector(".rk-flow-loop-power");
      var lengthField = card.querySelector(".rk-flow-loop-length");
      var actualField = card.querySelector(".rk-flow-loop-actual");
      var power = clamp(toNumber(powerField, defaultLoops[index].power), 50, 1500);
      var length = clamp(toNumber(lengthField, defaultLoops[index].length), 10, 150);
      actualField.max = maximum;
      var actual = clamp(toNumber(actualField, defaultLoops[index].actual), 0, maximum);
      if (toNumber(actualField, actual) > maximum) {
        actualField.value = maximum;
      }
      var target = power / (69.8 * deltaT);
      var deviation = target > 0 ? (actual - target) / target * 100 : 0;
      var inTolerance = Math.abs(deviation) <= allowed;

      totalTarget += target;
      totalActual += actual;
      var countsAsBalanced = inTolerance;
      if (target > maximum) {
        countsAsBalanced = false;
      }
      if (length > 100) {
        countsAsBalanced = false;
      }
      if (countsAsBalanced) {
        balanced += 1;
      }

      card.querySelector(".rk-flow-loop-target-label").textContent = "cel " + format(target, 2);
      card.querySelector(".rk-flow-loop-actual-label").textContent = format(actual, 2);
      card.querySelector(".rk-flow-mini-target").style.top = clamp(target / maximum * 100, 0, 100) + "%";
      card.querySelector(".rk-flow-mini-float").style.top = clamp(actual / maximum * 100, 0, 100) + "%";

      card.querySelectorAll("[data-scale-step]").forEach(function (label) {
        var step = parseInt(label.getAttribute("data-scale-step"), 10);
        label.textContent = format(maximum * step / 4, step === 0 ? 0 : 2).replace(/,00$/, "").replace(/,50$/, ",5").replace(/,25$/, ",25").replace(/,75$/, ",75");
      });

      var status = card.querySelector(".rk-flow-loop-status");
      status.classList.remove("is-low", "is-high", "is-zero", "is-limit");
      var statusText = "W tolerancji";
      var resultText = "W tolerancji";
      if (target > maximum) {
        statusText = "Cel poza skalą";
        resultText = "Cel poza skalą rotametru";
        status.classList.add("is-limit");
      } else if (actual < 0.05) {
        statusText = "Brak przepływu";
        resultText = "Brak przepływu — diagnostyka";
        status.classList.add("is-zero");
      } else if (deviation < -allowed) {
        statusText = "Za mały przepływ";
        resultText = "Poniżej celu";
        status.classList.add("is-low");
      } else if (deviation > allowed) {
        statusText = "Za duży przepływ";
        resultText = "Powyżej celu";
        status.classList.add("is-high");
      } else if (length > 100) {
        statusText = "Przepływ OK • sprawdź opór";
        resultText = "Przepływ OK, kontrola długiej pętli";
        status.classList.add("is-limit");
      } else if (length > 90) {
        statusText = "Przepływ OK • długa pętla";
        resultText = "Przepływ OK, sprawdź opór";
        status.classList.add("is-low");
      }
      status.textContent = statusText;

      var chart = root.querySelector("[data-chart-loop='" + index + "']");
      chart.querySelector(".rk-flow-chart-target").style.width = clamp(target / maximum * 100, 0, 100) + "%";
      chart.querySelector(".rk-flow-chart-actual").style.width = clamp(actual / maximum * 100, 0, 100) + "%";
      chart.querySelector(".rk-flow-chart-value").textContent = format(target, 2) + " / " + format(actual, 2);

      var row = root.querySelector("[data-result-loop='" + index + "']");
      row.querySelector(".rk-flow-result-target").textContent = format(target, 2) + " l/min";
      row.querySelector(".rk-flow-result-actual").textContent = format(actual, 2) + " l/min";
      row.querySelector(".rk-flow-result-deviation").textContent = signedPercent(deviation);
      row.querySelector(".rk-flow-result-status").textContent = resultText;
    });

    byId("rk-flow-total-target").textContent = format(totalTarget, 2) + " l/min";
    byId("rk-flow-total-actual").textContent = format(totalActual, 2) + " l/min";
    byId("rk-flow-balanced-count").textContent = balanced + " z " + loopCards.length;
    if (balanced === loopCards.length) {
      byId("rk-flow-manifold-verdict").textContent = "Przepływy zgodne";
    } else if (balanced === 0) {
      byId("rk-flow-manifold-verdict").textContent = "Diagnostyka wymagana";
    } else {
      byId("rk-flow-manifold-verdict").textContent = "Do dalszej regulacji";
    }
  };

  var setActuals = function (values) {
    loopCards.forEach(function (card, index) {
      var field = card.querySelector(".rk-flow-loop-actual");
      field.value = clamp(values[index], 0, toNumber(scaleMax, 3));
    });
  };

  var calculatedTargets = function () {
    var deltaT = clamp(toNumber(globalDt, 5), 2, 15);
    var maximum = toNumber(scaleMax, 3);
    return loopCards.map(function (card) {
      var power = toNumber(card.querySelector(".rk-flow-loop-power"), 300);
      return clamp(power / (69.8 * deltaT), 0, maximum);
    });
  };

  var applyScenario = function (name) {
    var targets = calculatedTargets();
    if (name === "balanced") {
      setActuals(targets);
    } else if (name === "air") {
      targets[2] = 0.15;
      setActuals(targets);
    } else if (name === "filter") {
      setActuals(targets.map(function (value) { return value * 0.45; }));
    } else if (name === "actuator") {
      targets[3] = 0;
      setActuals(targets);
    } else if (name === "reset") {
      globalDt.value = 5;
      scaleMax.value = 3;
      tolerance.value = 10;
      loopCards.forEach(function (card, index) {
        card.querySelector(".rk-flow-loop-power").value = defaultLoops[index].power;
        card.querySelector(".rk-flow-loop-length").value = defaultLoops[index].length;
        card.querySelector(".rk-flow-loop-actual").value = defaultLoops[index].actual;
      });
      name = "unbalanced";
    } else {
      setActuals(defaultLoops.map(function (loop) { return loop.actual; }));
    }

    clearScenario();
    scenarioButtons.forEach(function (button) {
      if (button.getAttribute("data-scenario") === name) {
        button.classList.add("is-active");
      }
    });
    updateManifold();
  };

  scenarioButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      applyScenario(button.getAttribute("data-scenario"));
    });
  });

  [globalDt, scaleMax, tolerance].forEach(function (field) {
    field.addEventListener("input", function () {
      clearScenario();
      updateManifold();
    });
    field.addEventListener("change", function () {
      clearScenario();
      updateManifold();
    });
  });

  loopCards.forEach(function (card) {
    card.querySelectorAll("input").forEach(function (field) {
      field.addEventListener("input", function () {
        clearScenario();
        updateManifold();
      });
      field.addEventListener("change", function () {
        clearScenario();
        updateManifold();
      });
    });
  });
  updateManifold();

  var diagnosticData = {
    stable: {
      label: "Stan odniesienia",
      title: "Stabilny odczyt zgodny z projektem",
      copy: "Wskaźnik nie pulsuje, a jego wartość pozostaje w pobliżu nastawy projektowej. To dobry punkt wyjścia, ale trzeba jeszcze zweryfikować pozostałe obwody i temperatury instalacji.",
      items: ["zgodność odczytu z tabelą projektową,", "stabilność wszystkich pętli,", "temperaturę zasilania i powrotu po ustabilizowaniu pracy."]
    },
    jumping: {
      label: "Objaw: odczyt niestabilny",
      title: "Skaczący pływak nie oznacza wyłącznie powietrza",
      copy: "Powietrze jest częstą przyczyną, ale podobny objaw może powodować pulsowanie pompy lub zaworu, zanieczyszczenie, niewłaściwy kierunek przepływu albo zbyt duża różnica ciśnienia.",
      items: ["czy instalacja została prawidłowo odpowietrzona i przepłukana,", "czy pompa pracuje stabilnie w przewidzianym trybie,", "czy zawory nie pulsują oraz czy filtr i wkładka są czyste."]
    },
    onezero: {
      label: "Objaw: jeden obwód bez przepływu",
      title: "Porównaj niedziałającą pętlę z pozostałymi",
      copy: "Jeżeli pozostałe rotametry pracują, przyczyna najczęściej znajduje się w konkretnym obwodzie albo jego zaworze. Nie wyklucza to jednak błędu wskazania samego rotametru.",
      items: ["otwarcie zaworu i stan siłownika tej pętli,", "zapowietrzenie, blokadę iglicy i czystość wkładki,", "drożność, załamanie rury oraz możliwość osiągnięcia przepływu przy danym oporze."]
    },
    allzero: {
      label: "Objaw: brak przepływu na całej belce",
      title: "Najpierw sprawdź elementy wspólne dla rozdzielacza",
      copy: "Jednoczesne zero na wszystkich wskaźnikach kieruje uwagę na pompę, zawory główne, sterowanie, filtr, ciśnienie albo kierunek przepływu. Awaria pompy jest jedną z możliwości, a nie gotową diagnozą.",
      items: ["zasilanie, tryb pracy i pracę pompy obiegowej,", "otwarcie zaworów głównych oraz stan sterowania i siłowników,", "ciśnienie, filtr, odpowietrzenie i zgodność kierunku przepływu."]
    },
    dirty: {
      label: "Objaw: ograniczona widoczność albo ruch",
      title: "Osad może zakłócać odczyt i pracę elementu",
      copy: "Mętny korpus nie pozwala dokładnie określić położenia wskaźnika, a zanieczyszczenia mogą ograniczać jego ruch. Nie wykręcaj wkładki z rozdzielacza pracującego pod ciśnieniem.",
      items: ["instrukcję czyszczenia konkretnego modelu,", "możliwość bezpiecznego odcięcia i rozprężenia właściwej części instalacji,", "stan uszczelnienia oraz szczelność po ponownym montażu."]
    }
  };

  var diagnosticButtons = root.querySelectorAll(".rk-flow-diagnostic-button");
  var updateDiagnostic = function (name) {
    var data = diagnosticData[name];
    if (!data) {
      return;
    }
    diagnosticButtons.forEach(function (button) {
      button.classList.toggle("is-active", button.getAttribute("data-diagnostic") === name);
    });
    byId("rk-flow-diagnostic-label").textContent = data.label;
    byId("rk-flow-diagnostic-title").textContent = data.title;
    byId("rk-flow-diagnostic-copy").textContent = data.copy;
    var list = byId("rk-flow-diagnostic-list");
    list.textContent = "";
    data.items.forEach(function (item) {
      var line = document.createElement("li");
      line.textContent = item;
      list.appendChild(line);
    });
  };
  diagnosticButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      updateDiagnostic(button.getAttribute("data-diagnostic"));
    });
  });

  var faqItems = root.querySelectorAll(".rk-flow-faq details");
  faqItems.forEach(function (item) {
    item.addEventListener("toggle", function () {
      if (!item.open) {
        return;
      }
      faqItems.forEach(function (other) {
        if (other !== item) {
          other.open = false;
        }
      });
    });
  });
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">Rotametr (wskaźnik przepływu) w rozdzielaczu ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
