/* karta-dzialki.css — warstwy wyniku sprawdzenia jako SIATKA KART.
   Wdrozenie decyzji AL z 22.09.2026: wiersz „nazwa ..... wartosc" na calej szerokosci
   kolumny kazal oku przeskakiwac kilkaset pikseli, a caly opis warstwy razem ze zrodlem
   i data stal na wierzchu. Karta zamknieta pokazuje TRZY rzeczy: nazwe, wartosc i jeden
   fakt kontekstowy; opis, zrodlo, data i szczegoly siedza pod znakiem „+".
   Arkusz doklada sie do karta-obiektu.css i nadpisuje wylacznie uklad warstw: sekcja,
   naglowek sekcji, szyna, zaslona i stopka zostaja wspolne dla wszystkich kart „Sprawdz". */

.kd-siatka{
  display:grid;
  gap:14px;
  margin-top:16px;
  /* auto-fit z miara minimalna, NIE stala liczba kolumn: karta miejsca stoi raz w szufladzie
     szerokiej na 640 px, a raz w kolumnie strony szerokiej na 1260 px. Liczba kolumn ma
     wynikac z realnej szerokosci kontenera, bo punkt lamania liczony od okna dawal cztery
     kolumny po 140 px i lamal „0,0 MW" na dwa wiersze. */
  grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
  /* align-items:start, nie stretch: otwarta karta ma rosnac sama, a nie ciagnac za soba
     sasiadki z tego samego wiersza, ktore zostalyby pustymi pudlami. Rowna wysokosc kart
     zamknietych daje zamiast tego staly zapas na etykiete, wartosc i kontekst. */
  align-items:start;
}
/* Dopoki zadna karta w siatce nie jest otwarta, karty zamkniete rownaja sie do najwyzszej
   w rzedzie: etykieta albo wartosc, ktora lamie sie o wiersz dluzej (kopia EN: „Available
   capacity at the nearest substation", „44.57 km in a straight line"), nie zostawia sasiadek
   krotszych o wiersz. Znak „+" stoi bezwzglednie przy dolnej krawedzi, wiec wyrownanie nie
   przesuwa tresci. Po otwarciu karty siatka wraca do `start` i regula wyzej dziala bez zmian
   (zrzuty EN 22.09.2026: roznica 18 px w rzedzie „Will the grid accept the capacity?"). */
.kd-siatka:not(:has(>[open])){align-items:stretch}

/* Siatka kart stoi w dwoch miejscach: w karcie wyniku (#l360-app.t360-shell, kontener
   zadeklarowany w tool-360.css) i w przykladzie na stronie „Sprawdz dzialke". Oba maja byc
   kontenerem `t360karta`, zeby progi ukladu liczyly sie z szerokosci miejsca, w ktorym karty
   naprawde stoja, a nie z szerokosci okna. */
.kd-pole{container:t360karta / inline-size}

