/* nowe podstrony (etap 91): zawodnik, druzyna, tabela i wyniki, artykul - w nowej ramce (templates/nowa_ramka.tpl.htm).
   Jezyk nowej strony glownej (css/glowna.css: kolory --k-*, kroje --f-*) + wzorce stron NBA; makieta: makiety/podstrony_v1/ (poza repozytorium). */
.np { --np-w: max(32px, calc((100% - 1320px) / 2)); }
.np .np_w { padding-inline: var(--np-w); }

/* ---------- pas hero ---------- */
.np_hero { position: relative; overflow: hidden; color: #fff; background: radial-gradient(120% 160% at 88% 0, rgba(227, 43, 38, .26), rgba(227, 43, 38, 0) 55%) var(--k-p3); }
.np_hero_in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; padding-top: 40px; }
.np_okruszki { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font: 600 12px var(--f-etykiety); text-transform: uppercase; letter-spacing: .1em; color: var(--k-s); }
.np .np_okruszki a { color: var(--k-s2); text-decoration: none; }
.np_okruszki i { width: 1px; height: 10px; background: currentColor; opacity: .45; }
.np_druz_chip { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; font: 700 14px var(--f-etykiety); text-transform: uppercase; letter-spacing: .1em; color: #fff; text-decoration: none; }
.np_druz_chip img { width: 34px; height: 34px; object-fit: contain; background: #fff; border-radius: 50%; padding: 3px; }
.np_imie { display: block; margin-top: 14px; font: 700 30px/1 var(--f-nag); letter-spacing: .04em; text-transform: uppercase; color: var(--k-j); }
.druzyna .np_nazwisko { margin: 0; font: 800 112px/.86 var(--f-nag); letter-spacing: .01em; text-transform: uppercase; color: #fff; }
.np_meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 22px 0 0; font: 600 15px var(--f-etykiety); letter-spacing: .06em; text-transform: uppercase; color: var(--k-j); }
.np_meta b { font: 800 22px var(--f-nag); color: #fff; letter-spacing: .03em; }
.np_meta .rozd { height: 16px; }
.np_odznaka { display: inline-flex; align-items: center; gap: 6px; background: #e32b26; color: #fff; padding: 5px 10px 4px; border-radius: 3px; font: 800 14px var(--f-nag); letter-spacing: .06em; }
.np_odznaka.zolta { background: #ffd84d; color: var(--k-d); }
/* zdjecie zawodnika z wielkim numerem w tle */
.np_foto { position: relative; width: 340px; align-self: end; }
.np_foto img { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 8px 8px 0 0; }
.np_nr { position: absolute; z-index: 0; right: 100%; bottom: 40px; margin-right: -60px; font: 800 300px/1 var(--f-nag); color: transparent; -webkit-text-stroke: 2px rgba(255, 255, 255, .14); letter-spacing: -.02em; pointer-events: none; }
/* pasek liczb na dole pasa */
.np_liczby { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(var(--n, 6), minmax(0, 1fr)); background: var(--k-cz); border-top: 4px solid #e32b26; }
.np_liczby > div { padding: 18px 24px 16px; border-left: 1px solid var(--k-l); }
.np_liczby > div:first-child { border-left: 0; }
.np_liczby span { display: block; font: 700 12px var(--f-etykiety); text-transform: uppercase; letter-spacing: .12em; color: var(--k-s); }
.np_liczby b { display: block; margin-top: 4px; font: 800 44px/1 var(--f-cyfry); color: #fff; }
.np_liczby small { display: block; margin-top: 4px; font: 500 13px var(--f-tekst); color: var(--k-s); }
.np_liczby_opis { position: relative; z-index: 1; padding: 10px 0 12px; font: 600 11px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-s); }

/* zakladki pod pasem (przyklejone) */
.np_zakladki { position: sticky; top: var(--bh-gora, 0px); z-index: 5; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; background: #fff; border-bottom: 1px solid var(--k-tl); }
.np .np_zakladki a { flex: 0 0 auto; padding: 17px 16px 15px; font: 800 15px var(--f-nag); letter-spacing: .05em; text-transform: uppercase; color: var(--k-sz); text-decoration: none; border-bottom: 3px solid transparent; }
.np .np_zakladki a.on { color: var(--k-d); border-bottom-color: #e32b26; }
.np .np_zakladki a:hover { color: var(--k-d); }

/* ---------- sekcje i karty ---------- */
.np .np_sekcja { padding-block: 48px 0; display: flex; flex-direction: column; gap: 18px; }
.np .np_sekcja:last-child { padding-bottom: 72px; }
.np_karta { background: #fff; border-radius: 8px; padding: 22px 24px; min-width: 0; }
.np_karta h3 { margin: 0 0 14px; font: 800 20px var(--f-nag); letter-spacing: .03em; text-transform: uppercase; color: var(--k-d); }
.np_etyk { font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-sz); }
.np_dwie { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.np_szary { color: var(--k-sz); }
.np_wp { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 3px; font: 800 13px var(--f-cyfry); color: #fff; background: #1d6b45; }
.np_wp.p { background: #e32b26; }

/* ostatni mecz zawodnika */
.np_mecz_gora { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.np_mecz_wynik { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 18px; margin: 18px 0 20px; }
.np_mecz_druz { display: flex; align-items: center; gap: 12px; font: 800 20px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.np_mecz_druz.prawa { justify-content: flex-end; text-align: right; }
.np_mecz_druz img { width: 56px; height: 56px; object-fit: contain; flex-shrink: 0; }
.np_mecz_druz.slabszy { color: var(--k-s); }
.np_mecz_wynik > b { font: 800 52px/1 var(--f-cyfry); white-space: nowrap; }
.np_mecz_wynik > b i { font-style: normal; color: var(--k-s2); padding: 0 6px; }
.np_mecz_wynik > b em { font-style: normal; color: var(--k-s); }
.np_box { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); background: var(--k-t); border-radius: 6px; }
.np_box > div { padding: 12px 6px; text-align: center; }
.np_box b { display: block; font: 800 30px/1 var(--f-cyfry); color: var(--k-d); }
.np_box span { display: block; margin-top: 3px; font: 700 11px var(--f-etykiety); letter-spacing: .1em; color: var(--k-sz); }
.np_box .naj b { color: #e32b26; }
.np_karta_stopka { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 16px; font-size: 14px; }
.np .np_karta_stopka a, .np .np_link { font-weight: 700; color: #e32b26; text-decoration: none; }

/* wykres formy: wysokosci slupkow w px z danych (zawodnicyInterface::get_profil_zawodnika, maks. 180 px) */
.np_wykres { position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 10px; align-items: end; height: 210px; }
.np_wykres_sr { position: absolute; z-index: 1; left: 0; right: 0; border-top: 2px dashed var(--k-s2); pointer-events: none; }
.np .np_wykres a { position: relative; display: block; background: var(--k-p); border-radius: 4px 4px 0 0; text-decoration: none; color: var(--k-d); }
.np .np_wykres a.najlepszy { background: #e32b26; }
.np .np_wykres a.ujemny { background: var(--k-s2); }
.np_wykres a b { position: absolute; left: 0; right: 0; bottom: 100%; padding-bottom: 4px; text-align: center; font: 800 18px var(--f-cyfry); }
.np_wykres_os { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 10px; margin-top: 10px; text-align: center; font-size: 12px; color: var(--k-sz); }
.np_wykres_os > span { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; }
.np_wykres_os b { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--k-d); }

/* skutecznosc */
.np_rzut { display: grid; grid-template-columns: 110px minmax(0, 1fr) 92px; align-items: center; gap: 14px; padding: 10px 0; border-top: 1px solid var(--k-tl); }
.np_rzut:first-of-type { border-top: 0; }
.np_rzut > span { font-weight: 600; }
.np_rzut div { height: 10px; background: var(--k-t); border-radius: 5px; overflow: hidden; }
.np_rzut div i { display: block; height: 100%; background: var(--k-p); border-radius: 5px; }
.np_rzut b { text-align: right; font: 800 22px var(--f-cyfry); }
.np_rzut b small { font: 500 12px var(--f-tekst); color: var(--k-sz); margin-left: 4px; }

/* ciemny pas rekordow */
.np_pas_ciemny { background: var(--k-p); color: #fff; padding-block: 52px; margin-top: 56px; }
.np_pas_ciemny .gl_tytul h2 { color: #fff; }
.np_rekordy { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2px; background: var(--k-l); border-radius: 8px; overflow: hidden; }
.np_rekordy > div { background: var(--k-p3); padding: 20px 18px 18px; }
.np_rekordy span { font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-s); }
.np_rekordy b { display: block; margin: 6px 0 8px; font: 800 56px/1 var(--f-cyfry); color: #fff; }
.np_rekordy small { display: block; font-size: 13px; line-height: 1.35; color: var(--k-j); }
.np_rekordy small em { font-style: normal; color: var(--k-s); }

/* tabele statystyk w stylu NBA */
.np_tab_przewin { overflow-x: auto; background: #fff; border-radius: 8px; }
.np_tab { width: 100%; border-collapse: collapse; font: 500 15px var(--f-tekst); white-space: nowrap; }
.np_tab th { padding: 12px 10px; font: 700 12px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-sz); text-align: center; border-bottom: 2px solid var(--k-d); background: #fff; }
.np_tab td { padding: 12px 10px; text-align: center; border-bottom: 1px solid var(--k-tl); font-variant-numeric: tabular-nums; }
.np_tab th:first-child, .np_tab td:first-child { text-align: left; padding-left: 20px; }
.np_tab td.l, .np_tab th.l { text-align: left; }
.np_tab tbody tr:hover { background: var(--k-t2); }
.np_tab .mocny { font: 800 18px var(--f-cyfry); }
.np_tab .czer { color: #e32b26; }
.np_tab tr.suma td { font-weight: 700; background: var(--k-t); border-bottom: 0; }
.np_tab .riv { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; }
.np_tab .riv img { width: 26px; height: 26px; object-fit: contain; }
.np_tab .mvp { font: 800 11px var(--f-nag); letter-spacing: .06em; background: #ffd84d; color: var(--k-d); padding: 2px 6px; border-radius: 3px; margin-left: 6px; }
.np_tab_opis { font-size: 13px; color: var(--k-sz); }

/* ---------- druzyna ---------- */
.np_hero_druzyna { min-height: 520px; display: flex; flex-direction: column; justify-content: flex-end; }
.np_hero_tlo { position: absolute; inset: 0; z-index: 0; }
.np_hero_tlo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.np_hero_tlo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 14, 16, .96) 0, rgba(14, 14, 16, .82) 38%, rgba(14, 14, 16, .15) 75%), linear-gradient(0deg, rgba(14, 14, 16, .9), rgba(14, 14, 16, 0) 45%); }
.np_druz_tytul { display: flex; align-items: center; gap: 24px; margin-top: 18px; }
.np_druz_tytul > img { width: 128px; height: 128px; object-fit: contain; background: #fff; border-radius: 50%; padding: 8px; flex-shrink: 0; }
.druzyna .np_druz_tytul h1 { margin: 0; font: 800 96px/.86 var(--f-nag); text-transform: uppercase; color: #fff; }
.np_druz_tytul small { display: block; margin-bottom: 8px; font: 700 15px var(--f-etykiety); letter-spacing: .14em; text-transform: uppercase; color: var(--k-j); }
.np_nastepny { display: flex; align-items: center; gap: 16px; background: rgba(14, 14, 16, .8); border: 1px solid var(--k-l); border-radius: 8px; padding: 14px 18px; color: #fff; text-decoration: none; }
.np_nastepny img { width: 48px; height: 48px; object-fit: contain; }
.np_nastepny span { display: block; font: 700 11px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-a2); }
.np_nastepny b { display: block; font: 800 20px/1.1 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.np_nastepny small { display: block; font-size: 13px; color: var(--k-j); }
/* sklad */
.np_sklad { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.np .np_gracz { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; text-decoration: none; color: var(--k-d); transition: transform .15s; }
.np .np_gracz:hover { transform: translateY(-3px); }
.np_gracz_foto { position: relative; aspect-ratio: 4 / 5; background: var(--k-p3); overflow: hidden; }
.np_gracz_foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; }
.np_gracz_foto em { position: absolute; left: 12px; top: 8px; font: 800 44px/1 var(--f-nag); font-style: normal; color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, .5); }
.np_gracz_opis { padding: 12px 14px 14px; }
.np_gracz_opis b { display: block; font: 800 19px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.np_gracz_opis small { display: block; margin-top: 3px; font-size: 13px; color: var(--k-sz); }
.np_gracz_liczby { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--k-tl); text-align: center; }
.np_gracz_liczby div { padding: 8px 0 10px; }
.np_gracz_liczby b { display: block; font: 800 20px/1 var(--f-cyfry); }
.np_gracz_liczby span { font: 700 10px var(--f-etykiety); letter-spacing: .1em; color: var(--k-sz); }
.np_gracz_brak { border-top: 1px solid var(--k-tl); padding: 12px 14px; font-size: 13px; color: var(--k-s); }
/* liderzy */
.np_liderzy { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.np .np_lider { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: stretch; background: var(--k-p3); border-radius: 8px; overflow: hidden; color: #fff; text-decoration: none; }
.np_lider img { width: 100%; height: 100%; min-height: 120px; object-fit: cover; object-position: center 15%; }
.np_lider div { padding: 14px 16px; display: flex; flex-direction: column; justify-content: center; }
.np_lider span { font: 700 11px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-a2); }
.np_lider b { font: 800 46px/1 var(--f-cyfry); }
.np_lider strong { font: 800 17px/1.1 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.np_lider small { font-size: 12px; color: var(--k-s); margin-top: 2px; }
/* na tle ligi */
.np_ranking { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.np_rank { display: grid; grid-template-columns: minmax(0, 1fr) 70px 64px; gap: 6px 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--k-tl); }
.np_rank > span { font-weight: 600; }
.np_rank > span small { display: block; font-weight: 400; font-size: 12px; color: var(--k-sz); }
.np_rank > b { text-align: right; font: 800 22px var(--f-cyfry); }
.np_rank > em { font-style: normal; text-align: center; font: 800 15px var(--f-cyfry); padding: 4px 0; border-radius: 4px; background: var(--k-t); }
.np_rank > em.top { background: #e32b26; color: #fff; }
.np_rank > div { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 3px; }
.np_rank > div i { height: 6px; border-radius: 3px; background: var(--k-tl); }
.np_rank > div i.my { background: #e32b26; }
/* terminarz druzyny */
.np_terminy { display: flex; flex-direction: column; }
.np_termin { display: grid; grid-template-columns: 110px 44px minmax(0, 1fr) auto 30px; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid var(--k-tl); text-decoration: none; color: var(--k-d); }
.np_termin:first-child { border-top: 0; }
.np_termin small { display: block; font-size: 12px; color: var(--k-sz); }
.np_termin > b:first-child { font: 800 16px var(--f-cyfry); }
.np_termin img { width: 40px; height: 40px; object-fit: contain; }
.np_termin strong { font: 800 18px/1.1 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.np_termin .wyn { font: 800 24px var(--f-cyfry); }
.np_termin .godz { font: 800 20px var(--f-cyfry); color: var(--k-a2); }

/* ---------- tabela ---------- */
.np_hero_tabela .np_hero_in { align-items: end; padding-bottom: 34px; }
.druzyna .np_hero h1.np_tytul { margin: 14px 0 0; font: 800 88px/.9 var(--f-nag); text-transform: uppercase; color: #fff; }
.np_hero_wybor { display: flex; gap: 10px; align-items: center; }
.np_hero_wybor label { font: 700 12px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-s); }
.np_hero_wybor select { font: 600 15px var(--f-tekst); background: var(--k-p); color: #fff; border: 1px solid var(--k-l); border-radius: 6px; padding: 10px 14px; }
.np_tabela td { padding-block: 14px; }
.np_tabela .poz { width: 40px; font: 800 18px var(--f-cyfry); color: var(--k-sz); }
.np_tabela tr.awans .poz { color: #e32b26; }
.np_tabela tr.linia td { border-bottom: 2px dashed var(--k-s2); }
.np_tabela .druz { display: flex; align-items: center; gap: 14px; font: 800 19px var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.np .np_tabela .druz a { text-decoration: none; color: var(--k-d); }
.np_tabela .druz img { width: 36px; height: 36px; object-fit: contain; }
.np_tabela .pkt { font: 800 24px var(--f-cyfry); }
.np_roz { display: inline-flex; align-items: center; gap: 8px; }
.np_roz i { display: block; height: 6px; border-radius: 3px; background: #1d6b45; }
.np_roz.minus i { background: #e32b26; }
.np_roz b { font: 800 16px var(--f-cyfry); min-width: 34px; text-align: right; }
.np_forma { display: inline-flex; gap: 4px; }
.np_wyniki { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.np .np_wynik { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; text-decoration: none; color: var(--k-d); }
.np_wynik_gora { display: flex; justify-content: space-between; padding: 12px 16px; font: 700 12px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-sz); border-bottom: 1px solid var(--k-tl); }
.np_wynik_gora em { font-style: normal; color: var(--k-d); }
.np_wynik_druz { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 16px; }
.np_wynik_druz img { width: 36px; height: 36px; object-fit: contain; }
.np_wynik_druz span { font: 800 17px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.np_wynik_druz b { font: 800 30px var(--f-cyfry); }
.np_wynik_druz.przegr span, .np_wynik_druz.przegr b { color: var(--k-s); }
.np_wynik_druz.wygr b::after { content: ''; display: inline-block; margin-left: 8px; border: 6px solid transparent; border-right-color: #e32b26; vertical-align: middle; }
.np_kwarty { display: grid; grid-template-columns: 52px repeat(4, minmax(0, 1fr)); margin: 4px 16px 0; padding: 10px 0; border-top: 1px solid var(--k-tl); font: 600 13px var(--f-cyfry); text-align: center; color: var(--k-sz); }
.np_kwarty span:nth-child(5n+1) { text-align: left; }
.np_wynik_stopka { margin-top: auto; padding: 12px 16px; background: var(--k-t2); font-weight: 700; font-size: 14px; color: #e32b26; }
.np_kolejki { display: flex; gap: 8px; flex-wrap: wrap; }
.np .np_kolejki a { padding: 9px 16px; border-radius: 20px; border: 1px solid var(--k-tl); background: #fff; font: 700 14px var(--f-tekst); color: var(--k-d); text-decoration: none; }
.np .np_kolejki a.on { background: var(--k-d); border-color: var(--k-d); color: #fff; }

/* ---------- artykul ---------- */
.np_hero_art { min-height: 620px; display: flex; flex-direction: column; justify-content: flex-end; }
.np_hero_art .np_hero_tlo::after { background: linear-gradient(0deg, rgba(14, 14, 16, .97) 4%, rgba(14, 14, 16, .55) 45%, rgba(14, 14, 16, .1) 75%); }
.np_hero_art .np_hero_in { grid-template-columns: minmax(0, 960px); padding-bottom: 48px; }
.np_art_etyk { display: inline-block; margin-top: 18px; background: #e32b26; color: #fff; padding: 5px 10px 4px; font: 800 14px var(--f-nag); letter-spacing: .08em; text-transform: uppercase; border-radius: 3px; }
.druzyna .np_hero_art h1 { margin: 16px 0 0; font: 800 76px/.94 var(--f-nag); text-transform: uppercase; letter-spacing: .01em; color: #fff; }
.np_autor { display: flex; align-items: center; gap: 14px; margin-top: 24px; font-size: 15px; color: var(--k-j); }
.np_autor b { color: #fff; }
.np_autor img { width: 44px; height: 44px; border-radius: 50%; background: #fff; padding: 3px; object-fit: contain; }
.np_art_uklad { display: grid; grid-template-columns: minmax(0, 760px) 320px; justify-content: space-between; gap: 48px; padding-top: 48px; }
.np_art_tekst { font: 400 19px/1.75 var(--f-tekst); color: #26262b; }
.np_art_tekst p { margin: 0 0 22px; }
.np_art_tekst p.lead { font-size: 23px; line-height: 1.55; font-weight: 500; color: var(--k-d); }
.np_art_tekst p.lead::first-letter { float: left; font: 800 88px/.8 var(--f-nag); color: #e32b26; margin: 8px 12px 0 0; }
.np_art_tekst blockquote { margin: 34px 0; padding: 0; font: 800 38px/1.08 var(--f-nag); text-transform: uppercase; letter-spacing: .01em; color: var(--k-d); }
.np_art_tekst blockquote::before { content: '\201E'; display: block; font-size: 90px; line-height: .5; color: #e32b26; }
.np_art_tekst blockquote small { display: block; margin-top: 12px; font: 600 14px var(--f-etykiety); letter-spacing: .1em; color: var(--k-sz); }
.np_art_tekst b { font-weight: 700; color: var(--k-d); }
.np_udostepnij { display: flex; align-items: center; gap: 10px; padding-top: 24px; border-top: 1px solid var(--k-tl); font: 700 12px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-sz); }
.np_udostepnij a { width: 38px; height: 38px; border-radius: 50%; background: var(--k-d); display: inline-flex; align-items: center; justify-content: center; }
.np_udostepnij svg { width: 18px; height: 18px; fill: #fff; }
.np_boczna { display: flex; flex-direction: column; gap: 18px; position: sticky; top: calc(var(--bh-gora, 0px) + 20px); align-self: start; }
.np_boczna_runda { background: var(--k-p); color: #fff; border-radius: 8px; padding: 20px; border-top: 4px solid #e32b26; }
.np_boczna_runda span { font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-a2); }
.np_boczna_runda b { display: block; margin: 6px 0 4px; font: 800 32px/1 var(--f-nag); text-transform: uppercase; }
.np_boczna_runda small { color: var(--k-j); font-size: 14px; }
.np .np_boczna_runda a { display: block; margin-top: 16px; padding: 11px; text-align: center; background: #fff; color: var(--k-d); border-radius: 4px; font-weight: 700; text-decoration: none; }
.np_czytaj { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.np .np_czytaj a { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; text-decoration: none; color: var(--k-d); }
.np_czytaj img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.np_czytaj span { padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.np_czytaj small { font: 600 12px var(--f-etykiety); letter-spacing: .08em; color: var(--k-sz); }
.np_czytaj b { font: 800 21px/1.1 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; }

/* ---------- tablet i telefon ---------- */
@media (max-width: 1100px) {
    .np { --np-w: 24px; }
    .np_sklad { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .np_liderzy, .np_wyniki { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .np_rekordy { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .np_art_uklad { grid-template-columns: minmax(0, 1fr); }
    .np_boczna { position: static; }
}
@media (max-width: 900px) {
    .np_dwie, .np_ranking { grid-template-columns: minmax(0, 1fr); }
    .np_hero_in { grid-template-columns: minmax(0, 1fr); }
    /* telefon poziomo i tablet: zdjecie zawodnika mniejsze obok nazwiska (dotad ukryte) */
    .np_hero_zaw .np_hero_in { grid-template-columns: minmax(0, 1fr) 220px; }
    .np_foto { width: 220px; }
    .np_nr { font-size: 220px; margin-right: -50px; }
    .np_sklad { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .np { --np-w: 16px; }
    .np_hero_in { padding-top: 22px; gap: 20px; }
    .np_hero_zaw .np_hero_in { grid-template-columns: minmax(0, 1fr) 132px; align-items: end; }
    .np_hero_zaw .np_foto { display: block; width: 132px; }
    .np_hero_zaw .np_nr { font-size: 150px; bottom: 10px; margin-right: -34px; }
    .np_imie { font-size: 20px; margin-top: 10px; }
    .druzyna .np_nazwisko { font-size: 60px; }
    .np_meta { gap: 8px 12px; font-size: 13px; margin-top: 14px; }
    .np_meta b { font-size: 18px; }
    .np_liczby { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-inline: calc(var(--np-w) * -1); }
    .np_liczby > div { padding: 12px 14px; border-top: 1px solid var(--k-l); }
    .np_liczby > div:nth-child(3n+1) { border-left: 0; }
    .np_liczby b { font-size: 32px; }
    .np_liczby small { display: none; }
    .np_liczby_opis { padding-top: 10px; }
    .np .np_sekcja { padding-top: 36px; }
    .np_karta { padding: 18px 16px; }
    .np_mecz_druz { font-size: 15px; flex-direction: column; text-align: center; gap: 6px; }
    .np_mecz_druz.prawa { flex-direction: column-reverse; text-align: center; }
    .np_mecz_druz img { width: 44px; height: 44px; }
    .np_mecz_wynik { gap: 8px; }
    .np_mecz_wynik > b { font-size: 38px; }
    .np_box { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .np_rzut { grid-template-columns: 86px minmax(0, 1fr) 86px; gap: 10px; }
    .np_rekordy { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .np_rekordy b { font-size: 44px; }
    .np_pas_ciemny { padding-block: 36px; margin-top: 40px; }
    .np_hero_druzyna { min-height: 0; }
    .np_druz_tytul { gap: 14px; }
    .np_druz_tytul > img { width: 76px; height: 76px; padding: 5px; }
    .druzyna .np_druz_tytul h1 { font-size: 46px; }
    .np_druz_tytul small { font-size: 11px; }
    .np_sklad, .np_liderzy { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .np_lider { grid-template-columns: 1fr; }
    .np_lider img { height: 150px; min-height: 0; }
    .np_lider b { font-size: 36px; }
    .np_termin { grid-template-columns: 74px 34px minmax(0, 1fr) auto 26px; gap: 10px; }
    .np_termin img { width: 32px; height: 32px; }
    .np_termin strong { font-size: 15px; }
    .druzyna .np_hero h1.np_tytul { font-size: 54px; }
    .np_hero_tabela .np_hero_in { padding-bottom: 24px; }
    .np_wyniki { grid-template-columns: minmax(0, 1fr); }
    .np_tabela .druz { font-size: 16px; gap: 10px; }
    .np_tabela .druz img { width: 28px; height: 28px; }
    .np_tabela .ukryj { display: none; }
    .np_hero_art { min-height: 0; }
    .np_hero_art .np_hero_tlo { position: relative; height: 260px; }
    .np_hero_art .np_hero_in { margin-top: -70px; padding-bottom: 28px; }
    .druzyna .np_hero_art h1 { font-size: 40px; }
    .np_art_uklad { padding-top: 30px; gap: 32px; }
    .np_art_tekst { font-size: 17px; }
    .np_art_tekst p.lead { font-size: 19px; }
    .np_art_tekst p.lead::first-letter { font-size: 64px; }
    .np_art_tekst blockquote { font-size: 28px; }
    .np_czytaj { grid-template-columns: minmax(0, 1fr); }
}
/* linki w ciemnych pasach (nadpisuje .gl a z glowna.css) */
.np .np_hero a.np_druz_chip, .np .np_nastepny, .np .np_lider { color: #fff; }
.np .np_hero .np_okruszki a { color: var(--k-s2); }
.np_art_tekst blockquote::before { margin-bottom: 26px; }
@media (max-width: 640px) { .np_meta .rozd { display: none; } .np_meta { gap: 6px 14px; } }

/* przelaczniki (forma, sezon meczow) - przyciski jak zakladki kolejek */
.np .np_kolejki button { padding: 9px 16px; border-radius: 20px; border: 1px solid var(--k-tl); background: #fff; font: 700 14px var(--f-tekst); color: var(--k-d); cursor: pointer; }
.np .np_kolejki button[aria-pressed="true"] { background: var(--k-d); border-color: var(--k-d); color: #fff; }
.np .gl_tytul { flex-wrap: wrap; }
.np_odznaka.szara { background: var(--k-sz); }
.np .np_odznaka { text-decoration: none; }
.np .np_meta a.np_odznaka { color: var(--k-d); }
/* zdjecie: link do powiekszenia, brak zdjecia */
.np_foto a { display: block; position: relative; z-index: 1; }
.np_foto_brak { position: relative; z-index: 1; display: block; aspect-ratio: 3 / 4; border-radius: 8px 8px 0 0; overflow: hidden; background: var(--k-p); container-type: inline-size; }
.np_foto_brak .bez_foto { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
/* skad punkty: pasek udzialow i legenda */
.np_udzialy { display: flex; height: 26px; margin-top: 18px; border-radius: 4px; overflow: hidden; }
.np_udzialy i { display: flex; align-items: center; padding-left: 8px; font: 700 12px var(--f-cyfry); font-style: normal; color: #fff; }
.np_udzialy i.dwa, .np_legenda i.dwa { background: var(--k-p); }
.np_udzialy i.trzy, .np_legenda i.trzy { background: #e32b26; }
.np_udzialy i.osobiste, .np_legenda i.osobiste { background: var(--k-s2); }
.np_legenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; font-size: 13px; color: var(--k-sz); }
.np_legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; }
/* wiersze w kartach (kariera) */
.np_wiersz { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--k-tl); }
.np_wiersz:first-of-type { border-top: 0; }
/* rekordy jako linki */
.np .np_rekordy a { background: var(--k-p3); padding: 20px 18px 18px; color: #fff; text-decoration: none; }
.np .np_rekordy a:hover { background: var(--k-p4); }
.np_pas_ciemny .gl_tytul { margin-bottom: 18px; }
.np .riv { color: var(--k-d); text-decoration: none; }
/* druzyna: dane z bazy */
.np_gracz_opis small::first-letter { text-transform: uppercase; }
.np_gracz_liczby > span { padding: 8px 0 10px; }
.np_gracz_liczby > span > span { font: 700 10px var(--f-etykiety); letter-spacing: .1em; color: var(--k-sz); }
.np_gracz_foto .bez_foto, .np_lider_foto .bez_foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.np_gracz_foto, .np_lider_foto { container-type: inline-size; }
.np_lider_foto { position: relative; display: block; min-height: 120px; background: var(--k-p); overflow: hidden; }
.np_lider_foto img { position: absolute; inset: 0; }
.np_rank > div { grid-template-columns: repeat(var(--n, 8), minmax(0, 1fr)); }
.np_mistrz { margin-top: 18px; }
.np_hero_tlo { display: block; }
.np_kwarty_tab { grid-template-columns: minmax(0, 1fr) repeat(var(--n), 44px); margin: 0; padding: 12px 14px; gap: 6px 0; background: var(--k-t); border: 0; border-radius: 6px; }
.np_kwarty_tab > span, .np_kwarty_tab > b { text-align: center; }
.np_kwarty_tab > .l { text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 8px; }
.np_kwarty_tab b { font: 800 15px var(--f-cyfry); color: var(--k-d); }
.np_kwarty_tab b.lepsza { color: #e32b26; }
.np .np_awatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.np em.np_awatar { display: inline-flex; align-items: center; justify-content: center; font-size: 11px; position: static; }
/* tabela i wyniki: dane z bazy */
.np_liczby b.np_liczby_nazwa { font: 800 34px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; }
.np_kwarty_linia { margin: 4px 16px 0; padding: 10px 0 12px; border-top: 1px solid var(--k-tl); font: 600 13px var(--f-cyfry); color: var(--k-sz); }
.np_wynik_gora em.godz { color: var(--k-a2); font-size: 15px; }
.np_wynik_druz > span:first-child:empty { width: 36px; }
.np_tabela .np_odznaka { margin-left: 8px; font-size: 11px; padding: 3px 7px 2px; }
@media (max-width: 640px) { .np_liczby b.np_liczby_nazwa { font-size: 22px; } }
/* artykul: tresc z edytora - wklejone kroje, rozmiary i kolory zastapione stylem strony; wyroznienia, linki i obrazki zostaja */
.np_art_tresc p, .np_art_tresc span, .np_art_tresc div, .np_art_tresc li, .np_art_tresc font { font-family: var(--f-tekst) !important; font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; color: inherit !important; background: none !important; }
.np_art_tresc b, .np_art_tresc strong, .np_art_tresc b *, .np_art_tresc strong * { font-weight: 700 !important; color: var(--k-d) !important; }
.np_art_tresc p { margin: 0 0 22px; }
.np_art_tresc > p:first-child { font-size: 23px !important; line-height: 1.55 !important; font-weight: 500 !important; color: var(--k-d) !important; }
.np_art_tresc > p:first-child::first-letter { float: left; font: 800 88px/.8 var(--f-nag); color: #e32b26; margin: 8px 12px 0 0; }
.np_art_tresc img { max-width: 100%; height: auto; border-radius: 6px; }
.np_art_tresc a { color: #e32b26 !important; text-decoration: underline; text-underline-offset: 3px; }
.np_art_tresc h2, .np_art_tresc h3 { font: 800 30px/1.1 var(--f-nag) !important; text-transform: uppercase; color: var(--k-d) !important; margin: 34px 0 14px; }
.np_art_tresc ul, .np_art_tresc ol { padding-left: 24px; margin: 0 0 22px; }
.np_art_tresc li::marker { color: #e32b26; }
.np_art_tresc iframe { max-width: 100%; }
.np_art_szkic { background: #ffd84d; color: var(--k-d); }
.np_hero_art.bez_zdjecia { min-height: 0; }
.np_hero_art.bez_zdjecia .np_hero_in { padding-top: 48px; }
.np_kopiuj { width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--k-d); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.np_kopiuj svg { width: 18px; height: 18px; fill: #fff; }
.np_kopiuj.ok { background: #1d6b45; }
.np .np_boczna_tabela { display: block; background: #fff; border-radius: 8px; padding: 18px 20px; text-decoration: none; color: var(--k-d); }
.np_boczna_tabela span { display: block; font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-sz); }
.np_boczna_tabela b { display: block; margin-top: 4px; font: 800 20px var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.np_czytaj_brak { display: block; aspect-ratio: 16 / 10; background: var(--k-p3) url('/gfx/logo_tarcza.png') center / 30% no-repeat; }
@media (max-width: 640px) {
    .np_art_tresc > p:first-child { font-size: 19px !important; }
    .np_art_tresc > p:first-child::first-letter { font-size: 64px; }
}
/* pas bez paska liczb (np. zawodnik bez meczow) - odstep od dolu */
.np_hero > .np_hero_in:last-child { padding-bottom: 36px; }
.np_hero_zaw > .np_hero_in:last-child { padding-bottom: 0; }
.np_hero_zaw > .np_hero_in:last-child .np_meta { padding-bottom: 30px; }
/* zdjecie w tle pasa: bez starych limitow z style.css (img[src*="zespoly/foto"] max 700 px, link przegladarki zdjec position: relative) */
.np_hero .np_hero_tlo { position: absolute; }
.np_hero .np_hero_tlo img { max-width: none; max-height: none; }
@media (max-width: 640px) { .np_hero .np_hero_tlo { position: relative; } }

/* druzyna ze zdjeciem (makieta makiety/druzyna_zdjecie_v1/, wariant B): zdjecie 3:2 w calosci po prawej, to samo zdjecie rozmyte jako tlo pasa
   (od etapu 91c rozmyte na serwerze, zespoly/foto/tlo/; .rozmyj tylko awaryjnie),
   liczby w 3 kolumnach pod tytulem; telefon i tablet: zdjecie na gorze, tekst pod nim */
.np_hero_rozm { position: absolute; inset: 0; z-index: 0; background: center / cover no-repeat; filter: saturate(1.5); }
.np_hero_rozm.rozmyj { inset: -60px; filter: blur(36px) saturate(1.3); }
.np_hero_druzyna.z_foto::after { content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(14, 14, 16, .94) 0, rgba(14, 14, 16, .74) 42%, rgba(14, 14, 16, .42) 100%), linear-gradient(0deg, rgba(14, 14, 16, .85), rgba(14, 14, 16, 0) 50%); }
.np_hero_druzyna.z_foto { min-height: 0; }
.z_foto .np_hero_in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; padding-top: 40px; }
.z_foto .np_druz_lewa { min-width: 0; }
.druzyna .z_foto .np_druz_tytul h1 { font-size: 76px; }
.z_foto .np_druz_tytul > img { width: 104px; height: 104px; }
.z_foto .np_nastepny { margin-top: 26px; max-width: 420px; }
.z_foto .np_liczby { margin-top: 26px; grid-template-columns: repeat(var(--k, 3), minmax(0, 1fr)); }
.z_foto .np_liczby > div:nth-child(3n+1) { border-left: 0; }
.z_foto .np_liczby > div:nth-child(n+4) { border-top: 1px solid var(--k-l); }
/* 4 pola (druzyna bez meczow w sezonie): 2 kolumny */
.z_foto .np_liczby.k2 { --k: 2; }
.z_foto .np_liczby.k2 > div { border-left: 1px solid var(--k-l); }
.z_foto .np_liczby.k2 > div:nth-child(odd) { border-left: 0; }
.z_foto .np_liczby.k2 > div:nth-child(n+3) { border-top: 1px solid var(--k-l); }
.np .np_druz_foto { position: relative; display: block; align-self: end; margin-bottom: 38px; border-radius: 8px; overflow: hidden; box-shadow: 0 24px 50px rgba(0, 0, 0, .55); outline: 1px solid rgba(255, 255, 255, .14); }
.np .np_druz_foto img { display: block; width: 100%; max-width: none; max-height: none; aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width: 900px) {
    .z_foto .np_hero_in { grid-template-columns: minmax(0, 1fr); padding-top: 24px; }
    .np_hero_druzyna.z_foto::after { background: linear-gradient(0deg, rgba(14, 14, 16, .94) 0, rgba(14, 14, 16, .8) 45%, rgba(14, 14, 16, .55) 100%); }
    .np .np_druz_foto { order: -1; margin-bottom: 0; max-width: 640px; }
}
@media (max-width: 640px) {
    .z_foto .np_hero_in { padding-top: 16px; }
    .druzyna .z_foto .np_druz_tytul h1 { font-size: 46px; }
    .z_foto .np_druz_tytul > img { width: 76px; height: 76px; }
    .z_foto .np_nastepny { margin-top: 18px; }
    .z_foto .np_liczby { margin-top: 18px; }
    .z_foto .np_liczby > div { border-top: 1px solid var(--k-l); }
    .np .np_druz_foto { border-radius: 6px; box-shadow: 0 14px 30px rgba(0, 0, 0, .45); }
}

/* numer na koszulce (etap 92): na karcie skladu w lewym gornym rogu zdjecia; na stronie zawodnika duzy obrys obok zdjecia -
   wysuniety tylko troche pod zdjecie (inicjaly byly schowane do polowy), z-index 0 jak dotad */
.np_gracz_nr { position: absolute; z-index: 1; left: 12px; top: 8px; font: 800 40px/1 var(--f-nag); color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, .55); }
.np_hero_zaw .np_nr { margin-right: -14px; }
@media (max-width: 900px) { .np_hero_zaw .np_nr { margin-right: -10px; } }
@media (max-width: 640px) { .np_hero_zaw .np_nr { margin-right: -6px; } .np_gracz_nr { font-size: 30px; left: 10px; } }

/* animacje przy przewijaniu (js/glowna.js, jak na nowej glownej): sekcje ponizej pierwszego ekranu pojawiaja sie po kolei, paski rosna */
@media (prefers-reduced-motion: no-preference) {
    .gl_ukryte :is(.np_dwie > *, .np_sklad > *, .np_liderzy > *, .np_rekordy > *, .np_wyniki > *, .np_czytaj > *, .np_tab_przewin, .np_ranking, .np_terminy, .np_sekcja > .np_karta) { opacity: 0; transform: translateY(18px); }
    .gl_odsl :is(.np_dwie > *, .np_sklad > *, .np_liderzy > *, .np_rekordy > *, .np_wyniki > *, .np_czytaj > *, .np_tab_przewin, .np_ranking, .np_terminy, .np_sekcja > .np_karta) { transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }
    .gl_po :is(.np_dwie > *, .np_sklad > *, .np_liderzy > *, .np_rekordy > *, .np_wyniki > *, .np_czytaj > *, .np_tab_przewin, .np_ranking, .np_terminy, .np_sekcja > .np_karta) { transition: transform .25s ease, box-shadow .25s ease; }
    .np_rzut div i, .np_roz i { transition: width 1s cubic-bezier(.2, .7, .2, 1) .2s; }
    .np .np_wykres a { transition: height 1s cubic-bezier(.2, .7, .2, 1) .2s; }
    /* (07.11.2026) porownanie druzyn w raporcie meczu, paski pod nazwiskami w statystykach, przebieg kwart (klasa bh_zero z js/glowna.js) */
    .nr_por_s i, .ns_nazwa > i > i { transition: width 1s cubic-bezier(.2, .7, .2, 1) .2s; }
    .nr_przebieg i { transition: transform 1s cubic-bezier(.2, .7, .2, 1) .2s; }
    .nr_przebieg i.a { transform-origin: 50% 100%; }
    .nr_przebieg i.b { transform-origin: 50% 0; }
    .nr_przebieg b { transition: opacity .4s ease .9s; }
    .nr_przebieg.bh_zero i { transform: scaleY(0); transition: none; }   /* start od razu z zera (bez kurczenia), rosnie po zdjeciu klasy */
    .nr_przebieg.bh_zero b { opacity: 0; transition: none; }
    .np .np_lider, .np .np_wynik, .np .np_czytaj a { transition: transform .25s ease, box-shadow .25s ease; }
    .np .np_gracz:hover, .np .np_lider:hover, .np .np_wynik:hover, .np .np_czytaj a:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0, 0, 0, .12); }
}
/* wykres formy: linia sredniej na slupkach, ale pod liczbami (liczby na bialym tle - linia ich nie przecina); os bez roku na waskim ekranie (daty nachodzily na siebie) */
.np_wykres_sr { z-index: 1; }
.np .np_wykres a { z-index: auto; }
.np_wykres a b { z-index: 2; background: #fff; }
.np_wykres_os em { font-style: normal; white-space: nowrap; }
.np_wykres_os em i { font-style: normal; }
@media (max-width: 640px) {
    .np_wykres, .np_wykres_os { gap: 4px; }
    .np_wykres_os { font-size: 11px; }
    .np_wykres_os em i { display: none; }
    .np_wykres a b { font-size: 15px; }
}
/* pasek liczb na telefonie: linie miedzy polami jako odstep 1 px na tle (bez obramowan pol), ostatnie pole dopelnia wiersz
   (5 pol w 3 kolumnach zostawialo puste miejsce i urwane linie) */
@media (max-width: 640px) {
    .np_liczby { gap: 1px; background: var(--k-l); border-top: 4px solid #e32b26; }
    .np_liczby > div, .np_liczby > div:nth-child(3n+1) { border: 0; background: var(--k-cz); }
    .np_liczby > div:last-child:nth-child(3n+1) { grid-column: span 3; }
    .np_liczby > div:last-child:nth-child(3n+2) { grid-column: span 2; }
}
/* karty skladu: imie w osobnej linii nad nazwiskiem (jak w pasie zawodnika) - karty obok siebie rowne; liczby zawsze na dole karty */
.np_gracz_imie { display: block; font: 700 14px/1.1 var(--f-nag); letter-spacing: .05em; text-transform: uppercase; color: var(--k-sz); }
.np_gracz_opis b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.np_gracz_liczby, .np_gracz_brak { margin-top: auto; }

/* zakladki ze strzalkami (js/glowna.js owija pasek w .np_zakladki_ramka): przyklejona jest ramka, pasek przewija sie w niej;
   strzalka z wyciszona krawedzia tylko po stronie, gdzie sa ukryte zakladki */
.np_zakladki_ramka { position: sticky; top: var(--bh-gora, 0px); z-index: 5; background: #fff; border-bottom: 1px solid var(--k-tl); transition: top .25s ease; }
.np_zakladki_ramka .np_zakladki { position: relative; top: auto; z-index: auto; border-bottom: 0; }   /* top: auto - przesuniecie do przyklejania ma tylko ramka */   /* relative: kreska podkreslenia przewija sie razem z zakladkami */
.np_zak_strz { position: absolute; z-index: 2; top: 0; bottom: 3px; width: 64px; display: none; align-items: center; border: 0; padding: 0 10px; cursor: pointer; color: var(--k-d); }
.np_zak_strz.l { left: 0; justify-content: flex-start; background: linear-gradient(90deg, #fff 45%, rgba(255, 255, 255, 0)); }
.np_zak_strz.p { right: 0; justify-content: flex-end; background: linear-gradient(270deg, #fff 45%, rgba(255, 255, 255, 0)); }
.np_zak_strz svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.np_zakladki_ramka.wiecej_l .np_zak_strz.l, .np_zakladki_ramka.wiecej_p .np_zak_strz.p { display: flex; }
@media (prefers-reduced-motion: no-preference) {
    .np_zakladki_ramka.wiecej_p .np_zak_strz.p svg { animation: np_strzalka 1.6s ease-in-out 2 .8s; }
    @keyframes np_strzalka { 0%, 100% { transform: none; } 50% { transform: translateX(4px); } }
}
/* przejscie do sekcji z zakladki - pod przyklejonym menu i paskiem zakladek */
.np section[id] { scroll-margin-top: calc(var(--bh-gora, 0px) + 70px); }
/* plynne podkreslenie zakladki (js: .np_zak_kreska przesuwana pod biezaca zakladke) */
.np_zakladki { position: relative; }
.np_zakladki_ramka.z_kreska .np_zakladki a.on { border-bottom-color: transparent; }
.np_zak_kreska { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: #e32b26; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
    .np_zak_kreska { transition: transform .35s cubic-bezier(.2, .7, .2, 1), width .35s cubic-bezier(.2, .7, .2, 1); }
    .np .np_zakladki a { transition: color .25s ease; }
}
/* liderzy na telefonie: jedna kolumna, karta na cala szerokosc (dwie obok siebie zostawialy ok. 80 px na nazwisko i dopisek) */
@media (max-width: 640px) {
    .np .np_liderzy { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .np .np_lider { grid-template-columns: 112px minmax(0, 1fr); }
    .np .np_lider_foto { min-height: 132px; }
    .np .np_lider div { padding: 14px 16px; }
    .np .np_lider b { font-size: 40px; }
    .np .np_lider strong { font-size: 20px; }
}
/* pasek liczb: w kazdym rzedzie etykiety, liczby i podpisy w tych samych wierszach (subgrid) - etykieta w dwoch liniach
   nie obniza liczby tylko w swoim polu; etykiety wyrownane do dolu wiersza */
@supports (grid-template-rows: subgrid) {
    .np_liczby > div { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
    .np_liczby > div > span { align-self: end; }
    .np_liczby > div > small { align-self: start; }
}

/* tabele przewijane w bok: wyciszona prawa krawedz, gdy sa ukryte kolumny (js/glowna.js - klasa wiecej_p), i przyklejona pierwsza kolumna */
.np_tab_ramka { position: relative; }
.np_tab_ramka::after { content: ''; position: absolute; z-index: 3; top: 0; right: 0; bottom: 0; width: 48px; border-radius: 0 8px 8px 0; background: linear-gradient(270deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0)); pointer-events: none; opacity: 0; transition: opacity .2s; }
.np_tab_ramka.wiecej_p::after { opacity: 1; }
.np_tab_ramka .np_tab th:first-child, .np_tab_ramka .np_tab td:first-child { position: sticky; left: 0; z-index: 2; background: #fff; }
.np_tab_ramka .np_tab tbody tr:hover td:first-child { background: var(--k-t2); }
.np_tab_ramka .np_tab tr.suma td:first-child { background: var(--k-t); }
.np_tab_ramka.wiecej_l .np_tab th:first-child, .np_tab_ramka.wiecej_l .np_tab td:first-child { box-shadow: 6px 0 10px -6px rgba(0, 0, 0, .25); }
@media (max-width: 640px) {
    /* pierwsza kolumna nie zabiera calej szerokosci: dluzsze nazwy w dwoch liniach */
    .np_tab_ramka .np_tab td:first-child { white-space: normal; min-width: 120px; max-width: 150px; }
    .np_tab_ramka .np_tab td:first-child .riv { white-space: normal; line-height: 1.2; }
    .np_tab th:first-child, .np_tab td:first-child { padding-left: 14px; }
}
/* linki ze strzalka w stopkach kart ("Pelne statystyki →") bez lamania - strzalka nie spada do nowej linii; przy braku miejsca caly link pod tekstem */
.np_karta_stopka { flex-wrap: wrap; row-gap: 8px; }
.np_karta_stopka a, .np .np_link { white-space: nowrap; flex-shrink: 0; }
/* tabela ligi: pierwsza kolumna to numer miejsca - waska (regula 120-150 px jest dla kolumny z nazwiskiem) */
@media (max-width: 640px) {
    .np_tab_ramka .np_tabela td:first-child, .np_tab_ramka .np_tabela th:first-child { min-width: 0; width: 36px; max-width: none; padding-right: 0; }
}
/* pasek liczb: do 1100 px (tablet, telefon poziomo) najwyzej 3 kolumny - 6 waskich pol sie nie miescilo; linie jak na telefonie */
@media (max-width: 1100px) {
    .np_liczby { grid-template-columns: repeat(min(3, var(--n, 6)), minmax(0, 1fr)); gap: 1px; background: var(--k-l); border-top: 4px solid #e32b26; }
    .np_liczby > div, .np_liczby > div:first-child, .np_liczby > div:nth-child(3n+1) { border: 0; padding: 16px 20px; background: var(--k-cz); }
    .np_liczby > div:last-child:nth-child(3n+1) { grid-column: span 3; }
    .np_liczby > div:last-child:nth-child(3n+2) { grid-column: span 2; }
}
/* nazwa (lider) w pasku liczb: mniejsza, najwyzej 2 linie */
.np_liczby b.np_liczby_nazwa { font-size: 26px; line-height: 1.05; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 640px) { .np_liczby b.np_liczby_nazwa { font-size: 20px; } }
@media (max-width: 640px) { .np_liczby b.np_liczby_nazwa { font-size: 17px; -webkit-line-clamp: 3; overflow-wrap: anywhere; } }
/* nazwa lidera dopasowana do szerokosci (vw - jednostki kontenera zerowaly wysokosc tekstu w subgrid): najdluzszy wyraz ("NATUROBANK") miesci sie bez lamania w srodku */
.np_liczby b.np_liczby_nazwa { font-size: min(26px, 2.2vw); overflow-wrap: normal; }
@media (max-width: 1100px) { .np_liczby b.np_liczby_nazwa { font-size: 26px; } }
@media (max-width: 640px) { .np_liczby b.np_liczby_nazwa { font-size: min(17px, 4.3vw); overflow-wrap: normal; } }
/* tabela na telefonie: 4 pola w 2 kolumnach (lider ma miejsce na nazwe); najlepszy atak i obrona tylko na wiekszych ekranach (sa w tabeli ponizej) */
@media (max-width: 640px) {
    .np_liczby_tel2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .np_liczby_tel2 > .np_bez_tel { display: none; }
    .np_liczby_tel2 > div:last-child:nth-child(3n+1), .np_liczby_tel2 > div:last-child:nth-child(3n+2) { grid-column: auto; }
    .np_liczby_tel2 b.np_liczby_nazwa { font-size: min(22px, 5.4vw); }
    .np_liczby_tel2 small { display: block; }
}
/* artykul na telefonie: zdjecie plynnie przechodzi w pas tytulu (bez ostrej krawedzi), tytul nachodzi na dol zdjecia, mniejszy;
   mniej pustego miejsca pod pasem; tekst bez justowania z edytora (nierowne odstepy na waskim ekranie) */
.np_art_tresc p, .np_art_tresc div, .np_art_tresc span, .np_art_tresc li { text-align: left !important; }
@media (max-width: 640px) {
    .np_hero_art .np_hero_tlo { height: 300px; }
    .np_hero_art .np_hero_tlo::after { background: linear-gradient(0deg, var(--k-p3) 0, rgba(38, 38, 43, .85) 28%, rgba(38, 38, 43, 0) 70%); }
    .np_hero_art .np_hero_in { margin-top: -130px; padding-bottom: 26px; }
    .druzyna .np_hero_art h1 { font-size: 32px; line-height: .98; margin-top: 10px; }
    .np_autor { margin-top: 16px; font-size: 14px; }
    .np_art_uklad { padding-top: 22px; }
}
/* wielkosc tekstu artykulu: komputer 19 px; tablet i telefon poziomo 17 px; telefon 16 px, ciasniejsze linie (1,75 rozwlekalo akapity) */
@media (max-width: 1100px) {
    .np_art_tekst { font-size: 17px; line-height: 1.65; }
    .np_art_tresc > p:first-child { font-size: 20px !important; }
}
@media (max-width: 640px) {
    .np_art_tekst { font-size: 16px; line-height: 1.6; }
    .np_art_tresc > p:first-child { font-size: 18px !important; line-height: 1.5 !important; }
    .np_art_tresc p { margin-bottom: 16px; }
}
/* tytul artykulu: tablet i telefon poziomo mniejszy (dotad rozmiar z komputera); dlugie tytuly (ponad 60 znakow) o ok. 20% mniejsze */
.druzyna .np_hero_art h1.np_tytul_dlugi { font-size: 60px; }
@media (max-width: 1100px) {
    .druzyna .np_hero_art h1 { font-size: 48px; }
    .druzyna .np_hero_art h1.np_tytul_dlugi { font-size: 40px; }
}
@media (max-width: 640px) {
    .druzyna .np_hero_art h1 { font-size: 32px; }
    .druzyna .np_hero_art h1.np_tytul_dlugi { font-size: 27px; }
}
/* karta skladu bez meczu: ta sama wysokosc co pasek liczb, jedna linia */
.np_gracz_brak { min-height: 53px; display: flex; align-items: center; justify-content: center; padding: 0 10px; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* nazwisko zawodnika: znaki nad wielkimi literami (Ó, Ś, Ż) nie wchodza na imie; rozmiar dopasowany do szerokosci kolumny
   wg liczby znakow (--dl z nowy_zawodnikPage) - dlugie nazwiska (Krzyżanowski, Jędzrzejczyk) mieszcza sie w jednej linii */
.druzyna .np_nazwisko { padding-top: .14em; white-space: nowrap; --np-kol: calc(min(1320px, 100vw - 64px) - 380px); font-size: min(112px, calc(var(--np-kol) / (var(--dl, 8) * .5))); }
@media (max-width: 1100px) { .druzyna .np_nazwisko { --np-kol: calc(100vw - 48px - 380px); } }
@media (max-width: 900px) { .druzyna .np_nazwisko { --np-kol: calc(100vw - 48px - 260px); } }
@media (max-width: 640px) { .druzyna .np_nazwisko { --np-kol: calc(100vw - 32px - 152px); font-size: min(60px, calc(var(--np-kol) / (var(--dl, 8) * .5))); } }
/* dlugie nazwy na stronie druzyny (telefon): nazwisko w "Kto zdobywa punkty" z wielokropkiem (pelne w podpowiedzi), nazwy rywali
   w terminarzu lamane, waskie kolumny kwart - "Kwarta" i nazwy druzyn nie sa ucinane do zera; dluga nazwa poszerzala strone */
.np_rzut > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.np_termin > * { min-width: 0; }
.np_termin strong { overflow-wrap: anywhere; }
@media (max-width: 640px) {
    .np_kwarty_tab { grid-template-columns: minmax(0, 1fr) repeat(var(--n), 30px); padding: 10px 12px; }
}
/* dolne pole karty skladu - stala wysokosc dla liczb i "Bez meczu" (linia nad nimi na tej samej wysokosci, niezaleznie od metryk kroju) */
.np_gracz_liczby, .np_gracz_brak { height: 54px; min-height: 0; box-sizing: border-box; }
.np_gracz_liczby { align-items: center; }
.np_gracz_liczby > span { padding: 0; }

/* ---------- raport meczu (etap 93, templates/nowy_raport.tpl.htm) ---------- */
.nr .nr_info { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 20px; }
.nr_data { font: 600 13px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-j); }
/* tablica wynikow w pasie (wariant A) */
.nr_in { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 34px; }
.nr_tablica { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 32px; margin-top: 34px; }
.np .nr_druz { display: flex; align-items: center; gap: 22px; color: #fff; text-decoration: none; min-width: 0; }
.nr_druz.prawa { justify-content: flex-end; text-align: right; }
.nr_druz img { width: 112px; height: 112px; object-fit: contain; background: #fff; border-radius: 50%; padding: 7px; flex-shrink: 0; }
.nr_druz b { display: block; font: 800 46px/.92 var(--f-nag); text-transform: uppercase; letter-spacing: .01em; overflow-wrap: break-word; }
.nr_druz small { display: block; margin-top: 8px; font: 600 13px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-s); }
.nr_druz.slabszy b { color: var(--k-s2); }
.nr_druz.slabszy img { opacity: .75; }
.nr_wynik { text-align: center; }
.nr_wynik strong { display: block; font: 800 128px/.85 var(--f-cyfry); white-space: nowrap; letter-spacing: -.01em; }
.nr_wynik strong i { font-style: normal; color: var(--k-s2); padding: 0 .12em; }
.nr_wynik strong em { font-style: normal; }
.nr_wynik strong em.slabszy { color: var(--k-s2); }
.nr_wynik strong.vs { font-size: 72px; color: var(--k-s2); }
.nr_wynik span { display: inline-block; margin-top: 12px; padding: 5px 10px 4px; border-radius: 3px; background: #e32b26; font: 800 13px var(--f-nag); letter-spacing: .1em; text-transform: uppercase; }
/* kwarty w pasie */
.nr_kwarty { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); background: var(--k-cz); border-top: 4px solid #e32b26; position: relative; z-index: 1; }
.nr_kwarty > div { padding: 14px 22px 14px; border-left: 1px solid var(--k-l); }
.nr_kwarty > div:first-child { border-left: 0; }
.nr_kwarty span { display: block; font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-s); }
.nr_kwarty b { display: block; margin-top: 4px; font: 800 34px/1 var(--f-cyfry); color: var(--k-s2); }
.nr_kwarty b em { font-style: normal; }
.nr_kwarty b em.lepsza { color: #fff; }
.nr_kwarty b i { font-style: normal; padding: 0 4px; }
.nr_kwarty small { display: block; margin-top: 4px; font: 500 13px var(--f-tekst); color: var(--k-s); }
.nr_kwarty_pas { position: relative; z-index: 1; padding-bottom: 0; }
/* przebieg: slupki przewagi (gora - gospodarz, dol - gosc), wysokosc z danych (--h: 0-90) */
.nr_legenda { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--k-sz); }
.nr_legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; }
.nr_legenda i.a, .nr_przebieg i.a, .nr_por_s i.a { background: var(--k-p); }
.nr_legenda i.b, .nr_przebieg i.b, .nr_por_s i.b { background: #e32b26; }
.nr_przebieg { position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 18px; height: 236px; margin-top: 10px; }
.nr_przebieg::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px solid var(--k-tl); }
.nr_przebieg > div { position: relative; }
.nr_przebieg i { position: absolute; left: 18%; right: 18%; height: calc(var(--h) * 1px); }
.nr_przebieg i.a { bottom: 50%; border-radius: 4px 4px 0 0; }
.nr_przebieg i.b { top: 50%; border-radius: 0 0 4px 4px; }
.nr_przebieg b { position: absolute; left: 0; right: 0; text-align: center; font: 800 20px var(--f-cyfry); }
.nr_przebieg b.a { bottom: calc(50% + var(--h) * 1px + 4px); }
.nr_przebieg b.b { top: calc(50% + var(--h) * 1px + 4px); color: #e32b26; }
.nr_przebieg_os { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 18px; margin: 4px 0 18px; text-align: center; font: 600 13px var(--f-cyfry); color: var(--k-sz); }
.nr_przebieg_os b { display: block; font: 700 12px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-d); }
.nr_kwarty_tab { grid-template-columns: minmax(0, 1fr) repeat(calc(var(--n) + 1), 52px); }
/* karta MVP */
.nr_dwie { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: stretch; }
.nr_mvp { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: 22px; align-items: start; }
.np .nr_mvp_foto { display: block; position: relative; border-radius: 6px; overflow: hidden; background: var(--k-p3); aspect-ratio: 4 / 5; container-type: inline-size; }
.nr_mvp_foto img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; display: block; }
.nr_mvp_foto .bez_foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.nr_mvp_opis { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.nr_mvp_imie { margin-top: 12px; font: 700 18px/1 var(--f-nag); letter-spacing: .05em; text-transform: uppercase; color: var(--k-sz); }
.nr_mvp_nazwisko { font: 800 44px/.92 var(--f-nag); text-transform: uppercase; color: var(--k-d); overflow-wrap: anywhere; }
.nr_mvp_box { align-self: stretch; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 12px 0 14px; gap: 1px; background: var(--k-tl); overflow: hidden; }
.nr_mvp_box > div { background: var(--k-t); }
.nr_mvp_box b { font-size: 26px; }
/* liderzy meczu: druga druzyna w jednej linii pod nazwiskiem */
.nr_lider_drugi { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--k-l); font: 500 12px/1.3 var(--f-tekst); font-style: normal; color: var(--k-s); }
/* porownanie druzyn: paski od srodka */
.nr_por_glowa { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 2px solid var(--k-d); font: 800 18px var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.nr_por_glowa span { display: flex; align-items: center; gap: 10px; }
.nr_por_glowa img { width: 32px; height: 32px; object-fit: contain; }
.nr_por_w { display: grid; grid-template-columns: 130px minmax(0, 1fr) 130px; align-items: center; gap: 16px; padding: 11px 0; border-top: 1px solid var(--k-tl); }
.nr_por_glowa + .nr_por_w { border-top: 0; }
.nr_por_w > em { font: 700 17px var(--f-cyfry); font-style: normal; color: var(--k-sz); white-space: nowrap; }
.nr_por_w > em.prawa { text-align: right; }
.nr_por_w > em.lepszy { font-weight: 800; font-size: 20px; color: var(--k-d); }
.nr_por_s { display: grid; grid-template-columns: minmax(0, 1fr) 170px minmax(0, 1fr); align-items: center; gap: 12px; }
.nr_por_s > span { height: 10px; background: var(--k-t); border-radius: 5px; overflow: hidden; display: flex; }
.nr_por_s > span:first-child { justify-content: flex-end; }
.nr_por_s i { display: block; height: 100%; border-radius: 5px; }
.nr_por_s > b { text-align: center; font-weight: 700; font-size: 15px; }
.nr_por_s > b small { display: block; font-weight: 400; font-size: 12px; color: var(--k-sz); }
.nr_wsk .nr_por_s { grid-template-columns: minmax(0, 1fr); }
.nr_por_grupa { margin-top: 18px; padding: 10px 0; border-bottom: 2px solid var(--k-d); font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-sz); }
.nr_por_grupa + .nr_por_w { border-top: 0; }
/* box score */
.nr_box tr.nr_bez_gry td { color: var(--k-s); }
/* pliki */
.nr_pliki { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.np .nr_pliki a { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: #fff; border-radius: 8px; padding: 20px 22px; text-decoration: none; color: var(--k-d); }
.nr_pliki b { font: 800 19px var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.nr_pliki span { font-weight: 700; color: #e32b26; white-space: nowrap; }

@media (max-width: 1100px) {
    .nr_druz img { width: 84px; height: 84px; }
    .nr_druz b { font-size: 34px; }
    .nr_wynik strong { font-size: 96px; }
    .nr_dwie { grid-template-columns: minmax(0, 1fr); }
    .nr_mvp { grid-template-columns: 180px minmax(0, 1fr); }
}
@media (max-width: 900px) {
    .nr_tablica { gap: 16px; }
    .np .nr_druz { flex-direction: column; text-align: center; gap: 10px; }
    .np .nr_druz.prawa { flex-direction: column-reverse; text-align: center; }
    .nr_kwarty { grid-template-columns: repeat(min(var(--n), 4), minmax(0, 1fr)); }
    .nr_por_w { grid-template-columns: 96px minmax(0, 1fr) 96px; gap: 10px; }
    .nr_por_s { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .nr_por_s > span { display: none; }
    .nr_pliki { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .nr_tablica { margin-top: 22px; gap: 8px; }
    .nr_druz img { width: 56px; height: 56px; padding: 4px; }
    .nr_druz b { font-size: min(22px, 5.6vw); }
    .nr_druz small { font-size: 10px; letter-spacing: .06em; }
    .nr_wynik strong { font-size: min(56px, 13vw); }
    .nr_wynik span { font-size: 11px; }
    .nr_in { padding-bottom: 22px; }
    .nr_kwarty > div { padding: 10px 12px; }
    .nr_kwarty b { font-size: 24px; }
    .nr_kwarty small { display: none; }
    .nr_kwarty_pas { padding-inline: 0; }
    .nr_przebieg { height: 200px; gap: 8px; }
    .nr_przebieg i { left: 10%; right: 10%; height: calc(var(--h) * .8px); }
    .nr_przebieg b.a { bottom: calc(50% + var(--h) * .8px + 4px); }
    .nr_przebieg b.b { top: calc(50% + var(--h) * .8px + 4px); }
    .nr_przebieg b { font-size: 16px; }
    .nr_przebieg_os { gap: 8px; font-size: 11px; }
    .nr_kwarty_tab { grid-template-columns: minmax(0, 1fr) repeat(calc(var(--n) + 1), 32px); }
    .nr_mvp { grid-template-columns: 120px minmax(0, 1fr); gap: 14px; }
    .nr_mvp_nazwisko { font-size: 30px; }
    .nr_mvp_box b { font-size: 20px; }
    .nr_por_w { grid-template-columns: 78px minmax(0, 1fr) 78px; }
    .nr_por_w > em { font-size: 14px; white-space: normal; }
    .nr_por_w > em.lepszy { font-size: 16px; }
    .nr_por_glowa { font-size: 14px; }
}
/* raport: zapowiedz meczu nierozegranego - licznik i kalendarz w pasie, forma, bezposrednie mecze, liderzy obu druzyn */
.nr_przed { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 18px; margin-top: 26px; }
.nr_licznik { justify-content: center; margin-top: 0; }
.nr_licznik span { background: rgba(255, 255, 255, .08); }
.np .nr_kalendarz { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid var(--k-l); border-radius: 4px; font: 700 14px var(--f-tekst); color: #fff; text-decoration: none; }
.np .nr_kalendarz:hover { background: rgba(255, 255, 255, .08); }
.nr_kalendarz .ik { width: 18px; height: 18px; }
.nr_forma { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid var(--k-tl); }
.nr_forma:first-of-type { border-top: 0; }
.nr_forma > img { width: 44px; height: 44px; object-fit: contain; }
.nr_forma_n b { display: block; font: 800 19px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.nr_forma_n small { display: block; margin-top: 3px; font-size: 13px; color: var(--k-sz); }
.np .nr_forma .np_wp { text-decoration: none; }
.nr_h2h { display: flex; flex-direction: column; }
.nr_h2h_wynik { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 12px; text-align: center; }
.nr_h2h_wynik span { font: 800 16px/1.1 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; color: var(--k-sz); }
.nr_h2h_wynik b { display: block; font: 800 72px/1 var(--f-cyfry); color: var(--k-d); }
.nr_h2h_wynik i { font: 800 40px var(--f-cyfry); font-style: normal; color: var(--k-s2); }
.nr_h2h_brak { flex: 1; display: flex; align-items: center; justify-content: center; margin: 0; padding: 24px 0; font: 800 22px/1.15 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; text-align: center; color: var(--k-sz); }
.nr_liderzy_z { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nr_liderzy_z > div { background: var(--k-p3); border-radius: 8px; padding: 18px 20px 8px; }
.nr_liderzy_z h3 { display: flex; align-items: center; gap: 12px; margin: 0 0 8px; font: 800 20px var(--f-nag); text-transform: uppercase; letter-spacing: .03em; color: #fff; }
.nr_liderzy_z h3 img { width: 36px; height: 36px; object-fit: contain; background: #fff; border-radius: 50%; padding: 3px; }
.np .nr_lider_z { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--k-l); color: #fff; text-decoration: none; }
.nr_lider_z_foto { position: relative; width: 52px; height: 52px; border-radius: 50%; overflow: hidden; background: var(--k-p); container-type: inline-size; }
.nr_lider_z_foto img { width: 100%; height: 100%; object-fit: cover; }
.nr_lider_z_foto .bez_foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.nr_lider_z small { display: block; font: 700 11px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-a2); }
.nr_lider_z strong { display: block; font: 800 18px/1.1 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nr_lider_z > b { font: 800 34px/1 var(--f-cyfry); }
.nr_lider_z_brak { margin: 0; padding: 12px 0 14px; border-top: 1px solid var(--k-l); color: var(--k-s); font-size: 14px; }
@media (max-width: 900px) { .nr_liderzy_z { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
    .nr_licznik span { min-width: 52px; padding: 6px 8px 5px; }
    .nr_licznik b { font-size: 22px; }
    .nr_kalendarz { font-size: 13px; padding: 8px 10px; }
    .nr_forma { grid-template-columns: 36px minmax(0, 1fr); gap: 10px 12px; }
    .nr_forma > img { width: 36px; height: 36px; }
    .nr_forma .np_forma { grid-column: 2; }
    .nr_h2h_wynik b { font-size: 56px; }
    .nr_liderzy_z > div { padding: 16px 16px 6px; }
}

/* ---------- terminarz (etap 94, templates/nowy_terminarz.tpl.htm) ---------- */
.np .nt_mistrz { margin-top: 18px; }
.np_liczby small a { color: var(--k-j); text-decoration: none; }
.np_liczby small a:hover { color: #fff; }
/* filtr druzyn: pasek pod pasem, przewijany w bok na telefonie */
.nt_filtr { background: #fff; border-bottom: 1px solid var(--k-tl); }
.nt_filtr_in { display: flex; gap: 8px; padding-block: 14px; overflow-x: auto; scrollbar-width: none; }
.nt_filtr button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 10px; border-radius: 20px; border: 1px solid var(--k-tl); background: #fff; font: 700 14px var(--f-tekst); color: var(--k-d); cursor: pointer; }
.nt_filtr button:first-child { padding-left: 14px; }
.nt_filtr button img { width: 24px; height: 24px; object-fit: contain; }
.nt_filtr button[aria-pressed="true"] { background: var(--k-d); border-color: var(--k-d); color: #fff; }
.nt_filtr button[aria-pressed="true"] img { background: #fff; border-radius: 50%; }
/* status kolejki */
.nt_status { display: inline-flex; align-items: center; padding: 5px 10px 4px; border-radius: 3px; border: 1px solid var(--k-tl); font: 800 13px var(--f-nag); letter-spacing: .08em; text-transform: uppercase; color: var(--k-sz); white-space: nowrap; }
.nt_status.najblizsza { background: #e32b26; border-color: #e32b26; color: #fff; }
.nt_status.zakonczona { background: var(--k-t); border-color: var(--k-t); }
.np [data-id].wybrana span { color: #e32b26; }
/* lista kolejek i tabela obok (wariant A) */
.nt_uklad { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; padding-block: 40px 72px; }
.nt_kolejki { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
/* najblizsza kolejka: cala karta ciemna, jak pasy liderow (bez kolorowej kreski na krawedzi - decyzja uzytkownika 07.11.2026) */
.nt_kolejka.najblizsza { background: var(--k-p); color: #fff; }
.nt_kolejka.najblizsza .nt_kolejka_glowa { border-bottom-color: rgba(255, 255, 255, .35); }
.nt_kolejka.najblizsza .nt_kolejka_glowa h2 { color: #fff; }
.nt_kolejka.najblizsza .nt_kolejka_glowa div > span, .nt_kolejka.najblizsza .nt_godz { color: var(--k-j); }
.nt_kolejka.najblizsza .nt_mecz { border-top-color: var(--k-l); }
.np .nt_kolejka.najblizsza .nt_druz { color: #fff; }
.np .nt_kolejka.najblizsza .nt_wynik.vs { border-color: var(--k-l); color: var(--k-j); }
.np .nt_kolejka.najblizsza .nt_wynik.vs:hover { background: #fff; color: var(--k-d); }
.np .nt_kolejka.najblizsza .nt_link { color: #ff6a5f; }
.nt_kolejka.najblizsza .nt_druz img { background: #fff; border-radius: 50%; padding: 2px; }
.nt_kolejka[id] { scroll-margin-top: calc(var(--bh-gora, 0px) + 20px); }
.nt_kolejka_glowa { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 2px solid var(--k-d); }
.nt_kolejka_glowa h2 { margin: 0; font: 800 26px/1 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; color: var(--k-d); }
.nt_kolejka_glowa h2 .cz2 { margin-left: 10px; }
.nt_kolejka_glowa div > span { display: block; margin-top: 4px; font-size: 14px; color: var(--k-sz); }
.nt_kolejka_glowa div > span::first-letter { text-transform: uppercase; }
.nt_mecz { display: grid; grid-template-columns: 56px minmax(0, 1fr) 112px minmax(0, 1fr) 104px; align-items: center; gap: 14px; padding: 13px 0; border-top: 1px solid var(--k-tl); }
.nt_kolejka_glowa + .nt_mecz { border-top: 0; }
.nt_godz { font: 800 16px var(--f-cyfry); color: var(--k-sz); }
.np .nt_druz { display: flex; align-items: center; justify-content: flex-end; gap: 12px; min-width: 0; text-align: right; font: 800 18px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; color: var(--k-d); text-decoration: none; }
.np .nt_druz.prawa { justify-content: flex-start; text-align: left; }
.nt_druz img { width: 40px; height: 40px; object-fit: contain; flex-shrink: 0; }
.np .nt_druz.slabszy { color: var(--k-s); }
.np .nt_druz.wybrana span { color: #e32b26; }
.np .nt_wynik { display: flex; justify-content: center; align-items: center; padding: 8px 0; border-radius: 6px; background: var(--k-t); font: 800 26px/1 var(--f-cyfry); color: var(--k-d); text-decoration: none; white-space: nowrap; }
.nt_wynik em { font-style: normal; }
.nt_wynik em.slabszy { color: var(--k-s); }
.nt_wynik i { font-style: normal; color: var(--k-s2); padding: 0 6px; }
.np .nt_wynik.vs { background: none; border: 1px solid var(--k-tl); font-size: 18px; color: var(--k-sz); }
.np .nt_wynik:hover { background: var(--k-d); color: #fff; }
.np .nt_wynik:hover em.slabszy { color: var(--k-s2); }
.np .nt_link { text-align: right; font-weight: 700; font-size: 14px; color: #e32b26; text-decoration: none; white-space: nowrap; }
.nt_para { grid-column: 2 / 4; font-weight: 600; }
/* tabela obok */
.nt_tabela { padding: 18px 20px 10px; }
.nt_tabela_glowa { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.nt_tabela_glowa h3 { margin: 0; }
.nt_tabela .np_link { font-size: 14px; }
.np .nt_tabela_w { display: grid; grid-template-columns: 24px minmax(0, 1fr) 44px 44px; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--k-tl); color: var(--k-d); text-decoration: none; font-size: 14px; }
.nt_tabela_w > span:nth-child(n+3) { text-align: right; font-family: var(--f-cyfry); font-weight: 700; }
.nt_tabela_w.nagl { border-top: 0; font: 700 11px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-sz); }
.nt_tabela_w > b { font: 800 16px var(--f-cyfry); color: var(--k-sz); }
.nt_tabela_n { display: flex; align-items: center; gap: 8px; min-width: 0; font: 800 15px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.nt_tabela_n span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nt_tabela_n img { width: 24px; height: 24px; object-fit: contain; flex-shrink: 0; }
.np .nt_tabela_w.wybrana { background: var(--k-t2); }
@media (max-width: 1100px) {
    .nt_uklad { grid-template-columns: minmax(0, 1fr); }
    .nt_uklad .np_boczna { position: static; }
}
@media (max-width: 640px) {
    .nt_uklad { padding-block: 24px 48px; gap: 20px; }
    .nt_kolejka_glowa h2 { font-size: 22px; }
    .nt_kolejka_glowa { align-items: flex-start; }
    .nt_mecz { grid-template-columns: minmax(0, 1fr) 78px minmax(0, 1fr); grid-template-areas: "g g g" "a w b"; gap: 6px 10px; padding: 12px 0; }
    .nt_godz { grid-area: g; font-size: 13px; }
    .nt_mecz > .nt_druz:not(.prawa) { grid-area: a; }
    .nt_mecz > .nt_wynik { grid-area: w; font-size: 20px; }
    .nt_mecz > .nt_druz.prawa { grid-area: b; }
    .nt_link { display: none; }
    .np .nt_druz { flex-direction: column-reverse; justify-content: center; align-items: center; text-align: center; gap: 6px; font-size: 14px; overflow-wrap: break-word; }
    .np .nt_druz.prawa { flex-direction: column; justify-content: center; text-align: center; }
    .nt_druz img { width: 34px; height: 34px; }
    .nt_para { grid-column: 1 / -1; }
    .nt_filtr button { font-size: 13px; padding: 6px 12px 6px 8px; }
}

/* ---------- statystyki generalne (etap 95, templates/nowe_statystyki.tpl.htm) ---------- */
.ns[data-tryb="mecz"] .ns_tylko_suma, .ns[data-tryb="suma"] .ns_tylko_mecz { display: none; }
.ns_pasek { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ns_pasek .nt_filtr_in { min-width: 0; }
.ns_tryb { flex: 0 0 auto; }
.ns_siatka { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.ns_karta[hidden] { display: none; }
.ns_karta h2 { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 0 0 14px; font: 800 22px/1 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; color: var(--k-d); }
.ns_karta h2 small { font: 600 12px var(--f-etykiety); letter-spacing: .08em; text-transform: none; color: var(--k-sz); }
/* lider: ciemny blok ze zdjeciem (jak liderzy na stronie druzyny) */
.np .ns_lider { display: grid; grid-template-columns: 112px minmax(0, 1fr); background: var(--k-p3); border-radius: 8px; overflow: hidden; color: #fff; text-decoration: none; }
.ns_foto { position: relative; display: block; min-height: 150px; background: var(--k-p); overflow: hidden; container-type: inline-size; }
.ns_foto img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 15%; }
.ns_foto .bez_foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.ns_lider_opis { display: flex; flex-direction: column; justify-content: center; padding: 14px 16px; min-width: 0; }
.ns_imie { font: 700 13px/1 var(--f-nag); letter-spacing: .06em; text-transform: uppercase; color: var(--k-j); }
.ns_lider_opis > b { font: 800 22px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ns_druz { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 12px; color: var(--k-s); }
.ns_druz img { width: 18px; height: 18px; object-fit: contain; background: #fff; border-radius: 50%; padding: 1px; }
.ns_lider_opis strong { margin-top: 6px; font: 800 44px/1 var(--f-cyfry); color: #fff; }
.ns_lider_opis small { font-size: 12px; color: var(--k-s); }
/* miejsca 2-10 */
.ns_miejsca { list-style: none; margin: 8px 0 0; padding: 0; }
.ns_miejsca li[hidden] { display: none; }
.np .ns_miejsca a { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--k-tl); color: var(--k-d); text-decoration: none; }
.ns_nr { font: 800 15px var(--f-cyfry); color: var(--k-sz); }
.ns_nazwa { min-width: 0; }
.ns_nazwa > span { display: block; font-weight: 600; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ns_nazwa > i { display: block; height: 4px; margin-top: 4px; background: var(--k-t); border-radius: 2px; overflow: hidden; }
.ns_nazwa > i > i { display: block; height: 100%; background: var(--k-s2); border-radius: 2px; }
.ns_miejsca b { font: 800 18px var(--f-cyfry); }
.ns_miejsca a:hover .ns_nazwa > span { color: #e32b26; }
.ns_wiecej { margin-top: 10px; padding: 0; border: 0; background: none; font: 700 14px var(--f-tekst); color: #e32b26; cursor: pointer; }
.ns .np_tab_opis span + span { margin-left: 0; }
@media (max-width: 1100px) {
    .ns_siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .ns_pasek { flex-direction: column; align-items: stretch; gap: 0; }
    .ns_tryb { padding-bottom: 12px; }
}
@media (max-width: 640px) {
    .ns_siatka { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .np .ns_lider { grid-template-columns: 100px minmax(0, 1fr); }
    .ns_foto { min-height: 132px; }
    .ns_lider_opis strong { font-size: 38px; }
}

/* ---------- wskazniki zespolowe (etap 96, templates/nowe_wskazniki.tpl.htm) ---------- */
.nw[data-grupa="podstawowe"] .nw_zaawansowane, .nw[data-grupa="zaawansowane"] .nw_podstawowe { display: none; }
.nw_tab tbody th { padding: 12px 10px 12px 20px; font: 600 15px var(--f-tekst); letter-spacing: 0; text-transform: none; text-align: left; color: var(--k-d); border-bottom: 1px solid var(--k-tl); }
.nw_tab .riv img { width: 30px; height: 30px; }
.nw_sortuj { display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; background: none; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; white-space: nowrap; }
.nw_sortuj:hover { color: var(--k-d); }
.nw_sortuj span::after { content: ''; display: inline-block; width: 0; height: 0; border: 4px solid transparent; }
/* kolumna do posortowania: ikonka gora-dol (wariant D, zamiast napisu 'kliknij naglowek'); po posortowaniu - jedna strzalka */
.nw_sortuj span::before { content: '\2195'; margin-left: 2px; font-size: 13px; font-weight: 400; line-height: 1; color: var(--k-s2); }
th[aria-sort] .nw_sortuj span::before { content: none; }
.nw_sortuj:hover span::before { color: var(--k-d); }
th[aria-sort="descending"] .nw_sortuj span::after { border-top-color: currentColor; margin-top: 4px; }
th[aria-sort="ascending"] .nw_sortuj span::after { border-bottom-color: currentColor; margin-bottom: 4px; }
th[aria-sort] .nw_sortuj { color: var(--k-d); }
.nw_tab td { font-variant-numeric: tabular-nums; }
.nw_tab td.nw_naj, .nw_naj_opis { font-weight: 800; color: #e32b26; }
.nw_slownik { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.nw_slownik .np_karta h3 { margin-bottom: 8px; }
.nw_slownik p { margin: 0 0 10px; font-size: 14px; line-height: 1.5; color: var(--k-sz); }
.nw_slownik small { font-size: 13px; color: var(--k-sz); }
.nw_slownik small b { color: var(--k-d); }
.nw_wzory summary { cursor: pointer; font: 800 18px var(--f-nag); text-transform: uppercase; letter-spacing: .03em; color: var(--k-d); }
.nw_wzory dl { margin: 16px 0 0; font-size: 14px; line-height: 1.6; }
.nw_wzory dt { margin-top: 12px; font-weight: 700; }
.nw_wzory dd { margin: 2px 0 0; color: var(--k-sz); }
@media (max-width: 1100px) { .nw_slownik { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .nw_slownik { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .nw_tab tbody th { padding-left: 14px; white-space: normal; min-width: 130px; }
    .nw_tab .riv { white-space: normal; line-height: 1.2; }
}

/* ---------- aktualnosci (etap 97, templates/nowe_aktualnosci.tpl.htm) ---------- */
.na_foto { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--k-p3); }
.na_foto img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; display: block; }
.na_foto .np_czytaj_brak { position: absolute; inset: 0; aspect-ratio: auto; }
/* najnowszy: duze zdjecie po lewej, tytul po prawej (ciemna karta jak pasy liderow) */
.np .na_glowny { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); background: var(--k-p); border-radius: 8px; overflow: hidden; color: #fff; text-decoration: none; }
.na_glowny .na_foto { aspect-ratio: auto; min-height: 380px; }
.na_glowny_opis { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 12px; padding: 32px 34px; min-width: 0; }
.na_glowny_opis > b { font: 800 40px/1 var(--f-nag); text-transform: uppercase; letter-spacing: .01em; }
.na_glowny_opis small { font: 600 13px var(--f-etykiety); letter-spacing: .08em; text-transform: uppercase; color: var(--k-s); }
.na_glowny .na_zajawka { color: var(--k-j); -webkit-line-clamp: 4; }
.na_dalej { font-weight: 700; color: #ff6a5f; }
.na_zajawka { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-size: 15px; line-height: 1.55; color: var(--k-sz); }
.na_wczesniej { margin-top: 30px; }
/* pozostale: siatka kart */
.na_siatka { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.np .na_karta { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; color: var(--k-d); text-decoration: none; }
.na_opis { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 20px; }
.na_opis small { font: 600 12px var(--f-etykiety); letter-spacing: .08em; text-transform: uppercase; color: var(--k-sz); }
.na_opis b { font: 800 22px/1.08 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; }
.np .na_karta:hover b, .np .na_glowny:hover b { color: #e32b26; }
.np .na_glowny:hover b { color: #fff; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
/* numery stron */
.na_strony { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: 34px; }
.na_strony a, .na_strony span { min-width: 42px; padding: 9px 14px; border-radius: 20px; border: 1px solid var(--k-tl); background: #fff; text-align: center; font: 700 14px var(--f-tekst); color: var(--k-d); text-decoration: none; }
.na_strony span.on { background: var(--k-d); border-color: var(--k-d); color: #fff; }
.na_strony .na_kropki { border: 0; background: none; min-width: 0; padding: 9px 4px; color: var(--k-sz); }
.na_strony a:hover { border-color: var(--k-d); }
@media (max-width: 1100px) {
    .na_siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .na_glowny_opis > b { font-size: 32px; }
}
@media (max-width: 900px) {
    .np .na_glowny { grid-template-columns: minmax(0, 1fr); }
    .na_glowny .na_foto { min-height: 0; aspect-ratio: 16 / 10; }
    .na_glowny_opis { padding: 22px 20px 24px; }
}
@media (max-width: 640px) {
    .na_siatka { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .na_glowny_opis > b { font-size: 28px; }
    .na_opis b { font-size: 20px; }
    .na_strony a, .na_strony span { min-width: 38px; padding: 8px 10px; }
}
/* strzalki stron (wybor uzytkownika zamiast "Nowsze / Starsze") */
.na_strony .na_strzalka { display: inline-flex; align-items: center; justify-content: center; padding: 9px 12px; }
.na_strzalka svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- raporty meczowe (etap 98, templates/nowe_raporty.tpl.htm) ---------- */
.nm_siatka th, .nm_siatka td { padding: 10px 8px; }
.nm_siatka tbody th { padding: 10px 14px 10px 20px; font: 600 15px var(--f-tekst); letter-spacing: 0; text-transform: none; text-align: left; color: var(--k-d); border-bottom: 1px solid var(--k-tl); white-space: nowrap; }
.nm_siatka thead th:first-child { text-transform: none; letter-spacing: 0; font: 500 12px var(--f-tekst); }
.nm_kol { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; }
.nm_kol img { width: 30px; height: 30px; object-fit: contain; }
.nm_siatka .riv img { width: 28px; height: 28px; }
.nm_siatka td { min-width: 70px; }
.np .nm_wynik { display: block; padding: 6px 4px; border-radius: 4px; font: 800 15px var(--f-cyfry); text-decoration: none; white-space: nowrap; }
.nm_wynik + .nm_wynik { margin-top: 4px; }
.np .nm_wynik.w { background: rgba(29, 107, 69, .12); color: #1d6b45; }
.np .nm_wynik.p { background: rgba(227, 43, 38, .1); color: #c4211c; }
.np .nm_wynik.z { background: var(--k-t2); color: var(--k-sz); font: 600 13px var(--f-tekst); }
.np .nm_wynik:hover { background: var(--k-d); color: #fff; }
.nm_ta_sama { display: block; height: 28px; border-radius: 4px; background: repeating-linear-gradient(135deg, var(--k-t) 0 4px, transparent 4px 8px); }
.nm_legenda { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.nm_legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.nm_legenda i.w { background: rgba(29, 107, 69, .35); }
.nm_legenda i.p { background: rgba(227, 43, 38, .3); }
.nm_legenda i.z { background: var(--k-tl); }
@media (max-width: 640px) {
    .nm_siatka tbody th { padding-left: 14px; white-space: normal; min-width: 120px; }
    .nm_siatka .riv { white-space: normal; line-height: 1.2; }
    .nm_siatka td { min-width: 62px; }
}

/* ---------- Hall of Fame (etap 100, templates/nowy_hof.tpl.htm i nowy_hof_tabela.tpl.htm) ---------- */
.nh_tytul { margin-top: 0; }
.nh_tytul > img { background: none; border-radius: 0; padding: 0; width: 120px; height: 120px; }
.druzyna .nh_tytul h1.np_tytul { margin: 6px 0 0; }
.druzyna .nh .nh_tytul_tabeli { font-size: 72px; }
/* filtry (sezon, kategoria, statystyka) - przyciski jak w terminarzu, jako linki */
.nh_filtry { display: flex; flex-direction: column; gap: 10px; }
.nh_filtr { display: flex; flex-wrap: wrap; gap: 8px; }
.np .nh_filtr a { padding: 7px 14px; border-radius: 20px; border: 1px solid var(--k-tl); background: #fff; font: 700 14px var(--f-tekst); color: var(--k-d); text-decoration: none; }
.np .nh_filtr a.on { background: var(--k-d); border-color: var(--k-d); color: #fff; }
.np .nh_filtr a:hover { border-color: var(--k-d); }
/* podium rekordzistow: 1. miejsce na ciemnej karcie z odznaka "Rekord" */
.nh_podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: end; }
.np .nh_miejsce { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; color: var(--k-d); text-decoration: none; }
.np .nh_miejsce.pierwsze { background: var(--k-p); color: #fff; }
.nh_foto { position: relative; display: block; aspect-ratio: 4 / 5; background: var(--k-p3); overflow: hidden; }   /* bez container-type: w kolumnie flex zerowal wysokosc z aspect-ratio */
.nh_miejsce:not(.pierwsze) .nh_foto { aspect-ratio: 1 / 1; }
.nh_foto img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; object-position: center 15%; display: block; }
.nh_foto .bez_foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.nh_nr { position: absolute; left: 14px; bottom: 6px; font: 800 96px/1 var(--f-nag); color: transparent; -webkit-text-stroke: 2px rgba(255, 255, 255, .85); text-shadow: 0 4px 18px rgba(0, 0, 0, .35); }
.np .nh_rekord { position: absolute; left: 14px; top: 14px; }
.nh_opis { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; padding: 14px 16px 16px; }
.nh_opis b { display: block; font: 800 22px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; }
.nh_opis small { display: block; margin-top: 3px; font-size: 13px; color: var(--k-sz); }
.pierwsze .nh_opis small { color: var(--k-s); }
.nh_opis strong { font: 800 52px/1 var(--f-cyfry); white-space: nowrap; text-align: right; }
.nh_opis strong small { display: block; margin: 0; font: 700 11px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; }
.pierwsze .nh_opis strong { font-size: 68px; }
/* siatka rekordow zawodnikow */
.nh_macierz_ramka + .nh_macierz_ramka { margin-top: 14px; }
.nh_macierz { table-layout: fixed; }
.nh_macierz th:first-child { width: 120px; }
.nh_macierz tbody th { padding: 12px 10px 12px 20px; font: 800 15px var(--f-nag); letter-spacing: .05em; text-transform: uppercase; text-align: left; color: var(--k-sz); border-bottom: 1px solid var(--k-tl); }
.nh_macierz td { padding: 6px; }
.np .nh_kratka { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px; border-radius: 6px; color: var(--k-d); text-decoration: none; }
.np .nh_kratka:hover { background: var(--k-t2); }
.nh_kratka b { font: 800 26px/1 var(--f-cyfry); }
.nh_kratka small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: var(--k-sz); }
.nh_pusta { font-size: 12px; color: var(--k-s); }
/* inne rekordy */
.nh_inne { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.np .nh_inny { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; color: var(--k-d); text-decoration: none; }
.nh_inny b { font: 800 40px/1 var(--f-cyfry); }
.nh_inny small { font-size: 13px; color: var(--k-sz); }
.np .nh_inny:hover .np_etyk { color: #e32b26; }
/* rekordy druzyn - przyciski */
.nh_druzyny { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.np .nh_druzyny a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 8px; background: #fff; font: 800 17px var(--f-nag); text-transform: uppercase; letter-spacing: .03em; color: var(--k-d); text-decoration: none; }
.nh_druzyny a span { color: #e32b26; }
.np .nh_druzyny a:hover { background: var(--k-d); color: #fff; }
/* tabela rekordu */
.nh_lista { padding: 6px 24px; }
.nh_wiersz { display: grid; grid-template-columns: 40px 52px minmax(0, 1fr) minmax(0, 1fr) 180px; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--k-tl); }
.nh_wiersz:first-child { border-top: 0; }
.nh_wiersz.druzynowy { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr) 180px; }
.nh_poz { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; font: 800 16px var(--f-cyfry); color: var(--k-sz); }
.nh_poz.m1 { background: #d9a92c; color: #fff; }
.nh_poz.m2 { background: #a7adb4; color: #fff; }
.nh_poz.m3 { background: #b87333; color: #fff; }
.nh_wiersz_foto { position: relative; width: 52px; height: 52px; border-radius: 50%; overflow: hidden; background: var(--k-p3); container-type: inline-size; }
.nh_wiersz_foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; }
.nh_wiersz_foto .bez_foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.np .nh_kto { color: var(--k-d); text-decoration: none; min-width: 0; }
.nh_kto b { display: block; font: 800 19px/1.1 var(--f-nag); text-transform: uppercase; letter-spacing: .03em; }
.nh_kto small { display: block; font-size: 13px; color: var(--k-sz); }
.nh_dopisek { font-size: 14px; color: var(--k-sz); }
.np .nh_dopisek a { color: var(--k-sz); text-decoration: underline; text-underline-offset: 3px; }
.nh_wartosc { text-align: right; }
.nh_wartosc b { font: 800 30px/1 var(--f-cyfry); }
.nh_wartosc small { margin-left: 4px; font-size: 12px; color: var(--k-sz); }
.nh_wartosc > i { display: block; height: 4px; margin-top: 6px; background: var(--k-t); border-radius: 2px; overflow: hidden; }
.nh_wartosc > i > i { display: block; height: 100%; margin-left: auto; background: var(--k-s2); border-radius: 2px; }
.nh_podtytul { margin-top: 26px; }
@media (max-width: 1100px) {
    .nh_inne, .nh_druzyny { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nh_wiersz { grid-template-columns: 40px 52px minmax(0, 1fr) 140px; }
    .nh_wiersz .nh_dopisek { grid-column: 3; grid-row: 2; margin-top: -8px; }
    .nh_wiersz.druzynowy { grid-template-columns: 40px minmax(0, 1fr) 140px; }
    .nh_wiersz.druzynowy .nh_dopisek { grid-column: 2; }
}
@media (max-width: 640px) {
    .nh_tytul > img { width: 72px; height: 72px; }
    .druzyna .nh .nh_tytul_tabeli { font-size: 40px; }
    .nh_podium { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .nh_miejsce:not(.pierwsze) { flex-direction: row; }
    .nh_miejsce:not(.pierwsze) .nh_foto { width: 110px; flex-shrink: 0; }
    .nh_miejsce:not(.pierwsze) .nh_nr { font-size: 56px; left: 8px; }
    .nh_miejsce:not(.pierwsze) .nh_opis { flex: 1; flex-direction: column; align-items: flex-start; justify-content: center; }
    .nh_miejsce:not(.pierwsze) .nh_opis strong { text-align: left; font-size: 40px; }
    .nh_miejsce:not(.pierwsze) .nh_opis strong small { display: inline; margin-left: 6px; }
    .nh_macierz { table-layout: auto; }
    .nh_macierz td { min-width: 96px; }
    .nh_inne, .nh_druzyny { grid-template-columns: minmax(0, 1fr); }
    .nh_lista { padding: 4px 14px; }
    .nh_wiersz { grid-template-columns: 34px 44px minmax(0, 1fr) auto; gap: 10px; }
    .nh_wiersz_foto { width: 44px; height: 44px; }
    .nh_wartosc b { font-size: 24px; }
    .nh_wartosc > i { display: none; }
    .nh_kto b { font-size: 16px; }
}
/* podium: zdjecia nizsze (karty mialy 520-650 px) */
.nh_foto, .nh_miejsce:not(.pierwsze) .nh_foto { aspect-ratio: auto; height: 300px; }
.pierwsze .nh_foto { height: 380px; }
.nh_foto img { object-position: center 5%; }   /* kadr od gory - zdjecia pionowe (3:4, 2:3) w poziomych ramkach, 30% ucinalo glowy (07.11.2026) */
@media (max-width: 640px) { .nh_foto, .pierwsze .nh_foto { height: 300px; } .nh_miejsce:not(.pierwsze) .nh_foto { height: auto; } }
/* numer miejsca na podium HoF: kolko w kolorze medalu w prawym gornym rogu zdjecia (wariant A wybrany 07.11.2026 -
   sam obrys cyfry ginal na kolorowych grafikach); kolory jak w tabelach rekordow (.nh_poz.m1-m3) */
.nh_foto .nh_nr { left: auto; right: 14px; top: 14px; bottom: auto; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: #d9a92c; font: 800 30px/1 var(--f-cyfry); color: #fff; -webkit-text-stroke: 0; text-shadow: none; box-shadow: 0 4px 14px rgba(0, 0, 0, .35); }
.nh_miejsce:nth-child(2) .nh_nr { background: #a7adb4; }
.nh_miejsce:nth-child(3) .nh_nr { background: #b87333; }
@media (max-width: 640px) {
    .nh_foto .nh_nr, .nh_miejsce:not(.pierwsze) .nh_foto .nh_nr { width: 40px; height: 40px; font-size: 22px; right: 10px; top: 10px; left: auto; }
}
/* podium HoF wyzsze (wariant C wybrany 07.11.2026): 1. miejsce w calym formacie zdjecia 3:4, 2. i 3. w 4:5, wyrownane do dolu -
   zastepuje stale wysokosci 300/380 px (zdjecia pionowe byly mocno przyciete); na telefonie 2. i 3. dalej jako paski z malym zdjeciem */
.nh_foto, .nh_miejsce:not(.pierwsze) .nh_foto { height: auto; aspect-ratio: 4 / 5; }
.pierwsze .nh_foto { height: auto; aspect-ratio: 3 / 4; }
.nh_podium { align-items: end; }

/* ---------- galeria (etap 101, templates/nowe_albumy.tpl.htm, nowy_album.tpl.htm, nowa_galeria.tpl.htm) ---------- */
/* karty albumow */
.ng_albumy { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.np .ng_album { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; color: var(--k-d); text-decoration: none; }
.ng_okladka { position: relative; display: block; aspect-ratio: 3 / 2; background: var(--k-p3); overflow: hidden; }
.ng_okladka img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; display: block; }
.ng_okladka .np_czytaj_brak { position: absolute; inset: 0; aspect-ratio: auto; }
.ng_okladka em { position: absolute; right: 12px; bottom: 12px; padding: 4px 9px 3px; border-radius: 3px; background: rgba(14, 14, 16, .8); font: 800 13px var(--f-nag); font-style: normal; letter-spacing: .06em; color: #fff; }
.ng_opis { display: flex; flex-direction: column; gap: 6px; padding: 14px 18px 18px; }
.ng_opis small { font: 600 12px var(--f-etykiety); letter-spacing: .08em; text-transform: uppercase; color: var(--k-sz); }
.ng_opis b { font: 800 22px/1.08 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; }
.ng_opis > span { font-size: 14px; color: var(--k-sz); }
.np .ng_album:hover b { color: #e32b26; }
/* pas albumu: rozmyta okladka w tle */
.ng_hero_tlo { position: absolute; inset: -40px; z-index: 0; background: center / cover no-repeat; filter: blur(28px) saturate(1.2); opacity: .45; }
.druzyna .np_hero h1.ng_tytul { font-size: 64px; line-height: .95; }
.ng_hero .np_meta span { text-transform: none; letter-spacing: 0; font: 500 16px var(--f-tekst); }
.ng .np_meta { margin-top: 16px; }
.ng .np_meta b { font-size: 20px; }
/* siatka zdjec */
.ng_zdjecia { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.np .ng_zdjecie { display: block; aspect-ratio: 3 / 2; border-radius: 6px; overflow: hidden; background: var(--k-tl); }
.ng_zdjecie img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; display: block; transition: transform .3s ease; }
.ng_zdjecie:hover img { transform: scale(1.04); }
@media (max-width: 1100px) {
    .ng_albumy { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ng_zdjecia { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .ng_albumy { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .ng_zdjecia { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
    .druzyna .np_hero h1.ng_tytul { font-size: 38px; }
}
/* okladka albumu: delikatny zoom zdjecia w ramce po najechaniu na karte (prosba uzytkownika 07.11.2026), jak miniatury w albumie */
.ng_okladka img { transition: transform .4s ease; }
.np .ng_album:hover .ng_okladka img, .np .ng_album:focus-visible .ng_okladka img { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce) { .ng_okladka img, .ng_zdjecie img { transition: none; } .np .ng_album:hover .ng_okladka img, .ng_zdjecie:hover img { transform: none; } }

/* ---------- wideo (etap 102, templates/nowe_wideo.tpl.htm) ---------- */
.np .nv_kanal { justify-self: start; display: inline-flex; align-items: center; gap: 10px; padding: 11px 18px; border-radius: 4px; background: #fff; font: 700 15px var(--f-tekst); color: var(--k-d); text-decoration: none; }
.nv_kanal svg { width: 22px; height: 22px; fill: #e32b26; }
.np .nv_kanal:hover { background: var(--k-t); }
/* ekran 16:9: miniatura z przyciskiem odtwarzania, po kliknieciu iframe YouTube */
.nv_ekran { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.nv_ekran iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.np .nv_start { position: absolute; inset: 0; display: block; }
.nv_start img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; display: block; transition: transform .4s ease; }
.nv_start b { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: #e32b26; box-shadow: 0 6px 20px rgba(0, 0, 0, .4); transition: transform .2s ease; }
.nv_start b::after { content: ''; position: absolute; left: 50%; top: 50%; margin: -11px 0 0 -6px; border: 11px solid transparent; border-left: 18px solid #fff; border-right: 0; }
.np .nv_start:hover img { transform: scale(1.05); }
.np .nv_start:hover b { transform: scale(1.08); }
/* najnowszy film: ciemna karta, ekran po lewej */
.nv_glowny { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); background: var(--k-p); border-radius: 8px; overflow: hidden; color: #fff; }
.nv_glowny_opis { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 12px; padding: 28px 30px; min-width: 0; }
.nv_glowny_opis b { font: 800 34px/1.02 var(--f-nag); text-transform: uppercase; letter-spacing: .01em; }
.nv_glowny_opis small { font: 600 13px var(--f-etykiety); letter-spacing: .08em; color: var(--k-s); }
.nv_wiecej { margin-top: 30px; }
/* pozostale filmy */
.nv_siatka { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.nv_karta { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; }
.nv_opis { display: flex; flex-direction: column; gap: 6px; padding: 14px 18px 18px; }
.nv_opis small { font: 600 12px var(--f-etykiety); letter-spacing: .08em; color: var(--k-sz); }
.nv_opis b { font: 800 19px/1.1 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; color: var(--k-d); }
.nv_karta .nv_start b { width: 52px; height: 52px; margin: -26px 0 0 -26px; }
@media (prefers-reduced-motion: reduce) { .nv_start img, .nv_start b { transition: none; } .np .nv_start:hover img, .np .nv_start:hover b { transform: none; } }
@media (max-width: 1100px) {
    .nv_siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nv_glowny { grid-template-columns: minmax(0, 1fr); }
    .nv_glowny_opis { padding: 20px 22px 24px; }
}
@media (max-width: 640px) {
    .nv_siatka { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .nv_glowny_opis b { font-size: 26px; }
    .np .nv_kanal { padding: 9px 14px; font-size: 14px; }
}
/* wideo: przycisk kanalu YouTube po prawej, w linii z tytulem takze na tablecie i telefonie (prosba uzytkownika 07.11.2026 -
   wspolny uklad pasa przechodzil do jednej kolumny i przycisk zajmowal cala szerokosc) */
@media (max-width: 900px) {
    .nv .np_hero_in { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
    .np .nv_kanal { margin-bottom: 4px; white-space: nowrap; }
}
@media (max-width: 640px) {
    .np .nv_kanal { gap: 7px; padding: 8px 12px; font-size: 13px; }
    .nv_kanal svg { width: 18px; height: 18px; }
}
@media (max-width: 900px) { .nv .np_okruszki { flex-wrap: nowrap; white-space: nowrap; width: max-content; } }   /* okruszki w jednej linii - nad przyciskiem jest wolne miejsce */

/* ---------- lista zespolow (etap 103, templates/nowe_zespoly.tpl.htm) ---------- */
.nz_siatka { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.np .nz_karta { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; color: var(--k-d); text-decoration: none; }
.nz_foto { position: relative; display: block; aspect-ratio: 3 / 2; background: var(--k-p3); overflow: hidden; }
.nz_foto img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; object-position: center 20%; display: block; transition: transform .4s ease; }
.nz_foto .np_czytaj_brak { position: absolute; inset: 0; aspect-ratio: auto; }
.np .nz_karta:hover .nz_foto img { transform: scale(1.05); }
.np .nz_mistrz { position: absolute; right: 12px; top: 12px; font-size: 12px; }
.nz_tytul { display: flex; align-items: center; gap: 12px; padding: 0 16px; margin-top: -26px; position: relative; z-index: 1; }
.nz_tytul img { width: 56px; height: 56px; object-fit: contain; background: #fff; border-radius: 50%; padding: 4px; box-shadow: 0 4px 12px rgba(0, 0, 0, .18); flex-shrink: 0; }
.nz_tytul b { margin-top: 26px; font: 800 20px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; min-width: 0; overflow-wrap: break-word; }
.np .nz_karta:hover .nz_tytul b { color: #e32b26; }
.nz_liczby { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 14px 16px 0; border-top: 1px solid var(--k-tl); text-align: center; }
.nz_liczby > span { padding: 10px 0 8px; font: 700 10px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-sz); }
.nz_liczby b { display: block; font: 800 22px/1.1 var(--f-cyfry); color: var(--k-d); }
.nz_liczby b.plus { color: #1d6b45; }
.nz_liczby b.minus { color: #c4211c; }
.nz_nastepny { margin-top: auto; padding: 10px 16px 14px; border-top: 1px solid var(--k-tl); font-size: 13px; color: var(--k-sz); }
.nz_nastepny b { color: var(--k-d); }
.nz_wykres { padding: 22px 24px; }
@media (prefers-reduced-motion: reduce) { .nz_foto img { transition: none; } .np .nz_karta:hover .nz_foto img { transform: none; } }
@media (max-width: 1100px) { .nz_siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .nz_siatka { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .nz_wykres { padding: 16px 14px; }
}

/* zakladki prowadzace na inna podstrone: szara strzalka po nazwie (kotwice #... zostaja bez znaku);
   .np_zak_widoki - pasek przelacza widoki tej samej strony (zakres rekordu HoF), wiec bez strzalek */
.np .np_zakladki:not(.np_zak_widoki) a:not([href^="#"])::after {
    content: ""; display: inline-block; width: 1.05em; height: 1.05em; margin-left: .3em; vertical-align: 0; transform: translateY(.11em);   /* srodek na wysokosci srodka wielkich liter (0,4 em nad linia) */
    background: var(--k-sz);   /* krotka, gruba strzalka SVG jako maska - kolor z tla (znak "\2192" mial dluga cienka kreske i siedzial za nisko) */
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6h7M6.5 3 9.5 6l-3 3'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6h7M6.5 3 9.5 6l-3 3'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- lista zawodnikow (etap 104, templates/nowe_zawodnicy.tpl.htm) ---------- */
.nzw_szukaj { display: flex; gap: 10px; max-width: 560px; margin-top: 22px; }
.nzw_szukaj label { flex: 1; display: flex; align-items: center; gap: 10px; min-width: 0; padding: 0 14px; background: #fff; border-radius: 6px; color: var(--k-sz); }
.nzw_szukaj input { flex: 1; min-width: 0; padding: 14px 0; border: 0; outline: 0; background: none; font: 500 16px var(--f-tekst); color: var(--k-d); }
.nzw_szukaj input::-webkit-search-cancel-button { display: none; }
.np .nzw_wyczysc { color: var(--k-sz); text-decoration: none; font-size: 15px; padding: 4px; }
.nzw_szukaj button { border: 0; border-radius: 6px; padding: 0 22px; background: #e32b26; color: #fff; font: 800 16px var(--f-nag); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.nzw_szukaj button:hover { background: #c4211c; }
.nzaw #liderzy:has(> [hidden]) { display: none; }   /* podczas wyszukiwania (JS chowa liderow) bez pustej sekcji */
.nzw_ster { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px; }
.nzw_filtr { display: flex; flex-wrap: wrap; gap: 8px; }
.nzw_filtr button { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 8px; border: 1px solid var(--k-tl); border-radius: 20px; background: #fff; font: 600 13px var(--f-tekst); color: var(--k-d); cursor: pointer; }
.nzw_filtr button:first-child { padding-left: 14px; }
.nzw_filtr button[aria-pressed="true"] { background: var(--k-d); border-color: var(--k-d); color: #fff; }
.nzw_filtr img { width: 22px; height: 22px; object-fit: contain; }
.nzw_sortuj { display: inline-flex; align-items: center; gap: 8px; font: 700 12px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-sz); }
.nzw_sortuj select { padding: 10px 14px; border: 1px solid var(--k-l); border-radius: 6px; background: var(--k-p); font: 600 15px var(--f-tekst); color: #fff; letter-spacing: 0; text-transform: none; cursor: pointer; }   /* jak wybor sezonu (.np_hero_wybor select) */
.nzw_litery { display: flex; flex-wrap: wrap; gap: 4px; }
.nzw_litery a, .nzw_litery span { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 34px; border-radius: 4px; font: 800 17px var(--f-nag); text-decoration: none; }
.np .nzw_litery a { background: #fff; color: var(--k-d); }
.np .nzw_litery a:hover { background: var(--k-d); color: #fff; }
.nzw_litery span, .np .nzw_litery a.brak { background: none; color: var(--k-s2); }
.nzw_wyniki { margin: 0; font-size: 13px; color: var(--k-sz); }
.nzw_sekcja { display: flex; flex-direction: column; gap: 14px; scroll-margin-top: calc(var(--bh-gora, 0px) + 70px); }
.nzw_sekcja[hidden] { display: none; }
.druzyna .nzw_litera { display: flex; align-items: center; gap: 14px; margin: 14px 0 0; font: 800 34px/1 var(--f-nag); color: var(--k-d); }
.nzw_litera::after { content: ""; flex: 1; height: 1px; background: var(--k-tl); }
.nzw_siatka { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.nzw_siatka[hidden] { display: none; }
.np .nzw_karta { display: block; background: #fff;   /* blok, nie flex w kolumnie: z container-type ramka 4:5 miala zerowa wysokosc */
    border-radius: 8px; overflow: hidden; color: var(--k-d); text-decoration: none; }
.nzw_karta[hidden] { display: none !important; }
.nzw_foto { position: relative; display: block; aspect-ratio: 4 / 5; background: var(--k-p3); overflow: hidden; container-type: inline-size; }   /* inicjaly bez zdjecia w cqw */
.nzw_foto img { display: block; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; object-position: center 5%; transition: transform .4s ease; }   /* zdjecia pionowe - kadr od gory */
.nzw_foto .bez_foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.np .nzw_karta:hover .nzw_foto img { transform: scale(1.05); }
.nzw_pkt { position: absolute; right: 10px; bottom: 10px; padding: 5px 9px 4px; border-radius: 4px; background: rgba(14, 14, 16, .82); color: #fff; font: 800 24px/1 var(--f-cyfry); }   /* 24 px - 18 px ginelo na duzym zdjeciu */
.nzw_pkt small { margin-left: 4px; font: 700 11px var(--f-etykiety); letter-spacing: .08em; text-transform: uppercase; color: var(--k-s); }
.nzw_opis { display: block; padding: 10px 12px 12px; }
.nzw_opis b { display: block; font: 800 17px/1.05 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; }
.np .nzw_karta:hover .nzw_opis b { color: #e32b26; }
.nzw_druzyna { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 12px; color: var(--k-sz); min-width: 0; }
.nzw_druzyna img { width: 18px; height: 18px; object-fit: contain; flex-shrink: 0; }
.nzw_druzyna span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .nzw_foto img { transition: none; } .np .nzw_karta:hover .nzw_foto img { transform: none; } }
@media (max-width: 1100px) { .nzw_siatka { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .nzw_szukaj button { padding: 0 16px; }
    .nzw_filtr { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--np-w) * -1); padding-inline: var(--np-w); scrollbar-width: none; }
    .nzw_filtr button { flex-shrink: 0; }
    .nzw_litery a, .nzw_litery span { width: 28px; height: 30px; font-size: 15px; }
    .nzw_siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .nzw_opis b { font-size: 15px; }
    .druzyna .nzw_litera { font-size: 28px; }
}
/* licznik wynikow tylko w trakcie wyszukiwania ("Pokazano 140 zawodnikow" powtarzalo naglowek) */
.nzaw .nzw_wyniki { display: none; }
.nzaw:has(#zaw_szukaj:not(:placeholder-shown)) .nzw_wyniki { display: block; }
/* pozycja i wiek pod druzyna (sortowanie po wieku) */
.nzw_dane { display: block; margin-top: 4px; font-size: 12px; color: var(--k-sz); }
/* w trakcie wyszukiwania (pole niepuste): bez liczb, zakladek, liter i naglowka listy - wyniki zaraz pod polem (js/zawodnicy_szukaj.js podsuwa pole pod menu) */
.nzaw:has(#zaw_szukaj:not(:placeholder-shown)) :is(.np_liczby, .np_zakladki_ramka, .np_zakladki, #zaw_litery, #lista > .gl_tytul) { display: none; }
.nzaw:has(#zaw_szukaj:not(:placeholder-shown)) #lista { padding-top: 24px; }
/* wyniki wyszukiwania w jednej siatce (bez podzialu na litery - pojedyncze karty w osobnych rzedach) */
.nzaw:has(#zaw_szukaj:not(:placeholder-shown)) .nzw_wszystkie { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.nzaw:has(#zaw_szukaj:not(:placeholder-shown)) :is(.nzw_sekcja, .nzw_sekcja .nzw_siatka) { display: contents; }
.nzaw:has(#zaw_szukaj:not(:placeholder-shown)) .nzw_litera, .nzaw .nzw_sekcja[hidden] { display: none; }
@media (max-width: 1100px) { .nzaw:has(#zaw_szukaj:not(:placeholder-shown)) .nzw_wszystkie { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px) { .nzaw:has(#zaw_szukaj:not(:placeholder-shown)) .nzw_wszystkie { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
@media (max-width: 640px) { .nzw_pkt { right: 8px; bottom: 8px; padding: 4px 7px 3px; font-size: 20px; } .nzw_pkt small { font-size: 10px; margin-left: 3px; } }   /* 2 karty w rzedzie na telefonie */

/* ---------- dolacz do nas (etap 105, templates/nowe_dolacz.tpl.htm, wariant C) ---------- */
.ndol_hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 560px; color: #fff;
    background: linear-gradient(90deg, rgba(14, 14, 16, .92), rgba(14, 14, 16, .7) 45%, rgba(14, 14, 16, .25)), linear-gradient(0deg, rgba(14, 14, 16, .9), rgba(14, 14, 16, 0) 50%), url('/gfx/dolacz_tlo.jpg') center 35% / cover var(--k-p3); }
.ndol_hero_in { display: flex; flex-direction: column; gap: 18px; padding-bottom: 52px; }
.druzyna .ndol_hero h1 { margin: 0; font: 800 104px/.88 var(--f-nag); text-transform: uppercase; color: #fff; }
.ndol_hero p { margin: 0; max-width: 640px; font-size: 19px; line-height: 1.55; color: var(--k-j); }
.ndol_przyciski { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.np .ndol_btn { display: inline-flex; align-items: center; align-self: flex-start; padding: 13px 22px; border-radius: 6px; background: #e32b26; color: #fff; font: 800 17px var(--f-nag); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.np .ndol_btn.jasny { background: #fff; color: var(--k-d); }
.np .ndol_btn.ciemny { background: var(--k-d); color: #fff; }
.np .ndol_btn:hover { background: #c4211c; color: #fff; }
.np .ndol_btn.jasny:hover { background: var(--k-t); color: var(--k-d); }
.np .ndol_btn.ciemny:hover { background: #000; }
.ndol_karty { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ndol_karta { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 20px; padding: 28px 30px; background: #fff; border-radius: 8px; }
.ndol_nr { font: 800 64px/.8 var(--f-nag); color: #e32b26; }
.ndol_karta > div { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.druzyna .ndol_karta h2 { margin: 0; font: 800 32px/1 var(--f-nag); text-transform: uppercase; color: var(--k-d); }
.ndol_karta p { margin: 0; font-size: 16px; line-height: 1.6; color: #33363b; }
.ndol_lista { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ndol_lista li { padding: 7px 12px; border-radius: 20px; background: var(--k-t); font: 600 14px var(--f-tekst); color: var(--k-d); }
.ndol_adres { margin: 0; font-size: 15px; color: var(--k-sz); }
.np .ndol_adres a { color: #e32b26; font-weight: 700; text-decoration: none; }
.ndol_wstep { font-size: 16px; line-height: 1.6; }
@media (max-width: 900px) { .ndol_karty { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
    .ndol_hero { min-height: 480px; background-position: 60% 35%; }
    .ndol_hero_in { gap: 14px; padding-bottom: 32px; }
    .druzyna .ndol_hero h1 { font-size: 60px; }
    .ndol_hero p { font-size: 17px; }
    .ndol_karta { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 22px 18px; }
    .ndol_nr { font-size: 48px; }
    .druzyna .ndol_karta h2 { font-size: 28px; }
}
.ndol [id] { scroll-margin-top: calc(var(--bh-gora, 0px) + 20px); }   /* bez paska zakladek - karta tuz pod menu */

/* ---------- strony stale (etap 106, templates/nowa_informacja.tpl.htm, wariant A): O nas, Regulamin, Kontakt, Polityka cookies ---------- */
.nst_uklad { display: grid; grid-template-columns: minmax(0, 820px) 320px; justify-content: space-between; gap: 40px; align-items: start; }
.nst_glowna { min-width: 0; }
.nst_bok { position: sticky; top: calc(var(--bh-gora, 0px) + 20px); display: flex; flex-direction: column; gap: 16px; transition: top .25s ease; }
.nst_karta { background: #fff; border-radius: 8px; padding: 20px 22px; }
.druzyna .nst_karta h3 { margin: 0 0 12px; font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-sz); }
.nst_maly { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--k-sz); }
.np .nst_link { display: block; padding: 10px 0; border-top: 1px solid var(--k-tl); font: 700 15px var(--f-tekst); color: var(--k-d); text-decoration: none; }
.np .nst_link::after { content: ""; color: #e32b26; }
.np .nst_link:hover { color: #e32b26; }
.nst_dl { margin: 0 0 14px; }
.nst_dl dt { margin-top: 12px; font: 700 11px var(--f-etykiety); letter-spacing: .1em; text-transform: uppercase; color: var(--k-sz); }
.nst_dl dt:first-child { margin-top: 0; }
.nst_dl dd { margin: 3px 0 0; font: 600 15px/1.4 var(--f-tekst); color: var(--k-d); }
.np .nst_dolacz { display: flex; flex-direction: column; padding: 22px; border-radius: 8px; background: var(--k-p); color: #fff; text-decoration: none; }
.nst_dolacz b { font: 800 26px/1 var(--f-nag); text-transform: uppercase; }
.nst_dolacz span { margin: 6px 0 16px; font-size: 14px; color: var(--k-j); }
.nst_dolacz em { align-self: flex-start; padding: 11px 18px; border-radius: 6px; background: #e32b26; font: 800 15px var(--f-nag); font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
.nst_dolacz em::after { content: ""; }
.np .nst_dolacz:hover, .np .nst_dolacz:hover b { color: #fff; }   /* ogolne a:hover barwilo tekst na czerwono - napis znikal na czerwonym przycisku */
.np .nst_dolacz em { color: #fff; }
.np .nst_dolacz:hover em { background: #c4211c; }
/* tekst: z panelu (O nas, inne dzialy) albo staly (polityka cookies) - kroj i rozmiar strony zamiast stylow z edytora */
.nst_tekst { padding: 36px 44px; background: #fff; border-radius: 8px; font: 400 17px/1.75 var(--f-tekst); color: #26262b; overflow-wrap: anywhere; }
.nst_panel p, .nst_panel span, .nst_panel div, .nst_panel li, .nst_panel font { font-family: var(--f-tekst) !important; font-size: inherit !important; line-height: inherit !important; color: inherit !important; background: none !important; }
.nst_tekst p { margin: 0 0 18px !important; padding: 0 !important; }
.nst_tekst p:last-child { margin-bottom: 0 !important; }
.nst_tekst b, .nst_tekst strong { color: var(--k-d) !important; font-weight: 700; }
.nst_tekst a { color: #e32b26; }
.druzyna .nst_tekst h2 { margin: 30px 0 12px; font: 800 26px/1.1 var(--f-nag); text-transform: uppercase; color: var(--k-d); }
.druzyna .nst_tekst h2:first-of-type { margin-top: 8px; }
.nst_tekst .pc_data { font-size: 14px !important; color: var(--k-sz); }
.nst_tekst .pc_tabela { font-size: 15px; }
.nst_tekst .pc_tabela th { background: var(--k-d); }
.nst_tekst img { max-width: 100%; height: auto; border-radius: 6px; }
/* regulamin: sekcje jako karty, paragrafy z czerwonym numerem */
.nst_reg { display: flex; flex-direction: column; gap: 18px; }
.druzyna .nst_reg .reg_sekcja { display: block; padding: 32px 40px; gap: 0; font: 400 16px/1.7 var(--f-tekst); color: #26262b; scroll-margin-top: calc(var(--bh-gora, 0px) + 20px); }
.druzyna .nst_reg .art_czytaj_tytul { margin: 0 0 8px; padding: 0; font: 800 28px/1.1 var(--f-nag); text-transform: uppercase; color: var(--k-d); }
.druzyna .nst_reg .art_czytaj_tytul::after { display: none; }
.druzyna .nst_reg h3 { margin: 22px 0 8px; font: 800 19px/1.2 var(--f-nag); text-transform: uppercase; color: var(--k-d); }
.nst_reg .reg_par { border-top-color: var(--k-tl); scroll-margin-top: calc(var(--bh-gora, 0px) + 20px); }
.nst_reg .reg_nr { font: 700 14px var(--f-tekst); }   /* krój cyfr nie ma znaku § */
.nst_reg b { color: var(--k-d); }
.nst_spis .reg_grupa { display: flex; justify-content: space-between; gap: 10px; margin: 0 -12px; padding: 10px 12px; border: 0; border-radius: 6px; font: 600 15px var(--f-tekst); color: var(--k-d); text-decoration: none; }
.nst_spis .reg_grupa span { color: var(--k-sz); font-size: 13px; font-weight: 400; white-space: nowrap; }
.druzyna .nst_spis .reg_grupa:hover { color: #e32b26; }
.druzyna .nst_spis .reg_grupa.on { background: var(--k-d); color: #fff; }
.nst_spis .reg_grupa.on span { color: var(--k-s); }
/* kontakt */
.nst_kontakt { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.np .nst_kk { display: flex; flex-direction: column; gap: 6px; padding: 26px 28px; background: #fff; border-radius: 8px; color: var(--k-d); text-decoration: none; }
.nst_kk i { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 10px; border-radius: 50%; background: #e32b26; color: #fff; }
.nst_kk span { font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: var(--k-sz); }
.nst_kk b { font: 800 30px/1.05 var(--f-nag); text-transform: uppercase; overflow-wrap: anywhere; }
.nst_kk b.nst_mail { font: 700 22px/1.2 var(--f-tekst); text-transform: none; }   /* adres e-mail bez wielkich liter */
.nst_kk small { font-size: 14px; color: var(--k-sz); }
.np a.nst_kk:hover b { color: #e32b26; }
.nst_dwie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.nst_soc { display: flex; flex-wrap: wrap; gap: 10px; }
.np .nst_soc a { display: inline-flex; align-items: center; gap: 6px; padding: 11px 16px; border-radius: 6px; background: var(--k-t); font: 700 15px var(--f-tekst); color: var(--k-d); text-decoration: none; }
.np .nst_soc a:hover { background: var(--k-tl); }
.nst_soc a.bh_zew { --zew-gap: 6px; }
@media (max-width: 1100px) { .nst_uklad { grid-template-columns: minmax(0, 1fr); } .nst_bok { position: static; } }
@media (max-width: 900px) { .nst_kontakt, .nst_dwie { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
    .nst_tekst { padding: 22px 18px; font-size: 16px; }
    .druzyna .nst_reg .reg_sekcja { padding: 22px 18px; }
    .druzyna .nst_reg .art_czytaj_tytul { font-size: 24px; }
    .nst_kk b { font-size: 26px; }
}
@media (max-width: 1100px) { .nst_uklad:has(.nst_spis) .nst_bok { order: -1; } }   /* spis regulaminu nad tekstem (pod nim byl bezuzyteczny) */
/* kontakt: ikony serwisow przy nazwach (te same znaki co w stopce, kolor serwisu po najechaniu); odstep przed stopka -
   za sekcja jest skrypt adresu, wiec .np_sekcja:last-child nie dzialal */
.nst_soc svg { width: 20px; height: 20px; flex-shrink: 0; }
.np .nst_soc a.nst_fb:hover svg { color: #1877f2; }
.np .nst_soc a.nst_ig:hover svg { color: #e1306c; }
.np .nst_soc a.nst_yt:hover svg { color: #ff0000; }
.np .nst_soc a { gap: 9px; }
.nst > .np_sekcja:last-of-type { padding-bottom: 72px; }

/* ---------- partnerzy (etap 107, templates/nowi_partnerzy.tpl.htm, wariant A) ---------- */
.npa_glowni { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.np .npa_gl { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 28px; align-items: center; padding: 28px 32px; background: #fff; border-radius: 8px; color: var(--k-d); text-decoration: none; }
.npa_gl > img { width: 100%; height: 120px; object-fit: contain; }
.npa_opis { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.npa_rola { font: 700 12px var(--f-etykiety); letter-spacing: .12em; text-transform: uppercase; color: #e32b26; }
.npa_gl b { font: 800 34px/1 var(--f-nag); text-transform: uppercase; overflow-wrap: anywhere; }
.npa_gl small, .npa_k small { display: inline-flex; align-items: center; font-size: 13px; color: var(--k-sz); }
.npa_siatka { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.np .npa_k { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 18px 18px; background: #fff; border-radius: 8px; text-align: center; color: var(--k-d); text-decoration: none; }
.npa_k > img { width: 100%; height: 90px; object-fit: contain; }
.npa_k b { font: 800 18px/1.1 var(--f-nag); text-transform: uppercase; overflow-wrap: anywhere; }
.npa_druzyna { gap: 6px; }
.npa_druzyna img { width: 22px; height: 22px; object-fit: contain; }
.np a.npa_gl:hover b, .np a.npa_k:hover b { color: #e32b26; }
.np a.npa_gl, .np a.npa_k { transition: transform .25s ease, box-shadow .25s ease; }
.np a.npa_gl:hover, .np a.npa_k:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(0, 0, 0, .1); }
.np .npa_cta { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 28px 32px; background: var(--k-p); border-radius: 8px; color: #fff; text-decoration: none; }
.npa_cta b { display: block; font: 800 30px/1 var(--f-nag); text-transform: uppercase; }
.npa_cta span span { display: block; margin-top: 6px; color: var(--k-j); }
.npa_cta em { flex-shrink: 0; padding: 13px 22px; border-radius: 6px; background: #e32b26; font: 800 16px var(--f-nag); font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
.npa_cta em::after { content: ""; }
.np .npa_cta:hover, .np .npa_cta:hover b { color: #fff; }
.np .npa_cta:hover em { background: #c4211c; }
@media (prefers-reduced-motion: reduce) { .np a.npa_gl:hover, .np a.npa_k:hover { transform: none; } }
@media (max-width: 1100px) { .npa_glowni { grid-template-columns: minmax(0, 1fr); } .npa_siatka { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .np .npa_gl { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 22px 18px; }
    .npa_gl > img { height: 90px; }
    .npa_gl b { font-size: 28px; }
    .npa_siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .np .npa_k { padding: 16px 12px 14px; }
    .npa_k > img { height: 70px; }
    .np .npa_cta { flex-direction: column; align-items: flex-start; padding: 22px 18px; }
    .npa_cta b { font-size: 26px; }
}
/* partnerzy - poprawki po uwagach: duze karty z logo i tekstem obok siebie, wysrodkowane w karcie (dotad przy lewej krawedzi,
   prawa polowa pusta); male karty z wiekszym odstepem pod logo */
.np .npa_gl { display: flex; justify-content: center; align-items: center; gap: 44px; padding: 34px 32px; }
.npa_gl > img { width: 240px; flex: 0 0 240px; height: 130px; }
.npa_opis { flex: 0 1 auto; }
.np .npa_k { gap: 0; padding: 28px 18px 20px; }
.npa_k > img { margin-bottom: 22px; }
.npa_k b { margin-bottom: 8px; }
@media (max-width: 640px) {
    .np .npa_gl { flex-direction: column; gap: 16px; padding: 24px 18px; text-align: center; }
    .npa_gl > img { width: min(240px, 100%); flex-basis: auto; height: 100px; }
    .npa_opis { align-items: center; }
    .np .npa_k { padding: 20px 12px 16px; }
    .npa_k > img { margin-bottom: 16px; }
}
/* sponsor tytularny wyrozniony: karta na cala szerokosc, logo 460 px i wieksza nazwa; gospodarz pod nim, tez na cala szerokosc */
.npa_glowni { grid-template-columns: minmax(0, 1fr); }
.np .npa_tytularny { gap: 64px; padding: 44px 32px; }
.npa_tytularny > img { width: 460px; flex-basis: 460px; height: 190px; }
.npa_tytularny b { font-size: 46px; }
@media (max-width: 900px) { .np .npa_tytularny { gap: 36px; } .npa_tytularny > img { width: 320px; flex-basis: 320px; height: 150px; } }
@media (max-width: 640px) {
    .np .npa_tytularny { gap: 18px; padding: 30px 18px; }
    .npa_tytularny > img { width: min(300px, 100%); flex-basis: auto; height: 130px; }
    .npa_tytularny b { font-size: 34px; }
}

/* ---------- etykiety czytelniej (07.11.2026, wariant B wybrany przez uzytkownika po probie zwyklych liter): drobne podpisy dalej
   wielkimi literami swoim krojem, ale 13 px, pogrubione, mniej rozstrzelone (dotad 10-12 px, .08-.12em). Dotyczy podstron i strony glownej
   (blok na koncu; etykiety strony glownej i naglowka - analogiczny blok w css/glowna.css, bo glowna nie laduje tego pliku). Bez zmian: pasek przewijany i gorny pasek, odznaki (Nowe, MVP, punkty na karcie), nazwa
   druzyny i dane w pasie zawodnika, podpis pod logo w naglowku, przyciski i naglowki. Nowe etykiety pisac od razu w tym stylu. */
body :is(.np_liczby_opis, .np_box span, .np_nastepny span, .np_gracz_liczby span, .np_lider span, .np_gracz_liczby > span > span,
    .nr_lider_z small, .nt_tabela_w.nagl, .nh_opis strong small, .nz_liczby > span, .nst_dl dt) {
    font-size: 13px; font-weight: 700; letter-spacing: .05em;
}
body :is(.np_okruszki, .np_liczby span, .np_etyk, .np_rekordy span, .np_tab th, .np_hero_wybor label, .np_wynik_gora, .np_udostepnij,
    .np_boczna_runda span, .np_czytaj small, .np_boczna_tabela span, .nr_data, .nr_druz small, .nr_kwarty span, .nr_przebieg_os b,
    .nr_por_grupa, .ns_karta h2 small, .na_glowny_opis small, .na_opis small, .ng_opis small, .nv_glowny_opis small, .nv_opis small,
    .nzw_sortuj, .nst_kk span, .npa_rola) {
    font-size: 13px; font-weight: 700; letter-spacing: .05em;
}
/* naglowki kart (Liga w skrocie, Spis tresci, Obserwuj lige, Prywatnosc) - krojem naglowkow 20 px, zeby nie wygladaly jak etykiety pod nimi */
body .druzyna .nst_karta h3 { margin-bottom: 14px; font: 800 20px var(--f-nag); letter-spacing: .03em; text-transform: uppercase; color: var(--k-d); }   /* jak naglowki kart .np_karta h3 - wyraznie inny niz etykiety pod nim */
/* sponsor tytularny: ciemna karta, logo na bialej tabliczce (wariant C, 07.11.2026) */
.np .npa_tytularny { background: var(--k-p); color: #fff; }
.npa_tytularny > img { box-sizing: border-box; padding: 18px 24px; background: #fff; border-radius: 8px; }
.npa_tytularny b, .np a.npa_tytularny:hover b { color: #fff; }
.npa_tytularny small { color: var(--k-j); }
.np a.npa_tytularny:hover { box-shadow: 0 12px 26px rgba(0, 0, 0, .25); }
/* dolacz do nas - pas dla firm (07.11.2026, wariant B): ciemny blok z logotypami partnerow */
.ndol_firmy { display: grid; gap: 18px; padding: 30px 32px; background: var(--k-p); border-radius: 8px; color: #fff; }
.ndol_firmy_etyk { font: 700 13px var(--f-etykiety); letter-spacing: .05em; text-transform: uppercase; color: var(--k-a2); }
.druzyna .ndol_firmy h2 { margin: 6px 0 10px; font: 800 34px/1 var(--f-nag); text-transform: uppercase; color: #fff; }
.ndol_firmy p { margin: 0; max-width: 760px; font-size: 16px; line-height: 1.6; color: var(--k-j); }
.ndol_loga { display: flex; flex-wrap: wrap; gap: 10px; }
.ndol_loga span { display: flex; align-items: center; padding: 8px 12px; background: #fff; border-radius: 6px; }
.ndol_loga img { display: block; height: 34px; width: auto; max-width: 140px; object-fit: contain; }
.np .ndol_firmy .ndol_btn.jasny::after { content: ""; }   /* przejscie na inna podstrone (spacja w content znikala we flexie) */
@media (max-width: 640px) {
    .ndol_firmy { padding: 22px 18px; }
    .druzyna .ndol_firmy h2 { font-size: 28px; }
    .ndol_loga img { height: 28px; }
}

/* wspolna krotka strzalka (07.11.2026): ten sam ksztalt co strzalka zakladek - w szablonach <svg class="ik bh_strz"> (symbol ik-dalej),
   w ::after przyciskow i linkow ponizej jako maska; zwykly znak strzalki (dluga cienka kreska) nie jest juz uzywany */
:is(.np .nst_link, .nst_dolacz em, .npa_cta em, .np .ndol_firmy .ndol_btn.jasny)::after {
    display: inline-block; width: 1.05em; height: 1.05em; margin-left: .3em; vertical-align: -.17em; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6h7M6.5 3 9.5 6l-3 3'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6h7M6.5 3 9.5 6l-3 3'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ===== Hype Code (etap 110, wariant A): klasa glowna nhc - cala strona ciemna, odcinki w wierszach =====
   zolte paski z panelu jak na starej stronie: gorny przyklejony pod menu (--bh-gora, razem z menu), dolny u dolu ekranu (--bh-dol) do konca
   listy, potem nad stopka - sticky wewnatrz .nhc */
.nhc_pasek { position: sticky; z-index: 6; background: #ffd84d; color: var(--k-d); padding: 13px var(--np-w); font: 600 15px/1.4 var(--f-tekst); box-shadow: 0 2px 12px rgba(0, 0, 0, .3); }
.nhc_pasek b { font: 800 22px/1 var(--f-nag); text-transform: uppercase; letter-spacing: .02em; margin-right: 10px; }
.nhc_pasek_srodek { text-align: center; }
.nhc_pasek_gora { top: var(--bh-gora, 0px); transition: top .25s ease; }
.nhc_pasek_dol { bottom: var(--bh-dol, 0px); margin-top: 56px; }
.nhc_hero { background: radial-gradient(ellipse at 50% 0, #4a0b09 0, #0c0c0e 60%) #0c0c0e; }
.druzyna .nhc_hero h1.np_tytul i { font-style: normal; color: #e32b26; }
.nhc_opis { margin: 16px 0 0; max-width: 680px; color: var(--k-tl); font-size: 16px; line-height: 1.6; }
.nhc .np_sekcja:last-of-type { padding-bottom: 0; }
.nhc_nr { font: italic 800 56px/.9 var(--f-cyfry); color: #fff; }
/* zapowiedz (jeszcze bez filmu): grafika przygaszona - takze wlasna z panelu, po najechaniu na wiersz pelna (jak na starej stronie) */
.nhc_zapowiedz .nhc_kadr > img { opacity: .55; transition: opacity .25s ease; }
.nhc_zapowiedz:hover .nhc_kadr > img { opacity: 1; }
.druzyna .nhc_tekst h2 { color: inherit; margin: 0; font: 800 30px/1.02 var(--f-nag); text-transform: uppercase; letter-spacing: .01em; }
.nhc_tekst p { margin: 8px 0 0; font-size: 15px; line-height: 1.55; }
.nhc_pusto { color: var(--k-s2); }

/* wiersze odcinkow */
.nhc { background: #0c0c0e; color: #fff; }
.nhc_wiersz { display: grid; grid-template-columns: 70px 300px minmax(0, 1fr) 170px; gap: 24px; align-items: center; padding: 18px 22px; background: #17171b; border: 1px solid #26262c; border-radius: 8px; }
.nhc_wiersz .nhc_kadr { border-radius: 6px; }
.nhc_kadr > img { width: 100%; height: 100%; object-fit: cover; display: block; }   /* zapowiedz (bez linku): grafika 1280 px dopasowana do kadru 16:9 */
.nhc_wiersz .nhc_tekst p { color: #b4bac2; }
.nhc_zapowiedz .nhc_nr { color: #6a6a74; }
.nhc_status { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; text-align: right; }
.nhc_status em { font: 700 13px var(--f-etykiety); letter-spacing: .05em; text-transform: uppercase; font-style: normal; color: #9aa0a8; }
.nhc_status b { font: 800 26px/1 var(--f-nag); text-transform: uppercase; color: #ff4d47; }
.nhc_status small { font-size: 14px; color: var(--k-tl); }

/* nakladka z odtwarzaczem */
.nhc_nakladka { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(0, 0, 0, .85); }
.nhc_nakladka[hidden] { display: none; }
.nhc_okno { position: relative; width: min(1100px, 100%); }
.nhc_okno .nv_ekran { border-radius: 6px; }
.nhc_zamknij { position: absolute; right: 0; top: -46px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #fff; color: var(--k-d); font-size: 26px; line-height: 1; cursor: pointer; }
.nhc_okno .nhc_youtube { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; color: #fff; font-weight: 700; text-decoration: none; --zew-gap: 6px; }

@media (max-width: 900px) {
    .nhc_wiersz { grid-template-columns: 50px 220px minmax(0, 1fr); }
    .nhc_wiersz .nhc_status { grid-column: 3; align-items: flex-start; text-align: left; }
}
@media (max-width: 640px) {
    .nhc_pasek { padding-block: 10px; font-size: 14px; }
    .nhc_pasek b { font-size: 19px; }
    .nhc_nr { font-size: 40px; }
    .nhc_tekst h2 { font-size: 24px; }
    .nhc_wiersz { grid-template-columns: 40px minmax(0, 1fr); gap: 12px 14px; padding: 14px; }
    .nhc_wiersz > :is(.nhc_kadr, .nhc_tekst, .nhc_status) { grid-column: 2; }
    .nhc_wiersz .nhc_nr { align-self: start; }
}

/* ===== strona 404 w nowym wygladzie (etap 114, grafika "404 AUT!"): klasa glowna nnz, templates/nowa_nie_znaleziono.tpl.htm ===== */
.nnz_grafika { background: var(--k-p3); }
.nnz_grafika img { display: block; width: 100%; height: auto; }   /* cala grafika, bez przycinania */
/* na szerokim ekranie (uklad 2) grafika po lewej, tekst i linki po prawej na jednym ciemnym tle; wezszy - grafika nad tekstem */
@media (min-width: 1000px) {
    .nnz .nnz_uklad { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: center; gap: 40px;
        padding: 40px var(--np-w) 56px; background: radial-gradient(120% 160% at 88% 0, rgba(227, 43, 38, .22), rgba(227, 43, 38, 0) 55%) var(--k-p3); }
    .nnz .nnz_grafika { background: none; }
    .nnz .nnz_grafika img { border-radius: 10px; }
    .nnz .nnz_pas1 { background: none; padding: 0; }
    .nnz .nnz_pas1 .np_w { padding: 0; }
}
.druzyna.nnz .nnz_pas1 h2 { color: #fff; margin: 12px 0 0; font: 800 46px/1 var(--f-nag); text-transform: uppercase; letter-spacing: .01em; }
.nnz p { margin: 12px 0 0; max-width: 620px; font-size: 17px; line-height: 1.6; }
/* tekst, przycisk i linki ze strzalka na ciemnym tle jak naglowki podstron */
.nnz_pas1 { background: var(--k-p3); color: #fff; padding-block: 30px 56px; }
.nnz_pas1 p { color: var(--k-tl); }
.nnz_pas1 .gl_btn { margin-top: 24px; }
.nnz_linki { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 28px 0 0; padding: 22px 0 0; border-top: 1px solid var(--k-l); }
.np .nnz_linki a { font: 800 20px var(--f-nag); text-transform: uppercase; letter-spacing: .02em; color: #fff; text-decoration: none; }
.np .nnz_linki a:hover { color: #ff4d47; }
@media (max-width: 640px) { .druzyna.nnz .nnz_pas1 h2 { font-size: 34px; } .nnz p { font-size: 16px; } .np .nnz_linki a { font-size: 18px; } }

/* ===== przypomnienie i zmiana hasla w nowym wygladzie (etap 116): klasa glowna nkt, templates/nowa_{zapomnialem,zmiana}_hasla.tpl.htm ===== */
.nkt_karta { max-width: 560px; width: 100%; box-sizing: border-box; align-self: center; padding: 28px 30px 26px; }   /* na srodku strony */
.druzyna .nkt_karta h2 { margin: 0 0 10px; font: 800 26px/1.05 var(--f-nag); text-transform: uppercase; color: var(--k-d); }
.nkt_karta p { margin: 0 0 18px; font-size: 15px; line-height: 1.6; color: var(--k-sz); }
.nkt_wymagania { font-size: 14px !important; }
.nkt_formularz { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.nkt_formularz label { display: flex; flex-direction: column; gap: 6px; width: 100%; font: 700 13px var(--f-etykiety); letter-spacing: .05em; text-transform: uppercase; color: var(--k-sz); }
.nkt_formularz input[type=email], .nkt_formularz input[type=password] { width: 100%; box-sizing: border-box; padding: 11px 13px; border: 1px solid var(--k-tl); border-radius: 6px; background: var(--k-t2); font: 400 16px/1.3 var(--f-tekst); color: var(--k-d); text-transform: none; letter-spacing: 0; }
.nkt_formularz input:focus { outline: none; border-color: var(--k-d); background: #fff; box-shadow: 0 0 0 3px rgba(20, 20, 22, .1); }
.nkt_formularz .gl_btn { margin-top: 4px; border: 0; cursor: pointer; font-family: var(--f-tekst); }
.nkt_drugi { margin-top: 12px; }
.druzyna .nkt_jasny { background: var(--k-t); color: var(--k-d); }
.nkt_linki { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--k-tl); }
.np .nkt_linki a { font-weight: 700; font-size: 15px; color: var(--k-d); text-decoration: none; }
.np .nkt_linki a:hover { color: #e32b26; }
/* komunikaty z uzytkownicyInterface (span z kolorem w stylu, poprzedzony <br>) - jako ramka z tlem */
.nkt_komunikat { margin-bottom: 18px; }
.nkt_komunikat br { display: none; }
.nkt_komunikat span { display: block; padding: 12px 14px; border-radius: 6px; font-weight: 600; font-size: 15px; line-height: 1.5; }
.nkt_komunikat span[style*="red"] { background: #fdecea; color: #b3261e !important; }
.nkt_komunikat span[style*="green"] { background: #e8f5ec; color: #1d6b38 !important; }
@media (max-width: 640px) { .nkt_karta { padding: 22px 18px; } }
