/* Kalkulator mocy klimatyzacji — tylko tokeny i wzorce z style.min.css / experience.css */
.kalk-layout{display:grid;gap:var(--space-6);align-items:start;margin-top:var(--space-6)}
@media (min-width:1024px){.kalk-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.kalk-wynik{position:sticky;top:calc(var(--header-height) + var(--space-4))}}
.kalk-card{background:var(--card-gradient);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);box-shadow:var(--card-shadow);padding:clamp(var(--space-5),3vw,var(--space-6));min-width:0}
.kalk-card+.kalk-card{margin-top:var(--space-5)}
.kalk-krok{display:flex;align-items:center;gap:var(--space-3);margin:0 0 var(--space-5);font-size:var(--font-size-md);font-weight:700;color:var(--color-text-primary)}
.kalk-krok__nr{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-full);background:var(--icon-bg);border:1px solid var(--icon-border);color:var(--color-brand);font-size:.9rem;flex:none}

/* pola — jak .form */
.kalk-field{margin-bottom:var(--space-5);min-width:0}
.kalk-field:last-child{margin-bottom:0}
.kalk-label,.kalk fieldset>legend{display:block;font-weight:600;font-size:var(--font-size-base);margin-bottom:var(--space-2);color:var(--color-text-primary);line-height:1.55;padding:0}
.kalk fieldset{border:0;margin:0 0 var(--space-5);padding:0;min-width:0}
.kalk-help{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:var(--space-2) 0 0;line-height:1.58}
.kalk select,.kalk input[type=number]{display:block;width:100%;min-height:50px;padding:var(--space-3) var(--space-4);font-family:var(--font-primary);font-size:var(--font-size-base);line-height:1.5;color:var(--color-text-primary);background-color:var(--color-surface);border:2px solid var(--color-border-light);border-radius:var(--radius-md);transition:border-color var(--transition-base),box-shadow var(--transition-base)}
.kalk select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a93a1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--space-4) center;background-size:16px 12px;padding-right:calc(var(--space-6) + 8px)}
.kalk select:focus,.kalk input[type=number]:focus{border-color:var(--color-brand);box-shadow:var(--input-focus-shadow,var(--ring-brand));outline:0}
.kalk-2{display:grid;gap:var(--space-4)}
@media (min-width:560px){.kalk-2{grid-template-columns:1fr 1fr}}
.kalk-stacja-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-2) 0 0}

/* przełączniki segmentowe (radio) */
.kalk-seg{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.kalk-seg label{position:relative;flex:1 1 0;min-width:max-content}
.kalk-seg input,.kalk-kompas input,.kalk-check input{position:absolute;opacity:0;width:1px;height:1px}
.kalk-seg span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:46px;padding:var(--space-2) var(--space-4);border:2px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-sm);line-height:1.3;cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}
.kalk-seg span small{display:block;font-weight:400;font-size:.78rem;color:var(--color-text-tertiary)}
.kalk-seg input:checked+span{border-color:var(--color-brand);background:var(--icon-bg);color:var(--color-text-primary)}
.kalk-seg input:focus-visible+span,.kalk-kompas input:focus-visible+span,.kalk-check input:focus-visible+span::before{box-shadow:var(--ring-brand)}
.kalk-seg--col span{flex-direction:column}

/* kompas */
.kalk-kompas{display:grid;grid-template-columns:repeat(3,minmax(0,64px));grid-template-rows:repeat(3,52px);gap:6px;justify-content:start}
.kalk-kompas label{position:relative}
.kalk-kompas span{display:grid;place-items:center;height:100%;border:2px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface);font-weight:700;font-size:.9rem;color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}
.kalk-kompas input:checked+span{border-color:var(--action-bg,var(--color-brand));background:var(--action-bg,var(--color-brand));color:#fff}
.kalk-kompas input:disabled+span{opacity:.35;cursor:not-allowed}
.kalk-kompas__srodek{display:grid;place-items:center;color:var(--color-text-tertiary)}
.kalk-kompas__srodek svg{width:28px;height:28px}
.kalk-okna{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-5);align-items:flex-start}
.kalk-okna__wiersze{flex:1 1 240px;min-width:0;display:grid;gap:var(--space-3)}
.kalk-okno{display:grid;gap:6px}
.kalk-okno .kalk-seg--mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.kalk-okno .kalk-seg--mini label{min-width:0}
.kalk-okno__nazwa{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}
.kalk-okno__m2{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}
.kalk-okno__m2 input{width:96px!important}
.kalk-okno__m2 input{min-height:40px!important;padding:6px 10px!important;font-size:var(--font-size-sm)!important}
.kalk-seg--mini span{min-height:40px;padding:4px 6px;font-size:.85rem}
.kalk-dach{margin-top:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--surface-tint)}
.kalk-dach .kalk-field{margin-bottom:var(--space-3)}
.kalk-inne{margin-top:var(--space-4)}
.kalk-legend-help{font-weight:400;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}