.kd-k{
  position:relative;
  background:#fff;
  border:1px solid var(--ko-line,#e6e9ec);
  border-radius:14px;
  overflow:hidden;
}
.kd-k:hover{border-color:#c6d6d4}
.kd-k>summary{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:16px 18px 18px;
  /* Cel dotyku: cala glowka karty jest przyciskiem rozwiniecia, wiec 44 px to podloga,
     nie miara docelowa (realnie glowka ma ponad 100 px). */
  min-height:44px;
  cursor:pointer;
  list-style:none;
  box-sizing:border-box;
}
.kd-k>summary::-webkit-details-marker{display:none}
.kd-k>summary:focus-visible{outline:3px solid var(--ko-green,#007672);outline-offset:-3px}

.kd-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:38px}
/* Znacznik przypisu w etykiecie karty stoi w wierszu jako zwykly tekst, nie inline-block:
   przed pudlem inline-block przegladarka lamie wiersz nawet bez spacji, wiec kopia EN
   zostawiala sam znacznik „***" w osobnym wierszu pod „Small installations (MIOZE) nearby"
   (zrzuty 22.09.2026). Bez spacji przed znacznikiem tekstowym nie ma miejsca na zlamanie,
   wiec ostatnie slowo etykiety schodzi do drugiego wiersza razem ze znacznikiem. */
.kd-lab .km-fn-mark{display:inline}
.kd-lab{
  /* 14 px to podloga bramki drobnego druku (tools/check_min_font.py, regula AL z 8.09.2026):
     nazwa warstwy jest trescia glowna, nie przypisem. Tracking schodzi z .08em na .05em,
     zeby najdluzsza nazwa („Pozwolenia na budowę OZE w gminie") miescila sie w dwoch
     wierszach karty szerokiej na 232 px. */
  font-size:14px;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--ko-muted,#5d646d);
  line-height:1.3;
}
/* Znak przy etykiecie zastepuje slowne zastrzezenie: klodka mowi „to jest za dostepem",
   zegar mowi „zrodlo jeszcze nie odpowiedzialo". Jedno i drugie czyta sie bez legendy. */
.kd-znak{flex:none;line-height:0;color:#9aa4ab;margin-top:1px}

/* Wartosc: min-height rowna karty w wierszu, bo wartosc slowna jest nizsza od cyfry.
   align-content:flex-end sadza ja na dolnej krawedzi zapasu, zeby wszystkie wartosci
   w wierszu stoly na jednej linii. */
.kd-val{
  display:flex;
  align-items:baseline;
  align-content:flex-end;
  flex-wrap:wrap;
  gap:7px;
  min-height:32px;
  font:900 30px/1.05 "Lato",system-ui,sans-serif;
  letter-spacing:-.02em;
  color:var(--ko-ink,#161922);
  font-variant-numeric:tabular-nums;
}
.kd-val b{font:inherit;color:inherit;overflow-wrap:anywhere}
/* Jednostka zaslony nie stoi juz obok wartosci, tylko w wierszu kontekstu: dluzsza
   („suma sygnalow, narastajaco") lamala wiersz wartosci i rozpychala karte w rzedzie
   o 17 px. Reguly .kd-val i / .kd-val--dl i zniknely razem z tym elementem. */
/* Wartosci dluzsze niz dziewiec znakow („121 786,0 MW", „6,14 km w linii prostej") w karcie
   szerokiej na 232 px wychodzily poza krawedz albo lamaly sie na cztery wiersze. Klase
   doklada render po dlugosci tekstu, nie po nazwie warstwy. */
/* Wartosc slowna zostaje w tym samym zapasie pionowym co liczba, zeby wszystkie wartosci
   w rzedzie stoly na jednej linii, a nie podskakiwaly o kilkanascie pikseli. */
.kd-val--dl{font-size:20px;line-height:1.25;letter-spacing:-.01em}
.kd-val b.brak,.kd-val b.dim{font-size:24px;letter-spacing:.04em;color:#8f989e}
/* Werdykt w trzech kolorach (spec 15.09.2026): zielony „sprzyja", bursztynowy „potwierdz
   w urzedzie", szarosc „zrodlo nie odpowiedzialo". Do 22.09.2026 kolory niosly reguly
   .ko-m ze wspolnego arkusza; wartosc stoi teraz w naglowku karty, wiec ida za nia tutaj.
   Liczby sieciowe zostaja bez koloru: wolna moc ani odleglosc nie sa werdyktem. */
.kd-val b.ok{color:var(--ko-green,#007672)}
.kd-val b.uwaga{color:#8a5d00}
/* Zapas z prawej na znak „+" w rogu (26 px + margines): bez niego dluzszy fakt wchodzil
   pod klapke i konczyl sie w polowie slowa. Dwa wiersze zapasu w pionie rownaja karty
   w rzedzie: jedne fakty mieszcza sie w jednym wierszu, inne w dwoch. */
.kd-ctx{font-size:14px;line-height:1.4;color:var(--ko-muted,#5d646d);min-height:40px;padding-right:32px}
/* Nie kazda warstwa ma fakt kontekstowy krotszy niz miara karty (opis bywa dlugi i idzie
   w calosci pod klapke), ale zapas pod wartoscia zostaje TAKZE wtedy. Do 22.09.2026 pusty
   wiersz schodzil do zera i rzad rozjezdzal sie o 40 px: „Male instalacje MIOZE" konczyla
   sie wyzej niz stojace obok „Decyzje srodowiskowe", a znak „+" obu kart lezal na dwoch
   roznych wysokosciach. Rezerwa jest tu wiec elementem rytmu, nie dziura: trzyma dolna
   krawedz karty i znak „+" na jednej linii w calym rzedzie. Na waskim kontenerze (ponizej)
   karty stoja w jednej kolumnie, wiec rezerwa nie ma czego rownac i schodzi do zera. */

/* Klapka to znak w rogu, nie wiersz tekstu: dwanascie kart razy „Szczegoly warstwy" bylo
   dwunastoma kopiami tej samej informacji i zabieralo z kazdej karty cala linie. */
.kd-plus{
  position:absolute;right:12px;bottom:12px;width:26px;height:26px;border-radius:50%;
  border:1px solid #d7e2e0;background:#fff;
  transition:transform .15s ease,border-color .15s ease;
}
.kd-plus::before,.kd-plus::after{content:"";position:absolute;left:50%;top:50%;background:var(--ko-green,#007672);border-radius:1px}
.kd-plus::before{width:11px;height:1.8px;transform:translate(-50%,-50%)}
.kd-plus::after{width:1.8px;height:11px;transform:translate(-50%,-50%)}
.kd-k:hover .kd-plus{border-color:var(--ko-green,#007672)}
.kd-k[open] .kd-plus{transform:rotate(45deg);border-color:#d7e2e0}
/* Tekst wylacznie dla czytnikow ekranu: znak „+" sam w sobie nie mowi, co sie otworzy. */
.kd-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.kd-det{padding:0 18px 16px;border-top:1px solid var(--ko-line,#e6e9ec);margin-top:2px}
.kd-det p{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ko-muted,#5d646d)}
.kd-det a{color:var(--ko-green,#007672);font-weight:700;text-underline-offset:2px}
.kd-meta{font-size:14px!important;color:#8b949b!important}
.kd-det ul{margin:10px 0 0;padding-left:18px}
.kd-det li{font-size:14px;line-height:1.5;color:var(--ko-muted,#5d646d);margin-top:4px}

/* Stany. Zrodlo, ktore nie odpowiedzialo, NIE jest awaria platformy i nie ma tak wygladac:
   bursztyn z trojkatem ostrzegawczym czytalo sie jak usterka po naszej stronie.
   Wartosc zamknieta bramka jest wyszarzona, ale widac, ze liczba istnieje. */
.kd-k--czeka{border-color:#dbe3e2;background:#fcfdfd}
.kd-k--czeka .kd-znak{color:#9aa4ab}
.kd-alert{margin:14px 0 0!important;padding:10px 12px;border-left:3px solid #c3cecc;background:#f2f6f5;color:var(--ko-ink,#161922)!important;font-size:14px;line-height:1.5}
.kd-k--zamk{background:#fbfcfc}
.kd-k--zamk .kd-plus::before,.kd-k--zamk .kd-plus::after{background:var(--ko-muted,#5d646d)}

/* Decyzja AL z 9.09.2026: o ukladzie karty rozstrzyga szerokosc KARTY, nie szerokosc okna.
   Karta miejsca stoi w szufladzie mapy szerokiej najwyzej na 640 px przy KAZDEJ szerokosci
   okna, wiec prog liczony od viewportu wpuszczal do szuflady uklad przeznaczony dla kolumny
   strony. Zapytanie kontenerowe `t360karta` deklaruje .t360-shell w tool-360.css. */
@container t360karta (max-width:520px){
  .kd-siatka{grid-template-columns:minmax(0,1fr)}
  .kd-val{font-size:27px}
  .kd-top,.kd-ctx{min-height:0}
}

/* ============================================================================
   TRYB STRONY (22.09.2026, decyzja AL: „Osobna strona pelnej szerokosci").
   Wynik sprawdzenia dzialki przestaje byc szuflada szeroka na 604 px i staje sie
   strona: kolumna 1120 px, mapa nad trescia, cztery karty w rzedzie, naglowki
   sekcji jako pytania. Szuflada zostaje wylacznie do podgladu oferty z mapy.
   Arkusz nadpisuje tu uklad wspolny z karta-obiektu.css TYLKO wewnatrz
   #l360-strona; karta firmy i karty jednostek zostaja bez zmian.
   Liczby za layout-craft i pomiarem makiety: kolumna 1120, gutter 32, mapa 380,
   odstep miedzy sekcjami 44, w karcie 6, miedzy kartami 14 (1:7 wewnatrz:miedzy).
   ============================================================================ */

.kd-strona{--kd-wrap:1120px;--kd-gut:32px;display:block;background:transparent}
.kd-strona .kd-wrap{max-width:var(--kd-wrap);margin:0 auto;padding:0 var(--kd-gut);box-sizing:border-box}

/* Landing pod wynikiem. Przelacznik trybu w sprawdz-dzialke.html usuwa z <main> wszystko
   poza wynikiem, ale biegnie w polowie dokumentu: sekcje sparsowane PO nim (przyklad
   wyniku, „skad te dane", operator, nota o zbiorach) zostawaly pod karta (zrzuty 22.09.2026
   19:37). Klase na <html> skrypt stawia od razu, wiec ta regula chowa je od pierwszego
   rysowania; usuniecie z drzewa robi ten sam skrypt po DOMContentLoaded. */
html.kd-tryb-strona #main>:not(#md-wynik){display:none}

/* PASEK NARZEDZI nad wynikiem (.kd-bar) mieszka od 23.09.2026 w assets/karta-obiektu.css,
   bo ten sam pasek niosa TRZY wejscia „Sprawdz": dzialka, firma i jednostki. Jedno zrodlo
   miar, ta sama zasada co przy assets/blok-szukaj.css. */

/* Okruch i naglowek. H1 nazywa dzialke, pod nim jedna linia „gdzie", po prawej data
   sprawdzenia i przyciski. Identyfikatory (TERYT, wspolrzedne, zrodlo ewidencji)
   zostaja pod naglowkiem, bo to DANE rekordu, nie ozdoba: w makiecie zeszly do
   rozwijaka zrodel, ale rozwijak niesie zrodla warstw, nie tozsamosc dzialki. */
.kd-strona .ko-crumb{padding-top:26px;white-space:normal}
.kd-strona .ko-head{padding:14px 0 0;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px}
.kd-strona .ko-name{font-size:36px;line-height:1.1;letter-spacing:-.02em;max-width:20em}
.kd-strona .ko-actions{align-self:flex-start}

/* Mapa: pelna szerokosc kolumny, jedna, nad trescia. Wyzsza niz w szufladzie, bo
   obrys dzialki przy 260 px byl plamka, a przy 380 px widac ksztalt i sasiedztwo. */
.kd-strona .ko-mapblock{margin:26px 0 0}
.kd-strona .ko-map.ko-map--top{height:380px;border-radius:16px;border:1px solid var(--ko-line,#e6e9ec)}

/* Pas liczb pod mapa. Wspolny arkusz sklada go flexem z odstepem 44 px pod kolumne 604 px,
   wiec na 1056 px piaty fakt („20 pozwolen OZE w gminie") spadal sam do drugiego wiersza,
   pod cztery pozostale (zrzut 22.09.2026 19:37). Siatka z miara minimalna 168 px daje tu
   piec kolumn po ~195 px, a przy czterech faktach cztery; etykieta moze zajac dwa wiersze,
   liczba zostaje w jednym. */
.kd-strona .ko-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:18px 20px}

/* Jedna kolumna: szyna schodzi, bo trzecia kolumna do czytania robila wrazenie tloku.
   Jej tresc (przejscia) wraca na dole strony jako karty, wiec nic nie ginie. */
.kd-strona .ko-body{display:block}
.kd-strona .ko-main{min-width:0}

/* Sekcja. Naglowek jest PYTANIEM i stoi nad kreska, a nie pod nia: kreska zamyka
   naglowek od dolu i oddziela go od kart, zamiast doklejac sekcje do poprzedniej. */
.kd-strona .ko-sec{padding:0;border-top:0;margin-top:44px}
.kd-strona .ko-sec-h{display:flex;justify-content:space-between;align-items:baseline;
  gap:10px 24px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--ko-line,#e6e9ec)}
.kd-strona .ko-sec-h h3{margin:0;font:900 22px/1.2 "Lato",system-ui,sans-serif;letter-spacing:-.015em}
.kd-strona .ko-q{margin-top:14px;max-width:46em}

/* PASEK POROWNAWCZY. Dwie liczby sekcji sieci w jednej skali: wolna moc wobec kolejki
   widac od razu, bez liczenia w pamieci. Stoi POD kartami tej sekcji, na calej
   szerokosci, bo porownuje wartosci z dwoch kart naraz. */
.kd-por{margin-top:14px;display:flex;flex-direction:column;gap:14px;padding:18px 22px;
  border-radius:14px;background:#fff;border:1px solid var(--ko-line,#e6e9ec)}
.kd-por-w{display:grid;grid-template-columns:132px minmax(0,1fr) auto;align-items:center;gap:14px}
/* 14 px to podloga bramki drobnego druku (tools/check_min_font.py, regula AL z 8.09.2026);
   12,5 px z makiety zapalalo ja na czerwono. */
.kd-por-l{font-size:14px;letter-spacing:.05em;text-transform:uppercase;font-weight:800;
  color:var(--ko-muted,#5d646d)}
.kd-por-b{display:block;height:12px;border-radius:999px;background:#eef2f2;overflow:hidden}
.kd-por-b i{display:block;height:100%;border-radius:999px;background:var(--ko-green,#007672)}
.kd-por-b--k i{background:#b9c6c4}
.kd-por-v{font:900 16px/1 "Lato",system-ui,sans-serif;color:var(--ko-ink,#161922);
  font-variant-numeric:tabular-nums}

/* NASTEPNY KROK. Karty zamiast listy odnosnikow w szynie: kazda niesie cel i jedna
   linie kontekstu, czyli dokladnie to, co niosla szyna, tylko w miejscu, do ktorego
   czytelnik dochodzi po przeczytaniu wyniku. */
.kd-dalej{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;
  margin:34px 0 64px}
/* Dokladnie cztery cele: cztery kolumny, zeby nie zostal jeden sam w drugim rzedzie.
   Szesc celow (zwykly komplet) idzie 3+3, piec 3+2; auto-fit dawal 4+2 przy szesciu. */
.kd-dalej:has(>:nth-child(4)):not(:has(>:nth-child(5))){grid-template-columns:repeat(4,minmax(0,1fr))}
/* white-space: styl.css ma `nav a{white-space:nowrap}` dla menu, a to tez jest <nav>, wiec
   „Wykaz wolnych mocy: porownaj stacje" konczylo sie na krawedzi karty w polowie slowa. */
.kd-dalej a{display:block;padding:18px 20px;border:1px solid var(--ko-line,#e6e9ec);
  border-radius:14px;background:#fff;text-decoration:none;white-space:normal}
.kd-dalej a:hover{border-color:var(--ko-green,#007672)}
.kd-dalej b{display:block;font-size:17px;font-weight:900;color:var(--ko-ink,#161922);line-height:1.3}
.kd-dalej span{display:block;margin-top:4px;font-size:14px;line-height:1.4;color:var(--ko-muted,#5d646d)}

/* Sieroty w siatce kart. Cztery kolumny przy pieciu albo szesciu kartach zostawialy jedna
   albo dwie karty same w drugim rzedzie (teren 4+1, okolica 4+2, zrzut 22.09.2026 19:37).
   Przy takiej liczbie siatka schodzi do trzech kolumn: 3+2 i 3+3; cztery karty zostaja
   w jednym rzedzie, siedem i osiem ida 4+3 i 4+4. Prog liczony z szerokosci KARTY, jak
   jednokolumnowy wyzej: 970 px to szerokosc, od ktorej auto-fit z miara 232 px daje
   cztery kolumny, wiec szuflada (do 640 px) tej reguly nie dostaje. */
@container t360karta (min-width:970px){
  .kd-strona .kd-siatka:has(>:nth-child(5)):not(:has(>:nth-child(7))){grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Telefon: jedna kolumna kart, naglowek i akcje do lewej, mapa nizsza. Prog 760 px
   liczy sie od OKNA, bo w trybie strony kontener ma szerokosc okna minus gutter. */
@media (max-width:760px){
  .kd-strona{--kd-gut:20px}
  .kd-strona .ko-head{grid-template-columns:minmax(0,1fr);gap:14px}
  .kd-strona .ko-name{font-size:28px}
  .kd-strona .ko-actions{justify-content:flex-start}
  .kd-strona .ko-map.ko-map--top{height:260px;border-radius:12px}
  .kd-strona .ko-mapblock{margin-top:20px}
  .kd-strona .ko-sec{margin-top:34px}
  .kd-strona .ko-sec-h h3{font-size:20px}
  .kd-por-w{grid-template-columns:104px minmax(0,1fr) auto;gap:10px}
  .kd-por{padding:16px 18px}
  .kd-dalej{grid-template-columns:minmax(0,1fr);margin-bottom:48px}
}
