
:root{--zyd:#3f6b7a;--zyd-tlo:#e2edf1;
  --meski:#e3e9f0;--zenski:#f2e5e2;--linia-drzewa:#a9a496}
@media (prefers-color-scheme:dark){
  :root:not([data-motyw="jasny"]){--zyd:#8fc0d0;--zyd-tlo:#1b262b;
    --meski:#1f2732;--zenski:#2c2020;--linia-drzewa:#5d6069}}
:root[data-motyw="ciemny"]{--zyd:#8fc0d0;--zyd-tlo:#1b262b;
  --meski:#1f2732;--zenski:#2c2020;--linia-drzewa:#5d6069}
/* Nazwy, którymi posługuje się sam rysunek — jeden alias, oba motywy. */
:root{--k-mez:var(--meski);--k-kob:var(--zenski);--linia:var(--linia-drzewa);
  --ramka:var(--kreska);--tekst:var(--atrament);--tekst2:var(--atrament-2);
  --tekst3:var(--atrament-3)}

/* wycięte z arkusza opracowania podymnego */
/* Odsyłacze w tekście: sangwina i podkreślenie dopiero pod kursorem — tak jak
   w .tekst a arkusza serwisu. Bez tej reguły przeglądarka malowała je własnym
   błękitem i fioletem, co odcinało się od reszty strony. */
.ostrzezenie a,.wstep a,.uw a,.nota a,.stopka a{color:var(--sanguina);
  text-decoration:none;border-bottom:1px solid var(--kreska)}
.ostrzezenie a:hover,.wstep a:hover,.uw a:hover,.nota a:hover,.stopka a:hover{border-bottom-color:var(--sanguina)}
.osoba{background:var(--karta);border:1px solid var(--kreska);border-radius:.35rem;
  padding:.7rem .9rem;margin:0 0 .55rem}
.osoba .naglo{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap}
.osoba .nazw{font-family:var(--szeryf);font-size:1.05rem;font-weight:600}
.osoba .przyd{color:var(--sanguina);font-family:var(--szeryf);font-style:italic}
.osoba .urzad{font-size:.82rem;color:var(--atrament-2);font-style:italic}
.osoba .lata{margin-left:auto;font-family:var(--aparat);font-size:.68rem;
  letter-spacing:.05em;color:var(--atrament-3)}
.wyst{margin:.45rem 0 0;padding:.35rem 0 0;border-top:1px dotted var(--kreska);
  font-size:.88rem;display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}
.zn{font-family:var(--aparat);font-size:.66rem;letter-spacing:.05em;
  background:var(--sanguina-tlo);color:var(--sanguina);border-radius:.2rem;
  padding:.1rem .35rem;white-space:nowrap}
.zn.szary{background:transparent;color:var(--atrament-3);border:1px solid var(--kreska)}
/* Zawija się, inaczej niż pozostałe plakietki: rozpisany dym bywa długi
   („1 dwór, 2 browary, 2 karczmy, 3 chaty o 1 gospodarzu”) i przy `nowrap`
   odziedziczonym z `.zn` rozpychał stronę w poziomie na telefonie — 459 px
   przy oknie 390. */
.zn.bud{background:transparent;color:var(--atrament-2);border:1px dashed var(--kreska);
  white-space:normal}
.zn.adn{background:transparent;color:var(--sanguina);border:1px solid var(--sanguina)}
.zn.zmarly{background:transparent;color:var(--atrament-3);border:1px solid var(--kreska)}
.osoba .zmarly{color:var(--atrament-3);font-size:.9em;cursor:help}
.dymy{font-family:var(--aparat);font-size:.74rem;white-space:nowrap}
.zrodlowy{color:var(--atrament-2);font-size:.85rem;font-style:italic;flex:1 1 20rem;min-width:0}
.uw{background:var(--uwaga);border-left:3px solid var(--uwaga-kreska);
  padding:.35rem .6rem;margin:.4rem 0 0;font-size:.82rem;max-width:84ch}
/* Noty redakcyjne przy wsiach bywają na pół ekranu — rozpisany odczyt
   przekreślonego wyrazu albo wywód o klamrze. Rozłożone na płask zabijały
   czytelność zakładki „Wsie”, więc długie zwijają się w zajawkę; krótkie
   zostają otwarte, bo zwijanie jednego zdania jest samą przeszkodą. */
details.uw{padding:.3rem .6rem}
details.uw>summary{cursor:pointer;list-style:none;font-size:.82rem;
  color:var(--atrament-2)}
details.uw>summary::-webkit-details-marker{display:none}
details.uw>summary::before{content:"▸ ";color:var(--uwaga-kreska)}
details.uw[open]>summary::before{content:"▾ "}
details.uw>summary:hover{color:var(--sanguina)}
details.uw>summary:focus-visible{outline:2px solid var(--sanguina);outline-offset:2px}
details.uw>summary .zajawka{color:var(--atrament-2)}
details.uw:not([open])>summary{white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
details.uw[open]>summary{white-space:normal}
td.lb,th.lb{text-align:right;font-family:var(--aparat);font-size:.84rem}
.tabelka{overflow-x:auto}
.wiesk{background:var(--karta);border:1px solid var(--kreska);border-radius:.35rem;
  padding:1rem 1.1rem;margin:0 0 1rem}
.wiesk h3{margin-top:0}
.warianty{font-size:.82rem;color:var(--atrament-3);font-style:italic}
.wsie-paski .kropka{padding:0 .35rem;opacity:.5}
table.postacie td.nazw{font-weight:600;white-space:nowrap}
table.postacie td.przyd{color:var(--sanguina);font-family:var(--szeryf);font-style:italic}
/* Forma odmężowska w miejscu imienia: kursywa i cudzysłów mówią, że to zapis
   karty, a nie imię chrzestne — tego kartoteka nie zna. */
.odmez{font-family:var(--szeryf);color:var(--atrament-2);cursor:help}
table.postacie td.kropka{color:var(--atrament-3)}
table.postacie td.uw-k{display:flex;flex-wrap:wrap;gap:.25rem;padding-top:.35rem}
table.postacie .zn.urz{background:transparent;color:var(--atrament-2);
  border:1px solid var(--kreska);font-style:normal}
table.postacie td.rocz .zn.rok{background:var(--sanguina-tlo);color:var(--sanguina);
  font-weight:600}
/* „wsp.” — liczba obok jest równym podziałem pozycji zbiorowej, a nie
   odczytem z karty. Znacznik ma to mówić za każdym razem, nie tylko we wstępie. */
table.postacie .wsp{margin-left:.35rem;font-family:var(--aparat);font-size:.62rem;
  letter-spacing:.04em;color:var(--atrament-3);cursor:help}
.uw.brakfiszek{background:var(--uwaga);border-left:3px solid var(--uwaga-kreska);
  padding:.55rem .85rem;margin:.4rem 0 .6rem;max-width:84ch}
/* Adnotacja wzięta z klamry nad kolumną karty — kreska przerywana mówi, że
   to zapis zbiorczy, a nie zdanie o tej jednej osobie. */
.zn.adn.klamra{border-style:dashed}
/* Bez przezroczystości: `opacity` zbijało kontrast poniżej 4,5:1 i axe
   zgłaszał to jako naruszenie na każdym wypisie objętym klamrą. Odsunięcie
   wizualne robi teraz barwa, która kontrast ma sprawdzony. */
.zn.adn.klamra i{font-style:normal;color:var(--atrament-3);margin-left:.3em}
.klucz-wies{background:var(--karta);border:1px solid var(--kreska);
  border-radius:.35rem;padding:.6rem .85rem;margin:.5rem 0 .7rem;font-size:.85rem}
.klucz-wies p{margin:.2rem 0;max-width:none}
.klucz-wies i{color:var(--atrament-3);font-style:normal;font-size:.8rem}
.wyst.zwiezle .zn.rok{background:var(--sanguina-tlo);color:var(--sanguina);font-weight:600}
.wyst.zwiezle .rok-l{font-family:var(--aparat);font-size:.7rem;color:var(--atrament-3)}
table.postacie tr.szczegoly .osoba{border:0;background:transparent;padding:.2rem 0}
.razem{margin:.15rem 0 .5rem 0;font-size:.8rem;color:var(--atrament-3);
  display:flex;flex-wrap:wrap;gap:.3rem .8rem;align-items:baseline}
.razem .ilu{font-family:var(--aparat);font-size:.66rem;letter-spacing:.05em;
  color:var(--atrament-2);white-space:nowrap}
.wstep{max-width:84ch;color:var(--atrament-2);margin:.2rem 0 .9rem}
.ostroznie{max-width:84ch;background:var(--uwaga);border-left:3px solid var(--uwaga-kreska);
  padding:.65rem .9rem;margin:0 0 1rem;font-size:.86rem;color:var(--atrament-2)}
.tabelka.szeroka{overflow-x:auto}
.tabelka.szeroka table{min-width:46rem}
/* Opis Łukowa: ciągły tekst źródłowy, rok na marginesie. Uwagi redakcyjne
   siedzą pod zwijanymi klapkami, żeby nie rozbijały lektury. */
.opis-ciag{max-width:84ch;margin:.2rem 0 1.4rem}
.opis-ciag p{margin:0 0 .85rem;line-height:1.62}
.opis-ciag .rk{font-family:var(--aparat);font-size:.7rem;letter-spacing:.05em;
  color:var(--sanguina);background:var(--sanguina-tlo);border-radius:.2rem;
  padding:.1rem .38rem;margin-right:.45rem;white-space:nowrap;vertical-align:.08em}
details.klapka{border:1px solid var(--kreska);border-radius:.35rem;
  background:var(--karta);margin:.5rem 0 1rem}
details.klapka>summary{cursor:pointer;padding:.55rem .85rem;font-family:var(--aparat);
  font-size:.78rem;letter-spacing:.04em;color:var(--atrament-2);list-style:none}
details.klapka>summary::-webkit-details-marker{display:none}
details.klapka>summary::before{content:"▸ ";color:var(--sanguina)}
details.klapka[open]>summary::before{content:"▾ "}
details.klapka>summary:hover{color:var(--sanguina)}
details.klapka>summary:focus-visible{outline:2px solid var(--sanguina);outline-offset:2px}
details.klapka .tresc-klapki{padding:0 .85rem .75rem;font-size:.85rem;
  color:var(--atrament-2);max-width:84ch}
details.klapka .tresc-klapki li{margin:.3rem 0}
.zrodlo-nota{max-width:84ch;font-size:.8rem;color:var(--atrament-3);
  border-top:1px solid var(--kreska);padding-top:.6rem;margin-top:.4rem}
.ludnosc{display:flex;gap:1.2rem;flex-wrap:wrap;margin:.7rem 0}
.kafel{background:var(--papier);border:1px solid var(--kreska);border-radius:.3rem;
  padding:.5rem .8rem;min-width:7rem}
.kafel .l{font-family:var(--aparat);font-size:.64rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--atrament-3)}
.kafel .v{font-family:var(--szeryf);font-size:1.5rem;line-height:1.1}
.kafel.zyd .v{color:var(--zyd)}
.osoba .lata{margin-left:0}

.spis-miejscowosci{list-style:none;margin:1rem 0 2rem;padding:0;display:grid;
  gap:0;font-size:.9rem}
.spis-miejscowosci li{display:grid;
  grid-template-columns:minmax(9rem,16rem) 7rem 1fr;
  gap:0 .9rem;align-items:baseline;padding:.25rem .2rem;line-height:1.35;
  border-bottom:1px solid var(--kreska)}
.spis-miejscowosci .par{font-family:var(--aparat);font-size:.7rem;
  letter-spacing:.05em;text-transform:uppercase;color:var(--atrament-3)}
.spis-miejscowosci .licz{font-family:var(--aparat);font-size:.76rem;
  color:var(--atrament-3)}
.spis-miejscowosci .licz i{font-style:normal}
/* Bez wyblaknięcia: przy tej barwie tekstu zabrakłoby kontrastu. */
.spis-miejscowosci .bez{color:var(--atrament-3)}
@media(max-width:640px){
  .spis-miejscowosci li{grid-template-columns:1fr;gap:.1rem}
  .spis-miejscowosci .licz{font-size:.72rem}}
.sasiedzi{margin:1.6rem 0 0;padding-top:.9rem;border-top:1px solid var(--kreska);
  font-size:.86rem}
.sasiedzi b{font-family:var(--aparat);font-size:.7rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--atrament-3);display:block;
  margin-bottom:.35rem}
/* Odsyłacz ma być celem, w który da się trafić palcem: sam wiersz tekstu ma
   14 px wysokości, a wytyczne mówią o 24 px z odstępem. Stąd `inline-block`
   i wyściółka — bez nich Lighthouse zgłaszał „target-size” na obu paskach. */
.sasiedzi a{display:inline-block;padding:.3rem .1rem;margin:0 .75rem .2rem 0;
  white-space:nowrap}
/* Śródtytuł wewnątrz karty miejscowości: na osobnej stronie idzie o stopień
   wyżej (h2), ale ma zostać śródtytułem, a nie drugim tytułem strony. */
.wiesk h2{font-size:1.02rem;margin:1.5rem 0 .4rem;font-family:var(--szeryf)}
.do-opracowania{margin:1.4rem 0 0;padding:.75rem 1rem;background:var(--karta);
  border-left:3px solid var(--sanguina);font-size:.9rem}
h3.rocznik{margin:1.6rem 0 .5rem;display:flex;align-items:baseline;gap:.5rem;
  flex-wrap:wrap}
h3.rocznik .rodzaj{font-family:var(--aparat);font-size:.72rem;font-weight:400;
  letter-spacing:.04em;color:var(--atrament-3)}
/* Reguła na sam znacznik, więc wycinanie po nazwach klas jej nie przenosi
   z arkusza opracowania. Bez niej nagłówki klapek dziedziczyły zawijanie
   inaczej niż w opracowaniu. Zwiniętej uwagi nie dotyczy — tę skraca
   wielokropkiem własna reguła o wyższej swoistości. */
summary{white-space:normal}
/* Rocznik przy pojedynczym wypisie — potrzebny na stronie nazwiska, gdzie
   wypisy grupują się miejscowościami, więc rok nie wynika z nagłówka grupy. */
.wyst-rok{margin:.35rem 0 -.2rem;display:flex;gap:.4rem;flex-wrap:wrap;
  align-items:baseline}
/* Najliczniejsze hasła mają po kilkaset wypisów (Borkowski 580, Krasuski 610)
   i przeglądarka rysowała je wszystkie naraz, choć widać kilkanaście.
   `content-visibility` każe pominąć rysowanie tego, co poza ekranem; treść
   zostaje w kodzie strony, więc wyszukiwarka czyta ją tak samo.
   `contain-intrinsic-size` rezerwuje wysokość z góry, żeby pasek przewijania
   nie skakał — bez tego poprawa wydajności kupowałaby skaczący układ. */
.zapisy article.osoba{content-visibility:auto;contain-intrinsic-size:auto 7rem}
/* Pełny tekst wpisu grodzkiego: akapity, nie jeden blok. Tekst bywa długi
   (do siedmiu tysięcy znaków), więc czyta się go jak tekst ciągły, a nie jak
   plakietkę źródłową. */
.tresc-wpisu{display:block;margin:.6rem 0 .3rem}
.tresc-wpisu p{margin:0 0 .5rem}
.tresc-wpisu p:last-child{margin-bottom:0}
.uw-marg{font-size:.82rem;color:var(--atrament-3);margin:.4rem 0 0}
.uw-marg i{font-style:normal;font-family:var(--aparat);font-size:.7rem;
  letter-spacing:.05em;text-transform:uppercase;margin-right:.4rem}
/* Trzy kolumny liczbowe obok siebie (zapisów, osób, dymów) zlewały się
   w jeden ciąg cyfr, a ich nagłówki w jedno słowo. Odstęp z lewej rozdziela
   je, nie ruszając wyrównania do prawej. */
.tabelka td.lb,.tabelka th.lb{padding-left:1.1rem}
/* Spis nazwisk: ta sama siatka co spis miejscowości, ale trzy liczby zamiast
   dwóch, więc środkowa kolumna jest węższa. */
.spis-nazwisk{list-style:none;margin:1rem 0 2rem;padding:0;font-size:.9rem}
.spis-nazwisk li{display:grid;grid-template-columns:minmax(9rem,16rem) 1fr;
  gap:0 .9rem;align-items:baseline;padding:.25rem .2rem;line-height:1.35;
  border-bottom:1px solid var(--kreska)}
.spis-nazwisk .licz{font-family:var(--aparat);font-size:.76rem;
  color:var(--atrament-3)}
.spis-nazwisk .licz i{font-style:normal}
@media(max-width:640px){
  .spis-nazwisk li{grid-template-columns:1fr;gap:.1rem}
  .spis-nazwisk .licz{font-size:.72rem}}

/* karty rodzinne — z opracowania ksiąg grodzkich */
#p-rodziny h2.rodzina{font-family:var(--szeryf);font-weight:600;font-size:1.7rem;
           margin:48px 0 0;padding:0 0 8px;border-bottom:1px solid var(--atrament);
           display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
           scroll-margin-top:10px}
#p-rodziny h2.rodzina .ile{font-family:var(--aparat);font-size:.7rem;font-weight:400;
                letter-spacing:.06em;color:var(--atrament-3);
                font-variant-numeric:tabular-nums}
#p-rodziny h2.rodzina .gora{margin-left:auto;font-family:var(--aparat);font-size:.68rem;
                 letter-spacing:.08em;color:var(--sanguina);text-decoration:none}