/* checkboxy */
.kalk-check{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5;margin:var(--space-3) 0 0}
.kalk-check span::before{content:"";display:inline-block;vertical-align:-4px;width:20px;height:20px;margin-right:var(--space-3);border:2px solid var(--color-border-light);border-radius:6px;background:var(--color-surface);transition:background-color var(--transition-fast),border-color var(--transition-fast)}
.kalk-check input:checked+span::before{background:var(--action-bg,var(--color-brand)) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.4' d='m3.5 8.5 3 3 6-7'/%3e%3c/svg%3e") center/14px no-repeat;border-color:var(--action-bg,var(--color-brand))}
.kalk-checks{display:grid;gap:0 var(--space-4)}
@media (min-width:560px){.kalk-checks{grid-template-columns:1fr 1fr}}

/* suwak powierzchni */
.kalk-pow{display:grid;grid-template-columns:1fr 112px;gap:var(--space-4);align-items:center}
.kalk-pow input[type=range]{width:100%;accent-color:var(--color-brand);height:28px}
.kalk-pow__num{position:relative}
.kalk-pow__num input{padding-right:42px}
.kalk-pow__num::after{content:"m²";position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);font-size:var(--font-size-sm);pointer-events:none}

/* karta pomieszczenia */
.kalk-pom{border:2px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5);background:var(--color-surface);transition:border-color var(--transition-base)}
.kalk-pom+.kalk-pom{margin-top:var(--space-4)}
.kalk-pom.is-active{border-color:var(--color-brand)}
.kalk-pom__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}
.kalk-pom__nr{font-weight:700;color:var(--color-text-primary)}
.kalk-pom__usun{background:none;border:1px solid var(--color-border-light);color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:6px 12px;font:inherit;font-size:var(--font-size-sm);cursor:pointer}
.kalk-pom__usun:hover{border-color:var(--color-danger);color:var(--color-danger)}
.kalk-pom__wynik{margin:var(--space-4) 0 0;padding-top:var(--space-4);border-top:1px solid var(--color-border-light);font-weight:600;color:var(--color-text-primary);text-align:center}
.kalk-pom details.kalk-wiecej{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--surface-tint);margin-top:var(--space-2)}
.kalk-pom details.kalk-wiecej>summary{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm)}
.kalk-wiecej__inner{padding:0 var(--space-4) var(--space-4)}
.kalk-dodaj{width:100%;margin-top:var(--space-4)}

/* panel wyniku */
.kalk-przelacznik{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin:0 0 var(--space-4)}
.kalk-przelacznik button{font:inherit;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);border:2px solid var(--color-border-light);border-radius:var(--radius-full);padding:6px 14px;cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}
.kalk-przelacznik button:hover{border-color:var(--color-brand)}
.kalk-przelacznik button[aria-pressed=true]{border-color:var(--color-brand);background:var(--icon-bg);color:var(--color-text-primary)}
.kalk-przelacznik button:focus-visible{outline:0;box-shadow:var(--ring-brand)}
.kalk-wynik__dla{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0 0 var(--space-3);text-align:center}
.kalk-figury{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.kalk-figura{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center}
.kalk-figura--glowna{border-color:var(--color-brand)}
.kalk-figura__opis{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.35;min-height:2.7em}
.kalk-figura__liczba{display:block;font-size:clamp(2.2rem,4.5vw,3rem);font-weight:700;line-height:1.1;color:var(--color-text-primary);font-variant-numeric:tabular-nums;margin-top:var(--space-2)}
.kalk-figura__liczba small{font-size:1.1rem;font-weight:600;color:var(--color-text-secondary);margin-left:4px}
.kalk-figura__liczba.is-zestaw{font-size:clamp(1.6rem,3.6vw,2.4rem);white-space:nowrap}
.kalk-figura__norma{display:block;font-size:.78rem;color:var(--color-text-tertiary);margin-top:var(--space-1)}
.kalk-figury__uwaga{font-size:.8rem;color:var(--color-text-tertiary);text-align:center;line-height:1.5;margin:var(--space-3) auto 0;max-width:46ch}
.kalk-miernik{margin:var(--space-5) 0 var(--space-2)}
.kalk-miernik__opis{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}
.kalk-miernik__opis strong{color:var(--color-text-primary);white-space:nowrap;font-variant-numeric:tabular-nums}
.kalk-miernik__tor{height:10px;border-radius:var(--radius-full);background:var(--icon-bg);overflow:hidden}
.kalk-miernik__tor::before{content:"";display:block;height:100%;width:var(--fill,0%);background:var(--color-brand);border-radius:var(--radius-full);transition:width var(--transition-slow)}
.kalk-fakty{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:var(--space-5) 0 0;border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}
.kalk-fakty>div{padding:var(--space-3) var(--space-2);text-align:center;min-width:0}
.kalk-fakty>div+div{border-left:1px solid var(--color-border-light)}
.kalk-fakty dt{font-size:.8rem;color:var(--color-text-tertiary);line-height:1.35}
.kalk-fakty dd{margin:2px 0 0;font-size:1.05rem;font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums;line-height:1.3}
.kalk-wykres{margin-top:var(--space-6)}
.kalk-wykres h3{font-size:var(--font-size-base);margin:0 0 var(--space-1);text-align:center}
.kalk-wykres__opis{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center;margin:0 0 var(--space-3)}
.kalk-wykres details{margin-top:var(--space-2)}
.kalk-wykres details>summary{padding:var(--space-2) 0;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);justify-content:center}

