/* Zakładka „Kontrahenci”: start, wyniki z mapą, karta, porównanie. Tylko zmienne z portal.css (akcent i neutralne), więc tryb ciemny
   działa sam; cele dotyku co najmniej 44 px; bez stylów wbudowanych (CSP). Druk A4 na końcu pliku. */

.kh-mala { margin: .35rem 0 0; font-size: .875rem; line-height: 1.5; color: var(--ink-2); }
.kh-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.25rem; box-sizing: border-box; border-radius: 10px; border: 1px solid transparent;
  font: 600 1rem/1.2 var(--sans); text-decoration: none; text-align: center; cursor: pointer; }
.kh-btn-g { background: var(--btn-bg); color: var(--btn-ink); }
.kh-btn-g:hover { background: var(--btn-bg-hover); color: var(--btn-ink); }
.kh-btn-m { background: var(--paper); color: var(--ink); border-color: var(--muted); }
.kh-btn-m:hover { border-color: var(--ink); color: var(--ink); }
.kh-btn-l { background: var(--paper); color: var(--ink); border-color: var(--line); font-weight: 500; }
.kh-btn-l:hover { border-color: var(--muted); color: var(--ink); }
.kh-btn[hidden] { display: none; }
.kh-blad { margin: 0 0 .9rem; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

/* start */
.kh-start { padding-top: 3rem; padding-bottom: 3rem; }
.kh-h1 { margin: 0 0 .85rem; font: 700 clamp(2.1rem, 5vw, 3.35rem)/1.08 var(--serif); letter-spacing: -.02em; max-width: 880px; }
.kh-lead { margin: 0 0 1.9rem; font-size: 1.18rem; color: var(--ink-2); max-width: 720px; }
.kh-szukarka { display: flex; flex-direction: column; gap: 1.2rem; padding: 1.5rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.kh-tryby { display: flex; flex-wrap: wrap; gap: .5rem; }
.kh-tryb { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.1rem; border-radius: 999px; border: 1px solid var(--muted); color: var(--ink); text-decoration: none; font: 600 .95rem/1.2 var(--sans); }
.kh-tryb:hover { border-color: var(--ink); color: var(--ink); }
.kh-tryb[aria-current] { background: var(--m5); border-color: var(--m5); color: var(--paper); }
.kh-formularz { display: flex; flex-direction: column; gap: 1.1rem; }
.kh-pola { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; }
.kh-pole { display: flex; flex-direction: column; gap: .35rem; font-size: .875rem; font-weight: 600; min-width: 0; }
.kh-pole-co { flex: 2 1 320px; } .kh-pole-skad { flex: 1 1 220px; } .kh-pole-zasieg { flex: 0 1 140px; } .kh-pole-firma { flex: 1 1 420px; }
.kh-pole input { width: 100%; min-height: 52px; box-sizing: border-box; padding: 0 .9rem; border: 1px solid var(--muted); border-radius: 10px; background: var(--paper); color: var(--ink); font: 400 1.06rem var(--sans); }
.kh-pole input::placeholder { color: var(--muted); opacity: 1; }
.kh-pole-zdanie { color: var(--ink-2); font-weight: 400; }
.kh-pole-zdanie input { min-height: 46px; font-size: 1rem; border-color: var(--line); background: var(--paper-2); }
.kh-kroki { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin-top: 2.5rem; }
.kh-krok { padding: 1.25rem; background: var(--paper-2); border-radius: var(--radius); }
.kh-krok p { margin: 0; }
.kh-krok-n { font-size: .8125rem; font-weight: 600; color: var(--copper-text); margin-bottom: .35rem !important; }
.kh-krok-t { font-size: 1.06rem; font-weight: 600; }
.kh-krok-d { margin-top: .35rem !important; color: var(--ink-2); }
.kh-liczby { display: flex; flex-wrap: wrap; gap: 1rem 3rem; align-items: baseline; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.kh-liczby p { margin: 0; color: var(--ink-2); }
.kh-liczby strong { font-size: 1.625rem; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.kh-liczby .kh-liczby-z { flex: 1 1 280px; text-align: right; font-size: .875rem; }

/* pasek zapytania */
.kh-pasek { border-bottom: 1px solid var(--line); background: var(--paper); }
.kh-pasek-w { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; padding-top: .8rem; padding-bottom: .8rem; }
.kh-pasek-r { flex: 1 1 auto; }
.kh-chip { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding: 0 .9rem; max-width: 100%; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); text-decoration: none; font-size: .94rem; }
.kh-chip:hover { border-color: var(--muted); color: var(--ink); }
.kh-chip span { color: var(--muted); }
.kh-chip strong { font-weight: 600; }
/* przyklejony pod nagłówkiem, gdy nagłówek ma jeden wiersz */
@media (min-width: 1200px) { .kh-pasek { position: sticky; top: 4.05rem; z-index: 20; } }

/* wyniki */
.kh-uklad { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.6rem; padding-top: 1.6rem; padding-bottom: 3rem; align-items: start; }
.kh-wyniki { min-width: 0; }
.kh-wyniki-h { margin: 0 0 .4rem; font: 700 1.875rem/1.2 var(--serif); }
.kh-wyniki-s { margin: 0 0 .9rem; color: var(--ink-2); }
.kh-lista { list-style: none; margin: .9rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.kh-w { display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: center; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.kh-w-t { flex: 1 1 320px; min-width: 0; }
.kh-w-h { margin: 0; font: 600 1.125rem/1.3 var(--sans); }
.kh-w-h a { color: var(--ink); }
.kh-w-m { margin: .15rem 0 .4rem; font-size: .94rem; color: var(--ink-2); }
.kh-w-m b { font-weight: 600; color: var(--ink); }
.kh-w-f { margin: 0; font-size: .875rem; color: var(--ink-2); }
.kh-znacznik { display: inline-block; padding: 0 .5rem; border-radius: 999px; background: var(--warn-bg); border: 1px solid var(--warn-line); color: var(--ink); font-size: .8125rem; font-weight: 600; }
.kh-wybor { display: inline-flex; gap: .5rem; align-items: center; min-height: 44px; padding: 0 .4rem; color: var(--ink); text-decoration: none; font-size: .875rem; font-weight: 500; }
.kh-wybor:hover { color: var(--ink); }
.kh-box { flex: none; width: 18px; height: 18px; box-sizing: border-box; border: 1px solid var(--muted); border-radius: 4px; background: var(--paper); }
.kh-wybor[aria-checked="true"] .kh-box { background: var(--m5); border-color: var(--m5); box-shadow: inset 0 0 0 3px var(--paper); }
.kh-wybor[aria-disabled="true"] { color: var(--muted); cursor: not-allowed; }
.kh-strony { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: center; margin-top: 1.25rem; font-size: .94rem; color: var(--ink-2); }

.kh-filtry { font-size: .94rem; min-width: 0; }
.kh-filtry > summary { display: flex; align-items: center; min-height: 44px; font-weight: 600; cursor: pointer; }
.kh-filtry fieldset { margin: 0 0 1.1rem; padding: 0; border: 0; min-width: 0; }
.kh-filtry legend { padding: 0; margin-bottom: .3rem; font-size: .8125rem; font-weight: 600; color: var(--ink-2); }
.kh-filtry label { display: flex; gap: .55rem; align-items: center; min-height: 44px; cursor: pointer; }
.kh-filtry input[type=checkbox] { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--m5); }
.kh-n { color: var(--ink-2); font-variant-numeric: tabular-nums; }
.kh-wiecej summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; color: var(--copper-text); }
.kh-filtry-a { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin: 0; }
.kh-filtry-a [hidden] { display: none; }
.kh-filtry-a a { display: inline-flex; align-items: center; min-height: 44px; }

.kh-pas-t, .kh-pas-b, .kh-szybkie, .kh-ark-g, .kh-mapa-k, .kh-instaluj, .kh-ostatnie { display: none; }
.kh-mapa { min-width: 0; }
.kh-mapa svg { display: block; width: 100%; max-width: 320px; height: auto; background: var(--paper-2); border-radius: var(--radius); }
.kh-krag { fill: none; stroke: var(--m2); stroke-width: 1; }
.kh-krag-t { fill: var(--ink-2); font: 500 9px var(--sans); text-anchor: middle; }
.kh-pkt { fill: var(--m3); }
.kh-pkt-doc { fill: var(--m5); stroke: var(--paper-2); stroke-width: 1; }
.kh-romb { fill: var(--ink); stroke: var(--paper-2); stroke-width: 2; }

@media (min-width: 900px) {
  .kh-uklad { grid-template-columns: 230px minmax(0, 1fr); }
  .kh-mapa { grid-column: 1; grid-row: 2; }
  .kh-filtry { grid-column: 1; grid-row: 1; }
  .kh-wyniki { grid-column: 2; grid-row: 1 / span 2; }
  .kh-filtry > summary { display: none; }
}
@media (min-width: 1160px) {
  .kh-uklad { grid-template-columns: 230px minmax(0, 1fr) 300px; }
  .kh-filtry, .kh-mapa { grid-row: 1; }
  .kh-wyniki { grid-column: 2; grid-row: 1; }
  .kh-mapa { grid-column: 3; position: sticky; top: 9rem; }
}

/* karta */
.kh-karta, .kh-cmp { padding-top: 1.4rem; padding-bottom: 3rem; }
.kh-wroc { margin: 0 0 .9rem; font-size: .875rem; }
.kh-wroc a { display: inline-flex; align-items: center; min-height: 44px; }
.kh-kh { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: flex-end; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.kh-kh-t { flex: 1 1 520px; min-width: 0; }
.kh-kh h1 { margin: 0 0 .35rem; font: 700 clamp(2rem, 4vw, 2.5rem)/1.12 var(--serif); }
.kh-kh-r { margin: 0; font-size: 1.125rem; color: var(--ink-2); }
.kh-kh-a { margin: .25rem 0 0; font-size: .875rem; color: var(--ink-2); }
.kh-kh-s { display: flex; flex-wrap: wrap; gap: .4rem .6rem; align-items: center; margin: 0; font-size: .875rem; color: var(--ink-2); }
.kh-stan { display: inline-block; padding: .15rem .65rem; border-radius: 999px; background: var(--m1); color: var(--m5); font-weight: 600; }
.kh-stan-uwaga { background: var(--warn-bg); color: var(--ink); border: 1px solid var(--warn-line); }
.kh-karta-u { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: flex-start; margin-top: 1.5rem; }
.kh-karta-g { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 1.25rem; }
.kh-karta-g h2 { margin: 0 0 .5rem; font: 700 1.19rem/1.3 var(--sans); }
.kh-pasuje { padding: 1.2rem 1.35rem; border: 1px solid var(--m5); border-radius: var(--radius); }
.kh-pasuje ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .65rem 1.5rem; }
.kh-pasuje strong { font-weight: 600; }
.kh-pasuje .kh-mala { margin-top: 0; }
.kh-pasuje .kh-pasuje-n { margin-top: .7rem; }
.kh-fakt { display: flex; gap: .6rem; align-items: flex-start; }
.kh-znak { flex: none; display: inline-grid; place-items: center; width: 24px; height: 24px; box-sizing: border-box; border-radius: 50%; font: 700 .875rem/1 var(--sans); }
.kh-fakt-tak .kh-znak { background: var(--m5); color: var(--paper); }
.kh-fakt-tak .kh-znak::before { content: "✓"; }
.kh-fakt-brak .kh-znak { border: 1px solid var(--muted); color: var(--ink); }
.kh-fakt-brak .kh-znak::before { content: "?"; }
.kh-fakt-nie .kh-znak { border: 1px solid var(--ink); color: var(--ink); }
.kh-fakt-nie .kh-znak::before { content: "–"; }
.kh-skrot { margin: 0; font-size: 1.06rem; max-width: 74ch; }
.kh-gatunki { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.kh-gatunki li { padding: .35rem .75rem; border-radius: 999px; background: var(--m1); color: var(--m5); font-size: .875rem; font-weight: 500; }
.kh-gatunki li.is-sel { background: var(--m5); color: var(--paper); font-weight: 600; }
.kh-kto { margin: 0 0 .4rem; display: grid; grid-template-columns: minmax(130px, 200px) minmax(0, 1fr); gap: .5rem 1rem; }
.kh-kto dt { color: var(--ink-2); }
.kh-kto dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.kh-kto code { font: 500 .94rem var(--mono); }
.kh-niewiemy { padding: 1.2rem 1.35rem; background: var(--paper-2); border-radius: var(--radius); }
.kh-niewiemy ul { margin: 0; padding-left: 1.25rem; display: flex; flex-direction: column; gap: .25rem; }
.kh-zrodla ol { margin: 0 0 .5rem; padding-left: 1.4rem; display: flex; flex-direction: column; gap: .25rem; overflow-wrap: anywhere; }
.kh-boczna { flex: 1 1 280px; max-width: 340px; display: flex; flex-direction: column; gap: .9rem; min-width: 0; }
.kh-akcje { display: flex; flex-direction: column; gap: .6rem; }
.kh-blok { padding-top: .9rem; border-top: 1px solid var(--line); }
.kh-blok h2 { margin: 0 0 .25rem; font: 700 .94rem/1.3 var(--sans); }
.kh-spr { list-style: none; margin: 0; padding: 0; font-size: .94rem; }
.kh-spr a { display: flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.kh-korekta { margin: 0; font-size: .875rem; }
.kh-korekta a { display: inline-flex; align-items: center; min-height: 44px; }
.kh-druk { display: none; }
.kh-dok { display: none; }
/* przypisy i odnośniki w tekście: obszar dotyku większy niż wiersz, bez zmiany układu */
a[href="#zrodla"] { padding: .7em .35em; }
.kh-karta-g section > .kh-mala a[href]:not([href="#zrodla"]) { padding: .55em 0; }

/* porównanie */
.kh-cmp-h { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin-bottom: 1.25rem; }
.kh-cmp-h h1 { flex: 1 1 420px; margin: 0; font: 700 2.1rem/1.15 var(--serif); }
.kh-cmp-r { display: inline-flex; gap: .75rem; align-items: center; }
.kh-cmp-r label { display: inline-flex; gap: .5rem; align-items: center; min-height: 44px; font-weight: 500; cursor: pointer; }
.kh-cmp-r input[type=checkbox] { width: 18px; height: 18px; margin: 0; accent-color: var(--m5); }
.kh-cmp-t { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.kh-cmp-t table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .94rem; }
.kh-cmp-t thead tr { background: var(--paper-2); text-align: left; vertical-align: top; }
.kh-cmp-t th, .kh-cmp-t td { padding: .75rem 1rem; text-align: left; vertical-align: top; }
.kh-cmp-t tbody tr { border-top: 1px solid var(--line-2); }
.kh-cmp-t tbody th { font-weight: 600; color: var(--ink-2); width: 170px; }
.kh-cmp-t thead th { font-weight: 700; }
.kh-cmp-t thead th:first-child { font-weight: 600; color: var(--ink-2); width: 170px; }
.kh-cmp-t thead a:first-child { color: var(--ink); }
.kh-cmp-t small { display: block; margin-top: .15rem; font-weight: 400; color: var(--ink-2); }
.kh-usun { display: inline-flex; align-items: center; min-height: 44px; font-size: .8125rem; font-weight: 500; }
.kh-cmp-n { margin-top: .75rem; }
.kh-cmp-d { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin: 1.5rem 0 .75rem; }
.kh-cmp-d .kh-pole { flex: 1 1 320px; max-width: 520px; }
.kh-cmp-k { margin: 0 0 .25rem; font-weight: 600; }
.kh-cmp-l { list-style: none; margin: 0; padding: 0; }
.kh-cmp-l li { min-height: 44px; display: flex; flex-wrap: wrap; gap: .1rem .6rem; align-items: center; }
.kh-cmp-l .kh-mala { margin: 0; }
.kh-zaklady { list-style: none; margin: .25rem 0 0; padding: 0; font-size: .94rem; color: var(--ink-2); }
.kh-zaklady li { min-height: 44px; display: flex; flex-wrap: wrap; gap: 0 .35rem; align-items: center; }

/* telefon: zachowanie aplikacji. Nagłówek portalu z pełnym menu zostaje u góry strony, ale się nie przykleja; przykleja się pasek zadania.
   Wzorce: arkusz z zamknięciem przyciskiem, tłem, ściągnięciem i gestem wstecz; działania na dole; porównanie bez przewijania w bok. */
.kh-dok, .kh-wroc-t { display: none; }
.kh-offline { margin: 0; padding: .55rem 1rem; background: var(--warn-bg); border-bottom: 1px solid var(--warn-line); color: var(--ink); font-size: .875rem; font-weight: 600; text-align: center; }
.kh-i { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media screen and (max-width: 759px) {
  .site-header { position: static; }
  html { scroll-padding-top: 4.5rem; }
  a, button, summary, label { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
  .kh-btn:active, .kh-dok-a:active, .kh-szybki:active, .kh-pas-b:active, .kh-pas-t:active { transform: scale(.97); }

  /* start */
  .kh-start { padding-top: 1.1rem; padding-bottom: 2rem; }
  .kh-start > .eyebrow { display: none; }
  .kh-h1 { margin-bottom: .75rem; font-size: 1.5rem; line-height: 1.15; }
  .kh-lead { display: none; }
  .kh-szukarka { gap: .9rem; padding: .9rem; }
  .kh-tryby { display: grid; grid-template-columns: 1fr 1fr; }
  .kh-tryb { justify-content: center; padding: 0 .4rem; font-size: .875rem; text-align: center; }
  .kh-pola { gap: .6rem; }
  .kh-pole-co, .kh-pole-skad, .kh-pole-zasieg, .kh-pole-firma { flex: 1 1 100%; }
  .kh-pola > .kh-btn { flex: 1 1 100%; min-height: 54px; margin-top: .3rem; }
  .kh-szukarka .kh-pole input { font-size: 1rem; }
  .kh-szybkie { display: flex; flex: 1 1 100%; gap: .4rem; margin-bottom: .35rem; overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; }
  .kh-szybkie::-webkit-scrollbar { display: none; }
  [data-kh-geo-pasek].kh-szybkie { flex-direction: column; align-items: flex-start; }
  [data-kh-geo-pasek] .kh-mala { margin: 0; }
  .kh-szybkie[hidden] { display: none; }
  .kh-szybki { flex: none; min-height: 44px; padding: 0 .9rem; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font: 500 .875rem var(--sans); cursor: pointer; }
  .kh-szybki[aria-pressed="true"] { background: var(--m5); border-color: var(--m5); color: var(--paper); font-weight: 600; }
  .kh-ostatnie { display: block; margin-top: 1rem; padding-top: .75rem; border-top: 1px solid var(--line); }
  .kh-ostatnie[hidden] { display: none; }
  .kh-ostatnie-h { display: flex; justify-content: space-between; align-items: center; margin: 0; font-size: .875rem; }
  .kh-ostatnie ul { list-style: none; margin: 0; padding: 0; }
  .kh-ostatnie a { display: flex; align-items: center; min-height: 44px; }
  .kh-link { min-height: 44px; padding: 0 .25rem; border: 0; background: none; color: var(--ink-2); font: 500 .875rem var(--sans); text-decoration: underline; cursor: pointer; }
  .kh-instaluj { display: block; margin-top: 1rem; }
  .kh-instaluj[hidden] { display: none; }
  .kh-instaluj .kh-btn { width: 100%; }
  .kh-kroki { margin-top: 1.5rem; gap: .6rem; grid-template-columns: minmax(0, 1fr); }
  .kh-krok { padding: .9rem 1rem; }
  .kh-liczby { gap: .6rem 1.5rem; margin-top: 1.25rem; padding-top: 1rem; }
  .kh-liczby strong { font-size: 1.25rem; }
  .kh-liczby .kh-liczby-z { flex-basis: 100%; text-align: left; }

  /* wyniki: pasek zadania, lista, karta firmy jako jeden cel dotyku */
  .kh-pasek { position: sticky; top: 0; z-index: 30; }
  .kh-pasek-w { flex-wrap: nowrap; gap: .4rem; padding-top: .5rem; padding-bottom: .5rem; }
  .kh-pasek .kh-chip, .kh-pasek-r { display: none; }
  .kh-pas-t, .kh-pas-b { box-sizing: border-box; min-height: 44px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font: 600 .875rem/44px var(--sans); text-decoration: none; }
  .kh-pas-t { display: block; flex: 1 1 auto; min-width: 0; padding: 0 .85rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .kh-pas-b { display: inline-flex; flex: none; align-items: center; gap: .3rem; padding: 0 .8rem; cursor: pointer; }
  .kh-pas-b[hidden] { display: none; }
  .kh-pas-b[aria-pressed="true"] { background: var(--m5); border-color: var(--m5); color: var(--paper); }
  .kh-pas-n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; border-radius: 999px; background: var(--m5); color: var(--paper); font-size: .75rem; line-height: 1; }
  .kh-pasek [data-kh-porownaj] { position: fixed; left: 1rem; right: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 40; box-shadow: 0 6px 20px rgba(0, 0, 0, .28); }
  .kh-z-tacka .kh-uklad { padding-bottom: 6rem; }
  .kh-uklad { gap: .75rem; padding-top: .9rem; }
  .kh-wyniki-h { font-size: 1.375rem; }
  .kh-wyniki-s { margin-bottom: .6rem; font-size: .875rem; }
  .kh-lista { margin-top: .6rem; gap: .5rem; }
  .kh-w { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 .35rem; align-items: start; padding: .8rem .35rem .8rem .9rem; }
  .kh-w:active { background: var(--paper-2); }
  .kh-w-t { min-width: 0; }
  .kh-w-h { font-size: 1.06rem; }
  .kh-w-h a { text-decoration: none; }
  .kh-w-h a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
  .kh-w-m { margin: .1rem 0 .35rem; font-size: .875rem; }
  .kh-w-f { font-size: .8125rem; }
  .kh-w-m, .kh-w-f { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
  .kh-dw.is-doc { display: inline-block; padding: 0 .5rem; border-radius: 999px; background: var(--m5); color: var(--paper); font-weight: 600; }
  .kh-wybor { position: relative; z-index: 1; flex-direction: column; justify-content: center; gap: .15rem; min-width: 58px; min-height: 52px; padding: 0; font-size: .6875rem; }
  .kh-wybor .kh-box { width: 22px; height: 22px; border-radius: 6px; }
  .kh-mapa-k .kh-w-h a::after { display: none; }

  /* arkusz filtrów */
  .kh-arkusz { position: fixed; inset: auto 0 0 0; box-sizing: border-box; width: 100%; max-width: 100%; max-height: 88dvh; margin: 0; padding: 0; border: 0; border-radius: 18px 18px 0 0; background: var(--paper); color: var(--ink); overflow: hidden; }
  .kh-arkusz[open] { display: flex; flex-direction: column; animation: kh-wjazd .22s ease-out; }
  .kh-arkusz::backdrop { background: rgba(0, 0, 0, .55); }
  .kh-arkusz form { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
  .kh-ark-g { position: relative; display: flex; flex: none; align-items: center; justify-content: space-between; padding: .9rem .6rem .4rem 1rem; font-size: 1.06rem; touch-action: none; }
  .kh-ark-g[hidden] { display: none; }
  .kh-ark-g::before { content: ""; position: absolute; top: .4rem; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 2px; background: var(--muted); }
  .kh-ark-x { min-height: 44px; padding: 0 .6rem; border: 0; background: none; color: var(--ink); font: 600 .94rem var(--sans); cursor: pointer; }
  .kh-ark-t { flex: 1 1 auto; min-height: 0; padding: .25rem 1rem; overflow-y: auto; overscroll-behavior: contain; }
  .kh-arkusz .kh-filtry-a { display: grid; flex: none; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: .5rem; padding: .6rem 1rem max(.6rem, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); }
  .kh-arkusz .kh-filtry-a [hidden] { display: none; }
  .kh-arkusz label.is-zero { color: var(--muted); }
  .kh-arkusz [aria-busy="true"] { opacity: .75; }

  /* mapa jako osobny widok */
  .kh-z-widokiem:not(.kh-na-mapie) .kh-mapa { display: none; }
  .kh-na-mapie .kh-wyniki, .kh-na-mapie .kh-filtry { display: none; }
  .kh-na-mapie .site-footer { display: none; }
  .kh-na-mapie .kh-uklad { padding-bottom: 13rem; }
  .kh-mapa svg { max-width: none; }
  .kh-pkt-doc.is-wyb, .kh-pkt.is-wyb { r: 8px; fill: var(--ink); stroke: var(--paper-2); stroke-width: 2; }
  .kh-mapa-k { display: block; position: fixed; left: .75rem; right: .75rem; bottom: max(.75rem, env(safe-area-inset-bottom)); z-index: 35; padding: .8rem .9rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 6px 20px rgba(0, 0, 0, .28); }
  .kh-mapa-k[hidden] { display: none; }
  .kh-z-tacka .kh-mapa-k { bottom: 5rem; }

  /* karta: pasek powrotu u góry, działania na dole, źródła na końcu */
  .kh-karta, .kh-cmp { padding-top: .25rem; }
  .kh-karta { padding-bottom: 1.5rem; }
  .kh-wroc { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: .5rem; margin: 0 -1rem .5rem; padding: 0 1rem; background: var(--paper); border-bottom: 1px solid var(--line); }
  .kh-wroc a { flex: 1 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; line-height: 48px; min-height: 48px; }
  .kh-wroc a::before { content: "‹ "; font-weight: 600; }
  .kh-wroc-t { font-weight: 600; }
  .kh-wroc.is-tytul a { flex: none; width: 5.5rem; }
  .kh-wroc.is-tytul .kh-wroc-t { display: block; flex: 1 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .kh-kh h1 { font-size: 1.75rem; }
  .kh-kh-r { font-size: 1rem; }
  .kh-karta-u { flex-direction: column; flex-wrap: nowrap; gap: 1rem; margin-top: 1rem; }
  .kh-karta-g, .kh-boczna { display: contents; }
  .kh-karta-u > * { min-width: 0; }
  .kh-pasuje, .kh-niewiemy { padding: 1rem; }
  .kh-pasuje ul { grid-template-columns: minmax(0, 1fr); }
  .kh-zrodla { order: 8; }
  .kh-korekta { order: 9; }
  .kh-kto { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .kh-kto dd { margin-bottom: .55rem; }
  .kh-zrodla li a { display: inline-block; padding: .6rem 0; }
  .kh-akcje .kh-btn-g, .kh-akcje .kh-btn-m { display: none; }
  .kh-dok { position: sticky; bottom: 0; z-index: 30; display: flex; gap: .3rem; padding: .35rem .5rem max(.35rem, env(safe-area-inset-bottom)); background: var(--paper); border-top: 1px solid var(--line); }
  .kh-dok-a { display: flex; flex: 1 1 0; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; min-width: 0; min-height: 56px; padding: .2rem .15rem; border: 0; border-radius: 10px; background: none; color: var(--ink); font: 600 .75rem/1.15 var(--sans); text-align: center; text-decoration: none; cursor: pointer; }
  .kh-dok-a[hidden] { display: none; }
  .kh-dok-g { background: var(--btn-bg); color: var(--btn-ink); }
  .kh-dok-g:hover { background: var(--btn-bg-hover); color: var(--btn-ink); }

  /* porównanie: fakt po fakcie, wszystkie firmy naraz, bez przewijania w bok */
  .kh-cmp-h { margin-bottom: .75rem; }
  .kh-cmp-h h1 { flex-basis: 100%; font-size: 1.5rem; }
  .kh-cmp-h > .kh-btn { display: none; }
  .kh-cmp-t { overflow: visible; border: 0; }
  .kh-cmp-t table, .kh-cmp-t thead, .kh-cmp-t tbody { display: block; min-width: 0; }
  .kh-cmp-t thead tr { display: flex; flex-direction: column; gap: .4rem; background: none; }
  .kh-cmp-t thead th { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 .75rem; align-items: center; padding: .55rem .8rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
  .kh-cmp-t thead th:first-child { display: none; }
  .kh-cmp-t thead th small { grid-column: 1; grid-row: 2; }
  .kh-cmp-t thead .kh-usun { grid-column: 2; grid-row: 1 / span 2; }
  .kh-cmp-t tbody { margin-top: .9rem; }
  .kh-cmp-t tbody tr { display: block; padding: .7rem 0; }
  .kh-cmp-t tbody th { display: block; width: auto; padding: 0 0 .3rem; font-size: .8125rem; }
  .kh-cmp-t tbody td { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: .75rem; padding: .22rem 0; overflow-wrap: anywhere; }
  .kh-cmp-t tbody td::before { content: attr(data-firma); color: var(--ink-2); font-size: .875rem; }
  .kh-cmp-t tbody td:not([data-firma]) { display: block; }
  .kh-cmp-t tbody td:not([data-firma])::before { content: none; }
  .kh-cmp-d .kh-pole { flex-basis: 100%; }
  .kh-cmp-d .kh-btn { flex: 1 1 100%; }
}
@keyframes kh-wjazd { from { transform: translateY(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .kh-arkusz[open] { animation: none; } }
/* aplikacja zainstalowana: bez menu portalu nad zadaniem */
@media screen and (display-mode: standalone) and (max-width: 759px) { .site-header .nav, .site-footer { display: none; } }

/* druk A4: karta i porównanie na papierze albo w PDF, bez menu i przycisków */
@media print {
  @page { size: A4; margin: 15mm; }
  :root, :root:not([data-theme="light"]), :root[data-theme="dark"] {
    --paper: #fff; --paper-2: #f4f4f6; --surface: #fff; --ink: #000; --ink-2: #333; --muted: #555; --line: #bbb; --line-2: #ddd; --copper-text: #000;
    --m1: #eef1f6; --m2: #999; --m3: #777; --m5: #000; color-scheme: light;
  }
  html { font-size: 12.5px; }
  body { line-height: 1.4; background: #fff; color: #000; }
  .site-header, .site-footer, .search-dialog, .skip, .kh-akcje, .kh-dok, .kh-wroc, .kh-korekta, .kh-pasek, .kh-filtry, .kh-wybor, .kh-usun, .kh-cmp-r, .kh-cmp-h .kh-btn, .kh-cmp-d, .kh-cmp-k, .kh-cmp-l, .kh-strony { display: none !important; }
  .wrap { max-width: none; padding: 0; }
  .kh-karta, .kh-cmp, .kh-uklad { padding: 0; display: block; }
  .kh-karta-u { display: block; margin-top: 8pt; }
  .kh-boczna { max-width: none; display: block; }
  .kh-kh h1, .kh-cmp-h h1 { font-size: 18pt; }
  .kh-karta-g { display: block; }
  .kh-karta-g section, .kh-blok { margin-top: 8pt; break-inside: avoid; }
  .kh-karta-g h2, .kh-blok h2 { font-size: 11pt; margin-bottom: 3pt; }
  .kh-zrodla ol { display: block; }
  .kh-pasuje, .kh-niewiemy { padding: 6pt 8pt; border: 1px solid #999; background: none; }
  .kh-spr a { min-height: 0; display: inline; }
  .kh-spr a[rel~="noopener"]::after, .kh-zrodla a::after { content: " (" attr(href) ")"; font-size: 8pt; overflow-wrap: anywhere; }
  .kh-gatunki li { padding: 1pt 5pt; background: none; border: 1px solid #999; color: #000; }
  .kh-fakt-tak .kh-znak { background: none; border: 1px solid #000; color: #000; }
  .kh-kto { grid-template-columns: 110pt minmax(0, 1fr); gap: 2pt 8pt; }
  .kh-cmp-t { overflow: visible; border: 0; }
  .kh-cmp-t table { min-width: 0; font-size: 8.5pt; table-layout: fixed; }
  .kh-cmp-t th, .kh-cmp-t td { padding: 3pt 4pt; border: 1px solid #999; overflow-wrap: anywhere; }
  .kh-cmp-t thead th:first-child, .kh-cmp-t tbody th { width: 70pt; }
  .kh-cmp-t tr { break-inside: avoid; }
  .kh-mapa { max-width: 60mm; }
  .kh-w { break-inside: avoid; padding: 4pt 0; border: 0; border-bottom: 1px solid #bbb; border-radius: 0; }
  .kh-druk { display: block; margin-top: 10pt; padding-top: 4pt; border-top: 1px solid #999; font-size: 8pt; color: #333; overflow-wrap: anywhere; }
  a { color: #000; text-decoration: none; }
}
