/* BIP Oporów — układ wzorowany na bip.gminalanieta.pl, kolorystyka jak strona gminy (motyw jasny,
   wariant „granat” albo „ciepły” — Biuletyn → Dane podmiotu → Kolorystyka). Kontrast tekstu ≥ 4.5:1 (WCAG 2.1 AA). */

@font-face {
    font-family: "Nunito Sans";
    font-style: normal;
    font-weight: 200 1000;
    font-display: swap;
    src: url("../fonts/nunito-sans-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Nunito Sans";
    font-style: normal;
    font-weight: 200 1000;
    font-display: swap;
    src: url("../fonts/nunito-sans-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    /* Wariant „granat” strony gminy (kolory-granat.css): granat herbu + złoto krzyżyków, jasne tła */
    --niebieski: #1f3f75;          /* kolor główny: menu przedmiotowe, wyróżnienia, przyciski */
    --niebieski-ciemny: #152c54;
    --info: #1f3f75;
    --zolty: #f6d77f;              /* komunikat „Uwaga” — złoto z herbu, ciemny tekst */
    --czerwony: #1f3f75;           /* przycisk główny (Szukaj, Złóż petycję) — jak przyciski strony gminy */
    --czerwony-ciemny: #152c54;
    --akcent: #1f3f75;             /* ikony, okruszki, linki w treści */
    --tekst: #2b2f36;
    --naglowki: #2b2f36;
    --link: #1f3f75;
    --tlo-jasne: #f7f8fa;          /* pasek górny i stopka jak na stronie gminy */
    --odcien: #eef2f9;             /* jasne tło zaznaczeń */
    --obramowanie: #e9eaee;
    --tlo: #fff;
    --promien: 7px;
    --cien: 0 2px 18px rgba(23, 31, 56, .07);
    --fokus: #f6b400;
    --kontener: 1200px;
}

/* Wariant „ciepły” strony gminy (jasny.css): czerwień herbu i ciepłe złoto */
body.kolory-cieply {
    --niebieski: #b3202e;
    --niebieski-ciemny: #8c1722;
    --info: #b3202e;
    --zolty: #f8d08a;
    --czerwony: #b3202e;
    --czerwony-ciemny: #8c1722;
    --akcent: #a41c2a;
    --link: #a41c2a;
    --odcien: #fbf1f2;
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; scroll-behavior: smooth; }
html[data-czcionka="1"] { font-size: 112.5%; }
html[data-czcionka="2"] { font-size: 125%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; animation: none !important; } }

body {
    margin: 0;
    font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.6;
    color: var(--tekst);
    background: var(--tlo);
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--link); text-underline-offset: .15em; }
a:hover { color: var(--niebieski); }
h1, h2, h3, h4 { color: var(--naglowki); line-height: 1.25; font-weight: 600; }
:focus-visible { outline: 3px solid var(--fokus); outline-offset: 2px; box-shadow: 0 0 0 5px #1c2540; }
.screen-reader-text {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.kontener { width: 100%; max-width: var(--kontener); margin: 0 auto; padding: 0 16px; }
.wysrodkuj { text-align: center; }
[hidden] { display: none !important; }

/* Linki pomijające */
.skoki { list-style: none; margin: 0; padding: 0; }
.skoki a {
    position: absolute; left: 8px; top: -200px; z-index: 100;
    background: var(--naglowki); color: #fff; padding: 10px 16px; border-radius: var(--promien); font-weight: 700;
}
.skoki a:focus { top: 8px; }

/* Przyciski */
.przycisk {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    border: 1px solid transparent; border-radius: var(--promien);
    padding: 10px 18px; font: inherit; font-weight: 700; line-height: 1.2;
    cursor: pointer; text-decoration: none;
}
.przycisk--czerwony { background: var(--czerwony); color: #fff; border-color: var(--czerwony); }
.przycisk--czerwony:hover { background: var(--czerwony-ciemny); color: #fff; }
.przycisk--obrys { background: #fff; color: var(--naglowki); border-color: #c9ccd4; }
.przycisk--obrys:hover { border-color: var(--niebieski); color: var(--niebieski); }
.przycisk--maly { padding: 6px 12px; font-size: .875rem; }

/* Pasek górny */
.pasek { background: var(--tlo-jasne); color: var(--tekst); }
.pasek__wnetrze { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; flex-wrap: wrap; }
.pasek__linki { display: flex; gap: 24px; flex-wrap: wrap; }
.pasek__linki a { color: var(--tekst); font-size: .875rem; font-weight: 700; text-transform: uppercase; text-decoration: none; letter-spacing: .02em; }
.pasek__linki a:hover { text-decoration: underline; color: var(--niebieski); }
.pasek__narzedzia { display: flex; gap: 8px; flex-wrap: wrap; padding: 8px 0; }
.pasek__btn {
    display: inline-flex; align-items: center; gap: 6px; min-width: 40px; height: 36px; padding: 0 10px;
    background: #fff; color: var(--niebieski); border: 1px solid var(--obramowanie); border-radius: var(--promien);
    font: inherit; font-size: .8125rem; font-weight: 700; cursor: pointer;
}
.pasek__btn:hover, .pasek__btn[aria-pressed="true"] { background: var(--niebieski); border-color: var(--niebieski); color: #fff; }

/* Nagłówek */
.naglowek { background: #fff; padding: 32px 0; border-bottom: 1px solid var(--obramowanie); }
.naglowek__wnetrze { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.naglowek__marka { display: flex; align-items: center; gap: 22px; }
.naglowek__bip img { display: block; width: 56px; height: auto; }
.naglowek__tytul { display: flex; align-items: center; gap: 16px; text-decoration: none; color: var(--naglowki); }
.naglowek__herb { width: 44px; height: auto; }
.naglowek__maly { display: block; font-size: .875rem; color: var(--tekst); }
.naglowek__duzy { display: block; font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.szukaj__etykieta { display: block; font-weight: 700; color: var(--naglowki); margin-bottom: 8px; }
.szukaj__grupa { display: flex; box-shadow: 0 2px 4px rgba(23, 31, 56, .075); border-radius: var(--promien); }
.szukaj input {
    width: 230px; max-width: 60vw; padding: 14px 16px; font: inherit; color: var(--naglowki);
    border: 1px solid var(--obramowanie); border-right: 0; border-radius: var(--promien) 0 0 var(--promien); background: #fff;
}
.szukaj input::placeholder { color: #6b7088; }
.szukaj .przycisk { border-radius: 0 var(--promien) var(--promien) 0; padding: 14px 20px; }

/* Komunikaty */
.komunikaty { display: grid; gap: 14px; padding-top: 48px; padding-bottom: 8px; max-width: 980px; }
.komunikat { display: flex; align-items: flex-start; gap: 10px; padding: 14px 20px; border-radius: var(--promien); }
.komunikat p { margin: 0; }
.komunikat .ikona { flex: none; margin-top: 3px; }
.komunikat--informacja { background: var(--info); color: #fff; }
.komunikat--informacja a { color: #fff; text-decoration: none; }
.komunikat--informacja a:hover { text-decoration: underline; }
.komunikat--uwaga { background: var(--zolty); color: var(--naglowki); }
.komunikat--uwaga a { color: var(--naglowki); }
.komunikat--w-tresci { margin-bottom: 24px; }

/* Układ: karta z menu po lewej */
.uklad {
    display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 32px;
    margin: 48px 0 64px; padding: 24px; background: #fff; border-radius: var(--promien); box-shadow: var(--cien);
}
.uklad__tresc { min-width: 0; padding: 0 8px 24px; }
.uklad__tresc:focus { outline: none; }

/* Pasek boczny */
.szybkie { list-style: none; margin: 0 0 20px; padding: 0; border: 1px solid var(--obramowanie); border-radius: var(--promien); }
.szybkie li + li { border-top: 1px solid var(--obramowanie); }
.szybkie a { display: flex; align-items: center; gap: 10px; padding: 12px 16px; font-size: .875rem; font-weight: 700; color: var(--naglowki); text-decoration: none; }
.szybkie a:hover { color: var(--niebieski); background: var(--tlo-jasne); }

.mp { background: var(--niebieski); border-radius: var(--promien); color: #fff; overflow: hidden; }
.mp:focus { outline: none; }
.mp__naglowek { margin: 0; padding: 20px 16px; font-size: 1.25rem; font-weight: 600; color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.mp__mobilny { display: none; }
.mp__lista { list-style: none; margin: 0; padding: 0; }
.mp__lista--0 > .mp__pozycja { border-bottom: 1px solid rgba(255, 255, 255, .15); }
.mp__wiersz { display: flex; align-items: stretch; }
.mp__wiersz a {
    flex: 1; padding: 16px; color: #fff; text-decoration: none; font-size: .875rem; font-weight: 400; line-height: 1.4;
}
.mp__wiersz a:hover, .mp__wiersz a[aria-current="page"] { background: var(--niebieski-ciemny); text-decoration: underline; }
.mp__wiersz a[aria-current="page"] { font-weight: 700; }
.mp__przelacz {
    flex: none; width: 44px; background: transparent; border: 0; color: #fff; cursor: pointer; position: relative;
}
.mp__przelacz::before, .mp__przelacz::after {
    content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: currentColor; transform: translate(-50%, -50%);
}
.mp__przelacz::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .2s; }
.mp__przelacz[aria-expanded="true"]::after { transform: translate(-50%, -50%) rotate(0deg); }
.mp__przelacz:hover { background: var(--niebieski-ciemny); }
.mp__pod { background: var(--niebieski-ciemny); }
.mp__lista--1 .mp__wiersz a { padding-left: 28px; font-size: .8125rem; }
.mp__lista--2 .mp__wiersz a { padding-left: 40px; font-size: .8125rem; }
.mp__lista--1 .mp__pozycja + .mp__pozycja { border-top: 1px solid rgba(255, 255, 255, .1); }

.tagi h2 { font-size: 1.25rem; margin: 28px 0 12px; }
.tagi ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.tagi a { display: inline-block; padding: 4px 12px; border: 1px solid var(--naglowki); border-radius: var(--promien); font-size: .75rem; text-decoration: none; color: var(--naglowki); }
.tagi a:hover { background: var(--naglowki); color: #fff; }

/* Okruszki i tytuły */
.okruszki ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 8px; padding: 0; font-size: .8125rem; }
.okruszki li + li::before { content: "/"; margin-right: 4px; color: #8a8fa6; }
.okruszki a { color: var(--akcent); }
.okruszki abbr { text-decoration: underline; color: var(--akcent); }
.tytul-strony { text-align: center; font-size: 2rem; font-weight: 300; color: #000; margin: 24px 0 32px; }
.informacja__tytul { font-size: 1.75rem; font-weight: 700; margin: 16px 0 20px; }
.plakietka { display: inline-block; padding: 2px 10px; border-radius: var(--promien); font-size: .8125rem; font-weight: 700; }
.plakietka--archiwum { background: #fdf3d0; color: #6b4e00; }

/* Karty strony głównej */
.karty { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.karta { border: 1px solid var(--obramowanie); border-radius: var(--promien); padding: 28px 24px; font-size: .9375rem; }
.karta__ikona { display: flex; justify-content: center; color: var(--akcent); margin-bottom: 8px; }
.karta__tytul { text-align: center; font-size: 1.25rem; margin: 0 0 24px; padding-bottom: 20px; border-bottom: 1px solid var(--obramowanie); }
.karta__tekst { font-size: .875rem; }
.dane { margin: 16px 0; display: grid; gap: 6px; }
.dane > div { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.dane dt { font-weight: 700; color: var(--naglowki); }
.dane dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.dane dd a { display: inline-block; min-height: 24px; padding: 2px 0; } /* cel dotykowy ≥ 24 px (WCAG 2.2, 2.5.8) */
.dane--male { font-size: .875rem; padding-top: 12px; border-top: 1px solid var(--obramowanie); }
.dane--szerokie > div { justify-content: flex-start; }
.dane--szerokie dt { min-width: 220px; }
.godziny { width: 100%; border-collapse: collapse; margin-bottom: 12px; }
.godziny th { text-align: left; font-weight: 700; color: var(--naglowki); padding: 6px 0; }
.godziny td { text-align: right; padding: 6px 0; }
.godziny tr + tr { border-top: 1px solid #f0f1f3; }
.konto { font-size: .875rem; }
.konto__numer { color: var(--naglowki); font-size: .9375rem; letter-spacing: .02em; }
.konto__opis { color: var(--tekst); }

/* Sekcje strony głównej */
.sekcja { margin-top: 48px; }
.sekcja__tytul { text-align: center; font-size: 1.25rem; margin: 0 0 24px; }
.kafelki { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.kafelek {
    display: flex; align-items: center; gap: 12px; height: 100%; padding: 18px 20px; border: 1px solid var(--obramowanie);
    border-radius: var(--promien); text-decoration: none; color: var(--naglowki); font-weight: 700;
}
.kafelek .ikona { color: var(--akcent); flex: none; }
.kafelek:hover { border-color: var(--niebieski); color: var(--niebieski); box-shadow: var(--cien); }

/* Oś czasu „Ostatnio dodane” */
.os-czasu { list-style: none; margin: 0; padding: 0; position: relative; }
.os-czasu::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--obramowanie); }
.os-czasu__punkt { position: relative; width: 50%; padding: 0 40px 36px 0; text-align: right; font-size: .875rem; }
.os-czasu__punkt:nth-child(even) { margin-left: 50%; padding: 0 0 36px 40px; text-align: left; }
.os-czasu__punkt::after {
    content: ""; position: absolute; top: 6px; right: -6px; width: 11px; height: 11px; border-radius: 50%;
    background: #fff; border: 1px solid #c9ccd4;
}
.os-czasu__punkt:nth-child(even)::after { right: auto; left: -6px; }
.os-czasu__data { display: flex; align-items: center; gap: 4px; margin: 0 0 6px; font-size: .8125rem; color: var(--tekst); }
.os-czasu__punkt:nth-child(odd) .os-czasu__data { justify-content: flex-end; }
.os-czasu__punkt a { color: var(--akcent); }
.os-czasu__dzial { margin: 4px 0 0; font-size: .75rem; color: #6b7088; }

/* Informacja */
.narzedzia { display: flex; gap: 8px; flex-wrap: wrap; margin: 8px 0; }
.tresc { font-size: 1rem; line-height: 1.75; overflow-wrap: break-word; }
.tresc a { color: var(--akcent); }
.tresc img { border-radius: var(--promien); }
.tresc table { border-collapse: collapse; width: 100%; margin: 1em 0; }
.tresc th, .tresc td { border: 1px solid var(--obramowanie); padding: 8px 10px; text-align: left; vertical-align: top; }
.tresc blockquote { margin: 1em 0; padding: 8px 20px; border-left: 4px solid var(--niebieski); background: var(--tlo-jasne); }

.zalaczniki, .lista, .metryczka { margin-top: 40px; }
.zalaczniki h2, .lista__tytul, .metryczka h2 { font-size: 1.375rem; margin: 0 0 16px; }
.tabela-przewijana { overflow-x: auto; }
.tabela { width: 100%; border-collapse: collapse; font-size: .875rem; }
.tabela th { text-align: left; font-weight: 700; color: var(--naglowki); padding: 10px 12px; border-bottom: 2px solid var(--obramowanie); }
.tabela td { padding: 12px; border-bottom: 1px solid var(--obramowanie); vertical-align: top; }
.tabela tbody tr:nth-child(odd) { background: #fafbfc; }
.tabela a { color: var(--akcent); }
.tabela__ikona { width: 32px; color: var(--tekst); }
.tabela__meta { color: #5d6280; font-size: .8125rem; }
.tabela--mala td, .tabela--mala th { padding: 8px 10px; }

.wpisy { list-style: none; margin: 0; padding: 0; }
.wpisy__pozycja { padding: 14px 0; border-bottom: 1px solid var(--obramowanie); }
.wpisy__pozycja > a { font-weight: 700; color: var(--naglowki); }
.wpisy__pozycja > a:hover { color: var(--niebieski); }
.wpisy__meta { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-top: 4px; font-size: .8125rem; color: #5d6280; }
.wpisy__zajawka { margin: 6px 0 0; font-size: .875rem; }
.lista--archiwum summary, .historia summary {
    cursor: pointer; font-weight: 700; color: var(--naglowki); padding: 12px 16px; border: 1px solid var(--obramowanie); border-radius: var(--promien);
    display: flex; align-items: center; gap: 8px;
}
.lista--archiwum[open] summary, .historia[open] summary { margin-bottom: 12px; }

.stronicowanie ul, .stronicowanie .nav-links { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 24px 0 0; }
.stronicowanie a, .stronicowanie span.page-numbers {
    display: inline-block; min-width: 40px; padding: 8px 12px; text-align: center; border: 1px solid var(--obramowanie); border-radius: var(--promien); text-decoration: none;
}
.stronicowanie .current { background: var(--niebieski); color: #fff; border-color: var(--niebieski); }

/* Metryczka */
.metryczka__karty { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.metryczka__karta { border: 1px solid var(--obramowanie); border-radius: var(--promien); padding: 20px; font-size: .875rem; box-shadow: var(--cien); }
.metryczka__karta h3 { font-size: 1.0625rem; margin: 0 0 8px; }
.metryczka__karta--wyrozniona { background: var(--niebieski); border-color: var(--niebieski); color: #fff; }
.metryczka__karta--wyrozniona h3, .metryczka__karta--wyrozniona strong { color: #fff; }
.metryczka__osoba { margin: 0 0 12px; }
.metryczka__data { margin: 0; display: block; }
.metryczka__data .ikona { vertical-align: -2px; }
.metryczka__licznik { display: flex; align-items: center; gap: 6px; margin: 16px 0; font-size: .875rem; }
.historia { margin-top: 12px; }

/* Mapa strony */
.mapa ul { list-style: square; padding-left: 1.25em; }
.mapa li { margin: 4px 0; }
.mapa .children { margin-top: 4px; }

/* Stopka */
.stopka { background: var(--tlo-jasne); color: var(--tekst); padding: 56px 0 24px; font-size: .875rem; border-top: 1px solid var(--obramowanie); }
.stopka a { color: var(--link); text-decoration: none; }
.stopka a:hover { text-decoration: underline; }
.stopka h2 { color: var(--naglowki); font-size: 1rem; font-weight: 700; margin: 0 0 18px; }
.stopka__kolumny { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.stopka__nazwa { margin: 0; }
.stopka__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.stopka__lista--ikony li { display: flex; gap: 10px; align-items: flex-start; }
.stopka__lista--ikony .ikona { flex: none; margin-top: 2px; }
.stopka__dol { text-align: center; margin: 40px 0 0; padding-top: 24px; border-top: 1px solid var(--obramowanie); font-size: .8125rem; line-height: 1.8; color: #646a74; }
.stopka .ikona { color: var(--niebieski); }

/* Wysoki kontrast */
html.kontrast body, html.kontrast .naglowek, html.kontrast .uklad, html.kontrast .karta, html.kontrast .metryczka__karta,
html.kontrast .tabela tbody tr, html.kontrast .szukaj input, html.kontrast .przycisk--obrys, html.kontrast .kafelek, html.kontrast .szybkie a {
    background: #000 !important; color: #fff !important;
}
html.kontrast h1, html.kontrast h2, html.kontrast h3, html.kontrast dt, html.kontrast .naglowek__duzy, html.kontrast .naglowek__maly,
html.kontrast .wpisy__pozycja > a, html.kontrast .tytul-strony, html.kontrast strong { color: #fff !important; }
html.kontrast a, html.kontrast .okruszki a, html.kontrast .tresc a, html.kontrast .tabela a, html.kontrast .os-czasu__punkt a { color: #ff0 !important; }
html.kontrast .pasek, html.kontrast .mp, html.kontrast .mp__pod, html.kontrast .stopka, html.kontrast .komunikat,
html.kontrast .metryczka__karta--wyrozniona, html.kontrast .przycisk--czerwony { background: #000 !important; color: #ff0 !important; border: 1px solid #ff0 !important; }
html.kontrast .karta, html.kontrast .metryczka__karta, html.kontrast .uklad, html.kontrast .tabela td, html.kontrast .tabela th, html.kontrast .wpisy__pozycja { border-color: #fff !important; }
html.kontrast .karta__ikona, html.kontrast .kafelek .ikona, html.kontrast .wpisy__meta, html.kontrast .tabela__meta, html.kontrast .os-czasu__data, html.kontrast .os-czasu__dzial { color: #fff !important; }
html.kontrast .naglowek__bip img { background: #fff; padding: 4px; border-radius: 4px; }
html.kontrast .naglowek__herb { background: #fff; padding: 2px; border-radius: 4px; }

/* Responsywność */
@media (max-width: 1024px) {
    .stopka__kolumny { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .metryczka__karty { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
    .uklad { grid-template-columns: minmax(0, 1fr); padding: 16px; margin: 24px 0 40px; }
    .karty { grid-template-columns: minmax(0, 1fr); }
    .mp__naglowek { padding: 0; }
    .mp__tytul { display: none; }
    .mp__mobilny {
        display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 16px; background: none; border: 0;
        color: #fff; font: inherit; font-size: 1.125rem; font-weight: 600; cursor: pointer; text-align: left;
    }
    .mp__mobilny::after { content: "▾"; transition: transform .2s; }
    .mp__mobilny[aria-expanded="false"]::after { transform: rotate(-90deg); }
    .uklad__tresc { padding: 0; }
}
@media (max-width: 600px) {
    .naglowek { padding: 20px 0; }
    .naglowek__duzy { font-size: 1.125rem; }
    .naglowek__marka { gap: 12px; }
    .szukaj, .szukaj__grupa, .szukaj input { width: 100%; max-width: none; }
    .stopka__kolumny { grid-template-columns: minmax(0, 1fr); }
    .os-czasu::before { left: 5px; }
    .os-czasu__punkt, .os-czasu__punkt:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 24px 28px; text-align: left; }
    .os-czasu__punkt::after, .os-czasu__punkt:nth-child(even)::after { left: 0; right: auto; }
    .os-czasu__punkt:nth-child(odd) .os-czasu__data { justify-content: flex-start; }
    .komunikaty { padding-top: 24px; }
    .pasek__btn--szeroki span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
    .dane dd { text-align: left; }
}

/* Wydruk */
@media print {
    .pasek, .naglowek .szukaj, .skoki, .uklad__bok, .komunikaty, .narzedzia, .stopka__kolumny, .historia, .stronicowanie { display: none !important; }
    .uklad { display: block; box-shadow: none; padding: 0; margin: 0; }
    .naglowek { padding: 0 0 12px; background: none; }
    body { color: #000; font-size: 11pt; }
    a { color: #000; }
    .tresc a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
    .metryczka__karta--wyrozniona { background: none; color: #000; border-color: #000; }
    .metryczka__karta--wyrozniona h3, .metryczka__karta--wyrozniona strong { color: #000; }
    .metryczka__karty { grid-template-columns: repeat(3, 1fr); }
    .stopka { background: none; color: #000; padding: 12px 0 0; }
    .stopka a { color: #000; }
}

/* Petycje: karta, statusy, przebieg, rejestr, formularz */
.petycja-karta { margin: 8px 0 28px; padding: 20px 24px; border: 1px solid var(--obramowanie); border-left: 5px solid var(--niebieski); border-radius: var(--promien); background: var(--tlo-jasne); }
.petycja-dane { margin: 12px 0 0; display: grid; gap: 0; }
.petycja-dane > div { display: grid; grid-template-columns: minmax(160px, 260px) 1fr; gap: 12px; padding: 8px 0; border-top: 1px solid var(--obramowanie); font-size: .9375rem; }
.petycja-dane dt { font-weight: 700; color: var(--naglowki); }
.petycja-dane dd { margin: 0; overflow-wrap: anywhere; }
.petycja-status { display: inline-block; margin: 0; padding: 4px 12px; border-radius: 999px; font-size: .875rem; font-weight: 700; background: var(--odcien); color: var(--niebieski-ciemny); }
.petycja-status--mala { padding: 2px 10px; font-size: .75rem; }
.petycja-status--wezwanie, .petycja-status--wielokrotna { background: #fdf3d0; color: #6b4e00; }
.petycja-status--rozpatrzona { background: #e3f4e8; color: #1d5e33; }
.petycja-status--przekazana { background: #eee9f6; color: #4b2a7a; }
.petycja-status--bez_rozpatrzenia { background: #f1f1f3; color: #3c4152; }
.petycja-przebieg__tytul { font-size: 1.0625rem; margin: 20px 0 8px; }
.petycja-przebieg { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--obramowanie); }
.petycja-przebieg li { position: relative; padding: 4px 0 10px 8px; font-size: .9375rem; }
.petycja-przebieg li::before { content: ""; position: absolute; left: -25px; top: 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--niebieski); }
.petycja-przebieg time { font-weight: 700; color: var(--naglowki); margin-right: 6px; }
.petycje-rejestr { margin-top: 40px; }
.petycje-rejestr__naglowek { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.petycje-rejestr__naglowek .lista__tytul { margin: 0; }
.petycje-rejestr__info { font-size: .8125rem; color: #5d6280; margin-top: 16px; }

.formularz { max-width: 760px; }
.formularz fieldset { border: 1px solid var(--obramowanie); border-radius: var(--promien); padding: 16px 20px 8px; margin: 0 0 20px; }
.formularz legend { font-weight: 700; color: var(--naglowki); padding: 0 6px; font-size: 1.0625rem; }
.formularz__pole { margin-bottom: 14px; }
.formularz__pole > label, .formularz__etykieta { display: block; font-weight: 600; color: var(--naglowki); margin-bottom: 4px; }
.formularz input[type=text], .formularz input[type=email], .formularz input[type=tel], .formularz select, .formularz textarea {
    width: 100%; padding: 10px 12px; font: inherit; color: var(--naglowki); border: 1px solid #b9bdc9; border-radius: var(--promien); background: #fff;
}
.formularz input:focus, .formularz select:focus, .formularz textarea:focus { border-color: var(--niebieski); }
.formularz__opcje { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.formularz__opcje label, .formularz__zgoda { font-weight: 400; }
.formularz__zgoda { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; }
.formularz__zgoda input { margin-top: 5px; flex: none; }
.formularz__info { font-size: .875rem; color: #5d6280; margin: 0 0 12px; }
.formularz__grupa { padding: 12px 16px 2px; margin-bottom: 14px; background: var(--tlo-jasne); border-radius: var(--promien); }
.formularz__rodo { margin: 0 0 12px; font-size: .875rem; }
.formularz__rodo summary { cursor: pointer; font-weight: 700; color: var(--naglowki); }
.formularz__pulapka { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
html.kontrast .petycja-karta, html.kontrast .formularz__grupa, html.kontrast .formularz input, html.kontrast .formularz select, html.kontrast .formularz textarea { background: #000 !important; color: #fff !important; border-color: #fff !important; }
html.kontrast .petycja-status { background: #000 !important; color: #ff0 !important; border: 1px solid #ff0; }
@media (max-width: 600px) { .petycja-dane > div { grid-template-columns: 1fr; gap: 2px; } }

/* Przetargi i zamówienia */
.postepowanie-status--w_toku, .postepowanie-status--wywieszony { background: #e3f4e8; color: #1d5e33; }
.postepowanie-status--po_terminie { background: #fdf3d0; color: #6b4e00; }
.postepowanie-status--uniewaznione, .postepowanie-status--odwolane, .postepowanie-status--wynik_negatywny { background: #f6e6e7; color: #8c1722; }
.postepowanie-status--wykaz_zakonczony { background: #f1f1f3; color: #3c4152; }
.postepowanie-info { margin: 14px 0 0; font-size: .875rem; color: #4a4f63; }
.postepowania { margin-top: 32px; }
.postepowania h3 { font-size: 1.0625rem; margin: 28px 0 8px; }
.postepowania__filtry { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.postepowania__filtry a { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 14px; border: 1px solid var(--obramowanie); border-radius: 999px; font-size: .875rem; text-decoration: none; color: var(--naglowki); background: #fff; }
.postepowania__filtry a:hover { border-color: var(--niebieski); }
.postepowania__filtry a[aria-current] { background: var(--niebieski); border-color: var(--niebieski); color: #fff; }
.gdzie-przetargi { margin: 36px 0 8px; padding: 22px 24px; border-radius: var(--promien); background: var(--odcien); }
.gdzie-przetargi h2 { font-size: 1.25rem; margin: 0 0 8px; }
.gdzie-przetargi > p { margin: 0 0 14px; }
.gdzie-przetargi ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.gdzie-przetargi li { padding: 12px 16px; background: #fff; border: 1px solid var(--obramowanie); border-radius: var(--promien); font-size: .9375rem; }
.gdzie-przetargi li > a:first-child { display: block; margin-bottom: 2px; text-decoration: none; }
.gdzie-przetargi li > a:first-child span { display: block; font-size: .8125rem; color: #5d6280; overflow-wrap: anywhere; }
.gdzie-przetargi__nazwa { display: block; margin-bottom: 2px; color: var(--naglowki); }
.gdzie-przetargi__linki { display: block; margin-top: 6px; font-weight: 600; }
/* Nabory na stanowiska */
.nabor-status--przyjmowanie { background: #e3f4e8; color: #1d5e33; }
.nabor-status--po_terminie { background: #fdf3d0; color: #6b4e00; }
.nabor-status--odwolany, .nabor-status--nierozstrzygniety { background: #f6e6e7; color: #8c1722; }
.nabor-status--zakonczony { background: #f1f1f3; color: #3c4152; }
.nabor-karta__tytul { font-size: 1.0625rem; margin: 20px 0 6px; }
.nabor-lista { margin: 0 0 4px; padding-left: 1.4em; font-size: .9375rem; }
.nabory__aktualne { margin: 0 0 28px; padding: 18px 22px; border-radius: var(--promien); background: var(--odcien); border-left: 5px solid var(--niebieski); }
.nabory__aktualne .lista__tytul { margin-bottom: 8px; }
.nabory__aktualne ul { margin: 0; padding-left: 1.2em; }
.nabory__aktualne li { margin: 4px 0; }
html.kontrast .nabory__aktualne { background: #000 !important; color: #fff !important; border-color: #fff !important; }
html.kontrast .gdzie-przetargi, html.kontrast .gdzie-przetargi li, html.kontrast .postepowania__filtry a { background: #000 !important; color: #fff !important; border-color: #fff !important; }