#p-rodziny h2.rodzina .gora:hover{text-decoration:underline}
#p-rodziny p.nota{background:var(--sanguina-tlo);border-left:3px solid var(--sanguina);
       padding:12px 16px;margin:16px 0 0;font-size:.92rem;color:var(--atrament-2);
       max-width:84ch;border-radius:0 4px 4px 0}
#p-rodziny p.nota strong{color:var(--atrament)}
#p-rodziny h3.podgrupa{font-family:var(--aparat);font-size:.68rem;font-weight:500;
            letter-spacing:.14em;text-transform:uppercase;color:var(--atrament-3);
            margin:32px 0 0;display:flex;align-items:center;gap:12px}
#p-rodziny h3.podgrupa::after{content:"";flex:1;height:1px;background:var(--kreska)}
#p-rodziny .lista{display:flex;flex-direction:column;gap:14px;margin-top:18px}
#p-rodziny .karta{display:grid;grid-template-columns:104px minmax(0,1fr);gap:24px;
       background:var(--karta);border:1px solid var(--kreska);border-radius:4px;
       padding:18px 22px}
#p-rodziny .karta.mala{padding:14px 22px}
#p-rodziny .margines{display:flex;flex-direction:column;gap:5px;padding-top:3px;
          border-right:1px solid var(--kreska);padding-right:14px}
