/* Wspólne nadpisania formularzy VS5 — ładowane po styles.css/fonts.css z ncn.gov.pl (tamte pliki bez zmian).
   Kopia baza-ofert.css bez sekcji tylko-ofertowych; .calalista → .list-table. Style aplikacji: EXTRA_CSS (też tutaj, w css/). */

/* hidden ma wygrać z display: z styles.css (elementy przełączane przez JS, data-show-when) */
[hidden] { display: none !important; }

/* --- z rdzenia Drupala (hidden.module.css), na którym polega skip link; styles.css tego nie ma --- */
.visually-hidden {
  position: absolute !important;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  word-wrap: normal;
}
.visually-hidden.focusable:active,
.visually-hidden.focusable:focus {
  position: static !important;
  overflow: visible;
  clip: auto;
  width: auto;
  height: auto;
}

/* --- menu mobilne: przycisk zamiast diva z szablonu (tło i widoczność daje styles.css) --- */
.header__menu-mobile {
  border: 0;
  padding: 0;
  cursor: pointer;
}

/* strzałka selecta: styles.css ma ją jako data: SVG — własny plik działa przy każdym CSP */
select { background-image: url("../img/select-strzalka.svg"); }

.admin-znacznik {
  background: #fff3cd;
  padding: 1rem;
  font-weight: bold;
}
/* panel: zielony nagłówek zamiast zdjęcia — od razu widać, że to nie strona publiczna */
#section__top.top--admin { background: #388074 !important; }

/* --- treść: jeden rozmiar tekstu (menu i stopka bez zmian) --- */
.content p,
.content ol,
.content ul,
.content li,
.content label,
.content legend { font-size: 17px; }
/* odstęp pod blokami także poza .main (pasek boczny).
   .main ma 1.5rem ze styles.css (wyższa specyficzność), etykiety formularza 5px z .important niżej */
.content p,
.content ol,
.content ul,
.content label,
.content legend { padding-bottom: 1rem; }
/* li: mniejszy odstęp; .ostatnie li (15px) i .etykiety li (partners.css) nadpisują to niżej */
.content li { padding-bottom: 0.5rem; }

