/* =====================================================================================
   Wyszukiwarka ofert (oferty.html) w jezyku widokow „Sprawdz" (wzor rejestr.hww.pl), 25.09.2026.

   SKAD. Reguly wlasne strony ofert z bloku <style> zatwierdzonego projektu
   ~/dev/toze-projekty/2026-09-24-oferty-jezyk-sprawdz/index.html (werdykt AL 25.09.2026 17:52:
   „DOPASUJ WYGLADEM TEZ TO https://transakcjeoze.pl/oferty.html"). Wszystko inne (kontener .rj,
   karta wyszukiwania, filtry, lista 1/3 i mapa 2/3, pas liczb, pigulki, rozwijaki, ramka
   zastosowania) daje wspolny arkusz assets/wyszukiwarka-rejestr.css, ktorego tu NIE nadpisujemy.

   ROZNICE WOBEC MAKIETY, wszystkie niewidoczne na zrzucie:
   - kontener mapy nazywa sie na stronie #map z klasa .rj-mapa (makieta: #jwMapa), bo komunikaty
     warstw i kolejki (homeLayerStatus, homeQueueCoverage) staja przed #map;
   - przyciski przy wierszu maja pole trafienia 44x44 px takze na komputerze (WCAG 2.5.5, pomiar
     tests/pomiar-oferty.py), a widoczne pudelko 36 px rysuje ::before, wiec uklad wiersza
     zostaje ten z makiety;
   - kolory warstw GPZ i kolejki w legendzie i w kolach grup sa klasami, nie stylem w linii;
   - odnosniki indeksu ofert maja na telefonie podloge 44 px (audyt 390 px z 10.09.2026).
   Drobny druk: najmniej 14 px (tools/check_min_font.py).
   ===================================================================================== */

/* Wiersz oferty. Odsylacz do karty oferty obejmuje caly wiersz (::after), a dwa przyciski
   (pokaz na mapie, zapisz) stoja nad nim, wiec nie ma zagniezdzonych elementow interaktywnych. */