#p-rodziny .sygiel{font-family:var(--szeryf);font-size:1.6rem;font-weight:600;line-height:1;
        color:var(--sanguina)}
#p-rodziny .margines .etyk{font-family:var(--aparat);font-size:.68rem;letter-spacing:.04em;
                color:var(--atrament-3);font-variant-numeric:tabular-nums}
#p-rodziny .margines .rok{color:var(--atrament-2)}
#p-rodziny .margines .oprac{display:inline-block;margin-top:4px;font-family:var(--aparat);
                 font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;
                 color:var(--sanguina);border:1px solid var(--sanguina);
                 border-radius:2px;padding:1px 4px;align-self:flex-start;line-height:1.5}
#p-rodziny .tresc{min-width:0}
#p-rodziny h4.naglowek{font-family:var(--szeryf);font-size:1.3rem;font-weight:600;
            margin:0 0 4px;line-height:1.2;text-wrap:balance}
#p-rodziny .pewnosc{font-family:var(--aparat);font-size:.68rem;letter-spacing:.03em;
         color:var(--atrament-2);margin:0}
#p-rodziny .opis{margin:10px 0 0;color:var(--atrament-2);font-size:.94rem;max-width:80ch}
#p-rodziny .ostrz{background:var(--uwaga);border-left:3px solid var(--uwaga-kreska);
       padding:10px 14px;margin:12px 0 0;font-size:.87rem;color:var(--atrament-2);
       border-radius:0 4px 4px 0;max-width:84ch}
#p-rodziny .ostrz b{color:var(--atrament);font-weight:600}
#p-rodziny .plotno{overflow-x:auto;margin:16px 0 0;padding-bottom:2px}
#p-rodziny .zrodlo{font-family:var(--aparat);font-size:.73rem;line-height:1.9;
        color:var(--atrament-3);margin:14px 0 0}
#p-rodziny .zrodlo a{color:var(--sanguina);text-decoration:none;
          border-bottom:1px solid var(--kreska)}
#p-rodziny .zrodlo a:hover{border-bottom-color:var(--sanguina)}
#p-rodziny .luzni{font-size:.85rem;color:var(--atrament-3);margin:10px 0 0;font-style:italic}
#p-rodziny svg text{font-family:var(--tekstowy)}
@media(max-width:760px){#p-rodziny .karta{grid-template-columns:minmax(0,1fr);gap:12px;padding:14px 16px}#p-rodziny .margines{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:10px;
            border-right:0;border-bottom:1px solid var(--kreska);
            padding-right:0;padding-bottom:10px}#p-rodziny .sygiel{font-size:1.2rem}#p-rodziny .plotno svg{min-width:540px}}