/* przyciski-linki: biały tekst na czerwonym tle; !important — styles.css ma .sidebar a { color } o wyższej specyficzności */
.btn.btn-with-arrow { color: #fff !important; }
/* telefon: styles.css robi z .btn-with-arrow przezroczysty link — wtedy czerwony tekst, jak w styles.css */
@media screen and (max-width: 39.99875em) {
  .btn.btn-with-arrow { color: #c0223c !important; }
}

/* --- nagłówek z logo --- */
.cell.header__cell { height: 40px; }

/* --- baner: stały tytuł aplikacji jako link do strony głównej, pod nim podtytuł --- */
.top__headline h1.page-title { margin: 25px 0; }
.top__headline h1 a { color: inherit; text-decoration: none; }
.top__headline h1 a:hover,
.top__headline h1 a:focus { text-decoration: underline; }
.top__headline h1.page-title:has(+ .top__subtitle) { margin-bottom: 0.5rem; }
.top__subtitle { color: #fff; font-size: 1.25rem; margin: 0 0 25px; }

/* --- wstęp na stronie głównej --- */
.cell.wstep p:first-child { padding-bottom: 1rem; }

/* --- listy --- */
.ostatnie { padding-left: 40px; }
.ostatnie li { line-height: 1.5; padding-bottom: 15px; }
.sidebar .ostatnie { padding-left: 1rem; }

/* tabela: desktop = tabela, telefon = karty */
.list-table { width: 100%; border-collapse: collapse; }
.list-table th,
.list-table td { padding: 5px 10px 5px 0; border-bottom: 1px solid #ededed; text-align: left; vertical-align: top; }
.list-table th { line-height: 1.1; }
.list-table thead { border-bottom: 4px solid #ededed; }
.list-table tr:hover { background: none; }
/* telefon: wiersz = karta, komórki pod sobą, nazwa kolumny z data-label */
@media screen and (max-width: 39.99875em) {
  .naglowek-listy { padding-bottom: 0; }
  .list-table thead { display: none; }
  .list-table,
  .list-table tbody,
  .list-table tr,
  .list-table td { display: block; width: 100%; }
  .list-table tr { display: flex; flex-direction: column; padding: 0.75rem 0; border-bottom: 1px solid #ededed; }
  /* pierwsza komórka rozbita na tytuł + link, link „szczegóły” na koniec karty */
  .list-table td:first-child { display: contents; }
  .list-table td:first-child br { display: none; }
  .list-table td:first-child a { order: 1; align-self: flex-start; margin-top: 0.25rem; }
  .list-table td { padding: 2px 0; border-bottom: 0; }
  .list-table td[data-label]::before { content: attr(data-label) ": "; font-weight: bold; }
}

.paginacja { display: flex; gap: 1.5rem; padding: 1rem 0; }
.powrot { padding: 1rem 0 1rem 0 !important; }

/* --- szare pudełko treści/formularza --- */
.important { background: #f6f6f6; padding: 15px 20px 18px; }
/* desktop: box w pasku bocznym równo z górą treści obok (styles.css daje .important margin-top: 2rem) */
@media screen and (min-width: 64em) {
  .sidebar .important { margin-top: 0; }
}

/* --- panel admina --- */
.panel-admina { padding: 20px; margin: 20px 0; }
.panel-admina--opublikowana { background: #d2efd6; }
.panel-admina--oczekuje { background: #ffe4e8; }
.panel-admina__tytul { font-weight: bold; font-size: 22px; }
.panel-admina__akcja { margin: 0.5rem 0; }
/* edycja wpisu (common/field_edit.php): potwierdzenie po zapisie */
.komunikat-zapisano { background: #d2efd6; padding: 10px 20px; margin: 20px 0 0; font-weight: bold; }
/* zwinięta sekcja: kilka linii + „Rozwiń całość” (checkbox przed treścią, label za nią — bez JS);
   checkbox poza ekranem, nie display:none — zostaje w Tab, Spacja rozwija */
.zwijane__przelacznik { position: absolute; opacity: 0; width: 1px; height: 1px; }
.zwijane__tresc { max-height: 13rem; overflow: hidden; position: relative; }
.zwijane__tresc::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4rem;
  background: linear-gradient(rgba(246, 246, 246, 0), #f6f6f6);   /* tło .important */
}
.zwijane__przelacznik:checked ~ .zwijane__tresc { max-height: none; overflow: visible; }
.zwijane__przelacznik:checked ~ .zwijane__tresc::after,
.zwijane__przelacznik:checked ~ .zwijane__przycisk { display: none; }
.zwijane__przelacznik:focus-visible ~ .zwijane__przycisk { outline: 2px solid #000; outline-offset: 2px; }
/* label w .important: reguła „.important label” (display: block, font-weight: 400) wygrywa z samą klasą */
.important label.zwijane__przycisk {
  display: table;
  cursor: pointer;
  max-width: 150px;
  font-weight: bold;
  font-size: 15px;
  padding: 0.25rem 0.7rem 0.35rem;   /* jak .btn-with-arrow; na telefonie styles.css zeruje — tu zostaje, bo tło */
  background-color: #388074;   /* zieleń przycisków formularzy (jak .filtr button) */
  color: #fff !important;      /* także na telefonie: wygrywa z .btn.btn-with-arrow (czerwony tekst) */
}

/* --- formularz --- */
.formularz { margin-top: 2rem; }
.formularz__pola .pole { margin-bottom: 13px; }
.important label,
.important legend {
  display: block;
  font-weight: 400;
  padding-bottom: 5px;
}
.formularz__pola input,
.formularz__pola select,
.formularz__pola textarea { width: 100%; max-width: 100%; }
.formularz__pola textarea { resize: vertical; }
/* grupa radio/checkbox: fieldset bez ramki przeglądarki, opcja = kontrolka + etykieta w jednej linii */
.pole-grupa { border: 0; margin: 0 0 13px; padding: 0; min-width: 0; }
.pole-grupa__opcja { display: flex; align-items: baseline; gap: 0.5rem; padding-bottom: 0.25rem; }
.formularz__pola .pole-grupa__opcja input { width: auto; flex: none; margin: 0; }
.important .pole-grupa__opcja label { display: inline; padding-bottom: 0; }
.pole-zgoda input[type="checkbox"] { width: auto; margin: 0 0.5rem 0 0; }
.pole-zgoda label { display: inline; margin-right: 0; }
.pole-zgoda .polityka { color: #e22747 !important; font-weight: bold; }
.formularz__pola button[type="submit"],
.panel-admina__akcja button[type="submit"] {
  border-radius: 0;
  padding: 0.25rem 0.7rem 0.35rem 0.7rem;
  line-height: 22px;
}
.formularz__uwaga { padding: 10px 0; }
.blad-formularza,
.blad-pola { color: #d21132; font-weight: bold; }
.blad-pola { display: block; font-size: 0.9em; }
[aria-invalid="true"] { border-color: #d21132; }

/* honeypot: poza ekranem, nie display:none (część botów to sprawdza) */
.pole-pulapka {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* --- stopka --- */
footer.footer { margin-top: 2rem; }

@media print {
  .header, .nav, .sidebar, .footer, .credits, .panel-admina, .admin-znacznik, .skip-link, .komunikat-zapisano { display: none; }
}

/* --- z baza-ofert.css (baza-ofert2). Tylko selektory, których HTML partners nie ma (grep w src/partners/);
   selektory wspólne z partners i przywrócenia wyglądu baza-ofert → baza-ofert2.css --- */
/* pasek boczny: wyszukiwanie po mieście */
.szukaj-miasto label { display: block; margin-bottom: 0.25rem; }
.szukaj-miasto input[type="text"] { width: 100%; margin-bottom: 0.5rem; }
.szukaj-miasto button {
  background: #000;
  color: #fff;
  border: none;
  padding: 0.5rem 1rem;
  border-radius: 0;
  text-decoration: none;
  font-size: 0.9rem;
  margin-top: 1rem;
  font-weight: 700;
  cursor: pointer;
}
/* listy (stare style inline) */
.uczelnia { color: #000; }
.list-table th.kol-termin { min-width: 142px; }
.list-table th.kol-dodano { min-width: 125px; }
@media screen and (max-width: 39.99875em) {
  .list-table__stanowisko { font-weight: bold; }
}
/* stopka PL: podcasty pod mediami społecznościowymi */
.footer__podcasty { padding-top: 1rem; }

/* --- panel: publikacja zielona, reszta czerwona (domyślne .btn-with-arrow); także na telefonie, gdzie styles.css
   robi z .btn-with-arrow przezroczysty link. Te same deklaracje co partners.css (tam zostają) — partners bez zmian --- */
.btn-with-arrow.przycisk--publish,
.btn-with-arrow.przycisk--odkryj { background-color: #388074; }
@media screen and (max-width: 39.99875em) {
  .panel-admina .btn-with-arrow { background-color: #e22747; color: #fff !important; padding: 0.25rem 0.7rem 0.35rem; }
  .panel-admina .btn-with-arrow.przycisk--publish,
  .panel-admina .btn-with-arrow.przycisk--odkryj { background-color: #388074; }
}
html{filter:grayscale(100%)}
.header__logo a{text-decoration:none;position:relative}.header__logo a::after{content:"";position:absolute;width:36px;height:58px;top:-35px;left:calc(100% - 1px);background:url("../img/wstazka-zaloba.png") no-repeat center/contain}@media (max-width:1023px){.header__logo a::after{filter:invert(1);top:-19px}}