/* Wyszukiwarka projektów — nadpisania ładowane po styles.css/fonts.css z ncn.gov.pl (tamte pliki bez zmian).
   Sekcje [ogólne] z baza-ofert (SZABLON-NCN.md §5). Nic inline: style z JS wyłącznie przez CSSOM. */

/* [ogólne] hidden ma wygrać z display: z styles.css (elementy pokazywane dopiero przez JS) */
[hidden] { display: none !important; }

/* [ogólne] --- 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;
}

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

/* [ogólne] strzałka selecta: styles.css ma ją jako data: SVG — własny plik działa przy img-src 'self' */
select { background-image: url("../img/select-strzalka.svg"); }

/* [ogólne] --- treść: jeden rozmiar tekstu (menu i stopka bez zmian) --- */
.content p,
.content ol,
.content ul,
.content li,
.content dt,
.content dd,
.content label { font-size: 17px; }

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

/* [ogólne] --- baner: stały tytuł aplikacji jako link do strony głównej --- */
.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; }

/* [ogólne] */
.powrot { padding: 1rem 0 1rem 0 !important; }

/* [ogólne] --- szare pudełko treści/formularza --- */
.important { background: #f6f6f6; padding: 15px 20px 18px; }

/* [ogólne] --- stopka --- */
footer.footer { margin-top: 2rem; }
.footer__podcasty { padding-top: 1rem; }

/* [ogólne] wydruk: sama treść */
@media print {
  .header, .nav, .sidebar, .footer, .credits, .skip-link, .zmien-kryteria, .paginacja { display: none; }
}

/* --- strona główna --- */
.wstep { margin-bottom: 1.5rem; }
.zmiany summary { cursor: pointer; color: #d31c3c; font-weight: 700; margin-bottom: 1rem; }
.zmiany__tabela { width: 100%; border-collapse: collapse; margin-bottom: 1rem; }
.zmiany__tabela th,
.zmiany__tabela td { padding: 6px 10px 6px 0; border-bottom: 1px solid #ededed; text-align: left; vertical-align: top; font-size: 15px; }
.zmiany__tabela th { white-space: nowrap; width: 11rem; }
@media screen and (max-width: 39.99875em) {
  .zmiany__tabela th,
  .zmiany__tabela td { display: block; width: auto; border: 0; padding: 2px 0; }
  .zmiany__tabela tr { display: block; padding: 0.5rem 0; border-bottom: 1px solid #ededed; }
}

/* --- formularz --- */
.formularz { margin: 1rem 0 2rem; }
.formularz__grupa { border: 0; margin: 0; padding: 0; min-width: 0; }
.formularz__grupa legend { font-weight: 700; font-size: 1.1rem; padding: 0.5rem 0; }
/* wyniki: nagłówek „Filtrowanie wyników”, sekcje pod nim mniejsze, z linią */
.formularz__tytul { font-size: 1.5rem; font-weight: 700; margin: 0 0 0.75rem; padding: 0; }
.formularz:not(.formularz--szeroki) .formularz__grupa legend {
  width: 100%;
  font-weight: 700;
  font-size: 17px;
  padding: 0.75rem 0 0.25rem;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid #dcdcdc;
}
/* desktop: szary box równo z górą wyników (styles.css daje .important margin-top: 2rem) */
@media screen and (min-width: 64em) {
  .formularz.important:not(.important-rada) { margin-top: 0; }
}
/* strona główna: pola w dwóch kolumnach; pasek boczny wyników: jedna */
.formularz--szeroki .formularz__grupa { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); column-gap: 1.5rem; }
.formularz--szeroki .formularz__grupa legend { grid-column: 1 / -1; }
.formularz .pole { margin-bottom: 13px; }
.formularz label,
.formularz .pole__etykieta { display: block; font-weight: 400; padding-bottom: 5px; }
.formularz input[type="text"],
.formularz select { width: 100%; max-width: 100%; }
.pole__pomoc { display: block; color: #555; font-size: 0.85rem; line-height: 1.3; margin: -2px 0 5px; }
/* × w polu tekstowym; puste pole (widoczny placeholder) — bez × */
.pole__wejscie { position: relative; }
.pole__wejscie input[type="text"] { padding-right: 40px; }
.pole__wyczysc { position: absolute; top: 0; right: 0; width: 40px; height: 40px; }
.pole__wejscie input:placeholder-shown + .pole__wyczysc { display: none; }
/* dwa pola w jednej linii po 50%; jedno pole (brak słownika) = cała linia; na stronie głównej pola wchodzą w siatkę grupy */
.pola-para { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); column-gap: 1rem; align-items: end; }
.formularz--szeroki .pola-para { display: contents; }
/* element siatki = własny kontekst formatowania: margines pola (1rem) nie zlewa się z marginesem .pole → podwójna przerwa */
.formularz:not(.formularz--szeroki) .pola-para > .pole { margin-bottom: 0; }
.pole--zaznacz { display: flex; align-items: center; gap: 0.5rem; }
.pole--zaznacz input[type="checkbox"] { width: auto; margin: 0; }
.pole--zaznacz label { display: inline; padding: 0; }
/* pola wypełnione z URL (dawna klasa uzupelniony): czerwone */
.formularz .uzupelniony { color: #d21132; border-color: #d21132; font-weight: 700; }
.formularz__dol { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; }
.formularz__dol .pole { flex: 1 1 260px; }
.formularz__przyciski { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-bottom: 13px; }
.formularz__pola .formularz__przyciski .btn {
  border: 0;
  border-radius: 0;
  margin-top: 0;
  padding: 0.25rem 0.7rem 0.35rem 0.7rem;
  line-height: 22px;
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
/* tło nadpisuje też telefon: styles.css robi tam z .btn-with-arrow przezroczysty link */
.formularz__pola button[type="submit"] { background-color: #388074; }
.formularz__pola .formularz__wyczysc { background-color: #d31c3c; }
.formularz__pola .formularz__przyciski .btn:hover { filter: brightness(0.9); }
.formularz__pola .formularz__przyciski .btn:focus-visible { outline: 3px solid #000; outline-offset: 2px; }

/* --- kwota + suwak (dwa natywne range na jednym torze) --- */
.kwota { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
/* styles.css daje [type="text"] min-width: 150px — w wąskiej kolumnie pole wychodziło poza komórkę */
.kwota input[type="text"] { min-width: 0; }
.pole__wyczysc { border: 0; background: none; font-size: 1.4rem; line-height: 1; cursor: pointer; color: #555; }
.pole__wyczysc:hover,
.pole__wyczysc:focus { color: #d31c3c; }
.suwak { position: relative; height: 44px; margin: 0.5rem 0; }
.suwak__tor { position: absolute; left: 0; right: 0; top: 19px; height: 6px; background: #d9d9d9; border-radius: 3px; }
.suwak__zakres { position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: #d31c3c; border-radius: 3px; }
.suwak input[type="range"] {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0;
  background: none;
  pointer-events: none;   /* tor nie łapie kliknięć — tylko uchwyty, inaczej górny suwak blokowałby dolny */
  -webkit-appearance: none;
  appearance: none;
}
.suwak input[type="range"]::-webkit-slider-runnable-track { height: 44px; background: transparent; border: 0; }
.suwak input[type="range"]::-moz-range-track { height: 44px; background: transparent; border: 0; }
/* uchwyt 24 × 44 px: kółko 24 px + przezroczysta ramka tylko góra/dół (cel dotyku) — środek jeździ od 12 px
   do szer. − 12 px, więc kółko w skrajnym położeniu równa się z brzegiem toru i tekstu */
.suwak input[type="range"]::-webkit-slider-thumb {
  pointer-events: auto;
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 44px;
  border: solid transparent;
  border-width: 10px 0;
  border-radius: 50%;
  background: #d31c3c;
  background-clip: padding-box;
  cursor: pointer;
}
.suwak input[type="range"]::-moz-range-thumb {
  pointer-events: auto;
  width: 24px;
  height: 24px;
  border: solid transparent;
  border-width: 10px 0;
  border-radius: 50%;
  background: #d31c3c;
  background-clip: padding-box;
  cursor: pointer;
}
.suwak input[type="range"]:focus { outline: none; }
.suwak input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px #000; }
.suwak input[type="range"]:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px #000; }

/* --- wyniki --- */
.zmien-kryteria { display: none; margin-top: 1rem; }
@media screen and (max-width: 39.99875em) {
  .zmien-kryteria { display: block; }
}
.komunikat { background: #fff3cd; padding: 0.75rem 1rem; }
/* użyte kryteria nad wynikami: wygląd .frazy, × usuwa kryterium */
.frazy.kryteria { margin: 1rem 0; }
.kryteria a { color: #000; }
.kryteria a:hover,
.kryteria a:focus { border-color: #d31c3c; }
.kryteria__etykieta { color: #555; }
.kryteria__x { color: #d31c3c; font-weight: 700; margin-left: 0.25rem; }
.kryteria .kryteria__wszystkie { border-color: transparent; background: none; color: #d31c3c; font-weight: 700; }
/* telefon: JS zwija do 2 pierwszych kryteriów, reszta pod „Rozwiń kryteria”; bez JS wszystkie widoczne */
.kryteria__rozwin { display: none; }
.kryteria__rozwin button { background: #fff; border: 1px dashed #d31c3c; padding: 2px 10px; color: #d31c3c; font-weight: 700; cursor: pointer; }
@media screen and (max-width: 39.99875em) {
  .kryteria--zwiniete li:nth-child(n+3):not(.kryteria__rozwin) { display: none; }
  .kryteria--zwiniete .kryteria__rozwin { display: list-item; }
}
/* numer wypisuje PHP w tytule (.wyniki__nr) — marker listy wyłączony także na li */
.wyniki { padding-left: 0; margin-left: 0; list-style: none; }
.wyniki > li { list-style: none; }
/* styles.css: .content .main ol ma własny padding — mocniejszy selektor, tylko dla listy wyników */
body:not(.page-node-type-landing-page) .content .main ol.wyniki,
body:not(.page-node-type-landing-page) .content .main ol.wyniki li { padding-left: 0; }
/* treść ↔ linia zawsze 1rem: nad treścią padding-top 1rem; pod treścią 0.5rem + 0.5rem margin-top następnego,
   a ostatni wynik 1rem + linia zamykająca (styles.css zeruje padding-bottom ostatniego li) */
body:not(.page-node-type-landing-page) .content .main ol.wyniki li:last-of-type { padding-bottom: 1rem; border-bottom: 1px solid #e4e4e4; }
.wyniki__projekt { border-top: 1px solid #e4e4e4; margin-top: 0.5rem; padding-top: 1rem; padding-bottom: 0.5rem; line-height: 1.4; color: #000; }
.wyniki__nr { font-weight: 400; }
/* styles.css: .main p padding-bottom 1.5rem — w wierszu wyniku za dużo */
body:not(.page-node-type-landing-page) .content .main .wyniki__projekt p { margin: 0; padding-bottom: 0.25rem; }
body:not(.page-node-type-landing-page) .content .main .wyniki__projekt p:last-child { padding-bottom: 0; }
.wyniki__tytul { font-size: 1.1rem; line-height: 1.35; }
.wyniki__tytul a { font-weight: 700; }
.wyniki__kierownik,
.wyniki__jednostka,
.wyniki__konkurs { font-size: 0.95rem; }
.wyniki mark { background: #ffe08a; color: inherit; padding: 0 1px; }
.paginacja__lista { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; padding: 1rem 0; margin: 0; }
.paginacja__lista a,
.paginacja__lista strong { display: inline-block; min-width: 44px; min-height: 44px; line-height: 44px; text-align: center; }
.paginacja__lista strong { background: #d31c3c; color: #fff; }

/* --- strona projektu --- */
.projekt__tytul { margin-top: 0; line-height: 1.1; padding-bottom: 0.5rem; }
.projekt__nr { color: #313131; margin-bottom: 1rem; }
/* styles.css: .main p padding-bottom 1.5rem — numer ma stać tuż pod tytułem */
body:not(.page-node-type-landing-page) .content .main p.projekt__nr { padding-bottom: 0; }
.projekt__sekcja { border-top: 1px solid #dcdcdc; padding-top: 0.75rem; margin-bottom: 0.75rem; }
.projekt__sekcja h3 { font-size: 1.05rem; margin: 0 0 0.4rem; }
.projekt__dopisek { font-weight: 400; font-size: 0.9rem; }
.frazy { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; }
.frazy li { margin: 0; }
.frazy a { display: inline-block; background: #fff; border: 1px solid #dcdcdc; padding: 2px 10px; }
.projekt__dane { margin: 0; }
.projekt__dane dt { font-weight: 700; float: left; clear: left; margin-right: 0.4rem; }
.projekt__dane dt::after { content: ":"; }
.projekt__dane dd { margin: 0 0 0.3rem; min-height: 1.4em; }
.projekt__opis,
.projekt__aparatura,
.projekt__publikacje { margin-top: 2rem; }
.msca { display: flex; align-items: center; gap: 0.75rem; font-size: 14px; margin-top: 2rem; }
.msca img { flex: none; }

/* publikacje: zakładki; bez JS wszystkie listy z nagłówkami jedna pod drugą */
.zakladki__przyciski { display: flex; flex-wrap: wrap; gap: 0.25rem; border-bottom: 3px solid #d31c3c; margin-bottom: 1rem; }
.zakladki__przyciski button { border: 0; background: #ededed; padding: 0.6rem 1rem; min-height: 44px; cursor: pointer; font-size: 16px; }
.zakladki__przyciski button[aria-selected="true"] { background: #d31c3c; color: #fff; }
.zakladki__przyciski button,
.zakladki__przyciski button[aria-selected="true"] { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.zakladki--js .zakladki__tytul { display: none; }
.publikacje { padding-left: 2rem; }
.publikacja { padding-bottom: 1rem; border-bottom: 1px solid #ededed; margin-bottom: 1rem; }
/* styles.css: .main ol li padding-bottom 0.5rem, ostatni li 0 — każda publikacja, także ostatnia, ten sam odstęp */
body:not(.page-node-type-landing-page) .content .main ol.publikacje li.publikacja { padding-bottom: 1rem; }
.publikacja__tytul { margin: 0 0 0.3rem; }
body:not(.page-node-type-landing-page) .content .main p.publikacja__tytul { padding-bottom: 0; }
.publikacja__dane { margin: 0; display: grid; grid-template-columns: max-content 1fr; column-gap: 0.5rem; }
.publikacja__dane dt { font-weight: 700; }
.publikacja__dane dd { margin: 0 0 0.2rem; overflow-wrap: anywhere; }
@media screen and (max-width: 39.99875em) {
  .publikacja__dane { display: block; }
}