/* wykresy SVG */
.kalk-chart{display:block;width:100%;height:auto;font-family:var(--font-primary);overflow:visible}
.kalk-chart__bar{fill:var(--color-brand)}
.kalk-bar:hover .kalk-chart__bar,.kalk-bar:focus .kalk-chart__bar{fill:var(--color-brand-hover)}
.kalk-bar:focus{outline:0}
.kalk-chart__label{fill:var(--color-text-secondary);font-size:13px}
.kalk-chart__value{fill:var(--color-text-primary);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.kalk-chart__pct{fill:var(--color-text-tertiary);font-weight:400}
.kalk-chart__axis{fill:var(--color-text-tertiary);font-size:12px;font-variant-numeric:tabular-nums}
.kalk-chart__grid{stroke:var(--color-border-light);stroke-width:1}
.kalk-chart__ref{stroke:var(--color-text-tertiary);stroke-width:1}
.kalk-chart__line{fill:none;stroke:var(--color-brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.kalk-chart__area{fill:var(--color-brand);opacity:.1}
.kalk-chart__dot{fill:var(--color-brand);stroke:var(--color-surface);stroke-width:2}
.kalk-chart__cross{stroke:var(--color-text-tertiary);stroke-width:1}
.kalk-chart__tip rect{fill:var(--color-surface-elevated);stroke:var(--color-border-medium)}
.kalk-chart__tiptitle{fill:var(--color-text-primary);font-size:12px;font-weight:600}
.kalk-chart__tiptext{fill:var(--color-text-secondary);font-size:12px}
.kalk-chart__hit{fill:transparent}
.kalk-chart__off{fill:var(--color-text-tertiary);opacity:.08}
.kalk-podpis{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center;margin:var(--space-2) 0 0;line-height:1.55}

/* tabele */
.kalk-tabela{overflow-x:auto;margin-top:var(--space-2)}
.kalk-tabela table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.kalk-tabela th,.kalk-tabela td{padding:8px 10px;border-bottom:1px solid var(--color-border-light);text-align:left;color:var(--color-text-secondary);font-weight:400}
.kalk-tabela thead th{color:var(--color-text-tertiary);font-weight:600}
.kalk-tabela tbody th{color:var(--color-text-primary)}
.kalk-tabela .kalk-nowrap{white-space:nowrap}
.kalk-m{display:none}
/* tabela pomieszczeń w wąskim panelu wyniku (laptop i telefon): krótkie nagłówki, bez kolumny szczytu */
.kalk-wynik{container-type:inline-size}
@container (max-width:560px){.kalk-tabela table{font-size:.82rem}.kalk-tabela th,.kalk-tabela td{padding:6px}#kalk-tabela th:nth-child(4),#kalk-tabela td:nth-child(4){display:none}.kalk-tabela .kalk-d{display:none}.kalk-tabela .kalk-m{display:inline}}
.kalk-checks--1{grid-template-columns:1fr!important}
.kalk-tabela tr.is-active th,.kalk-tabela__suma th,.kalk-tabela__suma td{font-weight:700;color:var(--color-text-primary)}

/* uwagi */
.kalk-uwagi{margin-top:var(--space-5);border:1px solid var(--icon-border);background:var(--icon-bg);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}
.kalk-uwagi h3{font-size:var(--font-size-sm);margin:0 0 var(--space-2)}
.kalk-uwagi ul{margin:0;padding-left:1.1em;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6}
.kalk-uwagi li+li{margin-top:var(--space-2)}
.kalk-akcje{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-top:var(--space-6)}
.kalk-akcje .btn{flex:1 1 220px}
.kalk-zastrzezenie{font-size:.8rem;color:var(--color-text-tertiary);text-align:center;margin:var(--space-4) 0 0;line-height:1.55}
.kalk-blad{border:1px solid var(--color-danger);border-radius:var(--radius-md);padding:var(--space-4);color:var(--color-text-primary);text-align:center}
.kalk:not(.is-ready) .kalk-wynik{opacity:.5}

.kalk-pom__dowyniku{display:block;text-align:center;font-size:var(--font-size-sm);font-weight:600;margin-top:var(--space-2)}
@media (min-width:1024px){.kalk-pom__dowyniku{display:none}}
@media (max-width:479px){.kalk-fakty dd{font-size:.9rem}.kalk-fakty dt{font-size:.72rem}.kalk-figura{padding:var(--space-3)}.kalk-figura__opis{font-size:.8rem;min-height:2.4em}.kalk-figura__liczba{font-size:2rem}.kalk-figura__liczba.is-zestaw{font-size:1.45rem}.kalk-figura__norma{font-size:.72rem}.kalk-card{padding:var(--space-4)}.kalk-pom{padding:var(--space-4)}}