.rj .of-w{position:relative;padding:12px 14px;border-bottom:1px solid var(--rj-linia)}
.rj .of-w:last-child{border-bottom:0}
.rj .of-w:hover{background:var(--rj-hover)}
.rj .of-w:hover .rj-w-t{color:var(--rj-akcent)}
.rj .of-w.on{background:#f2f9f8;box-shadow:inset 3px 0 0 var(--rj-akcent)}
.rj .of-w-a{text-decoration:none;color:inherit}
.rj .of-w-a::after{content:"";position:absolute;inset:0}
.rj .of-w-a:focus-visible{outline:0}
.rj .of-w-a:focus-visible::after{outline:2px solid var(--rj-akcent);outline-offset:-2px}
.rj .of-w .rj-w-m{gap:2px 14px}
.rj .of-w .rj-w-m b{font-weight:700}
.rj .of-stopka{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:8px 0 0}
.rj .of-stopka .rj-pig{padding:2px 10px;font-size:14px;line-height:1.5;justify-self:auto}
.rj .of-stopka .rj-pig::before{width:6px;height:6px}
.rj .of-data{font-variant-numeric:tabular-nums}
.rj .of-nw{white-space:nowrap}
/* na telefonie siatka wzoru ma jedna kolumne 1fr (minimum auto): bez tego dluga linia metadanych
   rozpychala kolumne (zmierzone w makiecie 871 px przy 390) */
.rj .rj-split>.rj-wyniki{min-width:0}
/* arkusz wzoru daje .rj-pg display:flex, co przebija atrybut hidden (stan pusty pokazywal martwe stronicowanie) */
.rj .rj-pg[hidden]{display:none}
/* Recenzja 25.09.2026: arkusz wspólny daje .rj-liczby display:grid, więc samo [hidden] nie chowało pasa
   liczb przy awarii zbioru ofert („…” zostawały na wierzchu). */
.rj .rj-liczby[hidden],.rj .rj-mapa[hidden]{display:none}
/* pole „Zapisane" widza tylko zalogowani (gateSavedFilter); .rj-f ma display:block, ktory przebija hidden */
.rj .rj-f[hidden]{display:none}
.rj .of-akcje{margin-left:auto;display:flex;gap:6px;position:relative;z-index:1}
/* Pole trafienia 44x44, widoczne pudelko 36x36 (::before) i ujemny margines 4 px: w ukladzie przycisk
   zajmuje 36 px jak w makiecie, a palec i kursor trafiaja w 44 px. */
.rj .of-ik{position:relative;width:44px;height:44px;margin:-4px;display:inline-flex;align-items:center;justify-content:center;
  padding:0;border:0;border-radius:6px;background:transparent;color:var(--rj-tekst);cursor:pointer;font:inherit}
.rj .of-ik::before{content:"";position:absolute;inset:4px;border:1px solid var(--rj-ramka);border-radius:6px;background:var(--rj-bialy)}
.rj .of-ik svg{position:relative}
.rj .of-ik:hover{color:var(--rj-akcent)}
.rj .of-ik:hover::before{border-color:var(--rj-akcent)}
.rj .of-ik:focus-visible{outline:0}
.rj .of-ik:focus-visible::before{outline:2px solid var(--rj-akcent);outline-offset:1px}
.rj .of-ik[aria-pressed="true"]{color:var(--rj-akcent-ciem)}
.rj .of-ik[aria-pressed="true"]::before{border-color:var(--rj-akcent);background:var(--rj-akcent-tlo)}
.rj .of-ik[aria-pressed="true"] svg{fill:currentColor}

/* stan pusty: zdanie i dwie drogi dalej */
.rj .of-pusto p{margin:0}
.rj .of-pusto-akcje{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin:12px 0 0 !important}
.rj .of-pusto-akcje a{font-size:16px;font-weight:600;color:var(--rj-akcent);text-underline-offset:3px}
/* komunikat o zapasie: lista stoi na ostatnim zapisie, bo feed sie nie odswiezyl */
.rj .of-zapas{margin:0;padding:12px 14px;border-bottom:1px solid var(--rj-linia);background:var(--rj-szary-tlo);
  font-size:14.4px;line-height:1.5;color:var(--rj-tekst)}
/* zapisane ofert nie daly sie zmienic w tej przegladarce (favouritesStatus) */
.rj .of-stan{margin:0 0 10px;font-size:14.4px;line-height:1.5;color:var(--rj-tekst)}

/* filtry: link do zapisanych obok czyszczenia */
.rj .of-zapisane-link{margin-left:auto;font-size:16px;font-weight:600;color:var(--rj-akcent);text-underline-offset:3px}
.rj .rj-f select option:disabled{color:#9aa1a9}
/* wejscie z #katalog: karta wyszukiwania nie chowa sie pod wspolnym naglowkiem */
.rj #katalog{scroll-margin-top:calc(var(--rj-naglowek) + 16px)}

/* mapa ofert: znacznik niesie moc, grupa niesie liczbe ofert */
.rj .rj-mapa .leaflet-marker-icon.of-pin{display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--rj-bialy);
  border:2px solid var(--rj-akcent);color:var(--rj-ink);font:700 14px/1 var(--rj-font);white-space:nowrap;
  box-shadow:0 1px 4px rgba(22,25,34,.22)}
.rj .rj-mapa .leaflet-marker-icon.of-pin.on{background:var(--rj-akcent);color:#fff}
.rj .of-dymek{min-width:min(220px,100%)}
.rj .of-dymek b{display:block;font-size:15px;color:var(--rj-ink)}
.rj .of-dymek span{display:block;font-size:14px;color:#5d646d;line-height:1.45}
.rj .of-dymek span.of-nw{display:inline;white-space:nowrap}
.rj .of-dymek strong{font-weight:700;color:var(--rj-ink)}
.rj .of-dymek .of-dymek-t{color:var(--rj-ink);font-weight:600;margin:2px 0 4px}
.rj .of-dymek a{display:inline-block;margin-top:8px;color:var(--rj-akcent);font:600 14px var(--rj-font);text-decoration:none}
.rj .of-dymek a:hover{text-decoration:underline}
.rj .leaflet-container .leaflet-popup-content{font-family:var(--rj-font);margin:12px 16px}
.rj .leaflet-container .leaflet-control-layers{border-radius:8px;border:1px solid var(--rj-linia);box-shadow:0 1px 4px rgba(22,25,34,.12)}
.rj .leaflet-container .leaflet-control-layers-expanded{padding:10px 14px 10px 10px;font:400 14px/1.45 var(--rj-font);color:var(--rj-ink)}
.rj .of-legenda{background:var(--rj-bialy);border:1px solid var(--rj-linia);border-radius:8px;padding:10px 12px;font:400 14px/1.45 var(--rj-font);
  color:var(--rj-tekst);max-width:250px;box-shadow:0 1px 4px rgba(22,25,34,.12)}
.rj .of-legenda b{display:block;color:var(--rj-ink);font-weight:700}
.rj .of-legenda i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.rj .of-legenda div+div{margin-top:6px}
/* grupy punktow warstw GPZ i kolejki: kolor z najwiekszej mocy w grupie (gpzColor) albo staly dla kolejki */
.rj .of-grupa{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;
  font:700 14px var(--rj-font);border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.28)}
.rj .of-k-zielony{background:#1f9d55}
.rj .of-k-zolty{background:#e0a800}
.rj .of-k-czerwony{background:#c0392b}
.rj .of-k-szary{background:#73808c}
.rj .of-k-niebieski{background:#2856a3}
/* komunikat warstwy mapy (homeLayerStatus, homeQueueCoverage) nad mapa, w bialej ramce wzoru */
.rj .of-warstwa{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 10px;padding:12px 16px;background:var(--rj-bialy);
  border:1px solid var(--rj-linia);border-radius:12px;font-size:14.4px;line-height:1.5;color:var(--rj-tekst)}
.rj .of-warstwa button{min-height:44px;padding:0 16px;border:1px solid var(--rj-ramka);border-radius:var(--rj-r);background:var(--rj-bialy);
  font:600 14.4px var(--rj-font);color:var(--rj-ink);cursor:pointer}
.rj .of-warstwa button:hover{border-color:var(--rj-akcent);color:var(--rj-akcent)}

/* Rozwijak zrodel ma klase zastrzezenia (regula rozwijaka zastrzezen, jak na rejestr-ure.html), a arkusz
   assets/przypisy.css ladowany na tej stronie rysuje details.zastrzezenia kreska nad soba i wlasnym summary.
   Wracamy do wygladu rozwijaka wzoru, tak samo jak strona firm. */
.rj details.rj-baton.zastrzezenia{border-top:0;padding-top:0}
.rj details.rj-baton.zastrzezenia>summary{display:inline-flex;min-height:0;font-size:16px;line-height:1.5;font-weight:600;color:var(--rj-ink)}
.rj details.rj-baton.zastrzezenia>summary:hover{color:var(--rj-ink)}

/* rozwijaki na dole: indeks ofert w kolumnach */
.rj .of-indeks{list-style:none;margin:10px 0 0 !important;padding:0 !important;columns:2 22em;column-gap:32px}
.rj .of-indeks li{break-inside:avoid;margin:0 0 4px}
.rj .of-indeks a{color:var(--rj-akcent);text-decoration:none}
.rj .of-indeks a:hover{text-decoration:underline}
.rj .of-indeks-h{margin:16px 0 0;font-size:14.4px;font-weight:700;color:var(--rj-ink)}
.rj .rj-baton p.of-indeks-h{color:var(--rj-ink)}

@media (max-width:640px){
  .rj .of-ik{margin:0}
  .rj .of-ik::before{inset:0}
  .rj .of-zapisane-link{margin-left:0;flex-basis:100%}
  .rj .rj-filtry-akcje{flex-wrap:wrap}
  /* cel dotyku WCAG 2.5.5 na telefonie: najgestsza lista odnosnikow strony */
  .rj .of-indeks a{display:inline-flex;align-items:center;min-height:44px}
}
