:root{
  --bg:#0b0e14; --bg2:#111621; --card:#151b28; --card2:#1b2231; --line:#242c3d;
  --tx:#e9edf5; --dim:#9aa6bd; --dim2:#6b7689;
  --acc:#e11d34; --ok:#22c55e; --warn:#facc15; --blue:#38bdf8; --pur:#a78bfa;
  --r:12px;
  /* 9.26 — KOLORY POZYCJI. Jedna barwa na formację, ta sama w slocie,
     na karcie w rynku i na plakietce. Dzięki temu skład czyta się bez
     czytania: bursztyn to bramkarz, błękit obrońca, zieleń pomoc,
     czerwień atak. */
  --poz-br:#f59e0b; --poz-obr:#38bdf8; --poz-pom:#22c55e; --poz-nap:#f43f5e;
  --poz-inne:#6b7689;
  /* Domyślna barwa pozycji siedzi w :root, a nie przy komponentach —
     inaczej `.fkarta{--poz:…}` biłoby selektor `[data-poz="BR"]`
     (ta sama specyficzność, późniejszy wygrywa) i wszystko byłoby szare. */
  --poz:var(--poz-inne);
}
/* Jedno miejsce, w którym pozycja zamienia się w kolor. */
[data-poz="BR"]{--poz:var(--poz-br)}
[data-poz="OBR"]{--poz:var(--poz-obr)}
[data-poz="POM"]{--poz:var(--poz-pom)}
[data-poz="NAP"]{--poz:var(--poz-nap)}
[data-poz="WOLNY"],[data-poz="REZ"],[data-poz=""]{--poz:var(--poz-inne)}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);color:var(--tx);
  font:15px/1.45 "Inter","SF Pro Display",-apple-system,"Segoe UI",Roboto,system-ui,sans-serif;
  font-feature-settings:"tnum" 1,"cv11" 1;
  padding-bottom:40px;-webkit-font-smoothing:antialiased;
}
button,input{font:inherit;color:inherit}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#2b3446;border-radius:4px}

header{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;
  padding:11px 14px;background:rgba(11,14,20,.92);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:inherit}
.brand .logo{width:30px;height:35px;flex:none}
.brand .bt{display:flex;flex-direction:column;line-height:1.05}
.brand b{font-size:16px;font-weight:850;letter-spacing:.14em}
.brand em{font-size:8.5px;font-weight:800;font-style:normal;letter-spacing:.22em;color:var(--acc)}
.hstat{margin-left:auto;font-size:11px;color:var(--dim2);text-align:right;line-height:1.35}
.hstat b{color:var(--dim)}

nav{
  position:sticky;top:47px;z-index:39;display:flex;gap:4px;overflow-x:auto;
  padding:8px 10px;background:rgba(11,14,20,.92);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);scrollbar-width:none;
}
nav::-webkit-scrollbar{display:none}
nav button{
  flex:none;background:transparent;border:1px solid transparent;border-radius:9px;
  padding:7px 13px;font-size:13px;font-weight:650;color:var(--dim);cursor:pointer;white-space:nowrap;
}
nav button:hover{color:var(--tx);background:var(--card)}
nav button.on{background:var(--acc);border-color:var(--acc);color:#fff}

main{padding:12px 10px;max-width:1180px;margin:0 auto}
.view{display:none}.view.on{display:block}

.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.chips{display:flex;gap:5px;flex-wrap:wrap}
.chip{
  background:var(--card);border:1px solid var(--line);border-radius:8px;
  padding:5px 11px;font-size:12px;font-weight:650;color:var(--dim);cursor:pointer;
}
.chip.on{background:var(--card2);border-color:var(--acc);color:var(--tx)}
.bar input{
  flex:1;min-width:170px;background:var(--card);border:1px solid var(--line);
  border-radius:9px;padding:8px 12px;font-size:13px;outline:none;
}
.bar input:focus{border-color:var(--acc)}

.sec{
  display:flex;align-items:center;gap:8px;margin:16px 0 7px;
  font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--dim2);
}
.sec .n{background:var(--card2);border-radius:20px;padding:1px 8px;font-size:10px;color:var(--dim)}
.sec::after{content:"";flex:1;height:1px;background:var(--line)}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.empty{padding:26px;text-align:center;color:var(--dim2);font-size:13px}

/* ---- lista meczów ---- */
.mlist{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.mrow{
  display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;
  padding:9px 11px;border-top:1px solid var(--line);cursor:pointer;
}
.mrow:first-child{border-top:0}
.mrow:hover{background:var(--card2)}
.mtime{font-size:11px;color:var(--dim2);font-weight:650;text-align:center}
.mteams{min-width:0}
.mt{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:650;line-height:1.5}
.mt img{width:16px;height:16px;object-fit:contain;flex:none}
.mlg{font-size:10.5px;color:var(--dim2);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msc{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
.msc.soon{font-size:12px;color:var(--dim2);font-weight:600}
.live{color:var(--ok)}
.live b{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ok);margin-right:5px;animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.25}}
.post{font-size:11px;color:var(--warn);font-weight:700}

.pbadges{grid-column:2/4;display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}
.pb{
  display:inline-flex;align-items:center;gap:5px;background:var(--card2);
  border:1px solid var(--line);border-radius:7px;padding:3px 8px;
  font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap;
}
.pb:hover{border-color:var(--acc)}
.pb .fl{font-size:10px}
.pb.xi{color:var(--ok)} .pb.in{color:var(--ok)} .pb.sub{color:var(--warn)}
.pb.out{color:var(--acc)} .pb.na{color:var(--dim2)} .pb.q{color:var(--dim2);font-weight:600}
.pb svg{width:13px;height:13px}
.pb .mn{color:var(--dim2);font-weight:600;font-size:10.5px}
.pb .rt{background:#1f6feb22;color:var(--blue);border-radius:4px;padding:0 4px;font-size:10.5px}

/* ---- raport meczowy ---- */
dialog{
  border:0;padding:0;background:transparent;max-width:none;max-height:none;
  width:100%;height:100%;
  /* 9.10 — TO BYL TEN BLAD "NIE DA SIE ZJECHAC W DOL NA TELEFONIE".
     Bylo tu `overflow:visible`. Okno modalne ma wysokosc 100% ekranu, a profil
     zawodnika albo raport meczowy sa duzo wyzsze — przy `visible` tresc
     wychodzila poza okno i NIE DALO SIE do niej dojechac: strona pod spodem
     jest zablokowana przez modal, a modal nie mial czym przewijac.
     `auto` daje oknu wlasny suwak, `dvh` uwzglednia chowajacy sie pasek
     adresu w przegladarkach mobilnych. */
  overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}
@supports (height: 100dvh) { dialog{ height:100dvh } }
dialog::backdrop{background:rgba(4,6,11,.82);backdrop-filter:blur(4px)}
#dlgc{
  background:var(--bg2);border:1px solid var(--line);border-radius:16px;
  max-width:720px;margin:24px auto;padding:18px;color:var(--tx);
  max-height:calc(100vh - 48px);overflow:auto;
}
#dlgx{
  position:fixed;top:14px;right:14px;z-index:5;width:34px;height:34px;border-radius:50%;
  background:var(--card2);border:1px solid var(--line);color:var(--tx);cursor:pointer;font-size:15px;
}
.rhead{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;text-align:center}
.rhead .tm{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;font-weight:700}
.rhead .tm img{width:44px;height:44px;object-fit:contain}
.rhead .sc{font-size:34px;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.rhead .st{font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--dim2);text-transform:uppercase}
.rmeta{text-align:center;font-size:11.5px;color:var(--dim2);margin-top:8px}

.per{
  display:flex;align-items:center;gap:8px;margin:16px 0 4px;padding:5px 9px;
  background:var(--card);border-radius:8px;
  font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);
}
.per .ps{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--tx)}
.ev{display:grid;grid-template-columns:1fr 52px 1fr;gap:6px;align-items:center;padding:6px 2px;border-bottom:1px solid #1a2130}
.ev:last-child{border-bottom:0}
.ev .min{text-align:center;font-size:11.5px;font-weight:700;color:var(--dim2);font-variant-numeric:tabular-nums}
.ev .sd{display:flex;align-items:center;gap:7px;font-size:13px;min-width:0}
.ev .sd.r{justify-content:flex-end;text-align:right}
.ev svg{width:16px;height:16px;flex:none}
.ev .nm{font-weight:650;overflow:hidden;text-overflow:ellipsis}
.ev .as{color:var(--dim2);font-size:11.5px;font-weight:600}
.ev .rs{background:var(--card2);border-radius:5px;padding:1px 6px;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.pl-hit{color:var(--acc)!important}
.clk{cursor:pointer}
.clk:hover .nm{text-decoration:underline}

.stbox{margin-top:16px}
.strow{display:grid;grid-template-columns:60px 1fr 60px;gap:8px;align-items:center;padding:5px 0;font-size:12px}
.strow .lb{grid-column:1/4;text-align:center;font-size:10.5px;color:var(--dim2);font-weight:650}
.strow b{font-variant-numeric:tabular-nums}
.bar2{height:5px;background:var(--card2);border-radius:3px;overflow:hidden;display:flex}
.bar2 i{display:block;height:100%}

.plbox{margin-top:16px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px}
.plhd{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--dim2);margin-bottom:9px}
.plrow{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line);cursor:pointer}
.plrow:first-of-type{border-top:0}
.plrow img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--card2);flex:none}
.plrow .nm{font-size:13.5px;font-weight:700}
.plrow .sb{font-size:11px;color:var(--dim2)}
.plrow .rr{margin-left:auto;display:flex;align-items:center;gap:6px}
.tag{border-radius:6px;padding:2px 7px;font-size:10.5px;font-weight:800;letter-spacing:.04em}
.tag.xi{background:#22c55e22;color:var(--ok)} .tag.in{background:#22c55e22;color:var(--ok)}
.tag.sub{background:#facc1522;color:var(--warn)} .tag.out{background:#e11d3422;color:var(--acc)}
.tag.na{background:#2a3244;color:var(--dim2)} .tag.q{background:#2a3244;color:var(--dim2)}
.rate{background:#1f6feb22;color:var(--blue);border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:800}

/* ---- karty zawodników ---- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:9px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:11px;cursor:pointer;display:flex;gap:10px}
.pcard:hover{border-color:var(--acc)}
.pcard img{width:46px;height:46px;border-radius:50%;object-fit:cover;background:var(--card2);flex:none}
.pcard .nm{font-size:13.5px;font-weight:750;line-height:1.25}
.pcard .cl{font-size:11px;color:var(--dim);margin-top:2px}
.pcard .mv{font-size:10.5px;color:var(--ok);font-weight:700;margin-top:2px}
.pcard .st{display:flex;gap:9px;margin-top:6px;font-size:10.5px;color:var(--dim2)}
.pcard .st b{color:var(--tx);font-size:12px}
.pcard .warn{color:var(--warn);font-size:10px;margin-top:3px}

/* profil zawodnika */
.phd{display:flex;gap:14px;align-items:center}
.phd img{width:78px;height:78px;border-radius:14px;object-fit:cover;background:var(--card2)}
.phd h2{font-size:21px;font-weight:850;line-height:1.15}
.phd .sub{font-size:12.5px;color:var(--dim);margin-top:3px}
.phd .mv{display:inline-block;margin-top:6px;background:#1f6feb;color:#fff;border-radius:8px;padding:3px 10px;font-size:13px;font-weight:800}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:14px}
.kv div{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 10px}
.kv small{display:block;font-size:10px;color:var(--dim2);text-transform:uppercase;letter-spacing:.06em}
.kv b{font-size:15px;font-weight:800}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim2);font-weight:700;text-align:right;padding:6px 5px;border-bottom:1px solid var(--line)}
th:first-child,td:first-child{text-align:left}
td{padding:6px 5px;border-bottom:1px solid #1a2130;text-align:right;font-variant-numeric:tabular-nums}
tr.clk:hover td{background:var(--card2)}
.tw{overflow-x:auto}
.frm{display:inline-flex;gap:2px}
.frm i{width:15px;height:15px;border-radius:4px;font-size:9px;font-weight:800;display:grid;place-items:center;font-style:normal;color:#fff}
.frm i.W{background:var(--ok)} .frm i.R{background:#64748b} .frm i.P{background:var(--acc)}

.ni{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:7px}
.ni a{color:var(--tx);text-decoration:none;font-size:13.5px;font-weight:650;line-height:1.35;display:block}
.ni a:hover{color:var(--blue)}
.ni .m{font-size:10.5px;color:var(--dim2);margin-top:4px;display:flex;gap:8px;flex-wrap:wrap}
.ni .src{color:var(--acc);font-weight:700}

.sbox{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:9px}
.sbox h4{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim2);margin-bottom:8px}
.logl{font:11.5px/1.6 ui-monospace,Menlo,Consolas,monospace;color:var(--dim);max-height:280px;overflow:auto;white-space:pre-wrap}
.btn{background:var(--card2);border:1px solid var(--line);border-radius:9px;padding:8px 14px;font-size:12.5px;font-weight:650;cursor:pointer;margin-right:6px}
.btn:hover{border-color:var(--acc)}
.note{background:var(--card);border-left:3px solid var(--blue);border-radius:8px;padding:9px 12px;font-size:12.5px;color:var(--dim);margin:10px 0}

@media(max-width:640px){
  main{padding:10px 8px}
  .mrow{grid-template-columns:38px 1fr auto;gap:8px;padding:8px 9px}
  /* Na telefonie tresc okna ma plynac w dol razem z suwakiem okna, a nie
     probowac zmiescic sie w jednym ekranie. */
  #dlgc{margin:0;border-radius:0;min-height:auto;max-height:none;overflow:visible;padding:16px 13px}
  #dlgx{top:10px;right:10px}
  .rhead .sc{font-size:28px}
  .ev{grid-template-columns:1fr 44px 1fr}
  .grid{grid-template-columns:1fr 1fr;gap:7px}
  .pcard{padding:9px;gap:8px}
  .pcard img{width:38px;height:38px}
}
@media(max-width:400px){.grid{grid-template-columns:1fr}}

.ava{width:34px;height:34px;border-radius:50%;background:var(--card2);color:var(--dim);
  display:grid;place-items:center;font-size:12px;font-weight:800;flex:none;border:1px solid var(--line)}
.pcard .ava{width:46px;height:46px;font-size:14px}
.ava.big{width:78px;height:78px;border-radius:14px;font-size:24px}

.plrow svg{width:16px;height:16px;flex:none}
.plrow .rr{flex:none}
.plrow .nm,.plrow .sb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plrow>div:nth-child(2){min-width:0;flex:1}
.ev .sd .pt{display:inline-flex;align-items:center;gap:5px;min-width:0}
.ev .sd{gap:9px;flex-wrap:wrap}
@media(max-width:640px){.ev .sd{font-size:12px;gap:6px}.ev .nm{max-width:none}}

@media(max-width:640px){
  th,td{padding:5px 3px;font-size:11.5px}
  .tw{-webkit-overflow-scrolling:touch}
  .kv{grid-template-columns:repeat(auto-fit,minmax(98px,1fr));gap:6px}
  .kv div{padding:6px 8px}.kv b{font-size:14px}
}

/* ---- v7: zwijane sekcje ---- */
.sec.fold{cursor:pointer;user-select:none}
.sec.fold:hover .tw2{color:var(--tx)}
.sec .tw2{flex:none}
.sec .arr{margin-left:auto;width:0;height:0;border:5px solid transparent;border-top-color:var(--dim2);
  transform:translateY(2px);transition:transform .15s;font-style:normal}
.sec.closed .arr{transform:rotate(-90deg)}
.sec.fold::after{content:"";flex:1;height:1px;background:var(--line);order:-1;display:none}
.hide{display:none!important}

/* akordeon w oknie */
.acc-h{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:9px 11px;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}
.acc-h:hover{border-color:var(--acc)}
.acc-h em{font-style:normal;font-size:10.5px;font-weight:600;color:var(--dim2);text-transform:none;letter-spacing:0}
.acc-h .arr{margin-left:auto;width:0;height:0;border:5px solid transparent;border-top-color:var(--dim2);transform:rotate(-90deg);transition:transform .15s}
.acc-h.open .arr{transform:none}
.acc-b{padding-top:8px}

/* ikona wideo przy bramce */
.vid{display:inline-flex;align-items:center;margin-left:2px}
.vid svg{width:14px;height:14px}
.vid:hover{opacity:.75}
.mn.dim{color:var(--dim2);opacity:.7}

/* karty i etykiety */
.gk{background:#a78bfa22;color:var(--pur);border-radius:4px;padding:0 4px;font-size:9.5px;font-weight:800}
.tagpl{background:#e11d3422;color:var(--acc);border-radius:5px;padding:1px 6px;font-size:10px;font-weight:800}
.tagnew{background:#facc1522;color:var(--warn);border-radius:4px;padding:0 5px;font-size:9.5px;font-weight:800}

/* tabela ligowa — kolory pozycji */
tr.p1 td:first-child{box-shadow:inset 3px 0 var(--warn)}
tr.p3 td:first-child{box-shadow:inset 3px 0 var(--ok)}
tr.pd td:first-child{box-shadow:inset 3px 0 var(--acc)}

/* newsy z bazy */
.ni.auto{cursor:pointer;border-left:3px solid var(--acc)}
.ni.auto:hover{border-color:var(--acc)}
.ni .t{font-size:14.5px;font-weight:750;line-height:1.3}
.ni .l{font-size:12.5px;color:var(--dim);margin-top:4px;line-height:1.45}
.ni .m .src{cursor:pointer}
.btn.mini{padding:4px 10px;font-size:11.5px;margin-left:8px}

.hrow .mtime{color:var(--pur);font-weight:800}

/* ---- transfery ---- */
.tr{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:9px}
.trh{display:flex;align-items:center;gap:10px}
.trh img,.trh .ava{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none}
.trh .nm{font-size:14px;font-weight:750;cursor:pointer}
.trh .nm:hover{color:var(--blue)}
.trh .sb{font-size:11px;color:var(--dim2)}
.ok-badge{margin-left:auto;background:#22c55e22;color:var(--ok);border-radius:6px;
  padding:2px 8px;font-size:9.5px;font-weight:800;letter-spacing:.05em;flex:none}
.trm{display:flex;align-items:center;gap:10px;margin:10px 0 8px;font-size:13px;font-weight:700}
.trm .z{color:var(--dim);text-decoration:line-through;text-decoration-color:var(--acc)}
.trm i{font-style:normal;color:var(--dim2)}
.trm .d{color:var(--ok)}
.trf{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:8px}
.trf .dt{font-size:10.5px;color:var(--dim2)}
.rx{margin-left:auto;display:flex;gap:5px}
.rb{background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:3px 9px;
  font-size:14px;cursor:pointer;line-height:1.2}
.rb:hover{border-color:var(--acc)}
.rb.on{border-color:var(--ok);background:#22c55e18}

/* ---- znacznik sezonu na karcie ---- */
.pcard .st{align-items:center}
.sez{background:#1f6feb22;color:var(--blue);border-radius:5px;padding:1px 5px;
  font-size:9.5px;font-weight:800;letter-spacing:.02em;margin-right:2px}
.sez.stary{background:#facc1520;color:var(--warn)}
.pcard.przygasly{opacity:.72}
.pcard.przygasly:hover{opacity:1}
/* 9.4 — zawodnik bez ani jednego meczu w sezonie: widoczny, ale wygaszony. */
.pcard.bezmeczu{opacity:.62;filter:saturate(.7)}
.pcard.bezmeczu:hover{opacity:1;filter:none}
.pcard.pckontuzja{border-left:3px solid #d9534f}
.pcard.sporny{border-left:3px solid #d6a417}
.cichy{font-size:11px;color:#8b93a1;margin-top:3px}
.pusto{color:var(--dim2);font-style:italic}
.note.ostrz{border-left-color:var(--warn)}
.sec .n{flex:none}

/* ---- v8: boisko, filtry, ligi, raport EKS ---- */
.skladbox{margin-top:16px}
/* Boisko ma JEDNA definicje — pionowa, nizej w tym pliku.
   Byla tu druga, pozioma (min-width:520px, overflow-x), martwa od czasu
   przejscia na uklad pionowy: przegrywala kolejnoscia i tylko mylila.
   Zostawienie jej znaczylo, ze kazda zmiana boiska trzeba bylo robic
   w dwoch miejscach i pamietac, ktore wygrywa. */
.pitch .pl:hover circle{stroke:var(--blue);stroke-width:3}
.pitchlegend .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.pitchlegend .dot.h{background:#e9edf5}.pitchlegend .dot.a{background:#f0a5b0}
.benches{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}
.benchcol{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px}
.bh{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--dim2);margin-bottom:6px}
.bh.trener{margin-top:8px;border-top:1px solid var(--line);padding-top:7px}
.bp{display:flex;align-items:center;gap:7px;padding:3px 0;font-size:12px;cursor:pointer}
.bp:hover{color:var(--blue)}
.bp .bn{min-width:18px;color:var(--dim2);font-size:10.5px;font-weight:700;text-align:right}
.bp .rate{margin-left:auto}

.typ{background:#a78bfa22;color:var(--pur);border-radius:4px;padding:0 5px;font-size:9px;font-weight:800}
/* „raport w drodze" — mecz zakonczony, ktoremu nie dociagnelismy jeszcze
   szczegolow. Ma byc widoczne, ale nie krzyczec jak blad. */
.typ.czeka{background:#f5c51818;color:#f5c518}
.przel{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--dim);
  background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 11px;margin-bottom:10px;cursor:pointer}
.przel input{accent-color:var(--acc);width:15px;height:15px}
.przel.mini{margin:0;padding:5px 9px;font-size:11.5px}

.filtry{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.filtry select,.filtry input[type=number]{background:var(--card);border:1px solid var(--line);color:var(--tx);
  border-radius:8px;padding:6px 9px;font-size:12px;outline:none}
.filtry select:focus,.filtry input:focus{border-color:var(--acc)}
.fnum{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--dim2)}
.fnum input{width:64px}
.licznik{font-size:11.5px;color:var(--dim2);margin-bottom:8px}

table.liga td.tn{text-align:left;font-weight:650}
td.poz{color:var(--ok)}td.neg{color:var(--acc)}
.ligwybor{display:flex;gap:5px;margin-bottom:10px;flex-wrap:wrap}
.bars{display:flex;align-items:flex-end;gap:8px;height:120px;margin-top:8px}
.slup{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.slup i{display:block;width:100%;max-width:44px;background:linear-gradient(180deg,var(--acc),#7f1020);border-radius:5px 5px 0 0}
.slup .v{font-size:11px;font-weight:800;margin-bottom:3px}
.slup .l{font-size:9.5px;color:var(--dim2);margin-top:5px;white-space:nowrap}
.err{color:var(--acc);font-size:12px}.ok{color:var(--ok);font-size:12px}
.rek{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:10px 0}
.rk{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--warn);
  border-radius:9px;padding:9px 11px;cursor:pointer}
.rk small{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim2)}
.rk b{font-size:13.5px}
.dim2{color:var(--dim2)}
@media(max-width:640px){.benches{grid-template-columns:1fr}.filtry select{flex:1;min-width:120px}}


/* ══════════════ STRANIERI 9.0 ══════════════ */

/* herby i flagi przy nazwiskach */
img.herb,.pcard img.herb,.tr2 img.herb{width:15px;height:15px;border-radius:0;object-fit:contain;
  vertical-align:-3px;margin:0 4px 0 0;flex:none;background:none}
img.herb.big,.tr2 img.herb.big{width:26px;height:26px;margin:0 0 4px}
.fk{display:inline-flex;align-items:center;gap:3px;font-size:10px;color:var(--dim);white-space:nowrap}
.fk b{font-weight:800;letter-spacing:.04em}

/* gwiazdka polskiego klubu */
.gw svg{width:13px;height:13px;display:block;margin:2px auto 0}
.gw.big svg{width:15px;height:15px;display:inline-block;vertical-align:-3px;margin:0 5px 0 0}
.mrow.zgwiazdka{background:linear-gradient(90deg,rgba(245,197,66,.09),transparent 40%)}
.mrow.zgwiazdka .mtime{color:#f5c542}
.pb.klub{background:rgba(245,197,66,.14);border-color:rgba(245,197,66,.4);color:#f5d98a}

/* ── SKŁADY: karta ── */
.skgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
@media(max-width:640px){.skgrid{grid-template-columns:1fr}}
.skcol{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.skh{display:flex;align-items:center;gap:6px;padding:9px 11px;background:var(--card2);
  font-weight:750;font-size:13px;border-bottom:1px solid var(--line)}
.skh em{margin-left:auto;font-style:normal;font-size:11px;color:var(--dim2);font-weight:700;letter-spacing:.05em}
.skl{padding:5px 11px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim2);background:rgba(255,255,255,.017)}
.skl.law{color:var(--dim2);border-top:1px solid var(--line)}
.sp{display:flex;align-items:center;gap:8px;padding:6px 11px;font-size:13px;cursor:pointer;
  border-left:3px solid transparent}
.sp:hover{background:var(--card2)}
.sp .nr{width:20px;text-align:center;font-size:11px;font-weight:800;color:var(--dim2);flex:none}
.sp .im{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp .evi{display:flex;align-items:center;gap:2px;flex:none}
.sp .evi svg{width:14px;height:14px}
.sp .evi .mn{font-size:10px;color:var(--dim2);margin-right:3px}
.sp .rate{flex:none}
.sp.nasz{border-left-color:var(--acc);background:rgba(225,29,52,.09)}
.sp.nasz .im{font-weight:750;color:#ffc2cb}
.sp.tre{color:var(--dim);font-size:12px;cursor:default}
.sp .fl{font-size:10px}
.przelacznik{margin-left:auto;display:flex;gap:4px}
.chip.mini{padding:3px 9px;font-size:11px}

/* boisko pionowe */
.pitchwrap{display:flex;justify-content:center;margin-top:8px}
.pitch{width:100%;max-width:420px;height:auto}
.pitch .pl{cursor:pointer}
.pitch .pl:hover circle{stroke:#fff;stroke-width:3}
.pitchlegend{display:flex;gap:14px;justify-content:center;font-size:11px;color:var(--dim);
  padding:8px 0 2px;flex-wrap:wrap}

/* filtr zdarzeń */
.evfilt{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin:10px 0 6px}
.evfilt .dim2{font-size:11px;margin-left:4px}
.pt.nasz .nm,.pt.nasz .as{color:#ffc2cb;font-weight:750}
.pt.nasz{background:rgba(225,29,52,.12);border-radius:6px;padding:1px 5px}

/* karta zawodnika po transferze */
.pcard.potransferze{border-color:rgba(34,197,94,.45);box-shadow:inset 0 0 0 1px rgba(34,197,94,.16)}
.trpas{display:flex;align-items:center;gap:5px;margin-top:5px;padding:4px 7px;border-radius:7px;
  background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.25);
  font-size:10.5px;color:#9ae6b4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trpas svg{width:13px;height:13px;flex:none}
.trpas i{font-style:normal;color:var(--dim2);margin:0 2px}
.trpas .zk{font-weight:700}
.trpas .dk,.trpas .zk{min-width:0;overflow:hidden;text-overflow:ellipsis}

/* 9.9 — WPIS REDAKCJI, KTORY CZEKA NA DEBIUT.
   Zolty, nie zielony: zielony w tym hubie znaczy "potwierdzone", a tutaj
   chodzi wlasnie o to, ze jeszcze nie jest. Znika sam po pierwszym meczu. */
.pcard.czekanadebiut{border-color:rgba(245,197,66,.5);box-shadow:inset 0 0 0 1px rgba(245,197,66,.14)}
.czekapas{display:flex;align-items:center;gap:5px;margin-top:5px;padding:4px 7px;border-radius:7px;
  background:rgba(245,197,66,.1);border:1px solid rgba(245,197,66,.3);
  font-size:10.5px;color:#f5d98a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Wiersz wyniku z wyszukiwarki API-Football w panelu. */
.afwiersz{display:flex;align-items:center;gap:8px;justify-content:space-between;
  padding:5px 0;border-bottom:1px solid var(--line);font-size:12px}
.afwiersz:last-child{border-bottom:0}

/* Rzedy pol w formularzu panelu — zeby nie pisac stylow w atrybutach. */
.rzedy{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.rzedy .rz{display:flex;gap:8px;flex-wrap:wrap}
.rzedy input{flex:1;min-width:140px;padding:7px 9px;border-radius:7px;
  border:1px solid var(--line);background:var(--bg2);color:var(--tx);font-size:13px}

/* ── TRANSFERY ── */
.trgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.tr2{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.tr2.zagr{border-color:rgba(56,189,248,.35)}
.tr2h{display:flex;align-items:center;gap:9px;padding:10px 11px;border-bottom:1px solid var(--line)}
.tr2h img,.tr2h .ava{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;
  background:var(--card2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.tr2h .nm{font-weight:750;font-size:14px;cursor:pointer}
.tr2h .sb{font-size:11px;color:var(--dim)}
.tr2h .okno{margin-left:auto;flex:none;font-size:9.5px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--dim2);border:1px solid var(--line);border-radius:6px;padding:3px 7px}
/* Ruch spoza okna (wygasly kontrakt, wolny zawodnik) albo z czasow sprzed
   naszego kalendarza — plakietka ma to pokazywac, a nie udawac zwykle okno. */
.tr2h .okno.poza{border-style:dashed;opacity:.85}
.tr2m{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:12px 11px}
.tr2m .side{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;min-width:0}
.tr2m .side b{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;max-width:100%}
.tr2m .strz svg{width:26px;height:26px;opacity:.85}
.tr2t{padding:7px 11px;font-size:11.5px;color:var(--dim);background:rgba(255,255,255,.02);
  border-top:1px solid var(--line)}
.tr2t.pewny{color:#9ae6b4}
.warn-badge{font-size:9.5px;font-weight:800;letter-spacing:.06em;color:#0b0e14;background:var(--warn);
  border-radius:5px;padding:2px 6px;text-transform:uppercase}

/* ── STATYSTYKI W 3 KOLUMNACH ── */
.zestawy{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:1000px){.zestawy{grid-template-columns:repeat(2,1fr)}}
@media(max-width:660px){.zestawy{grid-template-columns:1fr}}
.zest{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  align-self:start}
.zh{display:flex;align-items:baseline;gap:6px;padding:9px 11px;background:var(--card2);
  font-size:12.5px;font-weight:750;border-bottom:1px solid var(--line)}
.zh em{margin-left:auto;font-style:normal;font-size:10px;color:var(--dim2);font-weight:700}
.zw{display:flex;align-items:center;gap:8px;padding:6px 11px;font-size:12.5px;cursor:pointer}
.zw:hover{background:var(--card2)}
.zw.top{background:rgba(225,29,52,.075)}
.zw.top:nth-child(2) .poz{color:#f5c542}
.zw .poz{width:18px;text-align:center;font-size:11px;font-weight:800;color:var(--dim2);flex:none}
.zw .kto{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zw .kto em{display:block;font-style:normal;font-size:10px;color:var(--dim2)}
.zw .ile{flex:none;font-weight:800;text-align:right}
.zw .ile i{display:block;font-style:normal;font-size:9.5px;font-weight:600;color:var(--dim2)}
.zmore{width:100%;background:transparent;border:0;border-top:1px solid var(--line);
  padding:7px;font-size:11px;font-weight:700;color:var(--dim);cursor:pointer}
.zmore:hover{background:var(--card2);color:var(--tx)}

/* ── ARCHIWUM KOLEJEK ── */
.kolh{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-top:8px;cursor:pointer;
  background:var(--card2);border:1px solid var(--line);border-radius:var(--r)}
.kolh .knr{font-weight:800;font-size:13.5px;letter-spacing:.02em}
.kolh .kdt{font-size:11.5px;color:var(--dim)}
.kolh .kinfo{margin-left:auto;font-size:11px;color:var(--dim2)}
.kolh .arr{transition:transform .15s}
.kolh.open .arr{transform:rotate(90deg)}
.kolrow{cursor:pointer}

/* tabela live */
.livedot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ok);
  margin-right:5px;animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
tr.gralive{background:rgba(34,197,94,.07)}
.liga td i.up{font-style:normal;font-size:9px;color:var(--ok);margin-left:3px}
.liga td i.dn{font-style:normal;font-size:9px;color:var(--acc);margin-left:3px}
.note.live{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.07)}
.pusto2{font-size:12px;color:var(--dim2);padding:6px 0}
.fk.niepewna{opacity:.42}
.fk.niepewna b{color:var(--dim);font-weight:700}

/* karta transferowa w profilu */
.ptr{background:rgba(34,197,94,.07);border:1px solid rgba(34,197,94,.3);border-radius:var(--r);
  margin:10px 0;overflow:hidden}
.ptrh{display:flex;align-items:center;gap:6px;padding:9px 12px;font-size:12.5px;font-weight:750;
  color:#9ae6b4;border-bottom:1px solid rgba(34,197,94,.2)}
.ptrh svg{width:16px;height:16px}
.ptrh .dt{margin-left:auto;font-weight:600;color:var(--dim)}
.ptrt{padding:7px 12px;font-size:12px;color:var(--dim);border-top:1px solid rgba(34,197,94,.2)}
.ptrd{padding:0 12px 9px;font-size:11px;color:var(--dim2)}
.phd .sub .herb{margin-right:3px}

/* DOMYŚLNY ROZMIAR IKONY.
   Bez tego SVG z <use> nie ma wymiarów własnych i rozpycha się na cały blok
   (gwiazdka polskiego klubu potrafiła zająć pół nagłówka). Boisko i logo mają
   swoje rozmiary i są z tej reguły wyłączone. */
/* 9.26: mapa świata jest trzecim wyjątkiem — to nie ikona, tylko tło
   zakładki, które ma wypełnić całą ramkę. */
/* 9.58: znak gry w szyldzie jest piątym. Wyjątek dopisujemy TUTAJ, a nie
   podbijamy wagi przy `.szyld-znak` — ta reguła ma cztery `:not()`, więc
   wygrywa z każdym pojedynczym selektorem klasy i każda próba obejścia jej
   po swojemu kończy się `!important`. Lista wyjątków w jednym miejscu jest
   czytelna; `!important` rozsiany po pliku nie jest. */
svg:not(.pitch):not(.logo):not(.mapa-swiata):not(.mojiskra):not(.szyld-znak){width:15px;height:15px;vertical-align:-3px;flex:none}
.note{display:block}
/* 9.48 — „.note{display:block}" wyżej bije zwykłe [hidden] z przeglądarki,
   więc KAŻDY schowany komunikat zostawiał po sobie pusty pasek z niebieską
   kreską. Widać to było pod formularzem dodawania jako sierotę bez tekstu. */
.note[hidden]{display:none}
.gw svg{width:13px;height:13px}
.tr2m .strz svg{width:26px;height:26px}
.ptrh svg{width:16px;height:16px}
.sp .evi svg{width:14px;height:14px}
.oe .ok2 svg{width:15px;height:15px}

/* ══════════════ 9.1 ══════════════ */

/* kapitan */
.sp .im .kap{display:inline-block;font-style:normal;font-size:8.5px;font-weight:800;
  background:var(--line);color:var(--dim);border-radius:3px;padding:0 3px;margin-left:5px;vertical-align:1px}

/* statystyki meczu — dwustronny pasek */
.strow2{display:grid;grid-template-columns:64px 1fr 64px;align-items:center;gap:10px;padding:7px 2px}
.strow2 b{font-size:12.5px;font-weight:700;color:var(--dim);text-align:center}
.strow2 b.lep{color:var(--tx);font-weight:850}
.stmid .lb{text-align:center;font-size:11px;color:var(--dim2);margin-bottom:4px}
.bar3{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--line)}
.bar3 i.h{background:var(--blue)}
.bar3 i.a{background:var(--acc)}
.stbox .sec{margin-bottom:4px}

/* kontuzje */
.kontuzja{display:flex;align-items:center;gap:8px;margin:10px 0;padding:9px 12px;border-radius:var(--r);
  background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.32);font-size:13px}
.kontuzja b{font-weight:750;color:#ffb4b4}
.kontuzja span{margin-left:auto;font-size:11.5px;color:var(--dim)}
.kontpas{display:flex;align-items:center;gap:5px;margin-top:5px;padding:3px 7px;border-radius:6px;
  background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.28);
  font-size:10.5px;color:#ffb4b4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pb svg[class=""]{opacity:.9}

/* typ transferu — kolorowany */
.ptrt{display:flex;align-items:center;gap:10px}
.ptrt .tt{font-weight:700}
.ptrt .kw{margin-left:auto;font-weight:850;color:var(--ok)}
.ptrt .kw.brak{font-weight:600;color:var(--dim2)}
.ptrt.typ-wyp .tt,.tr2t.typ-wyp .tt{color:#a78bfa}
.ptrt.typ-wypzwrot .tt,.tr2t.typ-wypzwrot .tt{color:#7dd3fc}
.ptrt.typ-bezkontr .tt,.tr2t.typ-bezkontr .tt{color:#facc15}
.ptrt.typ-transfer .tt,.tr2t.typ-transfer .tt{color:#4ade80}
/* 9.56.19 — tło pastylki bierze kolor swojego rodzaju, tylko przygaszony.
   Dzięki temu rodzaj ruchu rozpoznaje się, zanim się go przeczyta. */
.tr2t.typ-wyp .tt{background:rgba(167,139,250,.13);border-color:rgba(167,139,250,.30)}
.tr2t.typ-wypzwrot .tt{background:rgba(125,211,252,.13);border-color:rgba(125,211,252,.30)}
.tr2t.typ-bezkontr .tt{background:rgba(250,204,21,.13);border-color:rgba(250,204,21,.30)}
.tr2t.typ-transfer .tt{background:rgba(74,222,128,.13);border-color:rgba(74,222,128,.30)}
table .typ.wyp{background:rgba(167,139,250,.18);color:#c4b5fd}
table .typ.wypzwrot{background:rgba(125,211,252,.18);color:#7dd3fc}
table .typ.transfer{background:rgba(74,222,128,.16);color:#86efac}
table .typ.bezkontr{background:rgba(250,204,21,.16);color:#fde047}
tr.przyszly{opacity:.42}
/* ── 9.56.19: RODZAJ RUCHU JAKO PASTYLKA ──────────────────────────────────
   „Wolny zawodnik (bez kontraktu)" pisane pogrubionym kolorem łamało się
   na trzy linijki i przeciągało na siebie całą uwagę karty — a to jest
   metryczka, nie nagłówek. Pastylka mówi to samo w jednej linii, w kolorze
   swojego rodzaju, i zostawia miejsce kwocie. */
.tr2t{display:flex;align-items:center;gap:10px;min-width:0}
.tr2t .tt{font-weight:700;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 9px;border-radius:99px;white-space:nowrap;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}
.tr2t .kw{margin-left:auto;font-weight:850;color:var(--ok);font-variant-numeric:tabular-nums}
.tr2t .kw.brak{font-weight:600;color:var(--dim2);font-size:11px}
.pusto3{text-align:center;padding:40px 20px;color:var(--dim);font-size:14px;line-height:1.7}
.pusto3 span{display:block;margin-top:8px;font-size:12.5px;color:var(--dim2);max-width:620px;margin-inline:auto}

/* ══════════════ 9.2 ══════════════ */

/* zakładki zamknięte na kłódkę */
nav button.zamknieta{opacity:.55}
nav button.zamknieta .klodka{font-style:normal;font-size:10px;margin-left:5px}
nav button.zamknieta.on{background:var(--card2);border-color:var(--line);color:var(--dim)}
.zamknietaSekcja{text-align:center;padding:60px 24px;color:var(--dim)}
.zamknietaSekcja svg{width:40px !important;height:40px !important;opacity:.5;margin-bottom:14px}
.zamknietaSekcja h3{font-size:20px;font-weight:800;color:var(--tx);margin-bottom:10px}
.zamknietaSekcja .plakietka{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.16em;
  background:var(--warn);color:#0b0e14;border-radius:6px;padding:4px 10px;margin-bottom:14px}
.zamknietaSekcja p{max-width:560px;margin:0 auto;font-size:13.5px;line-height:1.65}

/* filtry transferów */
.trfiltry{display:flex;flex-direction:column;gap:8px;margin:10px 0 12px;padding:10px 12px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.fgr{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fl2{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim2);min-width:74px}
.chip.mini i{font-style:normal;font-size:9.5px;font-weight:800;margin-left:5px;opacity:.65}
.chip.mini.on i{opacity:.9}

/* nowy transfer */
.tr2.nowy{border-color:#f59e0b;box-shadow:0 0 0 1px rgba(245,158,11,.35)}
.nowyPas{position:absolute;top:0;right:0;font-size:9px;font-weight:850;letter-spacing:.12em;
  background:#f59e0b;color:#0b0e14;padding:2px 8px;border-radius:0 var(--r) 0 8px}

/* przełączniki polskich lig */
.ligiPL{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px;
  padding:9px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.zrodlaInfo{font-size:12.5px;line-height:1.6;color:var(--dim)}
.zrodlaInfo p{margin:0 0 8px}
.zrodlaInfo p:last-child{margin:0}
.zrodlaInfo b{color:var(--tx)}

/* ══════════════ 9.3 ══════════════ */
.pasZapytan{height:8px;border-radius:4px;background:var(--line);overflow:hidden;margin-top:10px}
.pasZapytan i{display:block;height:100%;background:linear-gradient(90deg,var(--ok),var(--warn))}
tr.suma td{border-top:1px solid var(--line);padding-top:8px}
tr.ostrzWiersz td{color:#fca5a5}

.licznik2{margin-top:6px;font-size:12px;color:#6b7280;display:flex;flex-wrap:wrap;gap:10px}
.licznik2 b{color:#111827}


/* ══════════════════════════════════════════════════════════════════════════
   9.4 — dodatki. Wszystko na zmiennych motywu, zeby nie wypadac z ciemnego tla.
   ══════════════════════════════════════════════════════════════════════════ */

/* liczniki pod naglowkiem listy zawodnikow */
.licznik2{margin-top:6px;font-size:12px;color:var(--dim2);display:flex;flex-wrap:wrap;gap:10px}
.licznik2 b{color:var(--tx)}
.cichy{font-size:11px;color:var(--dim2);margin-top:3px}
.fk .dot{font-style:normal;color:var(--dim2);margin-left:1px;font-weight:700}
.note.mini{font-size:12px;padding:6px 8px}

/* Mini-twarz zawodnika z herbem klubu (ranking, puchary, newsy).
   UWAGA NA NAZWE — druga taka wpadka z rzedu. Klasa `.tw` byla juz zajeta:
   to opakowanie tabel z przewijaniem (`<div class="tw"><table>`), uzywane
   w dziewieciu miejscach. Nadanie jej rozmiaru 26x26 sciskalo KAZDA tabele
   do kwadraciku wielkosci awatara — stad w profilu zawodnika zamiast tabeli
   sezonu zostawalo "SE" i strzepek obrazka.
   Klasy interfejsu maja teraz przedrostek `m` (mini): .mtw, .tabr. */
.mtw{position:relative;display:inline-block;width:26px;height:26px;flex:0 0 26px;vertical-align:middle}
.mtw img{width:26px;height:26px;border-radius:50%;object-fit:cover;background:var(--card2)}
.mtw .ini{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;
  background:var(--card2);color:var(--dim);font-size:10px;font-style:normal;font-weight:800}
.mtw .hb{position:absolute;right:-4px;bottom:-3px;width:14px;height:14px;border-radius:3px;
  background:var(--bg2);box-shadow:0 0 0 1.5px var(--bg2);object-fit:contain}
.mtw.duza,.mtw.duza img,.mtw.duza .ini{width:54px;height:54px;flex-basis:54px}
.mtw.duza .ini{font-size:17px}
.mtw.duza .hb{width:22px;height:22px;right:-4px;bottom:-2px}

/* podium rankingu tygodnia */
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 12px}
.pod{position:relative;text-align:center;padding:14px 8px 10px;border-radius:12px;cursor:pointer;
  background:var(--card);border:1px solid var(--line)}
.pod:hover{border-color:var(--acc)}
.pod .poz{position:absolute;top:6px;left:9px;font-size:12px;font-weight:850;color:var(--dim2)}
.pod .nm{margin-top:7px;font-weight:750;font-size:13px;line-height:1.2}
.pod .cl{font-size:11px;color:var(--dim2);margin-top:2px}
.pod .wy{margin-top:6px;font-size:12.5px;font-weight:800;color:var(--tx)}
.pod .dod{font-size:11px;color:var(--dim2);margin-top:2px}
.pod.m1{border-color:rgba(250,204,21,.55);background:linear-gradient(180deg,rgba(250,204,21,.12),var(--card))}
.pod.m1 .poz{color:var(--warn)}
.pod.m2{border-color:rgba(154,166,189,.45);background:linear-gradient(180deg,rgba(154,166,189,.10),var(--card))}
.pod.m3{border-color:rgba(205,127,50,.45);background:linear-gradient(180deg,rgba(205,127,50,.12),var(--card))}
.podium.zle .pod{border-color:rgba(225,29,52,.45);background:linear-gradient(180deg,rgba(225,29,52,.10),var(--card))}
.podium.zle .pod .wy{color:var(--acc)}

/* Tabele rankingu z twarza i herbem.
   UWAGA NA NAZWE: klasa `.tw2` byla juz zajeta — to naglowek sekcji
   (<span class="tw2">Liga</span>). Nadanie jej stylow tabeli z przewijaniem
   sciskalo tytuly sekcji w profilu zawodnika do dwoch liter ("SE" zamiast
   "Sezon 2026/2027 · Udinese"). Stad osobna nazwa `.tabr`. */
.tabr{overflow-x:auto}
.tabr table{width:100%;border-collapse:collapse;font-size:13px}
.tabr th,.tabr td{padding:5px 7px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
.tabr th{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim2);font-weight:800}
.tabr tr.top3 td{background:rgba(250,204,21,.06)}
.tabr tr.top3 .mp{font-weight:850;color:var(--warn)}
.tabr td.zaw{display:flex;align-items:center;gap:7px}
.tabr td.klb img{width:15px;height:15px;vertical-align:-3px;margin-right:4px;object-fit:contain}
.rkwiecej{margin-top:8px}

/* karty zawodnikow: bez meczu / kontuzja / klub do potwierdzenia */
.pcard.bezmeczu{opacity:.62;filter:saturate(.65)}
.pcard.bezmeczu:hover{opacity:1;filter:none}
.pcard.pckontuzja{box-shadow:inset 3px 0 0 var(--acc)}
.pcard.sporny{box-shadow:inset 3px 0 0 var(--warn)}

/* puchary: bloki statystyk */
.pufil{margin:6px 0 10px}
.zestawy{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-bottom:12px}
.zest{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 10px}
.zest .zt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin-bottom:6px}
.zest .zt .il{font-weight:600;text-transform:none;letter-spacing:0;color:var(--dim2);font-size:10.5px}
.zr{display:flex;align-items:center;gap:7px;padding:4px 0;border-top:1px solid var(--line);cursor:pointer}
.zr:first-of-type{border-top:0}
.zr:hover{background:var(--card2)}
.zr .mp{width:14px;text-align:right;color:var(--dim2);font-size:11px;font-weight:800;flex:0 0 14px}
.zr.top3 .mp{color:var(--warn)}
.zr .nm{font-size:12.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}
.zr .cl{font-size:11px;color:var(--dim2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:92px;flex:0 1 auto}
.zr .cl img{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
.zr .vv{font-size:12.5px;white-space:nowrap;flex:0 0 auto}

/* stan zawodnika w meczu — zielony znaczyl i "gra", i "zagral", czyli nic */
.pb.s-gra{color:var(--ok);border-color:rgba(34,197,94,.5);background:rgba(34,197,94,.12);font-weight:800}
.pb.s-zszedl{color:var(--blue)}
.pb.s-naLawce{color:var(--warn)}
.pb.s-zagral{color:var(--ok)}
.pb.s-niegral{color:var(--dim2)}
.pb.s-kadra{color:var(--dim);border-style:dashed}
.pb.s-kontuzjowany{color:var(--acc);border-color:rgba(225,29,52,.5);background:rgba(225,29,52,.10)}
.pb .kropka{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block;
  animation:pulse 1.4s infinite}
.pb img.herb{width:13px;height:13px;vertical-align:-2px}
.mn.kont{color:var(--acc);font-weight:800}
/* Skład ogłoszony przed meczem — informacja, po którą czytelnik tu przychodzi,
   więc ma się wyróżniać od zwykłego „w kadrze". */
.mn.xi{color:var(--blue);font-weight:800}

/* nasz news 9.4: twarz przy newsie + lapki */
.ni.auto .nglowa{display:flex;gap:9px;align-items:flex-start}
.ni.auto .ntxt{min-width:0;flex:1}
.ni.pods{border-left:2px solid var(--blue)}
.ni .lapki{margin-left:auto;display:inline-flex;gap:4px}
.ni .lapki .rb{background:var(--card2);border:1px solid var(--line);border-radius:6px;
  padding:1px 6px;cursor:pointer;font-size:12px;line-height:1.5}
.ni .lapki .rb.on{border-color:var(--acc);background:rgba(225,29,52,.14)}
.ni .m{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ni .echo{margin-top:5px;display:flex;align-items:center;gap:6px;font-size:11.5px;
  background:var(--card2);border-radius:7px;padding:4px 7px}
.ni .echo svg{width:13px;height:13px;flex:none;opacity:.7}
.ni .echo a{color:var(--blue);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ni .echo a:hover{text-decoration:underline}
.ni .echo .zr2{margin-left:auto;color:var(--dim2);font-weight:700;white-space:nowrap}

/* ── STOPKA REDAKCYJNA ────────────────────────────────────────────────────── */
.stopka{margin-top:34px;border-top:1px solid var(--line);background:var(--bg2);padding:18px 12px 26px}
.stopka .sw{max-width:1180px;margin:0 auto;display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between}
.stopka .sl b{display:block;font-size:15px;font-weight:850;letter-spacing:.14em}
.stopka .sl span{font-size:12px;color:var(--dim2);max-width:420px;display:block;margin-top:4px}
.stopka .sr{font-size:12px;color:var(--dim);text-align:right}
.stopka .sr b{color:var(--tx)}
.stopka .sr a{color:var(--blue);text-decoration:none}
.stopka .sr a:hover{text-decoration:underline}
.stopka .sd{color:var(--dim2);font-size:11px;margin-top:3px}
@media(max-width:640px){.stopka .sr{text-align:left}}

/* ── PANEL ADMINA ─────────────────────────────────────────────────────────── */
.admakcje{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:8px}
.admb{display:flex;flex-direction:column;gap:2px;text-align:left;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 11px}
.admb:hover{border-color:var(--acc)}
.admb:disabled{opacity:.5;cursor:wait}
.admb b{font-size:13px;font-weight:750}
.admb span{font-size:11px;color:var(--dim2);line-height:1.35}
.admecho{margin-top:8px;font-size:12px;color:var(--dim);min-height:16px}
.admlog{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;
  font:11.5px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--dim);
  max-height:340px;overflow:auto;white-space:pre-wrap}
.admstopka{margin-top:14px;font-size:11.5px;color:var(--dim2)}
.admstopka code{background:var(--card2);border-radius:4px;padding:1px 5px}
.dimc{color:var(--dim2);font-size:11px}
td.zle,.zle{color:var(--acc);font-weight:700}
b.ostrz{color:var(--warn)}
.pasek{height:8px;background:var(--card2);border-radius:5px;overflow:hidden;margin:6px 0}
.pasek i{display:block;height:100%;background:var(--ok);transition:width .3s}

/* Stan wczytywania i bledu — zakladka nigdy nie zostaje pusta */
.empty.laduje{color:var(--dim)}
.empty.laduje::after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;
  border-radius:50%;background:var(--dim2);animation:pulse 1.2s infinite}
.empty.blad{color:var(--acc)}
.empty.blad .btn{margin-left:8px}

/* ══════════════════════════════════════════════════════════════════════════
   BRAMKA DOSTEPU
   Styl trzyma sie zmiennych motywu huba, zeby ekran wejsciowy i sam hub
   wygladaly jak jedna strona, a nie dwie sklejone tasma.
   ══════════════════════════════════════════════════════════════════════════ */
#brama{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;
  flex-direction:column;padding:20px;background:var(--bg);color:var(--tx);
  transition:opacity .4s ease}
#brama[hidden]{display:none}
#brama.bl-znika{opacity:0;pointer-events:none}
.bl-logo{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.bl-tarcza{width:52px;height:61px;flex:none}
.bl-txt{display:flex;flex-direction:column;line-height:1.05;text-align:left}
.bl-txt b{font-size:30px;font-weight:850;letter-spacing:.16em}
.bl-txt em{font-size:9.5px;font-weight:800;font-style:normal;letter-spacing:.26em;color:var(--acc);margin-top:4px}
#brama h2{font-size:21px;font-weight:800;letter-spacing:.02em;margin-bottom:8px;text-align:center}
.bl-pod{color:var(--dim);font-size:13.5px;margin-bottom:24px;text-align:center}
.bl-pole{display:flex;gap:10px;justify-content:center}
.bl-pole input{background:var(--card);border:1px solid var(--line);color:var(--tx);border-radius:9px;
  padding:12px 18px;font-size:17px;font-weight:800;letter-spacing:.28em;text-align:center;width:140px;outline:none}
.bl-pole input:focus{border-color:var(--acc)}
.bl-btn{background:var(--acc);color:#fff;border:0;border-radius:9px;padding:12px 22px;
  font-size:14px;font-weight:750;cursor:pointer;transition:filter .15s}
.bl-btn:hover{filter:brightness(1.12)}
.bl-btn-nieb{background:var(--blue);color:#06263a}
.bl-btn-pusty{background:transparent;border:1px solid var(--line);color:var(--tx)}
#brama-blad{color:var(--acc);font-size:12.5px;font-weight:700;margin-top:12px;text-align:center}
#brama-blad[hidden]{display:none}
#brama-2{max-width:520px;text-align:center;background:var(--card);border:1px solid var(--line);
  border-radius:16px;padding:34px 30px}
#brama-2[hidden]{display:none}
#brama-1[hidden]{display:none}
.bl-tekst{font-size:14.5px;color:var(--dim);line-height:1.65;margin-bottom:24px}
.bl-akcje{display:flex;flex-direction:column;gap:10px}
@media(max-width:420px){.bl-pole{flex-direction:column;align-items:center}.bl-pole input{width:100%;max-width:220px}}

/* Liczniki reakcji i nastrój łapek */
.rb .lr{font-style:normal;font-size:10.5px;font-weight:800;margin-left:4px;color:var(--dim)}
.rb.on .lr{color:var(--tx)}
.lapp{font-size:11px;font-weight:800;border-radius:5px;padding:1px 6px;margin-right:6px;
  background:var(--card2);color:var(--dim)}
.lapp.plus{background:rgba(34,197,94,.16);color:var(--ok)}
.lapp.minus{background:rgba(225,29,52,.16);color:var(--acc)}
.lapp.rowno{background:var(--card2);color:var(--dim)}

/* Notka transferowa */
.tr2 .notka{margin-right:auto}
.tr2 .notka.on{border-color:var(--acc);color:var(--tx)}
.notkabox{border-top:1px solid var(--line);padding:10px 12px;background:var(--bg2)}
.notkabox .nt-tyt{font-size:14px;font-weight:800;margin-bottom:6px;line-height:1.3}
.notkabox p{font-size:13px;color:var(--dim);line-height:1.55;margin-bottom:4px}
.notkabox .nt-zr{font-size:11px;color:var(--dim2);margin-top:7px}
.nt-echa{margin-top:9px;border-top:1px solid var(--line);padding-top:8px;font-size:11.5px}
.nt-echa b{display:block;color:var(--dim);margin-bottom:5px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.nt-echa a{display:flex;justify-content:space-between;gap:10px;color:var(--blue);text-decoration:none;
  padding:3px 0;border-bottom:1px solid var(--line)}
.nt-echa a:last-child{border-bottom:0}
.nt-echa a:hover{text-decoration:underline}
.nt-echa a span{color:var(--dim2);white-space:nowrap;font-weight:700}
.nt-echa.pusto{color:var(--dim2)}
.chipy.okresy{margin-bottom:8px}

/* ══════════════════════════════════════════════════════════════════════════
   9.8 — REDAKCJA, ULUBIENI, NOTATKI
   Nazwy klas celowo z wlasnymi przedrostkami (nota-, edn-, p98, ppasek),
   zeby nie wpasc drugi raz w kolizje, ktora w 9.4 sciela wszystkie tabele.
   ══════════════════════════════════════════════════════════════════════════ */

/* Kluczyk w naglowku — wejscie dla redakcji. */
.klucz {
  background: transparent; border: 1px solid var(--lin, #2a3242); color: inherit;
  width: 34px; height: 34px; border-radius: 999px; cursor: pointer;
  font-size: 15px; line-height: 1; opacity: .45; transition: opacity .15s, background .15s;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.klucz:hover { opacity: 1; }
.klucz.zalogowany {
  opacity: 1; background: #f5c518; color: #10131a; border-color: #f5c518; font-weight: 800;
}

/* Okno logowania i edytora — wspolny, spokojny wyglad formularza. */
#dlg-log, #dlg-nota {
  border: 1px solid var(--lin, #2a3242); border-radius: 14px; padding: 0;
  background: var(--pan, #151a24); color: var(--tx, #e8edf6);
  max-width: 640px; width: calc(100% - 28px);
  /* Edytor notatki z podgladem zdjecia bywa wyzszy od ekranu. Bez tego
     przycisk "Zapisz" lezal poza widokiem i nie dalo sie go klinac — wylapal
     to test interfejsu, ktory probowal zapisac notatke i nie mogl trafic. */
  max-height: 90vh; overflow: auto;
}
#dlg-log::backdrop, #dlg-nota::backdrop { background: rgba(6, 9, 14, .72); }
#form-log, .edn { padding: 18px 20px 16px; display: flex; flex-direction: column; gap: 10px; }
#form-log h3, .edn h3 { margin: 0 0 4px; font-size: 17px; }
#form-log label, .edn label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--dim, #8d99ad); }
#form-log input, .edn input, .edn textarea, .edn select {
  background: #0e131c; border: 1px solid var(--lin, #2a3242); border-radius: 8px;
  color: var(--tx, #e8edf6); padding: 8px 10px; font: inherit; font-size: 14px; width: 100%;
}
.edn textarea { resize: vertical; min-height: 70px; line-height: 1.5; }
.edn input[type="file"] { padding: 6px; font-size: 12px; }
.log-blad { background: #3a1420; border: 1px solid #7a2338; color: #ffb4c2;
  border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.log-rzad { display: flex; gap: 8px; justify-content: flex-end; margin-top: 4px; }
/* Pasek z przyciskami przykleja sie do dolu okna — przy dlugim formularzu
   nie trzeba do niego dojezdzac, zeby zapisac. */
.edn-rzad {
  display: flex; gap: 8px; justify-content: flex-end; margin-top: 4px;
  position: sticky; bottom: -16px; background: var(--pan, #151a24);
  padding: 10px 0 4px; margin-bottom: -4px; border-top: 1px solid var(--lin, #2a3242);
}
.btn-glowny { background: #f5c518; color: #10131a; border: 0; border-radius: 8px;
  padding: 9px 16px; font-weight: 700; cursor: pointer; font-size: 14px; }
.btn-pusty { background: transparent; color: var(--dim, #8d99ad);
  border: 1px solid var(--lin, #2a3242); border-radius: 8px; padding: 9px 16px; cursor: pointer; font-size: 14px; }
.edn-foto { border: 1px dashed var(--lin, #2a3242); border-radius: 10px; padding: 10px;
  display: flex; flex-direction: column; gap: 8px; }
.edn-podglad img { max-height: 160px; border-radius: 8px; display: block; }
.edn-przypiecie { font-size: 12px; color: var(--dim, #8d99ad); }
.edn-ptak { flex-direction: row !important; align-items: center; gap: 8px !important; }
.edn-ptak input { width: auto; }
.wym { color: #f5c518; font-weight: 600; }

/* ── GWIAZDKA I ZOLTE PODSWIETLENIE ────────────────────────────────────────
   Prosba brzmiala wprost: obserwowany zawodnik i klub maja sie ZAWSZE
   wyswietlac na zolto. Kolor zostawiamy jeden i ten sam wszedzie, zeby oko
   uczylo sie go raz. */
.gw {
  background: none; border: 0; cursor: pointer; color: #6b7688;
  font-size: 17px; line-height: 1; padding: 2px 4px; transition: color .12s, transform .12s;
}
.gw:hover { color: #f5c518; transform: scale(1.15); }
.gw.on { color: #f5c518; }
/* ── ULUBIENI (poprawione w 9.15) ─────────────────────────────────────────
   Zgloszenie: „jak sie doda do ulubionych pilkarza, rozjezdza sie tabelka
   w rankingach".

   Przyczyna byla jedna i dotyczyla WYLACZNIE tabel: `.ulub` dostawalo
   `position: relative`, a klase te dopina automat do KAZDEGO elementu
   z `data-pid` — takze do `<tr>`. Wiersz tabeli z `position: relative`
   przestaje sie wyrownywac do kolumn: komorki jada w bok, ostatnia wychodzi
   poza tabele. Do tego pasek `::before` byl rysowany na `left: -8px`, czyli
   POZA elementem — w kazdym kontenerze z przewijaniem dokladal poziomy pasek.

   Teraz: wiersze tabeli dostaja wyroznienie przez `box-shadow: inset`
   i tlo, czyli wlasciwosci, ktore NIE ZMIENIAJA UKLADU. Reszta (karty,
   kafelki, podium) ma pasek w srodku elementu, nie obok niego. */
.ulub, .ulub-klub { color: #f5c518 !important; }
.ulub-klub { font-weight: 700; }

/* Wszystko poza wierszem tabeli — pionowa kreska WEWNATRZ elementu. */
.ulub:not(tr) { position: relative; }
.ulub:not(tr)::before {
  content: ''; position: absolute; left: 0; top: 3px; bottom: 3px; width: 3px;
  background: #f5c518; border-radius: 0 2px 2px 0; pointer-events: none;
}

/* Wiersz tabeli: zero position, zero pseudoelementu — samo tlo i krawedz. */
tr.ulub { background: rgba(245, 197, 24, .07); }
tr.ulub td { background: rgba(245, 197, 24, .07); }
tr.ulub td:first-child { box-shadow: inset 3px 0 0 #f5c518; }
tr.ulub td b, tr.ulub .zaw span { color: #f5c518; }

/* ── MOCNIEJSZE WYROZNIENIE W RANKINGACH I STATYSTYKACH ──────────────────
   Prosba: „w rankingach i w statystykach moze jakos jeszcze go otoczyc?
   jakims innym kolorem obramowanie czy cos? fajnie to bedzie nam podkreslac
   ulubiencow". Podium i karty dostaja zlota ramke z delikatna poswiata —
   widac ich z drugiego konca ekranu, a nie krzycza. */
.card.ulub { background: rgba(245, 197, 24, .07); }
.pod.ulub { border-color: #f5c518; box-shadow: 0 0 0 1px rgba(245,197,24,.45), 0 0 18px rgba(245,197,24,.14); }
.pcard.ulub { border-color: rgba(245, 197, 24, .55); background: rgba(245, 197, 24, .05); }
.zpoz .pcard.ulub { border-color: rgba(245, 197, 24, .55); }
.zw.ulub { background: rgba(245, 197, 24, .07); border-radius: 6px; }
.pb.ulub { border-color: rgba(245, 197, 24, .6); }

/* Pasek na profilu: obserwowanie + lapki. */
.ppasek {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px;
  padding: 9px 11px; margin: 10px 0; border: 1px solid var(--lin, #2a3242);
  border-radius: 10px; background: #0e131c;
}
.ppasek-op { font-size: 12px; color: var(--dim, #8d99ad); margin-right: 6px; }
.ppasek-lapki { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.lap {
  background: #131a25; border: 1px solid var(--lin, #2a3242); border-radius: 8px;
  padding: 5px 9px; cursor: pointer; font-size: 14px; color: var(--tx, #e8edf6);
  display: inline-flex; align-items: center; gap: 5px;
}
.lap:hover { border-color: #3d4a60; }
.lap.moj { border-color: #f5c518; background: rgba(245, 197, 24, .12); }
.lap .lc { font-style: normal; font-size: 11px; color: var(--dim, #8d99ad); font-weight: 700; }

/* ── NOTATKA REDAKCYJNA ───────────────────────────────────────────────────
   Szablon ma wygladac jak tekst do czytania, a nie jak wiersz w tabeli:
   kolorowy pasek rodzaju, duze zdjecie z podpisem zrodla, wytluszczony lead,
   akapity ze swiatlem, na koncu zrodla i podpis. */
.nota-gora { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.nota-gora h2 { margin: 0 0 2px; font-size: 19px; }
.nota-lista { display: flex; flex-direction: column; gap: 14px; }
.nota {
  border: 1px solid var(--lin, #2a3242); border-left: 4px solid var(--nota-kolor, #f5c518);
  border-radius: 12px; background: var(--pan, #151a24); padding: 0 0 12px; overflow: hidden;
}
.nota-pasek {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 8px 14px; background: rgba(255, 255, 255, .02); font-size: 11px; color: var(--dim, #8d99ad);
}
.nota-rodzaj { color: var(--nota-kolor, #f5c518); font-weight: 800; text-transform: uppercase; letter-spacing: .4px; }
.nota-narz { margin-left: auto; display: flex; gap: 6px; align-items: center; }
.nota-szkic { background: #3a2a10; color: #f5c518; border-radius: 5px; padding: 2px 6px; font-weight: 700; }
.nota-foto { margin: 0; }
.nota-foto img { width: 100%; display: block; max-height: 340px; object-fit: cover; }
.nota-foto figcaption { font-size: 11px; color: var(--dim, #8d99ad); padding: 5px 14px 0; font-style: italic; }
.nota-tytul { margin: 12px 14px 6px; font-size: 20px; line-height: 1.3; }
.nota-lead { margin: 0 14px 10px; font-size: 15px; font-weight: 600; line-height: 1.5; color: var(--tx, #e8edf6); }
.nota-tresc { margin: 0 14px; font-size: 14px; line-height: 1.65; color: #c6cfdd; }
.nota-tresc p { margin: 0 0 10px; }
.nota-tagi { margin: 6px 14px; display: flex; flex-wrap: wrap; gap: 5px; }
.nota-tagi .tag { background: #131a25; border: 1px solid var(--lin, #2a3242); border-radius: 999px;
  padding: 2px 9px; font-size: 11px; color: var(--dim, #8d99ad); }
.nota-zrodla { margin: 8px 14px 0; font-size: 12px; color: var(--dim, #8d99ad);
  border-top: 1px solid var(--lin, #2a3242); padding-top: 8px; }
.nota-zrodla a { color: #7fb2ff; }
.nota-podpis { margin: 8px 14px 0; font-size: 11px; color: #6b7688; letter-spacing: .3px; }

/* ── PANEL 9.8 ────────────────────────────────────────────────────────────── */
.p98 { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; }
.p98s { border: 1px solid var(--lin, #2a3242); border-radius: 12px;
  background: var(--pan, #151a24); padding: 12px 14px; }
.p98s h3 { margin: 0 0 8px; font-size: 15px; }
.p98s details { margin-top: 8px; }
.p98s summary { cursor: pointer; font-size: 13px; color: var(--dim, #8d99ad); padding: 4px 0; }
.p98s summary.zle { color: #ff8fa3; }
.admrzad { display: flex; flex-wrap: wrap; gap: 6px; margin: 9px 0; }
.btn.glowny { background: #f5c518; color: #10131a; border-color: #f5c518; font-weight: 700; }
.post { margin: 8px 0; }
.post-pas { height: 8px; background: #0e131c; border-radius: 999px; overflow: hidden;
  border: 1px solid var(--lin, #2a3242); }
.post-pas i { display: block; height: 100%; background: #f5c518; transition: width .4s; }
.post-op { font-size: 12px; color: var(--dim, #8d99ad); margin-top: 4px; }
.wer-lista { margin: 6px 0; padding-left: 18px; font-size: 13px; }
.wer-lista li { margin: 3px 0; }
.wer-blad { color: #ff8fa3; }
.wer-uwaga { color: #f5c518; }
.wer-do-decyzji { color: #7fb2ff; }
.secn { margin-top: 10px; }
.secn h4 { margin: 0 0 6px; font-size: 14px; display: flex; align-items: center; gap: 8px; }
.tabr tr.sum td { border-top: 2px solid var(--lin, #2a3242); font-weight: 700; }
.btn.zle { border-color: #7a2338; color: #ff8fa3; }

@media (max-width: 620px) {
  .ppasek-lapki { margin-left: 0; }
  .nota-tytul { font-size: 17px; }
  .nota-gora { flex-direction: column; }
}

/* Notatki pod kafelkiem transferu — 9.8. */
.notkabox .nt-tyt { font-weight: 700; font-size: 13px; margin-bottom: 8px; }
.notkabox .nt-tyt .dt { color: var(--dim, #8d99ad); font-weight: 400; font-size: 11px; margin-left: 6px; }
.nt-pisz { margin-top: 8px; }
.notkabox .nota { margin-bottom: 8px; }


/* ══════════════════════════════════════════════════════════════════════════
   9.10 — TELEFONY. Zgloszenie testerow: "nie da sie zjechac w dol".
   Glowna przyczyna byla wyzej (okno modalne bez suwaka), ale przy okazji
   porzadkujemy caly widok na waskim ekranie. Zasada: nic nie moze wystawac
   w bok, bo poziome przewijanie na dotyku potrafi zablokowac pionowe.
   ══════════════════════════════════════════════════════════════════════════ */

html, body { max-width:100%; overflow-x:hidden; }
body { padding-bottom:max(40px, env(safe-area-inset-bottom)); }

/* Wszystko, co bywa szersze od ekranu, dostaje własny suwak poziomy —
   zamiast rozpychać całą stronę. Trzymamy to w @media, bo strażnik kolizji
   (lib/kolizje.js) słusznie pilnuje, żeby jedna klasa nie miała dwóch
   definicji układu w regułach globalnych. */
@media (max-width: 900px) {
  .tw, .zestawy, .trgrid, .kv { max-width:100%; }
  .tw { overflow-x:auto; }
}

@media (max-width: 760px) {
  header { padding:9px 11px; gap:9px; }
  .hstat { font-size:10px; line-height:1.3; }

  /* Pasek zakladek: zostaje przyklejony, ale liczymy jego pozycje od
     rzeczywistej wysokosci naglowka, a nie od sztywnych 47 px — przy dwoch
     linijkach licznika naglowek jest wyzszy i zakladki wchodzily pod niego. */
  nav { top:0; position:sticky; padding:7px 8px; }
  header { position:static; }

  main { padding:10px 8px; }
  .bar { flex-direction:column; align-items:stretch; gap:8px; }
  .bar input { width:100%; }
  .chips { overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:2px; }
  .chips::-webkit-scrollbar { display:none; }

  /* Palec potrzebuje wiekszego celu niz mysz. */
  .chip, .btn, nav button { min-height:38px; }

  .filtry { flex-direction:column; align-items:stretch; }
  .filtry select, .filtry input { width:100%; }

  .rzedy .rz { flex-direction:column; }
  .rzedy input { width:100%; min-width:0; }

  .ligwybor { overflow-x:auto; white-space:nowrap; }
}

@media (max-width: 480px) {
  .grid { grid-template-columns:1fr; }
  .trgrid { grid-template-columns:1fr; }
  .kv { grid-template-columns:repeat(2,1fr); }
  .pcard .st { flex-wrap:wrap; }
  .stopka .sw { flex-direction:column; gap:12px; }
}

/* Zdjecia i herby nigdy nie rozpychaja ukladu. */
img { max-width:100%; height:auto; }

/* ══════════════════════════════════════════════════════════════════════════
   9.10 — POLACY W LIGACH, PORTAL, PANEL
   ══════════════════════════════════════════════════════════════════════════ */

/* Pasek „zaufania trenera" mieszka teraz w bloku 9.11 na końcu pliku —
   razem z resztą wskaźników i z wariantem dla liczby szacowanej. */

/* Zegar ostatniej kolejki */
.zegar{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px;margin:10px 0}
.zegar-tyt{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);
  margin-bottom:9px;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.zegar-tyt span{font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--dim2)}
.zegar-top{margin-top:10px;display:grid;gap:4px}
.zegar-top .zw{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:8px;background:var(--card2)}
.zw .poz{font-style:normal;font-size:11px;font-weight:800;color:var(--dim2);width:16px;flex:none}
.zw .kto em{font-style:normal;color:var(--dim2);font-size:11px;margin-left:5px}
.zw b s{text-decoration:none;color:var(--dim2);font-weight:600;font-size:10.5px}

.sekh{font-size:14px;font-weight:800;margin:16px 0 6px}

/* Wyróżnienie zawodnika, przy którym redakcja wkleiła materiał wideo. */
.pb.zwideo{box-shadow:inset 0 0 0 1px rgba(245,197,66,.45)}
.vid.jest{color:#f5c542;position:relative}
.vid.jest svg{filter:drop-shadow(0 0 3px rgba(245,197,66,.7))}
.vid.jest .ile{position:absolute;top:-4px;right:-6px;font-style:normal;font-size:9px;font-weight:800;
  background:#f5c542;color:#1a1405;border-radius:6px;padding:0 3px}

/* ── PORTAL: łapki i komentarze ── */
.wlapki{display:flex;gap:6px;align-items:center;margin-top:10px;flex-wrap:wrap}
.wlapka{background:var(--card2);border:1px solid var(--line);border-radius:9px;padding:5px 10px;
  font-size:12px;font-weight:650;color:var(--dim);cursor:pointer;display:inline-flex;gap:5px;align-items:center}
.wlapka:hover{border-color:var(--acc);color:var(--tx)}
.wlapka.on{border-color:var(--ok);color:#9ae6b4;background:rgba(34,197,94,.12)}
.wlapka.on.zle{border-color:var(--acc);color:#ff8fa3;background:rgba(225,29,52,.12)}
.wlapka.kom{margin-left:auto}

.kom-box{margin-top:10px;border-top:1px solid var(--line);padding-top:10px;display:grid;gap:8px}
.kom{background:var(--card2);border-radius:10px;padding:9px 11px}
.kom.czeka{border:1px dashed rgba(245,197,66,.5)}
.kom-h{display:flex;gap:8px;align-items:center;font-size:11.5px;color:var(--dim2);flex-wrap:wrap}
.kom-h b{color:var(--tx);font-size:12.5px}
.kom-czeka{font-style:normal;color:#f5d98a;font-size:10.5px}
.kom-mod{margin-left:auto;display:flex;gap:4px}
.kom-t{margin-top:5px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.kom-odp{margin-top:7px;padding:7px 9px;border-left:3px solid var(--blue);background:var(--card);
  border-radius:6px;font-size:12.5px;color:var(--dim)}
.kom-pisz{display:grid;gap:7px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:10px}
.kom-pisz input,.kom-pisz textarea{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--line);
  background:var(--bg2);color:var(--tx);font-size:13px;resize:vertical}
.kom-stopka{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.kom-echo{font-size:12px;color:var(--dim)}

/* ── PANEL: przełączniki ── */
.ustawienia{display:grid;gap:9px;margin-top:8px}
.ustw{display:flex;gap:10px;align-items:flex-start;background:var(--card2);border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;cursor:pointer}
.ustw input{margin-top:3px;flex:none}
.ustw b{font-size:13px}
.ustw em{display:block;font-style:normal;font-size:11.5px;color:var(--dim2);margin-top:3px;line-height:1.45}
.ustw .zmienione{font-style:normal;font-size:10px;font-weight:800;color:#f5d98a;margin-left:6px}
.ukryte-lista{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.ukryty{display:inline-flex;gap:6px;align-items:center;background:var(--card2);border:1px solid var(--line);
  border-radius:8px;padding:3px 8px;font-size:11.5px}

/* Kłódka na 2. lidze */
.ligwybor .chip.zamknieta{opacity:.55}
.ligwybor .chip .klodka{font-style:normal;font-size:10px}

@media (max-width: 620px) {
  .wlapka.kom{margin-left:0}
  .zegar-top .zw{font-size:12px}
  .kom-mod{margin-left:0;width:100%}
}

/* ══════════════════════════════════════════════════════════════════════════
   9.11 — WSKAŹNIKI: FORMA, ZAUFANIE, EFEKT POLAKA
   ══════════════════════════════════════════════════════════════════════════ */

/* Mini-wykres formy. Kolor niesie kierunek, więc sam kształt nie musi —
   czytelne także dla osób nierozróżniających kolorów, bo obok jest strzałka. */
.forma{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;
  color:var(--dim);line-height:1}
.forma svg{display:block;flex:none}
.forma b{font-variant-numeric:tabular-nums;font-weight:800}
.forma i{font-style:normal;font-size:9px}
.forma.f-rosnie{color:#7ee2a8}
.forma.f-spada{color:#ff9aa8}
.forma.f-stabilna{color:var(--dim2)}
.forma.duza{gap:8px;font-size:12px}
.kartaForma{margin-top:5px}

/* Pasek zaufania trenera. Przygaszony, gdy liczba jest szacowana. */
.zauf{position:relative;height:14px;margin-top:6px;border-radius:7px;background:var(--card2);
  display:flex;align-items:center;overflow:hidden}
.zauf i{position:absolute;left:0;top:0;bottom:0;border-radius:7px;
  background:linear-gradient(90deg,#1f6feb55,#38bdf888)}
.zauf b{position:relative;margin-left:auto;padding:0 6px;font-size:10px;font-weight:800;color:var(--dim)}
.zauf b s{text-decoration:none;color:var(--dim2);font-weight:600}
.zauf.szac i{background:linear-gradient(90deg,#1f6feb33,#38bdf844)}
.zauf.szac{opacity:.75}

/* Efekt Polaka */
.efekt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding:8px 10px;
  border-radius:9px;background:var(--card2);border:1px solid var(--line);font-size:12px}
.efekt .et{font-weight:800;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2)}
.efekt .par{display:flex;align-items:baseline;gap:5px}
.efekt .par em{font-style:normal;color:var(--dim2);font-size:11px}
.efekt .par b{font-size:16px;font-weight:850;font-variant-numeric:tabular-nums}
.efekt .par s{text-decoration:none;color:var(--dim2);font-size:10.5px}
.efekt .roz{margin-left:auto;font-weight:800;font-size:12px;padding:2px 8px;border-radius:7px;
  background:var(--card);color:var(--dim)}
.efekt.plus .roz{color:#9ae6b4;background:rgba(34,197,94,.14)}
.efekt.minus .roz{color:#ff8fa3;background:rgba(225,29,52,.14)}
.efekt.maloDanych{color:var(--dim2)}
.efekt.maloDanych span{font-size:11px}

/* Blok wskaźników w profilu */
.wsk-siatka{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.wsk{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 12px}
.wsk-szeroki{grid-column:1/-1}
.wsk-h{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--dim2);
  margin-bottom:8px;display:flex;gap:7px;align-items:baseline;flex-wrap:wrap}
.wsk-h span{font-weight:600;letter-spacing:0;text-transform:none;font-size:10.5px}
.wsk-op{margin-top:7px;font-size:11.5px;color:var(--dim2);line-height:1.5}
.wsk-op i{color:#f5d98a;font-style:normal}
.wsk-noty{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}
.wsk-noty .nota{font-size:11px;font-weight:800;padding:2px 6px;border-radius:6px;
  font-variant-numeric:tabular-nums;background:var(--card2);color:var(--dim)}
.wsk-noty .n3{background:rgba(34,197,94,.16);color:#9ae6b4}
.wsk-noty .n2{background:rgba(56,189,248,.14);color:#9fd8f5}
.wsk-noty .n1{background:rgba(225,29,52,.14);color:#ff9aa8}

/* Numerowana lista zawodników (jedna lista zamiast grup po klubach).
   9.14: numer był czerwonym kółkiem przyklejonym do rogu karty i wystającym
   poza nią — „te numerki są brzydkie", i słusznie. Teraz siedzi WEWNĄTRZ
   karty, jako spokojna tabularna cyfra w prawym górnym rogu. Pierwsza trójka
   dostaje kolor medalu i delikatną ramkę; reszta jest cicha. */
.grid.ponumerowana{gap:8px}
.zpoz{position:relative}
.zpoz .lp{position:absolute;top:7px;right:10px;z-index:2;font-style:normal;
  font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;
  color:var(--dim2);pointer-events:none;line-height:1}
.zpoz .pcard{height:100%;padding-right:30px}
.zpoz.m1 .lp{color:#f5c518;font-size:14px}
.zpoz.m2 .lp{color:#cbd5e5;font-size:13px}
.zpoz.m3 .lp{color:#d9986a;font-size:13px}
.zpoz.m1 .pcard{border-color:rgba(245,197,24,.35)}
.zpoz.m2 .pcard{border-color:rgba(203,213,229,.22)}
.zpoz.m3 .pcard{border-color:rgba(217,152,106,.25)}

/* „Do poprawy" w ostatniej kolejce — ta sama rubryka co w rankingu tygodnia. */
.doPoprawyBlok .podium .pod{border-color:rgba(225,29,52,.35)}
.doPoprawyBlok .podium .wy{color:#ff8fa3}

/* Tabela bramkarzy */
.gkblok .tabr th{white-space:nowrap}
.gkblok .gknm{display:flex;align-items:center;gap:7px;white-space:nowrap}

@media (max-width: 620px) {
  .efekt .roz{margin-left:0}
  .wsk-siatka{grid-template-columns:1fr}
}

/* Podgląd automatycznego raportu w panelu */
.rw-podglad{margin-top:10px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:12px 14px}
.rw-tyt{font-size:16px;font-weight:800;margin-bottom:6px}
.rw-lead{font-size:13px;color:var(--dim);margin-bottom:10px;line-height:1.5}
.rw-tresc p{font-size:13.5px;line-height:1.6;margin-bottom:9px}

/* ══════════════════════════════════════════════════════════════════════════
   9.12–9.14 — WSKAŹNIKI, PANEL, GOLE I ASYSTY
   ══════════════════════════════════════════════════════════════════════════
   9.14: cały ten blok był napisany pod jasne tło — białe karty, ciemny tekst,
   pastelowe ramki. Hub jest ciemny, więc na ekranie wychodziły jasne prostokąty
   z jasnym tekstem. Zgłoszenie brzmiało krótko: „zmień tło na bardziej
   czytelne”. Wszystko poniżej korzysta teraz z tej samej palety, co reszta
   strony: --bg, --card, --card2, --line, --tx, --dim, --dim2, --acc.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── PŁOMIEŃ „ON FIRE" ───────────────────────────────────────────────────── */
.onfire{display:inline-flex;align-items:center;gap:3px;vertical-align:middle;
  font-size:11px;line-height:1;padding:2px 6px;border-radius:999px;
  background:rgba(250,204,21,.12);border:1px solid rgba(250,204,21,.35);
  color:#f5c518;white-space:nowrap}
.onfire b{font-size:11px;font-weight:800}
.onfire.of2{background:rgba(250,204,21,.18);border-color:rgba(250,204,21,.55)}
.onfire.of3{background:rgba(250,204,21,.26);border-color:#facc15;
  box-shadow:0 0 10px rgba(250,204,21,.25)}
.onfire.duzy{font-size:14px;padding:5px 11px;gap:5px}
.onfire.duzy b{font-size:14px}
.kartaOgien{margin:2px 0 4px}

/* ── MECZ NIEPOTWIERDZONY ────────────────────────────────────────────────── */
.niepotw{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:5px;
  font-size:10px;letter-spacing:.03em;text-transform:uppercase;
  background:rgba(250,204,21,.12);color:#e3c05a;border:1px solid rgba(250,204,21,.3)}

/* ── PANEL: ZAWIESZONE MECZE ─────────────────────────────────────────────── */
.zawtab{margin-top:8px;display:flex;flex-direction:column;gap:5px}
.zawrz{display:grid;grid-template-columns:1fr auto 1fr auto auto;gap:10px;align-items:center;
  padding:7px 10px;border-radius:8px;background:var(--card2);
  border:1px solid var(--line);font-size:12px}
.zawrz.bezwyniku{opacity:.55}
.zawrz .zk{font-weight:650}
.zawrz .zw{font-variant-numeric:tabular-nums;font-weight:800;color:var(--warn)}
.zawrz .zl,.zawrz .zg,.zawrz .zs{color:var(--dim2);font-size:11px}
.zawrz .zs{text-align:right}

/* ── PANEL: UZUPEŁNIENIE SEZONU ──────────────────────────────────────────── */
.sezkafle{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0}
.sezk{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.sezk b{display:block;font-size:23px;line-height:1.1;font-variant-numeric:tabular-nums}
.sezk span{display:block;font-size:12px;margin-top:2px;color:var(--tx)}
.sezk em{display:block;font-style:normal;font-size:11px;color:var(--dim2);margin-top:2px}
.sezk.uwaga{border-color:rgba(250,204,21,.4)}
.sezk.uwaga b{color:var(--warn)}
.sezk.ok b{color:var(--ok)}
.sezk.koszt b{color:var(--blue)}

.sezligi{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;margin-bottom:10px}
.sezligi .et{color:var(--dim2)}
.sezligi .lg{background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:2px 9px}

.sezkroki{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px;margin:10px 0}
.sezkrok{background:var(--card2);border:1px solid var(--line);border-radius:10px;
  padding:8px 10px 8px 34px;position:relative;font-size:12px}
.sezkrok i{position:absolute;left:9px;top:9px;font-style:normal;font-weight:800;
  width:18px;height:18px;border-radius:50%;display:grid;place-items:center;
  font-size:11px;background:var(--line);color:var(--dim)}
.sezkrok b{display:block}
.sezkrok em{display:block;font-style:normal;font-size:11px;color:var(--dim2);margin-top:2px}
.sezkrok.zrobiony i{background:var(--ok);color:#06210f}
.sezkrok.teraz{border-color:rgba(250,204,21,.45)}
.sezkrok.teraz i{background:var(--warn);color:#241a05}

.sezpasek{position:relative;background:var(--card2);border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;margin:10px 0;overflow:hidden}
.sezpasek>i{position:absolute;left:0;top:0;bottom:0;opacity:.2;background:var(--blue);
  transition:width .4s ease}
.sezpasek>span{position:relative;display:block;font-size:12px}
.sezpasek em{display:block;font-style:normal;font-size:11px;color:var(--dim2);margin-top:3px}
.sezpasek s{text-decoration:none;color:#ff8fa3}
.sezpasek.pracuje>i{background:var(--warn)}
.sezpasek.ok>i{background:var(--ok)}
.sezpasek.zle>i{background:var(--acc)}
.btn-duzy{font-size:14px;padding:10px 18px}

/* ── PANEL: STAN MODUŁÓW ─────────────────────────────────────────────────── */
.modstan{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.modstan .modrz{background:var(--card2);border:1px solid var(--line);border-radius:8px;
  padding:8px 10px;font-size:12px}
.modstan .modrz em{display:block;color:var(--dim2);font-style:normal;margin-top:3px;font-size:11px}
.modstan .mstan{float:right;font-size:10px;text-transform:uppercase;letter-spacing:.04em;
  padding:2px 8px;border-radius:999px;background:var(--line);color:var(--dim)}
.modstan .mstan.on{background:rgba(34,197,94,.15);color:var(--ok)}
.modstan .mstan.czeka{background:rgba(250,204,21,.15);color:var(--warn)}

/* ── MODUŁY W ZAKŁADCE ───────────────────────────────────────────────────── */
.modpasek{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.modh{margin:16px 0 6px;font-size:13px}
.modtab{width:100%;border-collapse:collapse;font-size:12px}
.modtab th,.modtab td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
.modtab th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--dim2);
  background:var(--card2);position:sticky;top:0}
.modtab td:nth-child(n+4){font-variant-numeric:tabular-nums}
.modtab tr:hover td{background:var(--card2)}
.modczeka{text-align:left;line-height:1.6}
.modczeka i{color:var(--dim2)}
.szacs{text-decoration:none;font-size:10px;color:var(--warn);
  background:rgba(250,204,21,.12);border-radius:4px;padding:1px 5px}
.tabwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ══════════════════════════════════════════════════════════════════════════
   GOLE I ASYSTY — WKLEJANIE LINKÓW
   ══════════════════════════════════════════════════════════════════════════
   9.14: jeden wiersz = JEDNO ZDARZENIE, nie jeden zawodnik w meczu. Kozłowski
   z dwoma golami dostaje dwa wiersze i dwa osobne pola — bo to dwa różne
   materiały wideo. */
.brfil{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}
/* Tylko pole tekstowe ma się rozciągać — do 9.13 reguła łapała też checkbox
   „tylko bez linku" i odrzucała go na drugi koniec paska. */
.brfil > input[type=text],.brfil > input:not([type]){flex:1 1 220px;min-width:170px;
  background:var(--card2);border:1px solid var(--line);border-radius:8px;
  padding:6px 10px;font-size:12px;color:var(--tx)}
.brfil > input::placeholder{color:var(--dim2)}
.brchk{display:inline-flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap;color:var(--dim);cursor:pointer}
.brchk input{flex:0 0 auto;margin:0}

.brlista{display:flex;flex-direction:column;gap:5px;margin-top:8px;
  max-height:640px;overflow-y:auto;padding-right:2px}
.brrz{display:grid;grid-template-columns:minmax(150px,1.1fr) auto minmax(170px,1.2fr) minmax(280px,1.7fr);
  gap:12px;align-items:center;padding:8px 10px;border:1px solid var(--line);
  border-radius:10px;background:var(--card)}
.brrz:hover{border-color:#33405a}
.brrz.ma{border-color:rgba(250,204,21,.4);background:rgba(250,204,21,.05)}
.brrz.ukr{opacity:.5}
.brrz .brkto{display:flex;align-items:center;gap:8px;min-width:0}
.brrz .brnm{min-width:0}
.brrz .brnm b{display:block;font-size:13px;color:var(--tx);cursor:pointer}
.brrz .brnm b:hover{color:var(--blue)}
.brrz .brnm em{display:block;font-style:normal;font-size:11px;color:var(--dim2)}
.brrz .brco{font-size:12.5px;white-space:nowrap;font-weight:700}
.brrz .brco s{text-decoration:none;color:var(--dim);font-weight:500;
  font-variant-numeric:tabular-nums;margin-left:4px}
.brrz .brco .brg{color:var(--ok)}
.brrz .brco .bra{color:var(--blue)}
.brrz .brmecz{font-size:12px;min-width:0;color:var(--dim)}
.brrz .brmecz b{color:var(--tx);font-variant-numeric:tabular-nums}
.brrz .brmecz em{display:block;font-style:normal;font-size:11px;color:var(--dim2)}
.brrz .brakcja{min-width:0}
.brrz .brform{display:flex;gap:5px}
.brrz .brform input{min-width:0;font-size:12px;padding:5px 8px;background:var(--bg2);
  border:1px solid var(--line);border-radius:7px;color:var(--tx)}
.brrz .brform input::placeholder{color:var(--dim2)}
.brrz .brform input:focus{outline:none;border-color:var(--blue)}
.brrz .brform .bru{flex:3 1 0}
.brrz .brform .bro{flex:1 1 0;max-width:120px}
.brrz .brlinki{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:5px}
.brrz .brl{display:inline-flex;align-items:center;gap:5px;font-size:11px;
  background:rgba(250,204,21,.12);border:1px solid rgba(250,204,21,.35);
  border-radius:999px;padding:2px 4px 2px 9px}
.brrz .brl a{color:#f5c518;text-decoration:none;max-width:220px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.brrz .brx{border:0;background:transparent;cursor:pointer;color:#ff8fa3;font-size:14px;
  line-height:1;padding:0 3px}

@media (max-width:900px){
  .brrz{grid-template-columns:1fr auto}
  .brrz .brmecz,.brrz .brakcja{grid-column:1/-1}
}

/* ── PROFILE: RĘCZNE ODŚWIEŻANIE ─────────────────────────────────────────── */
.prlista{display:flex;flex-direction:column;gap:5px;margin:6px 0 10px}
.prrz{display:grid;grid-template-columns:minmax(140px,1fr) 2fr auto;gap:10px;align-items:center;
  padding:8px 10px;background:var(--card2);border:1px solid var(--line);
  border-radius:8px;font-size:12px}
.prrz .prnm b{display:block;color:var(--tx)}
.prrz .prnm em{font-style:normal;color:var(--dim2);font-size:11px}
.prrz .prbraki{display:flex;flex-wrap:wrap;gap:4px}
.prrz .brak{background:rgba(250,204,21,.12);color:var(--warn);border-radius:999px;
  padding:1px 9px;font-size:11px}
.prh{margin:16px 0 4px;font-size:13px}
.profadm{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;
  padding:9px 11px;background:var(--card2);border:1px dashed var(--line);
  border-radius:10px;font-size:12px}
.profadm .cichy{flex:1 1 100%;color:var(--dim2)}

@media (max-width:640px){
  .prrz{grid-template-columns:1fr auto}
  .prrz .prbraki{grid-column:1/-1}
}

/* ── PORZĄDEK W PANELU I W STATUSIE ──────────────────────────────────────── */
.pgnav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;position:sticky;top:0;
  z-index:5;padding:8px 0;background:var(--bg)}
.pgb{display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  background:var(--card);border:1px solid var(--line);color:var(--dim);
  border-radius:999px;padding:6px 13px;font:inherit;font-size:12px;font-weight:650}
.pgb i{font-style:normal;font-size:14px}
.pgb s{text-decoration:none;opacity:.65;font-size:11px}
.pgb:hover{border-color:#33405a;color:var(--tx)}
.pgb.on{background:var(--acc);border-color:var(--acc);color:#fff}
.pgb.on s{opacity:.85}
.pgop{font-size:12px;color:var(--dim2);margin:0 0 10px}

/* ── STATUS: CO CZEKA NA REAKCJĘ ─────────────────────────────────────────── */
.dozrobienia{margin-bottom:14px}
.dozrobienia h4{margin:0 0 8px;font-size:15px}
.dzk-siatka{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px}
.dzk{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 13px}
.dzk b{display:block;font-size:25px;line-height:1.1;font-variant-numeric:tabular-nums}
.dzk span{display:block;font-size:12px;margin-top:2px}
.dzk em{display:block;font-style:normal;font-size:11px;color:var(--dim2);margin-top:3px}
.dzk.ok b{color:var(--ok)}
.dzk.jest b{color:var(--warn)}
.dzk.pilne{border-color:rgba(225,29,52,.5)}
.dzk.pilne b{color:#ff8fa3}

/* ══════════════════════════════════════════════════════════════════════════
   9.15 — ZDARZENIA Z LINKAMI, OSOBNO I WIDOCZNIE
   ══════════════════════════════════════════════════════════════════════════
   Zgłoszenie: „trzeba jakoś wyeksponować, że po kliknięciu jest link do
   bramki — super opcja, musi być bardziej wyszczególnione". Zdarzenie bez
   materiału to cichy znacznik; z materiałem — podświetlona plakietka
   z minutą i trójkątem odtwarzania, której nie da się przeoczyć. */
.zdw{display:inline-flex;align-items:center;gap:2px;vertical-align:middle;margin-left:2px}
.zdw svg{width:13px;height:13px}
.zdw s{text-decoration:none;font-size:9.5px;color:var(--dim2);font-variant-numeric:tabular-nums}
.zdw.wniosek{opacity:.62}

.zdw.jest{position:relative;text-decoration:none;padding:1px 6px 1px 3px;border-radius:999px;
  background:rgba(245,197,24,.16);border:1px solid rgba(245,197,24,.55);
  box-shadow:0 0 0 2px rgba(245,197,24,.08)}
.zdw.jest s{color:#f5c518;font-weight:700}
.zdw.jest:hover{background:rgba(245,197,24,.28);border-color:#f5c518}
/* Mały trójkąt „play" — jednoznacznie mówi: jest co obejrzeć. */
.zdw.jest .pl{width:0;height:0;margin-right:1px;
  border-left:6px solid #f5c518;border-top:4px solid transparent;border-bottom:4px solid transparent}
.zdw.jest .ile{position:absolute;top:-5px;right:-5px;font-style:normal;font-size:9px;
  font-weight:800;background:#f5c518;color:#241a05;border-radius:999px;padding:0 4px;line-height:14px}
.brrz .brco .brk{color:#c9a227}
.brrz .brco .brw{font-style:normal;font-size:9.5px;color:var(--dim2);
  border:1px solid var(--line);border-radius:999px;padding:0 5px;margin-left:5px}

/* ══════════════════════════════════════════════════════════════════════════
   9.19 — NOWE ZAKŁADKI
   ══════════════════════════════════════════════════════════════════════════ */

/* ── ATLAS: kartogram kafelkowy ─────────────────────────────────────────────
   Siatka jest kwadratowa i każdy kraj ma taki sam kafelek — kolor niesie
   liczbę, nie powierzchnia państwa. Dzięki temu Cypr jest tak samo klikalny
   jak Niemcy, a całość mieści się na telefonie. */
.anagl{margin-bottom:14px}
.akafle{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:10px}
.akafle>div{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 11px}
.akafle>div small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim2)}
.akafle>div b{display:block;font-size:22px;font-weight:800;margin:2px 0}
.akafle>div small:last-child{text-transform:none;letter-spacing:0;font-size:11px;color:var(--dim)}

.amapa{display:grid;gap:5px;margin:14px 0;max-width:760px}
.apuste{aspect-ratio:1}
.akraj{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1px;border:1px solid var(--line);border-radius:9px;background:var(--card);
  color:var(--dim);cursor:pointer;padding:2px;min-width:0;transition:transform .08s}
.akraj:hover{transform:translateY(-2px);border-color:var(--acc);color:var(--tx)}
.akraj.on{border-color:#f5c518;box-shadow:0 0 0 1px #f5c518}
.akraj .af{font-size:15px;line-height:1}
.akraj .an{font-size:16px;font-weight:800;line-height:1.1;color:var(--tx)}
.akraj .ak{font-size:8.5px;font-weight:700;letter-spacing:.05em;opacity:.75}
/* Pięć progów nasycenia — czytelne jednym spojrzeniem, bez legendy. */
.akraj.p1{background:rgba(74,124,255,.10)}
.akraj.p2{background:rgba(74,124,255,.20)}
.akraj.p3{background:rgba(74,124,255,.34)}
.akraj.p4{background:rgba(74,124,255,.50);color:var(--tx)}
.akraj.p5{background:rgba(74,124,255,.70);color:#fff;border-color:rgba(74,124,255,.9)}
.akraj.p0{opacity:.35}

.aregion{margin:14px 0}
.aregion h4{margin:0 0 7px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim2)}
.aregionk{display:flex;flex-wrap:wrap;gap:5px}
.aregionk .akraj{width:58px;aspect-ratio:1}

.akrajpanel{margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}
.akph{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--card2)}
.akpf{font-size:26px}
.akph b{font-size:16px}
.akph .btn{margin-left:auto}
.aklub{border-bottom:1px solid var(--line);padding:11px 14px}
.aklub:last-child{border-bottom:0}
.aklubh{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.aklubh b{font-size:13.5px}
.azawy{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:7px}
.azaw{display:flex;align-items:center;gap:8px;background:var(--card2);border:1px solid var(--line);
  border-radius:9px;padding:7px 9px;cursor:pointer}
.azaw:hover{border-color:var(--acc)}
.azaw img,.azaw .ava{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:none}
.azt{min-width:0;flex:1}
.azt b{display:block;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.azt span{font-size:10.5px}
.azs{font-size:11px;color:var(--dim);flex:none;text-align:right}
.azs .zl{color:#f5c518}
.atab tr.clk{cursor:pointer}
.asek{margin:18px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim2)}

/* ── JEDENASTKA: boisko ────────────────────────────────────────────────────
   Cztery rzędy w pionie, karty rozłożone równo. Zielone tło jest wyraźnie
   ciemniejsze od kart, żeby nazwiska dało się przeczytać. */
.boiskoxi{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:10px;
  background:linear-gradient(180deg,#132a1c,#0f2116);border:1px solid #1f4030;border-radius:14px;
  padding:16px 10px;min-height:520px;margin:12px 0;overflow:hidden}
.bxlinie{position:absolute;inset:16px 10px;border:2px solid rgba(255,255,255,.10);border-radius:8px;pointer-events:none}
.bxlinie::before{content:'';position:absolute;left:0;right:0;top:50%;height:2px;background:rgba(255,255,255,.10)}
.bxlinie::after{content:'';position:absolute;left:50%;top:50%;width:74px;height:74px;margin:-37px 0 0 -37px;
  border:2px solid rgba(255,255,255,.10);border-radius:50%}
.bxrzad{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;position:relative;z-index:1}
.bxrzad.pusty{min-height:8px}
.jkarta{width:118px;background:rgba(9,14,11,.86);border:1px solid rgba(255,255,255,.13);border-radius:11px;
  padding:8px 6px;text-align:center;cursor:pointer;position:relative;backdrop-filter:blur(3px)}
.jkarta:hover{border-color:#f5c518}
.jkarta.kap{border-color:#f5c518;box-shadow:0 0 0 1px rgba(245,197,24,.45)}
.jkap{position:absolute;top:-7px;left:-7px;width:20px;height:20px;border-radius:50%;background:#f5c518;
  color:#10131a;font-style:normal;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.jfoto{position:relative;display:inline-block;margin-bottom:4px}
.jfoto img,.jfoto .ava{width:44px;height:44px;border-radius:50%;object-fit:cover}
.jfoto .herb{position:absolute;right:-4px;bottom:-2px;width:18px;height:18px;border-radius:4px;background:#0b0e14}
.jnaz{display:block;font-size:11.5px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jklub{display:block;font-size:9.5px;color:#9fb0a4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jstat{display:flex;justify-content:center;gap:5px;margin-top:5px;font-size:10.5px;font-weight:700;flex-wrap:wrap}
.jnota{background:rgba(74,255,140,.16);color:#7ef0a8;border-radius:5px;padding:1px 5px}
.jnota.brak{background:rgba(255,255,255,.08);color:#9aa5b1;font-weight:600;font-size:9px}
.jstat .jg{color:#f5c518}
.jstat .ja{color:#7fb2ff}
.jstat .jc{color:#7ef0a8}
.jlawka{display:flex;flex-wrap:wrap;gap:8px}
.jlawka .jkarta{width:104px}
.jowlos{display:flex;flex-wrap:wrap;gap:8px}
.jow{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);
  border-radius:9px;padding:6px 10px;cursor:pointer}
.jow img,.jow .ava{width:26px;height:26px;border-radius:50%;object-fit:cover}
.jow b{font-size:12px}
.jow span{font-size:10.5px}

/* ── WEEKEND (przebudowa 9.20) ─────────────────────────────────────────────
   Plan, nie ranking: jeden mecz wyróżniony na górze, reszta ułożona po dniach
   i godzinach jak rozkład jazdy. Powody są plakietkami, a nie listą zdań —
   pełne zdanie siedzi w `title` i pod hero. Twarze zawodników są pierwszym
   planem, bo to zakładka o ludziach, nie o klubach. */

/* Podchipy podzakładek — węższe od chipów zakładki wyżej, żeby nie robiły
   się dwa nierozróżnialne rzędy tego samego. */
.podchipy{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px}
.podchipy .chip{font-size:11.5px;padding:4px 10px}

/* ── KAMIENIE MILOWE ──────────────────────────────────────────────────────── */
.kamos{display:flex;flex-direction:column;gap:14px}
.kamdzien{border-left:2px solid var(--line);padding-left:14px;position:relative}
.kamdata{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim2);margin-bottom:7px}
.kamdzien::before{content:'';position:absolute;left:-5px;top:3px;width:8px;height:8px;border-radius:50%;background:var(--acc)}
.kam{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:9px 12px;margin-bottom:6px;cursor:pointer}
.kam:hover{border-color:var(--acc)}
.kamik{flex:none;opacity:.9}
.kamt{min-width:0;flex:1;font-size:12.5px;line-height:1.45}
.kamt b{display:block;font-size:13.5px;margin-bottom:1px}
.kamzak{flex:none;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim2);
  border:1px solid var(--line);border-radius:5px;padding:2px 6px;white-space:nowrap}

/* ── AKADEMIE ─────────────────────────────────────────────────────────────── */
.akalista{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.akaz{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer}
.akaz:hover{border-color:var(--acc)}
.akah{display:flex;align-items:center;gap:9px;padding:10px 12px}
.akah img,.akah .ava{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:none}
.akan{min-width:0;flex:1}
.akan b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.akan span{font-size:11px}
.akaszcz{flex:none;font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  background:#a78bfa22;color:var(--pur);border-radius:5px;padding:2px 6px}
.akaklub{display:flex;align-items:center;gap:7px;padding:0 12px 9px;font-size:12px}
.akaklub b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.akaklub span{font-size:10.5px;margin-left:auto;text-align:right}
.akadwie{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.akakol{padding:8px 12px;border-right:1px solid var(--line)}
.akakol:last-child{border-right:0}
.akakol small{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim2)}
.akakol b{display:block;font-size:13px;margin:2px 0}
.akakol span{font-size:11px;color:var(--dim)}
.akakol.jest{background:rgba(126,240,168,.07)}
.akakol.jest b{color:#7ef0a8}
.akastan{padding:7px 12px;font-size:11px;border-top:1px solid var(--line);background:var(--card2)}

/* ── DZWONEK I WARSTWA POWIADOMIEŃ ────────────────────────────────────────── */
.dzwonek{position:relative;background:transparent;border:1px solid var(--line);border-radius:9px;
  width:34px;height:34px;cursor:pointer;color:var(--dim);font-size:15px;line-height:1}
.dzwonek:hover{border-color:var(--acc);color:var(--tx)}
.dzwonek.ma{border-color:#f5c518}
.dzw-licznik{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:999px;
  background:#f5c518;color:#10131a;font-style:normal;font-size:10px;font-weight:800;
  display:flex;align-items:center;justify-content:center;padding:0 4px}
/* Tak samo jak przy warstwie wyzej: `display:flex` bije `[hidden]`, wiec bez
   tej linijki dzwonek zawsze pokazywalby zolta plakietke z zerem. */
.dzw-licznik[hidden]{display:none}
.powwarstwa{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.35);display:flex;
  justify-content:flex-end;align-items:flex-start;padding:56px 12px 12px}
/* KRYTYCZNE. `display:flex` w regule wyzej bije domyslne `[hidden]`, wiec bez
   tej linijki zamknieta warstwa dalej lezy na calej stronie i przechwytuje
   KAZDE klikniecie — nawigacja przestaje dzialac, a nic nie widac, bo warstwa
   jest przezroczysta w miejscu panelu. Wylapal to test interfejsu: przycisk
   zakladki byl "visible, enabled and stable", a mimo to nie dawal sie kliknac. */
.powwarstwa[hidden]{display:none}
.powpanel{width:min(420px,100%);max-height:calc(100vh - 70px);overflow:auto;background:var(--card);
  border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.5)}
/* Układ listy powiadomień mieszka w bloku 9.23 na końcu arkusza — tutaj
   zostaje tylko to, czego tamten nie dotyka. */
.powust{border-bottom:1px solid var(--line);padding:8px 14px}
.powust summary{cursor:pointer;font-size:12px;color:var(--dim);padding:3px 0}
.powpusty{padding:22px 16px;text-align:center;font-size:13px}
.powpusty .dim2{margin-top:6px;font-size:12px;line-height:1.5}

@media (max-width:620px){
  .amapa{gap:3px}
  .akraj .an{font-size:13px}
  .akraj .af{font-size:12px}
  .akraj .ak{font-size:7.5px}
  .boiskoxi{min-height:auto;padding:12px 6px}
  .jkarta{width:88px;padding:6px 4px}
  .jfoto img,.jfoto .ava{width:34px;height:34px}
  .jnaz{font-size:10px}
  .akadwie{grid-template-columns:1fr}
  .akakol{border-right:0;border-bottom:1px solid var(--line)}
  .powwarstwa{padding:52px 6px 6px}
}

/* ── NEWSY (przebudowa 9.21) ───────────────────────────────────────────────
   Zakładka przestaje być czytnikiem RSS: przy nagłówku widać twarze naszych
   zawodników, których rozpoznaliśmy w tekście, a ten sam temat z kilku
   portali jest jednym wpisem z listą źródeł. */
.nwdzien{margin-bottom:16px}
.nwdata{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim2);
  display:flex;align-items:baseline;gap:9px;border-bottom:1px solid var(--line);padding-bottom:6px}
.nwdata span{margin-left:auto;font-size:11px;letter-spacing:0;text-transform:none}
.nwlista{display:flex;flex-direction:column;gap:8px}
.nwk{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:11px 13px}
.nwk:hover{border-color:var(--line)}
/* News, w którym rozpoznaliśmy naszego — to jest sedno tej zakładki,
   więc musi być widać bez czytania. */
.nwk.onas{border-left:3px solid var(--acc);padding-left:11px}
.nwt{display:block;font-size:14.5px;font-weight:700;line-height:1.35;color:var(--tx);text-decoration:none}
.nwt:hover{color:var(--acc)}
.nwd{margin-top:4px;font-size:12px;color:var(--dim);line-height:1.45}
.nwosoby{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.nwos{display:inline-flex;align-items:center;gap:5px;background:rgba(74,124,255,.12);
  border:1px solid rgba(74,124,255,.3);border-radius:999px;padding:2px 10px 2px 2px;
  font-size:11px;cursor:pointer;color:var(--tx)}
.nwos:hover{border-color:var(--acc)}
.nwos img,.nwos .ava{width:20px;height:20px;border-radius:50%;object-fit:cover;flex:none}
/* Rozpoznany po samym nazwisku — pewność mniejsza, więc i plakietka słabsza. */
.nwos.luzny{background:var(--card2);border-style:dashed;border-color:var(--line);color:var(--dim)}
.nwkluby{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.nwklub{display:inline-flex;align-items:center;gap:5px;background:var(--card2);border:1px solid var(--line);
  border-radius:7px;padding:2px 8px;font-size:11px;color:var(--dim)}
.nwklub img{width:15px;height:15px;object-fit:contain}
.nwklub i{font-style:normal;opacity:.7;font-size:10px}
.nwm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px;font-size:10.5px;color:var(--dim2)}
.nwzr{font-weight:700;color:var(--dim);background:var(--card2);border-radius:5px;padding:2px 7px}
.nwkat{border:1px solid var(--line);border-radius:5px;padding:1px 6px}
.nwtakze{font-style:italic;cursor:help}
.nwm .lapki{margin-left:auto}

/* ══════════════════════════════════════════════════════════════════════════
   9.22 — STRONA GŁÓWNA, GOLE, ARCHIWUM, WYSZUKIWARKA, SKALA, KARIERA,
          PORÓWNYWARKA
   ══════════════════════════════════════════════════════════════════════════
   Jedna zasada na cały ten blok: [hidden] wygrywa z display.
   Dwa razy w tym projekcie warstwa z `display:flex` przykryła całą stronę
   i przechwytywała każde kliknięcie, mimo że miała atrybut `hidden` —
   raz powiadomienia, raz licznik dzwonka. Playwright pokazywał element jako
   „widoczny, włączony i stabilny", a mimo to nie dało się w nic trafić.
   Dlatego każda nowa warstwa dostaje tu jawną regułę [hidden]{display:none}.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── PASEK WYSZUKIWANIA W NAGŁÓWKU ──────────────────────────────────────── */
.szukajka{display:flex;align-items:center;gap:7px;background:var(--card);
  border:1px solid var(--line);border-radius:9px;padding:6px 10px;cursor:pointer;
  color:var(--dim2);font-size:12.5px;font-weight:600}
.szukajka:hover{border-color:var(--acc);color:var(--tx)}
.szk-txt{display:inline}
.szk-kbd{background:var(--bg2);border:1px solid var(--line);border-radius:5px;
  padding:1px 5px;font-size:10px;letter-spacing:.04em;color:var(--dim2)}
@media(max-width:720px){.szk-txt,.szk-kbd{display:none}.szukajka{padding:6px 8px}}

/* ── WARSTWA WYSZUKIWANIA ───────────────────────────────────────────────── */
.szwarstwa{position:fixed;inset:0;z-index:70;background:rgba(4,6,10,.62);
  backdrop-filter:blur(3px);display:flex;justify-content:center;padding:70px 12px 12px}
.szwarstwa[hidden]{display:none}
.szpanel{width:min(660px,100%);max-height:min(72vh,640px);display:flex;flex-direction:column;
  background:var(--bg2);border:1px solid var(--line);border-radius:14px;overflow:hidden;
  box-shadow:0 24px 60px rgba(0,0,0,.55)}
.szgora{display:flex;align-items:center;gap:9px;padding:11px 13px;border-bottom:1px solid var(--line)}
.szlupa{font-size:16px;opacity:.8}
#szpole{flex:1;background:transparent;border:0;outline:none;font-size:16px;font-weight:600}
.szwyniki{overflow-y:auto;padding:6px}
.szpusto{padding:26px 18px;text-align:center;color:var(--dim2);font-size:12.5px;line-height:1.6}
.szgrupa h5{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--dim2);
  padding:8px 10px 4px;font-weight:800}
.szw{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;cursor:pointer}
.szw:hover,.szw.sel{background:var(--card2)}
.szw.sel{outline:1px solid var(--acc)}
.szw.nieaktywny{opacity:.35;cursor:default}
.szwi{width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center}
.szwi img{width:30px;height:30px;border-radius:50%;object-fit:cover;background:var(--card)}
.szwi .herb{width:24px;height:24px;border-radius:0}
.szflaga{font-size:19px}
.szwt{min-width:0;flex:1;display:flex;flex-direction:column;line-height:1.25}
.szwt b{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.szwt em{font-size:11px;font-style:normal;color:var(--dim2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.szwr{font-size:10px;color:var(--dim2);text-transform:uppercase;letter-spacing:.06em;flex:none}
.szstopka{border-top:1px solid var(--line);padding:7px 12px;font-size:10.5px;color:var(--dim2);
  display:flex;align-items:center;gap:5px}
.szstopka kbd{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:10px}
body.bezscroll{overflow:hidden}

/* ── STRONA GŁÓWNA „DZIŚ" ───────────────────────────────────────────────── */
.dzpasek{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:14px}
.dzpasek>div{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);
  border-radius:12px;padding:11px 13px;text-align:center}
.dzpasek b{display:block;font-size:27px;font-weight:850;line-height:1.1}
.dzpasek span{display:block;font-size:10.5px;color:var(--dim2);margin-top:3px}
.dzsek{margin:18px 0}
.dzsek>h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:17px;font-weight:800;
  margin-bottom:9px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.dzkiedy{background:var(--acc);color:#fff;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:800;
  text-transform:uppercase;letter-spacing:.05em}
.dzile{font-size:11.5px;font-weight:600;color:var(--dim2);margin-left:auto}
.dzile b{color:var(--ok)}
.zywo{color:var(--ok)}
/* ── ZAPROSZENIE DLA GOŚCIA NA „DZIŚ" (9.56.21) ───────────────────────────
   Sekcja jak każda inna na tej stronie — ten sam nagłówek, ten sam rytm.
   Jedyna różnica to delikatna ramka, żeby było widać, że to nie są dane,
   tylko rozmowa z czytelnikiem. Żadnego banera i żadnego koloru krzyczącego
   z góry strony. */
.dzzapro{border:1px solid var(--line);border-radius:12px;padding:14px 16px 12px;
  background:linear-gradient(180deg,rgba(255,255,255,.035),transparent 70%)}
.dzzapro>h2{border-bottom-color:transparent;padding-bottom:0;margin-bottom:6px}
.dzzapro p{font-size:13px;line-height:1.55;color:var(--dim);margin:0 0 10px;max-width:62ch}
.dzzapro .prof-drobne{margin:8px 0 0;font-size:11.5px}
.dzzapro #dzzapro-pkt{font-size:12.5px;margin-bottom:12px}
.dzzapro-guziki{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media (max-width:560px){
  .dzzapro{padding:12px 13px 10px}
  .dzzapro-guziki .btn-glowny{flex:1 1 100%}
}

.dzkam{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.dzkamw{display:inline-flex;align-items:center;gap:6px;background:rgba(245,197,66,.09);
  border:1px solid rgba(245,197,66,.3);border-radius:8px;padding:5px 10px;font-size:11.5px;
  color:var(--dim);cursor:pointer}
.dzkamw svg{width:15px;height:15px;flex:none}
.dzkamw b{color:var(--tx)}
.dzbohaterowie{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:9px}
.dzb{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px;
  display:flex;flex-direction:column;gap:7px;cursor:pointer}
.dzb:hover{border-color:var(--acc)}
.dzb.duzy{grid-column:span 2;background:linear-gradient(135deg,rgba(225,29,52,.12),var(--card))}
@media(max-width:620px){.dzb.duzy{grid-column:span 1}}
.dzbl{display:flex;align-items:center;gap:9px}
.dzbtwarz img,.dzbtwarz .ava{width:44px;height:44px;border-radius:50%;object-fit:cover}
.dzbkto{display:flex;flex-direction:column;min-width:0}
.dzbkto b{font-size:14.5px;font-weight:750}
.dzbkto span{font-size:11px;color:var(--dim2)}
.dzbco{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.dzbco svg{width:17px;height:17px}
.dzbop b{font-size:13px}
.dzbmin{font-size:11px;color:var(--dim2)}
.dzbmecz{font-size:12px;color:var(--dim)}
.dzbliga{display:block;font-size:10.5px;color:var(--dim2)}
.dzbwideo{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;background:rgba(167,139,250,.12);
  border:1px solid rgba(167,139,250,.4);border-radius:8px;padding:5px 11px;font-size:11.5px;
  font-weight:700;color:var(--pur);cursor:pointer}
.dzbwideo svg{width:15px;height:15px}
.dzbwideos{display:flex;flex-wrap:wrap;gap:6px}
.dzmecze{display:flex;flex-direction:column;gap:5px}
.dzm{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 11px;cursor:pointer}
.dzm:hover{border-color:var(--acc)}
.dzm.trwa{border-color:rgba(34,197,94,.45)}
.dzmgodz{font-size:12.5px;font-weight:700;color:var(--dim)}
.dzmdruzyny{display:flex;align-items:center;gap:6px;font-size:13px;flex-wrap:wrap}
.dzmdruzyny img{width:17px;height:17px;object-fit:contain}
.dzmwynik{background:var(--card2);border-radius:5px;padding:1px 7px;font-weight:800}
.dzmnasi{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.dzmz{display:inline-flex;align-items:center;gap:4px;background:var(--bg2);border-radius:20px;
  padding:2px 8px 2px 2px;font-size:11px}
.dzmz img,.dzmz .ava{width:18px;height:18px;border-radius:50%;object-fit:cover}
.dzmliga{font-size:10.5px;color:var(--dim2);text-align:right;max-width:170px}
.dznews{display:flex;flex-direction:column;gap:4px}
.dzn{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;text-decoration:none;
  color:inherit;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 11px}
.dzn:hover{border-color:var(--acc)}
.dznfoto img,.dznfoto .ava{width:30px;height:30px;border-radius:50%;object-fit:cover}
.dznt{font-size:13px;font-weight:650;grid-column:2}
.dznm{grid-column:2;font-size:10.5px;color:var(--dim2)}

/* ── ODTWARZACZ W OSOBNYM OKNIE (strona główna) ─────────────────────────── */
.wideobox{position:fixed;inset:0;z-index:75;background:rgba(4,6,10,.75);display:flex;
  align-items:center;justify-content:center;padding:14px}
.wideobox[hidden]{display:none}
.wbin{width:min(680px,100%);background:var(--bg2);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.wbh{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;
  border-bottom:1px solid var(--line);font-size:13px;font-weight:700}
.wbramka{background:#000;max-height:72vh;overflow-y:auto}
.wbramka iframe{width:100%;border:0;display:block}
.wbstopka{padding:8px 12px;font-size:10.5px;color:var(--dim2);line-height:1.5}

/* ── GOLE POLAKÓW ───────────────────────────────────────────────────────── */
.golnagl{margin-bottom:6px}
.golpod{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
@media(max-width:560px){.golpod{grid-template-columns:1fr}}
.golpodm{position:relative;background:linear-gradient(180deg,var(--card2),var(--card));
  border:1px solid var(--line);border-radius:12px;padding:14px 11px 11px;text-align:center;cursor:pointer}
.golpodm:hover{border-color:var(--acc)}
.golpodm.m1{border-color:rgba(245,197,66,.5);background:linear-gradient(180deg,rgba(245,197,66,.12),var(--card))}
.golpodn{position:absolute;top:7px;left:10px;font-size:12px;font-weight:850;color:var(--dim2)}
.golpodm img,.golpodm .ava{width:58px;height:58px;border-radius:50%;object-fit:cover;margin:0 auto 7px;display:block}
.golpodm b{display:block;font-size:14px;font-weight:750}
.golpodk{display:block;font-size:11px;color:var(--dim2);margin-bottom:5px}
.golpodw{display:block;font-size:32px;font-weight:850;line-height:1}
.golpodo{display:block;font-size:10.5px;color:var(--dim2);text-transform:uppercase;letter-spacing:.06em}
.golpodv{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:10.5px;color:var(--pur)}
.golpodv svg{width:13px;height:13px}
.golrt td .dim2{font-size:10.5px}
.golista{display:flex;flex-direction:column;gap:6px}
.golk{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(0,2fr) auto;gap:10px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:11px;padding:9px 11px}
.golk.zwideo{border-color:rgba(167,139,250,.32)}
.golk.gragra{border-color:var(--pur)}
.golkkto{display:flex;align-items:center;gap:9px;cursor:pointer;min-width:0}
.golkkto img,.golkkto .ava{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:none}
.golkkto b{display:block;font-size:13.5px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.golkkto span{display:block;font-size:11px;color:var(--dim2)}
.golkco{display:flex;flex-direction:column;gap:2px;min-width:0}
.golkzn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650}
.golkzn svg{width:17px;height:17px}
.golkzn s{text-decoration:none;color:var(--dim2);font-weight:700}
.golkmecz{font-size:12px;color:var(--dim);cursor:pointer}
.golkmecz:hover{text-decoration:underline}
.golkmecz b{color:var(--tx)}
.golkliga{font-size:10.5px;color:var(--dim2)}
.golkakcje{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
.golbtn{display:inline-flex;align-items:center;gap:6px;background:rgba(167,139,250,.14);
  border:1px solid rgba(167,139,250,.45);border-radius:9px;padding:7px 12px;font-size:12px;
  font-weight:700;color:var(--pur);cursor:pointer;white-space:nowrap}
.golbtn:hover{background:rgba(167,139,250,.24)}
.golbtn svg{width:15px;height:15px}
.golbtn.zewn{text-decoration:none;background:transparent;border-color:var(--line);color:var(--dim)}
.golkbrak{font-size:11px;color:var(--dim2)}
/* Ramka z filmem ma teraz dwie postacie (film / karta) — patrz blok 9.23. */
@media(max-width:700px){
  .golk{grid-template-columns:1fr}
  .golkakcje{justify-content:flex-start}
}

/* ── ARCHIWUM KOLEJKI ───────────────────────────────────────────────────── */
.archdni{display:flex;gap:4px;overflow-x:auto;padding:6px 2px 8px;scrollbar-width:thin}
.archd{flex:none;width:46px;display:flex;flex-direction:column;align-items:center;gap:3px;
  background:var(--card);border:1px solid var(--line);border-radius:9px;padding:6px 3px;cursor:pointer}
.archd:hover{border-color:var(--acc)}
.archd.on{border-color:var(--acc);background:var(--card2)}
.archdb{display:block;width:16px;border-radius:3px;background:var(--acc);opacity:.75}
.archd.on .archdb{opacity:1}
.archdd{font-size:10px;color:var(--dim)}
.archdi{font-size:10px;font-weight:800;color:var(--dim2)}
.archster{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;font-size:12px}
.archster input{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:5px 9px;
  color:var(--tx);font-size:12px}
.archkam{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:7px}
.archkamw{display:flex;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:9px 11px;cursor:pointer}
.archkamw:hover{border-color:var(--acc)}
.archkamw svg{width:18px;height:18px;flex:none;margin-top:2px}
.archkamw b{display:block;font-size:12.5px}
.archkamw span{display:block;font-size:11.5px;color:var(--dim)}
.archkamw em{display:block;font-size:10.5px;color:var(--dim2);font-style:normal;margin-top:3px}
.archmecze{display:flex;flex-direction:column;gap:5px}
.archm{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;background:var(--card);
  border:1px solid var(--line);border-radius:10px;padding:8px 11px;cursor:pointer}
.archm:hover{border-color:var(--acc)}
.archmg{font-size:12px;color:var(--dim2);font-weight:700}
.archmd{display:flex;align-items:center;gap:6px;font-size:13px;flex-wrap:wrap}
.archmd b{background:var(--card2);border-radius:5px;padding:1px 7px;font-weight:800}
.archmd .herb{width:17px;height:17px}
.archmn{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;grid-column:2}
.archmz{display:inline-flex;align-items:center;gap:4px;background:var(--bg2);border-radius:20px;
  padding:2px 8px 2px 2px;font-size:11px}
.archmz.gol{background:rgba(34,197,94,.14)}
.archmz img,.archmz .ava{width:18px;height:18px;border-radius:50%;object-fit:cover}
.archmz i{font-style:normal}
.archmz i.as{color:var(--blue);font-weight:800;font-size:10px}
.archmz em{font-style:normal;color:var(--dim2);font-size:10px}
.archml{font-size:10.5px;color:var(--dim2);text-align:right;max-width:170px}
@media(max-width:700px){.archm,.dzm{grid-template-columns:44px 1fr}.archml,.dzmliga{grid-column:2;text-align:left;max-width:none}}

/* ── SKALA (percentyle) ─────────────────────────────────────────────────── */
.skc{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:7px}
.skch{display:flex;align-items:baseline;gap:9px;margin-bottom:6px}
.skch b{font-size:13px}
.skcw{font-size:19px;font-weight:850;margin-left:auto}
.skp{display:grid;grid-template-columns:minmax(120px,1fr) minmax(90px,2fr) minmax(150px,1.6fr);
  gap:9px;align-items:center;padding:3px 0}
.skpo b{display:block;font-size:11.5px}
.skpo em{display:block;font-size:10px;color:var(--dim2);font-style:normal}
.skpt{position:relative;height:9px;background:var(--bg2);border-radius:5px;overflow:hidden}
.skpw{display:block;height:100%;border-radius:5px;background:var(--dim2)}
.skpw.top{background:var(--ok)}.skpw.wys{background:var(--blue)}
.skpw.sr{background:var(--warn)}.skpw.nis{background:var(--dim2)}
.skpmed{position:absolute;top:-2px;width:1px;height:13px;background:rgba(255,255,255,.35)}
.skpl{font-size:10px;color:var(--dim2);line-height:1.35}
.skpl b{display:inline-block;font-size:13px;margin-right:5px}
.skpl b.top{color:var(--ok)}.skpl b.wys{color:var(--blue)}
.skpl b.sr{color:var(--warn)}.skpl b.nis{color:var(--dim2)}
@media(max-width:640px){.skp{grid-template-columns:1fr;gap:3px}}

/* ── SEZON DO SEZONU ────────────────────────────────────────────────────── */
.kwbox{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px;margin-bottom:8px;
  overflow-x:auto}
.kw{width:100%;min-width:320px;height:auto;display:block}
.kw .kwg{fill:var(--ok)}
.kw .kwa{fill:var(--blue);opacity:.75}
.kw .kwl{fill:none;stroke:var(--warn);stroke-width:2;stroke-linejoin:round}
.kw .kwk{fill:var(--warn)}
.kw .kwos{stroke:var(--line);stroke-width:1}
.kw .kwx{fill:var(--dim2);font-size:10px}
.kw .kwy{fill:var(--ok);font-size:10px}
.kw .kwy2{fill:var(--warn);font-size:10px}
.kwleg{display:flex;gap:12px;flex-wrap:wrap;padding:6px 2px 0;font-size:10.5px;color:var(--dim2)}
.kwleg .lg::before{content:"";display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}
.kwleg .g::before{background:var(--ok)}
.kwleg .a::before{background:var(--blue)}
.kwleg .o::before{background:var(--warn);border-radius:50%}
.krek{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.krekw{background:rgba(245,197,66,.09);border:1px solid rgba(245,197,66,.28);border-radius:8px;
  padding:4px 9px;font-size:11.5px;color:var(--dim)}
.krekw b{color:var(--tx)}
.krt,.kkadra{margin-top:10px}
.krt h5,.kkadra h5{font-size:12px;font-weight:800;margin-bottom:5px;color:var(--dim)}

/* ── PORÓWNYWARKA ───────────────────────────────────────────────────────── */
.porh{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-bottom:12px}
.porg{text-align:center}
.porg img,.porg .ava{width:66px;height:66px;border-radius:50%;object-fit:cover;margin:0 auto 6px;display:block}
.porg b{display:block;font-size:15px;font-weight:800}
.porg span{display:block;font-size:11px;color:var(--dim2)}
.pork{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:3px}
.porvs{font-size:13px;font-weight:850;color:var(--dim2);background:var(--card);border:1px solid var(--line);
  border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center}
.porw2{display:flex;flex-direction:column;gap:3px}
.porw{display:grid;grid-template-columns:90px 1fr 90px;gap:9px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:9px;padding:7px 10px}
.porwl,.porwr{font-size:17px;font-weight:800;color:var(--dim)}
.porwr{text-align:right}
.porwl.lep,.porwr.lep{color:var(--ok)}
.porwl i,.porwr i{display:block;font-size:10px;font-style:normal;color:var(--dim2);font-weight:600}
.porws{text-align:center}
.porwn{display:block;font-size:11px;color:var(--dim2);margin-bottom:4px}
.porwb{display:flex;height:6px;border-radius:4px;overflow:hidden;background:var(--bg2)}
.porwb i.a{background:var(--acc)}
.porwb i.b{background:var(--blue)}
.porkrz{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
@media(max-width:700px){.porkrz{grid-template-columns:1fr}}
.porkrz h5{font-size:12px;font-weight:800;margin-bottom:5px}
.porakcje{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.porakcje .btn{margin-left:0}
.pakcje{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.pakcje .btn{margin-left:0}
.empty.mini{padding:14px;font-size:11.5px}

.nota-foto[hidden]{display:none}

/* ══════════════════════════════════════════════════════════════════════════
   9.23 — PLEBISCYT BRAMEK, PROFIL W ZAKŁADKACH, POWIADOMIENIA, RANKING UEFA
   ══════════════════════════════════════════════════════════════════════════ */

/* ── RAMKA Z FILMEM: DWIE POSTACIE ──────────────────────────────────────────
   Zgłoszenie: „trzeba to jakoś wyśrodkować, usunąć czarne pole".
   Wpis z X-a ma własną, stałą szerokość (~550 px) i sam się nie rozciąga —
   rozciągnięty na całą kartę zostawiał po prawej czarny pas na pół ekranu.
   Taka ramka jest więc wyśrodkowana i bez czarnego tła. Film (YouTube, mp4)
   zostaje jak był: pełna szerokość, 16:9, czarne tło — bo tak wygląda
   każdy odtwarzacz. */
.golkram{grid-column:1/-1;margin-top:8px;border-radius:10px;overflow:hidden}
.golkram.film{background:#000}
.golkram.karta{background:transparent;display:flex;flex-direction:column;align-items:center}
/* ── 9.32: TA REGULA MUSI STAC NA KONCU ────────────────────────────────────
   Byla wyzej, PRZED `.golkram.karta{display:flex}`. Ta sama specyficznosc
   (0,2,0), wiec wygrywala regula pozniejsza — i element z atrybutem `hidden`
   byl widoczny. Zmierzone: `<div class="golkram karta" hidden>` dawalo
   `display: flex`.

   Do 9.31 ratowal to wylacznie JavaScript, ktory przed ukryciem kasowal klase.
   To jest czwarte wystapienie tego samego bledu w tym projekcie (wczesniej
   `.powwarstwa`, `.dzw-licznik` i warstwa wyszukiwarki), wiec tym razem
   dokladamy `!important`: zadna przyszla regula z klasa juz tego nie przebije,
   niezaleznie od kolejnosci w pliku. */
.golkram[hidden]{display:none!important}
.golkram iframe{border:0;display:block;margin:0 auto;max-width:100%;color-scheme:dark}
.golkram.film iframe{max-height:70vh}
.golkramf{width:100%;background:var(--bg2);padding:7px 10px;font-size:10.5px;color:var(--dim2);
  display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.golkramf a{color:var(--blue)}
.wideobox.karta .wbramka{background:transparent;display:flex;justify-content:center}
.wideobox.karta .wbin{width:min(600px,100%)}

/* ── PLEBISCYT ──────────────────────────────────────────────────────────── */
.golpleb{background:linear-gradient(135deg,rgba(225,29,52,.14),var(--card));
  border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.golpleb h2{font-size:20px;font-weight:850;margin-bottom:5px}
.golplebo{font-size:12.5px;color:var(--dim);line-height:1.5;max-width:62ch}
.golplebs{display:flex;flex-wrap:wrap;gap:14px;margin-top:9px;font-size:12px;color:var(--dim2)}
.golplebs b{color:var(--tx);font-size:15px}
.golremis{color:var(--warn)}
.golk.lider{border-color:rgba(245,197,66,.5);background:linear-gradient(180deg,rgba(245,197,66,.09),var(--card))}
.golklider{grid-column:1/-1;font-size:11px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--warn)}
.golkstopka{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.golglos,.gollapka,.golkom{display:inline-flex;align-items:center;gap:6px;background:var(--bg2);
  border:1px solid var(--line);border-radius:9px;padding:6px 11px;font-size:12px;
  font-weight:650;color:var(--dim);cursor:pointer}
.golglos:hover,.gollapka:hover,.golkom:hover{border-color:var(--acc);color:var(--tx)}
.golglos i,.gollapka i,.golkom i{font-style:normal;font-weight:850;color:var(--tx)}
.golglos.moj{background:rgba(245,197,66,.14);border-color:var(--warn);color:var(--warn)}
.golglos.moj i{color:var(--warn)}
.gollapka.moj{background:rgba(34,197,94,.14);border-color:var(--ok);color:var(--ok)}
.gollapka.moj i{color:var(--ok)}
.golkom{margin-left:auto}
.golkkom{grid-column:1/-1;margin-top:8px;border-top:1px solid var(--line);padding-top:8px}
.golkkom[hidden]{display:none}

/* ── PROFIL: NAGŁÓWEK, KAFLE, ZAKŁADKI ─────────────────────────────────── */
.phd2{display:flex;gap:16px;align-items:flex-start;margin-bottom:10px}
.phd2f img,.phd2f .ava{width:96px;height:96px;border-radius:50%;object-fit:cover;
  border:3px solid var(--line);background:var(--card)}
.phd2t{min-width:0;flex:1}
.phd2t h2{font-size:25px;font-weight:850;line-height:1.15;margin-bottom:4px}
.phd2t .sub{font-size:12.5px;color:var(--dim);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.phd2t .mv{display:inline-block;background:#1f6feb;color:#fff;border-radius:7px;
  padding:1px 8px;font-size:11.5px;font-weight:800;margin:0}
.phd2k{display:flex;align-items:center;gap:7px;margin-top:7px;font-size:12px;
  background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.35);border-radius:9px;padding:5px 10px}
.phd2k svg{width:15px;height:15px;flex:none}
@media(max-width:520px){
  .phd2{gap:11px}
  .phd2f img,.phd2f .ava{width:66px;height:66px}
  .phd2t h2{font-size:20px}
}
.profkafle{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
@media(max-width:520px){.profkafle{grid-template-columns:repeat(2,1fr)}}
.pk{background:var(--card);border:1px solid var(--line);border-left-width:3px;
  border-radius:10px;padding:9px 11px}
.pk b{display:block;font-size:25px;font-weight:850;line-height:1.1}
.pk small{display:block;font-size:10.5px;color:var(--dim2);text-transform:uppercase;letter-spacing:.06em}
.pk small i{font-style:normal;text-transform:none;letter-spacing:0}
.pk-mecze{border-left-color:var(--dim2)}
.pk-zielony{border-left-color:var(--ok)}.pk-zielony b{color:var(--ok)}
.pk-niebieski{border-left-color:var(--blue)}.pk-niebieski b{color:var(--blue)}
.pk-zolty{border-left-color:var(--warn)}.pk-zolty b{color:var(--warn)}
.profskrot{display:grid;grid-template-columns:1fr;gap:5px;background:var(--card);
  border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:10px;cursor:pointer}
.profskrot:hover{border-color:var(--acc)}
.pskt{font-size:12.5px}
.pskb{display:block;height:7px;background:var(--bg2);border-radius:4px;overflow:hidden}
.pskb i{display:block;height:100%;border-radius:4px}
.pskb i.top{background:var(--ok)}.pskb i.wys{background:var(--blue)}
.pskb i.sr{background:var(--warn)}.pskb i.nis{background:var(--dim2)}
.pskl{font-size:10.5px;color:var(--dim2)}
.pskl.top{color:var(--ok)}.pskl.wys{color:var(--blue)}.pskl.sr{color:var(--warn)}
.profnast{font-size:12px;color:var(--dim);background:var(--card);border-left:3px solid var(--blue);
  border-radius:8px;padding:7px 11px;margin-bottom:10px}
.profzak{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);
  margin:12px 0 12px;padding-bottom:0;scrollbar-width:none}
.profzak::-webkit-scrollbar{display:none}
.pz{flex:none;background:transparent;border:0;border-bottom:2px solid transparent;
  padding:8px 13px;font-size:13px;font-weight:700;color:var(--dim2);cursor:pointer;white-space:nowrap}
.pz:hover{color:var(--tx)}
.pz.on{color:var(--tx);border-bottom-color:var(--acc)}
.pz i{font-style:normal;font-size:10.5px;margin-left:6px;background:var(--card2);
  border-radius:9px;padding:1px 6px;color:var(--dim2)}
.pzp[hidden]{display:none}
.profwidok{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;margin-bottom:10px}
.profwidok[hidden]{display:none}
.profwidokl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px;margin:7px 0}
.tabr tr.trwa td{background:rgba(239,68,68,.08)}

/* ── POWIADOMIENIA ─────────────────────────────────────────────────────── */
.powh{display:flex;align-items:center;gap:9px;padding-bottom:8px;border-bottom:1px solid var(--line);
  margin-bottom:8px}
.powh b{font-size:15px}
.powx{margin-left:auto;background:transparent;border:1px solid var(--line);border-radius:8px;
  width:30px;height:30px;font-size:14px;color:var(--dim);cursor:pointer;flex:none}
.powx:hover{border-color:var(--acc);color:var(--tx)}
.powdzien{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--dim2);
  font-weight:800;padding:10px 2px 4px;position:sticky;top:0;background:var(--bg2);z-index:1}
.powz{display:flex;gap:10px;padding:9px 10px;border-radius:10px;background:var(--card);
  border:1px solid var(--line);border-left-width:3px;margin-bottom:5px}
.powz.nowe{border-color:rgba(225,29,52,.45)}
.powz.przyszle{opacity:.75}
.powz.r-gol{border-left-color:var(--ok)}
.powz.r-asysta{border-left-color:var(--blue)}
.powz.r-kontuzja{border-left-color:var(--acc)}
.powz.r-kadra{border-left-color:var(--warn)}
.powz.r-transfer{border-left-color:var(--pur)}
.powz.r-wynik{border-left-color:var(--dim2)}
.powz.r-news{border-left-color:var(--blue)}
.powik{width:34px;height:34px;flex:none;display:flex;align-items:center;justify-content:center}
.powik img,.powik .ava{width:34px;height:34px;border-radius:50%;object-fit:cover}
.powik svg{width:19px;height:19px}
.powt{min-width:0;flex:1}
.powt b{font-size:13px}
.powt a{color:inherit;text-decoration:none}
.powt a:hover b{text-decoration:underline}
.powkiedy{font-size:10.5px;color:var(--dim2);margin-top:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.powrodz{background:var(--bg2);border-radius:5px;padding:1px 6px;font-weight:700}
.powakcje{display:flex;gap:5px;margin-top:6px}
.powakcje .btn{margin-left:0}

/* ── RANKING UEFA ──────────────────────────────────────────────────────── */
.uegora{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-bottom:10px}
.uepoz{flex:none;width:150px;background:linear-gradient(135deg,rgba(225,29,52,.16),var(--card));
  border:1px solid var(--line);border-radius:14px;padding:12px;text-align:center}
.uepoz span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim2)}
.uepoz b{display:block;font-size:52px;font-weight:850;line-height:1}
.uepoz i{display:block;font-style:normal;font-size:11px;color:var(--dim2)}
.uekafle{flex:1;min-width:240px;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.uekafle>div{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 11px}
.uekafle>div small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim2)}
.uekafle>div b{display:block;font-size:22px;font-weight:800;margin:2px 0}
.uedystans{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-bottom:14px}
.ued{background:var(--card);border:1px solid var(--line);border-left-width:3px;border-radius:10px;padding:9px 12px}
.ued.gora{border-left-color:var(--ok)}
.ued.dol{border-left-color:var(--warn)}
.ued span{display:block;font-size:10.5px;color:var(--dim2);text-transform:uppercase;letter-spacing:.06em}
.ued b{display:block;font-size:26px;font-weight:850;line-height:1.15}
.ued i{display:block;font-style:normal;font-size:11.5px;color:var(--dim)}
.uetab tr.uemy td{background:rgba(225,29,52,.12)}
.uetab tr.uemy b{color:var(--tx)}
.uesez{display:flex;gap:10px;align-items:flex-end;padding:8px 2px;overflow-x:auto}
.uess{flex:none;width:78px;text-align:center;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-end;gap:3px}
.uessb{display:block;width:28px;background:var(--dim2);border-radius:4px 4px 0 0;min-height:4px}
.uess.teraz .uessb{background:var(--acc)}
.uess b{font-size:12.5px;font-weight:800}
.uess i{font-style:normal;font-size:10.5px;color:var(--dim2)}

/* Dzwonek ponad warstwą powiadomień — patrz `powPrzelacz`. Sam `position`
   siedzi przy głównej regule `.dzwonek`, żeby układ tego przycisku był
   opisany w jednym miejscu. */
body.pow-otwarte #dzwonek{z-index:61}
body.pow-otwarte header{z-index:61}

/* ══════════════════════════════════════════════════════════════════════════
   9.24 — PANEL DOPASOWAŃ ZAWODNIKÓW
   ══════════════════════════════════════════════════════════════════════════ */
.pdop .admrzad{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}

.dopw{
  border:1px solid var(--line);border-radius:var(--r);
  background:var(--card);margin:8px 0;overflow:hidden;
}
.dopw.otw{border-color:var(--acc)}
.dopglowa{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:11px 13px;cursor:pointer;user-select:none;
}
.dopglowa:hover{background:var(--card2)}
.dopglowa b{font-size:15px}
.dopklub{color:var(--dim);font-size:13px}
.dopwiek{color:var(--dim2);font-size:12px}
.doparr{margin-left:auto;color:var(--dim2);font-size:18px;line-height:1;width:18px;text-align:center}
.doppowod{
  padding:0 13px 11px;color:var(--warn);font-size:12.5px;line-height:1.4;
}
.dopw.otw .doppowod{border-bottom:1px solid var(--line);padding-bottom:11px}

.dopsrodek{padding:12px 13px;background:var(--bg2)}
.dopsek{margin-bottom:16px}
.dopsek:last-child{margin-bottom:0}
.doptyt{
  font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--dim2);margin-bottom:7px;font-weight:600;
}

/* karta kandydata */
.dopkand{
  display:flex;align-items:center;gap:11px;
  padding:9px 11px;margin:6px 0;
  background:var(--card);border:1px solid var(--line);border-radius:9px;
}
.dopfoto{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:0 0 36px;background:var(--card2)}
.dopkinfo{flex:1 1 auto;min-width:0}
.dopkinfo b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dopmeta{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:3px;font-size:11.5px;color:var(--dim)}
.dopid{color:var(--dim2);font-variant-numeric:tabular-nums}
.doppkt{color:var(--blue);font-variant-numeric:tabular-nums}
.dopkand .btn{flex:0 0 auto}

/* odrzuceni */
.dopodrz{
  padding:8px 11px;margin:6px 0;font-size:13px;
  background:var(--card);border:1px solid var(--line);border-left:3px solid var(--dim2);
  border-radius:0 9px 9px 0;
}
.dopczemu{color:var(--dim);font-size:11.5px;margin:3px 0 6px}

/* formularze szukania */
.dopszuk label{
  display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dim2);margin:12px 0 5px;font-weight:600;
}
.dopszuk label:first-child{margin-top:0}
.doprzad{display:flex;gap:7px;flex-wrap:wrap}
.doprzad input{
  flex:1 1 190px;min-width:0;
  padding:8px 11px;border-radius:8px;
  background:var(--bg);border:1px solid var(--line);color:var(--tx);
}
.doprzad input:focus{outline:2px solid var(--acc);outline-offset:-1px;border-color:var(--acc)}
.doprzad .btn{flex:0 0 auto}
.dopnota{font-size:11.5px;color:var(--dim2);margin-top:5px;line-height:1.45}
.dopwyniki{margin-top:12px}
.dopwyniki:empty{display:none}

.btn.maly{padding:4px 9px;font-size:12px}
.btn.glowny{background:var(--acc);border-color:var(--acc);color:#fff}
.btn.glowny:hover{filter:brightness(1.12)}

@media (max-width:560px){
  .dopglowa{padding:10px 11px}
  .dopkand{flex-wrap:wrap}
  .dopkand .btn{width:100%;margin-top:6px}
  .doprzad input{flex:1 1 100%}
  .doprzad .btn{width:100%}
}

/* wybór klubu z listy (9.24) */
.doprzad input.waski{flex:0 1 150px}
.dopklubw{
  display:flex;align-items:center;gap:11px;cursor:pointer;
  padding:9px 11px;margin:6px 0;
  background:var(--card);border:1px solid var(--line);border-radius:9px;
}
.dopklubw:hover{background:var(--card2);border-color:var(--acc)}
.dopherb{width:30px;height:30px;object-fit:contain;flex:0 0 30px;display:block}
.doprez{color:var(--warn)}
.dopstrzalka{color:var(--dim2);font-size:20px;line-height:1;flex:0 0 auto}
@media (max-width:560px){ .doprzad input.waski{flex:1 1 100%} }

/* kontrola przyjętych dopasowań (9.24) */
.dopkontrola{
  border:1px solid var(--warn);border-radius:var(--r);
  background:rgba(250,204,21,.05);padding:12px 13px;margin:10px 0 14px;
}
.doptyt.alarm{color:var(--warn)}
.dopalarm{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:9px 11px;margin:6px 0;
  background:var(--card);border:1px solid var(--line);border-radius:9px;
}
.dopainfo{flex:1 1 240px;min-width:0}
.dopok{
  border-left:3px solid var(--ok);background:var(--card);
  padding:10px 13px;border-radius:0 9px 9px 0;margin:10px 0 14px;
  color:var(--dim);font-size:13px;
}

/* ══════════════════════════════════════════════════════════════════════════
   9.24 — TYPER
   ══════════════════════════════════════════════════════════════════════════ */
.typpusto{
  max-width:640px;margin:24px auto;padding:26px;text-align:center;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
}
.typpusto h3{margin-bottom:10px;font-size:19px}
.typpusto p{color:var(--dim);margin-bottom:8px;line-height:1.55}

.typglowa{
  display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;
  padding:16px 0 12px;border-bottom:2px solid var(--line);margin-bottom:16px;
}
.typtyt{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.typtyt h3{font-size:20px}
.typmeta{color:var(--dim);font-size:13px;margin-left:auto}
.typzn{
  font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;
  padding:3px 8px;border-radius:20px;white-space:nowrap;
}
.typzn.otw{background:rgba(34,197,94,.14);color:var(--ok)}
.typzn.zam{background:rgba(250,204,21,.14);color:var(--warn)}
.typzn.rozl{background:rgba(56,189,248,.14);color:var(--blue)}

.typzasady{
  background:var(--card);border-left:3px solid var(--acc);
  padding:14px 16px;border-radius:0 var(--r) var(--r) 0;margin-bottom:18px;
}
.typztyt{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--dim2);font-weight:700;margin-bottom:8px;
}
.typzasady p{font-size:13.5px;line-height:1.55;margin-bottom:6px}
.typcicho{color:var(--dim2);font-size:12.5px;line-height:1.5}

/* pytanie */
.typpytania{display:flex;flex-direction:column;gap:12px}
.typp{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;
}
.typp.rozl{border-color:var(--line)}
.typphead{display:flex;align-items:center;gap:12px;padding:13px 14px}
.typnr{
  flex:0 0 26px;width:26px;height:26px;border-radius:50%;
  background:var(--acc);color:#fff;font-weight:700;font-size:13px;
  display:flex;align-items:center;justify-content:center;
}
.typfoto{width:42px;height:42px;border-radius:50%;object-fit:cover;background:transparent}
.typpinfo{flex:1 1 auto;min-width:0}
.typtresc{font-size:15.5px;font-weight:600;line-height:1.3}
.typmecz{color:var(--dim);font-size:12.5px;margin-top:3px}
.typliga{color:var(--dim2);font-size:11.5px;margin-top:1px}

/* TAK / NIE */
.typopcje{display:flex;gap:10px;padding:0 14px 14px}
.typopcja{
  flex:1 1 0;min-width:0;cursor:pointer;position:relative;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:11px 8px;border-radius:10px;
  background:var(--bg2);border:2px solid var(--line);
  transition:border-color .12s,background .12s;
}
.typopcja:hover:not(:disabled){border-color:var(--dim2)}
.typopcja:disabled{cursor:default;opacity:.85}
.typopcja.wybrana{border-color:var(--acc);background:rgba(225,29,52,.12)}
.typopcja.trafna{border-color:var(--ok)}
.typopcja.pudlo{border-color:var(--acc);background:rgba(225,29,52,.07)}
.typoetk{font-weight:700;font-size:14px;letter-spacing:.05em}
.typkurs{font-size:12px;color:var(--blue);font-variant-numeric:tabular-nums}
.typudzial{font-size:10.5px;color:var(--dim2)}

.typwynik{
  padding:10px 14px;border-top:1px solid var(--line);
  background:var(--bg2);font-size:13px;color:var(--dim);
  display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;
}
.typwynik b{color:var(--tx)}
.typwynik.pas b{color:var(--warn)}
.typmoj{margin-left:auto;font-weight:700;color:var(--ok)}

/* wysyłka */
.typwyslij{
  margin:18px 0;padding:16px;border-radius:var(--r);
  background:var(--card);border:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;
}
.typpole{flex:1 1 200px;min-width:0}
.typpole label{
  display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dim2);margin-bottom:5px;font-weight:600;
}
.typpole input{
  width:100%;padding:9px 12px;border-radius:8px;
  background:var(--bg);border:1px solid var(--line);color:var(--tx);
}
.typpole input:focus{outline:2px solid var(--acc);outline-offset:-1px;border-color:var(--acc)}
.btn.duzy{padding:10px 22px;font-size:15px;font-weight:600}
.typlicz{flex:0 0 auto;color:var(--dim);font-size:12.5px;align-self:center}
.typjest,.typok,.typblad{flex:1 1 100%;font-size:12.5px;margin-top:2px}
.typjest{color:var(--dim2)}
.typok{color:var(--ok)}
.typblad{color:var(--acc)}

/* tabela */
.typtabela{margin-top:22px}
.typtab{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}
.typtab th,.typtab td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left}
.typtab th{
  font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--dim2);font-weight:600;
}
.typtab td.lb,.typtab th.lb{text-align:right;font-variant-numeric:tabular-nums}
.typtab td.mocno{font-weight:700;color:var(--blue)}
.typtab tbody tr:first-child td{color:var(--tx);font-weight:600}

@media (max-width:560px){
  .typmeta{margin-left:0;flex:1 1 100%}
  .typphead{padding:11px}
  .typopcje{padding:0 11px 11px}
  .typfoto{width:36px;height:36px;flex:0 0 36px}
  .typtresc{font-size:14.5px}
  .typwyslij .btn.duzy{width:100%}
}

/* ══════════════════════════════════════════════════════════════════════════
   9.24 — RANGA I SERIA
   ══════════════════════════════════════════════════════════════════════════ */
.rngbox{
  background:linear-gradient(180deg,var(--card2),var(--card));
  border:1px solid var(--line);border-radius:var(--r);
  padding:16px;margin:16px 0;
}
.rnggora{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.rngnazwa{font-size:20px;font-weight:700;line-height:1.1}
.rngopis{color:var(--dim);font-size:12.5px;margin-top:4px;max-width:42ch}
.rngpkt{margin-left:auto;text-align:right;flex:0 0 auto}
.rngpkt b{display:block;font-size:26px;line-height:1;color:var(--blue);font-variant-numeric:tabular-nums}
.rngpkt span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2)}
.rngpasek{height:6px;border-radius:4px;background:var(--bg);margin:12px 0 6px;overflow:hidden}
.rngpasek i{display:block;height:100%;background:var(--acc);border-radius:4px}
.rngdo{font-size:12px;color:var(--dim)}
.rngrozbicie{
  display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;
  font-size:12px;color:var(--dim2);
}
.rngrozbicie b{color:var(--tx);font-variant-numeric:tabular-nums}
.rngodz{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.rngodznaka{
  font-size:11px;padding:3px 9px;border-radius:20px;cursor:default;
  background:rgba(56,189,248,.12);color:var(--blue);border:1px solid rgba(56,189,248,.3);
}

/* ══════════════════════════════════════════════════════════════════════════
   9.58 — SZYLD GRY
   ══════════════════════════════════════════════════════════════════════════
   Znak + nazwa na górze ekranu każdej z trzech gier. Barwa szyldu to barwa
   gry i ta sama, którą gra posługuje się niżej — szyld jest legendą, nie
   ozdobą.

   `--znak-kontra` to biel znaku. Trzymamy ją w zmiennej, żeby ten sam plik
   SVG działał na granacie i na bieli (na jasnym tle wystarczy ustawić ją na
   granat). W hubie zostaje bielą.
   ══════════════════════════════════════════════════════════════════════════ */
:root{ --znak-kontra:#fff }

.szyld{
  display:flex;align-items:center;gap:16px;margin:4px 0 18px;
  padding-bottom:16px;border-bottom:1px solid var(--line);
}
.szyld-znak{width:58px;height:58px;flex:0 0 58px}
.szyld-tekst{min-width:0;line-height:1}
.szyld-m{display:block;font-size:12px;font-weight:600;letter-spacing:.2em}
.szyld-d{display:block;font-size:30px;font-weight:800;letter-spacing:-.01em;
  color:var(--tx);margin-top:5px}
.szyld-o2{display:block;font-size:12.5px;color:var(--dim);margin-top:9px}
.szyld.typ .szyld-m{color:var(--acc)}
.szyld.fan .szyld-m{color:var(--ok)}
.szyld.ds  .szyld-m{color:var(--blue)}

/* Flaga pod „O" w POLONIA — detal z oryginału. Trzyma się litery, nie
   odległości od krawędzi, więc nie rozjeżdża się przy innym stopniu pisma. */
.szyld-o{position:relative}
.szyld-flaga{
  position:absolute;left:50%;transform:translateX(-50%);bottom:-7px;
  width:17px;height:5px;border-radius:1px;
  background:linear-gradient(#f3f6fb 50%,#dc143c 50%);
  box-shadow:0 0 0 .5px rgba(255,255,255,.2);
}

@media (max-width:560px){
  .szyld{gap:12px;margin-bottom:14px;padding-bottom:12px}
  .szyld-znak{width:44px;height:44px;flex:0 0 44px}
  .szyld-d{font-size:24px}
  .szyld-o2{font-size:12px;margin-top:7px}
}

/* ══════════════════════════════════════════════════════════════════════════
   9.58 — DAILY STREAK
   ══════════════════════════════════════════════════════════════════════════
   Styl prowadzi JEDNA liczba: seria dni. Wszystko inne jest od niej
   wyraźnie mniejsze, bo to ona ma sprowadzić człowieka jutro.

   Strony boiska mają własne barwy i trzymają się ich wszędzie: ofensywa
   w akcencie serwisu, defensywa w błękicie. Ta sama para kolorów jest na
   slotach, na kafelkach kandydatów i w filtrze — żeby „dwa defensywne"
   dało się zobaczyć, a nie tylko przeczytać.
   ══════════════════════════════════════════════════════════════════════════ */
.dsgora{
  display:flex;gap:18px;align-items:center;flex-wrap:wrap;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:16px;margin:16px 0;
}
.dslicz{
  flex:0 0 96px;width:96px;height:96px;border-radius:var(--r);
  background:var(--bg2);border:2px solid var(--acc);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.dslicz b{font-size:40px;line-height:1;font-variant-numeric:tabular-nums}
.dslicz span{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--dim2);margin-top:3px}
.dsmeta{flex:1 1 240px;min-width:0;display:flex;flex-wrap:wrap;gap:6px 20px;font-size:12.5px;
  color:var(--dim2)}
.dsmeta b{color:var(--tx);font-variant-numeric:tabular-nums}

/* ── ZADANIE DNIA ──────────────────────────────────────────────────────── */
.dszad{margin:16px 0}
.dszad h3{font-size:17px;margin-bottom:3px}
.dspowod{font-size:12.5px;color:var(--dim2);margin-bottom:10px}

/* Slots. Puste są obrysowane kreską — pusty slot ma wyglądać na miejsce
   do wypełnienia, a nie na coś, co się zepsuło. */
.dssloty{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.dsslot{
  position:relative;padding:9px 11px;border-radius:9px;
  background:var(--bg2);border:2px dashed var(--line);min-height:62px;
}
.dsslot.pelny{border-style:solid}
.dsslot.ofensywa{border-color:rgba(225,29,52,.45)}
.dsslot.defensywa{border-color:rgba(56,189,248,.45)}
.dsslot.wolny{border-color:var(--line)}
.dsslotn{display:block;font-size:10.5px;letter-spacing:.04em;color:var(--dim2);
  text-transform:uppercase;margin-bottom:4px}
.dsslot b{font-size:13.5px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dsslotk{font-size:11px;color:var(--dim)}
.dsx{
  position:absolute;top:5px;right:6px;width:20px;height:20px;line-height:18px;
  border-radius:50%;border:1px solid var(--line);background:var(--card);
  color:var(--dim2);cursor:pointer;font-size:14px;padding:0;
}
.dsx:hover{border-color:var(--acc);color:var(--acc)}

/* ── ZASADY ────────────────────────────────────────────────────────────── */
.dszasady{margin:14px 0;font-size:13px;color:var(--dim);line-height:1.55}
.dsreg{margin:8px 0 0 0;padding-left:18px;font-size:12.5px}
.dsreg li{margin-bottom:5px}

/* ── WYNIK DNIA ────────────────────────────────────────────────────────── */
.dswynik{
  margin:14px 0;padding:11px 13px;border-radius:9px;
  background:var(--bg2);font-size:13px;color:var(--dim);border-left:3px solid var(--dim2);
}
.dswynik b{color:var(--tx);letter-spacing:.04em}
.dswynik.trafiony{border-left-color:var(--ok)}
.dswynik.trafiony b{color:var(--ok)}
.dswynik.pudlo{border-left-color:var(--acc)}
.dswynik.pudlo b{color:var(--acc)}
.dswynik.tarcza{border-left-color:var(--blue)}
.dswynik.tarcza b{color:var(--blue)}
.dswynik.pas{border-left-color:var(--warn)}
.dswynik.pas b{color:var(--warn)}

.dstypy{margin:10px 0}
.dstyp{font-size:12.5px;color:var(--dim);padding:5px 0;border-bottom:1px solid var(--line)}
.dstyp:last-child{border-bottom:0}
.dsznak{display:inline-block;width:18px;font-weight:700}
.dstyp.trafiony .dsznak{color:var(--ok)}
.dstyp.pudlo .dsznak{color:var(--acc)}
.dstyp.pas .dsznak{color:var(--warn)}

/* ── FILTR I LISTA KANDYDATÓW ──────────────────────────────────────────── */
.dsfiltr{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:14px 0 8px;
  font-size:11.5px}
.dsfiltr .pole.mini{flex:1 1 180px;min-width:140px}
.dslista{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));
  gap:8px;margin:8px 0 14px;max-height:420px;overflow-y:auto;padding-right:4px;
}
.dskand{
  text-align:left;cursor:pointer;padding:9px 11px;border-radius:9px;
  background:var(--bg2);border:2px solid var(--line);border-left-width:3px;
}
.dskand:hover{border-color:var(--dim2)}
.dskand.ofensywa{border-left-color:rgba(225,29,52,.55)}
.dskand.defensywa{border-left-color:var(--blue)}
.dskand.wybrany{border-color:var(--acc);background:rgba(225,29,52,.12)}
.dskn{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dskm{font-size:11.5px;color:var(--dim);margin-top:2px}
.dskg{font-size:11px;color:var(--dim2);margin-top:3px}
.dskw{font-size:10.5px;color:var(--dim2);margin-top:4px}
.dskw b{color:var(--blue)}

/* ── ILE TEN ZAWODNIK NAPRAWDĘ GRA ─────────────────────────────────────
   Na pomiarze z września połowa kandydatów nie wyszła na boisko, a 50 z 409
   nie zagrało w sezonie ANI MINUTY. Typ na takiego kończy się PAS-em niemal
   na pewno — czyli czytelnik traci dzień, nie wiedząc, że go traci.
   Dlatego to nie jest drobny druk: kafelek bez minut jest PRZYGASZONY,
   dokładnie tak, jak kontuzjowany w Fantasy. Nie chowamy go — ma być
   widoczny razem z powodem. */
.dsks{font-size:10.5px;margin-top:4px;color:var(--dim2)}
.dskand.szansa-duza .dsks{color:var(--ok)}
.dskand.szansa-zadna{opacity:.5;border-style:dashed}
.dskand.szansa-zadna .dsks{color:var(--acc)}
.dskand.szansa-zadna:hover{opacity:.8}

.dswyslij{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.dswyslij>div{flex:1 1 100%}
.dspauza{margin:14px 0;font-size:12px;color:var(--dim2);line-height:1.6}
.dstab{margin-top:20px}
.dstab .typztyt{margin-top:14px}

/* ── TWOJE OSTATNIE DNI ────────────────────────────────────────────────── */
.dshist{margin-top:20px}
.dshw{display:flex;gap:10px;align-items:baseline;font-size:12px;
  padding:5px 0;border-bottom:1px solid var(--line)}
.dshw.trafiony .dsznak{color:var(--ok)}
.dshw.pudlo .dsznak{color:var(--acc)}
.dshw.pas .dsznak{color:var(--warn)}
.dshd{flex:0 0 76px;color:var(--dim2);font-variant-numeric:tabular-nums}
.dshz{flex:1 1 140px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dshs{flex:2 1 200px;min-width:0}
.dshp{flex:0 0 64px;text-align:right;color:var(--dim2)}

@media (max-width:560px){
  .rngpkt{margin-left:0;text-align:left}
  .dslista{grid-template-columns:1fr;max-height:340px}
  .dswyslij .btn{width:100%}
  .dsgora{gap:12px}
  .dslicz{flex:0 0 76px;width:76px;height:76px}
  .dslicz b{font-size:32px}
  .dshs{display:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   9.24 — FANTASY POLONIA
   ══════════════════════════════════════════════════════════════════════════ */
.fantemat{
  background:rgba(167,139,250,.1);border-left:3px solid var(--pur);
  padding:10px 13px;border-radius:0 9px 9px 0;margin:12px 0;font-size:13px;
}
.fansklad{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:16px;margin:16px 0;
}
.fanliczniki{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.fanlicz{
  flex:1 1 100px;min-width:0;padding:10px 12px;border-radius:10px;
  background:var(--bg2);border:2px solid var(--line);text-align:center;
}
.fanlicz b{display:block;font-size:22px;line-height:1.1;font-variant-numeric:tabular-nums}
.fanlicz span{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2)}
.fanlicz.zle{border-color:var(--acc)}
.fanlicz.zle b{color:var(--acc)}
.fanlicz.dobrze{border-color:var(--ok)}
.fanlicz.dobrze b{color:var(--ok)}
.fanblad{
  background:rgba(225,29,52,.1);border-left:3px solid var(--acc);
  padding:9px 12px;border-radius:0 9px 9px 0;margin-bottom:12px;font-size:13px;
}

.fanmiejsca{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}








.fanzc .mv{color:var(--dim);font-size:10.5px}


.fanmini{
  width:24px;height:24px;border-radius:6px;cursor:pointer;flex:0 0 24px;
  background:var(--bg);border:1px solid var(--line);color:var(--dim);
  font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;
}
.fanmini:hover{border-color:var(--dim2)}
.fanmini.on{background:var(--acc);border-color:var(--acc);color:#fff}
.fanmini.usun{margin-left:auto}
.fanmini.usun:hover{border-color:var(--acc);color:var(--acc)}

/* ── PASEK TYGODNIA ────────────────────────────────────────
   Ten sam rytm w typerze i w fantasy, więc ten sam pasek. */
.tydzien{
  display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;
  background:var(--card2);border:1px solid var(--line);border-radius:10px;
  padding:10px 14px;margin:12px 0;font-size:12.5px;
}
.tydzien b{font-size:13px}
.tydzien span{color:var(--dim)}
.tydzien .tydzrytm{
  width:100%;color:var(--dim2);font-size:10.5px;
  letter-spacing:.03em;text-transform:uppercase;
}

.fanrynek{margin-top:20px}
.fanfiltry{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.fanfiltry input,.fanfiltry select{
  padding:8px 11px;border-radius:8px;
  background:var(--bg);border:1px solid var(--line);color:var(--tx);
}
.fanfiltry input{flex:1 1 200px;min-width:0}
.fanfiltry select{flex:0 1 170px}
.fanfiltry input:focus,.fanfiltry select:focus{outline:2px solid var(--acc);outline-offset:-1px}

.fanlista{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:9px;max-height:560px;overflow-y:auto;padding-right:4px;
}
.fanpoz{
  text-align:left;cursor:pointer;padding:9px 11px;border-radius:9px;
  background:var(--bg2);border:2px solid var(--line);
  display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto auto;
  gap:1px 8px;align-items:center;
}
.fanpoz:hover{border-color:var(--dim2)}
.fanpoz.wziety{border-color:var(--acc);background:rgba(225,29,52,.12)}
.fanpoz.kolizja,.fanpoz.drogi{opacity:.55}
.fanppoz{
  grid-row:1/3;font-size:10px;font-weight:700;letter-spacing:.04em;
  padding:3px 6px;border-radius:5px;background:var(--card2);color:var(--dim);
}
.fanpn{
  grid-column:3;display:flex;align-items:center;gap:6px;
  font-weight:600;font-size:13.5px;overflow:hidden;white-space:nowrap;
}
/* Cena zajmuje tylko pierwszy wiersz, żeby klub i liga miały pod nią pełną
   szerokość karty. Ściśnięte do jednej kolumny kończyły się „FC Port..." */
.fanpc{
  grid-row:1;grid-column:3;font-size:15px;font-weight:700;color:var(--blue);
  font-variant-numeric:tabular-nums;text-align:right;
}
.fanpk{grid-column:2/4;font-size:11px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fanpz{
  grid-column:1/3;font-size:10.5px;color:var(--dim2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
/* Grający mają się rzucać w oczy. Przy 129 zawodnikach i kilkunastu meczach
   krzyczenie czerwienia na każdego, kto nie gra, zamieniłoby ekran w alarm. */
.fangra{color:var(--blue);font-weight:600}
.fanniegra{color:var(--dim2);font-weight:600}
/* Wartość rynkowa stoi pod ceną — czytelnik ma widzieć, skąd cena się wzięła. */
.fanpw{grid-column:3;font-size:10px;color:var(--dim2);text-align:right;font-variant-numeric:tabular-nums}
.fanpuwaga{grid-column:1/4;font-size:10.5px;color:var(--warn);margin-top:2px}
/* Klub nie gra w tej kolejce — wolno go wziąć, ale niech to widać. */
.fanpoz.niegra{opacity:.66}
.fanptak{
  display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dim);
  flex:0 0 auto;cursor:pointer;user-select:none;white-space:nowrap;
}

.fanwynik{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:16px;margin:16px 0;
}
.fannota{font-size:12.5px;color:var(--dim);margin-bottom:6px}
/* 9.56.28 — ostrzeżenia po zapisie składu. Nie błąd (zapis przeszedł),
   więc nie czerwień; ale i nie szary przypis, bo chodzi o punkty. */
.fanostrz{margin-top:8px;padding:9px 11px;border-radius:8px;
  border:1px solid var(--ostrz-ram,#c9a227);background:var(--ostrz-tlo,rgba(201,162,39,.09));
  font-size:12.5px;line-height:1.45}
.fanostrz b{display:block;margin-bottom:4px}
.fanostrz ul{margin:0;padding-left:17px}
.fanostrz li{margin:2px 0}
/* 9.56.29 — cena szacowana. Gwiazdka ma być widoczna, ale nie krzyczeć:
   to jest przypis do liczby, nie ostrzeżenie. */
.fkcena .fkszac{font-style:normal;font-size:.62em;vertical-align:super;opacity:.75;margin-left:1px}
.fanb.szac{opacity:.85}

/* ── ZAPOWIEDŹ KADRY — KRÓTKO (9.56.30) ────────────────────────────────
   Pięć linijek, nie dwadzieścia osiem wierszy. Pełna lista powołań mieszka
   w zakładce „Nasi za granicą → Kadra" i prowadzi do niej przycisk. */
.zapkadra{margin:10px 0 16px;padding:12px 14px;border-radius:10px;
  border:1px solid var(--ramka,rgba(127,127,127,.22));background:var(--tlo2,rgba(127,127,127,.05))}
.zapkadra .zkgora{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}
.zapkadra .zkl{font-size:12px;color:var(--dim);background:var(--tlo3,rgba(127,127,127,.1));
  border-radius:999px;padding:3px 10px}
.zapkadra .zkl b{color:var(--tekst,inherit);font-size:13px}
.zapkadra .zkl.ub b{color:var(--zly,#c0504d)}
.zapkadra .zkzdanie{font-size:12.5px;line-height:1.5;margin-bottom:9px;color:var(--dim)}
.zapkadra .zkmecze{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}
.zapkadra .zkmecz{font-size:12.5px;padding:4px 9px;border-radius:7px;
  border:1px solid var(--ramka,rgba(127,127,127,.22))}
.zapkadra .zklinia{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;
  font-size:12.5px;margin-bottom:6px}
.zapkadra .zketyk{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dim2);min-width:62px}
.zapkadra .zketyk.ub{color:var(--zly,#c0504d);opacity:.85}
.zapkadra .zkpoz2{color:var(--dim)}
.zapkadra .zkpoz2 b{color:var(--tekst,inherit);font-weight:600}
.zapkadra .zkstopka{display:flex;flex-wrap:wrap;gap:9px;align-items:center;
  margin-top:10px;font-size:11px;color:var(--dim2);line-height:1.45}
.zapkadra .zkstopka span{flex:1 1 240px}
@media (max-width:560px){
  .zapkadra .zketyk{min-width:0;flex-basis:100%}
}

/* ── PIERWSZE WEJŚCIE (9.56.35) ─────────────────────────────────────────
   Pasek, nie zasłona: można przeczytać albo zignorować. Znika po kliknięciu
   i nie wraca. */
.witaj{position:relative;margin:0 0 14px;padding:15px 17px;border-radius:12px;
  border:1px solid var(--akcent-ram,rgba(220,38,52,.3));
  background:linear-gradient(180deg,rgba(220,38,52,.09),rgba(127,127,127,.04))}
.witaj-x{position:absolute;top:7px;right:9px;border:0;background:none;cursor:pointer;
  font-size:19px;line-height:1;color:var(--dim2);padding:4px 7px}
.witaj-x:hover{color:var(--tekst,inherit)}
.witaj-t{font-size:15px;font-weight:700;margin-bottom:5px}
.witaj p{margin:0 0 11px;font-size:13px;line-height:1.55;color:var(--dim)}
.witaj p b{color:var(--tekst,inherit)}
.witaj-d{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.witaj-b{display:block;text-align:left;cursor:pointer;padding:9px 11px;border-radius:9px;
  border:1px solid var(--ramka,rgba(127,127,127,.25));background:var(--tlo2,rgba(127,127,127,.06));
  color:inherit;font-family:inherit}
.witaj-b:hover{background:var(--tlo3,rgba(127,127,127,.14))}
.witaj-b b{display:block;font-size:13px;margin-bottom:2px}
.witaj-b span{display:block;font-size:11.5px;color:var(--dim2);line-height:1.4}

/* ── KOGO HUB NIE WIDZI (9.56.33) ──────────────────────────────────────
   Cztery grupy, bo „brak występów" znaczy cztery różne rzeczy i tylko dwie
   z nich są naszym błędem. Kolor niesie tę różnicę. */
.lukig{margin:10px 0 14px;padding:10px 12px;border-radius:9px;
  border-left:3px solid var(--ramka,rgba(127,127,127,.3));background:var(--tlo2,rgba(127,127,127,.05))}
.lukig.bezKlubu,.lukig.bezTerminarza{border-left-color:var(--zly,#c0504d)}
.lukig.nieGra{border-left-color:var(--ramka,rgba(127,127,127,.3));opacity:.82}
.lukit{font-size:13px;font-weight:700;margin-bottom:3px}
.lukit i{font-style:normal;font-weight:400;color:var(--dim2);margin-left:5px}
.lukio{font-size:12px;color:var(--dim);line-height:1.45;margin-bottom:4px}
.lukin{font-size:11.5px;color:var(--dim2);line-height:1.45;margin-bottom:7px}
.sprw.luka{display:grid;grid-template-columns:minmax(120px,1fr) minmax(110px,1fr) minmax(150px,1.3fr) auto;
  gap:8px 12px;align-items:baseline;padding:7px 10px}
.sprw.luka .sprdow{grid-column:1/-1;font-size:11.5px}
.sprw.luka .sprdow summary{cursor:pointer;color:var(--dim2)}
.sprw.luka .sprdow ul{margin:4px 0 0;padding-left:17px;color:var(--dim)}
.sprw.luka .sprdow i{opacity:.6;font-style:normal}
@media (max-width:620px){ .sprw.luka{grid-template-columns:1fr} }

/* ── ZAPOWIEDŹ: CZOŁÓWKA Z UZASADNIENIEM (9.56.32) ──────────────────────
   Pięć kart zamiast siedemdziesięciu wierszy. Ocena po lewej, powód pod
   nazwami, nasi z liczbami — i rachunek zwinięty, bo to przypis. */
.zaptyt .zapile{font-size:11px;color:var(--dim2);font-weight:400;margin-left:7px}
.zapwybor{display:grid;gap:9px;margin-bottom:12px}
.zapk{padding:12px 14px;border-radius:11px;
  border:1px solid var(--ramka,rgba(127,127,127,.22));background:var(--tlo2,rgba(127,127,127,.05))}
.zapk.pierwszy{border-color:var(--akcent-ram,rgba(220,38,52,.4));
  background:linear-gradient(180deg,rgba(220,38,52,.07),rgba(127,127,127,.04))}
.zapk-g{display:flex;gap:11px;align-items:center}
.zapk-w{flex:0 0 auto;min-width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  border-radius:9px;font-size:14px;font-weight:700;
  background:var(--tlo3,rgba(127,127,127,.13));color:var(--tekst,inherit)}
.zapk.pierwszy .zapk-w{background:var(--akcent,#dc2634);color:#fff}
.zapk-n{flex:1 1 auto;min-width:0;font-size:14px;line-height:1.3}
.zapk-l{display:block;font-size:11px;color:var(--dim2);margin-top:2px}
.zapk-k{flex:0 0 auto;font-size:11.5px;color:var(--dim)}
.zapk-p{font-size:12.5px;line-height:1.45;margin:8px 0 0;color:var(--tekst,inherit)}
.zapk-nasi{display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:7px;font-size:12px}
.zapk-z i{font-style:normal;color:var(--dim2);font-size:11px}
.zapk-ranni{margin-top:5px;font-size:11.5px;color:var(--zly,#c0504d);opacity:.85}
.zapk-r{margin-top:8px;font-size:11.5px}
.zapk-r summary{cursor:pointer;color:var(--dim2)}
.zkskl{display:grid;grid-template-columns:150px 1fr 34px;gap:8px;align-items:center;margin:3px 0}
.zkskl span{color:var(--dim)}
.zkskl i{display:block;height:5px;border-radius:3px;background:var(--tlo3,rgba(127,127,127,.18))}
.zkskl i b{display:block;height:100%;border-radius:3px;background:var(--akcent,#dc2634)}
.zkskl em{font-style:normal;color:var(--dim2);text-align:right}
.zapk-o{margin-top:7px;color:var(--dim2);line-height:1.45}
@media (max-width:560px){
  .zapk-k{display:none}
  .zkskl{grid-template-columns:110px 1fr 30px}
}

/* ── ZAPROSZENIE DO GRY (9.56.32) ───────────────────────────────────────
   Nie czerwony komunikat o porażce, tylko pudełko, które mówi, co się z gry
   ma. Ten sam wygląd w Serii, Typerze i Fantasy — trzy gry, jedna obietnica. */
.zapkonto{margin:14px 0;padding:14px 16px;border-radius:12px;
  border:1px solid var(--akcent-ram,rgba(220,38,52,.35));
  background:linear-gradient(180deg,rgba(220,38,52,.10),rgba(220,38,52,.03))}
.zapkonto-t{font-size:15px;font-weight:700;margin-bottom:5px}
.zapkonto-o{font-size:12.5px;line-height:1.5;color:var(--dim);margin-bottom:8px}
.zapkonto-l{margin:0 0 11px;padding-left:18px;font-size:12.5px;line-height:1.6}
.zapkonto-l li{margin:1px 0}
.zapkonto-r{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.zapkonto-r span{font-size:11.5px;color:var(--dim2);flex:1 1 220px}
@media (max-width:520px){ .zapkonto-r .btn{width:100%} }

/* ── PANEL: AKCEPTACJA I EDYCJA ZAWODNIKÓW (9.56.30) ────────────────────── */
.zawedyt{margin-top:12px}
.zawedyt .rz{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.zawedyt input{flex:1 1 260px}
.zawtraf{display:grid;gap:3px;margin-top:6px}
.zawtrafw{display:grid;grid-template-columns:minmax(120px,1.2fr) minmax(90px,1fr) auto;
  gap:10px;align-items:baseline;text-align:left;width:100%;cursor:pointer;
  padding:7px 10px;border-radius:7px;font-size:12.5px;
  border:1px solid var(--ramka,rgba(127,127,127,.22));background:var(--tlo2,rgba(127,127,127,.05));
  color:inherit;font-family:inherit}
.zawtrafw:hover{background:var(--tlo3,rgba(127,127,127,.13))}
.zawtrafw span{color:var(--dim)}
.zawtrafw i{color:var(--dim2);font-style:normal;font-size:11px;text-align:right}

.zawoczek{margin-top:14px}
.zawoczt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2);margin-bottom:5px}
.zawoczt i{font-style:normal;opacity:.6}
.zawoczl{display:grid;gap:4px;margin-top:7px}
.zawoczw{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(100px,1fr) minmax(90px,.9fr) auto;
  gap:10px;align-items:center;padding:7px 10px;border-radius:7px;font-size:12.5px;
  background:var(--tlo2,rgba(127,127,127,.06))}
.zawocznz{font-weight:600}
.zawoczk{color:var(--dim)}
.zawoczd{color:var(--dim2);font-size:11.5px}
.zawoczd i{font-style:normal;opacity:.75}
.zawoczb{text-align:right;white-space:nowrap}
@media (max-width:620px){
  .zawoczw{grid-template-columns:1fr auto}
  .zawoczd{grid-column:1/-1}
  .zawtrafw{grid-template-columns:1fr auto}
  .zawtrafw i{grid-column:1/-1;text-align:left}
}
.fanopis{font-size:12px;color:var(--dim)}
.fantabela{margin-top:22px}

@media (max-width:560px){
  .fanmiejsca{grid-template-columns:1fr 1fr}
  .fanlista{grid-template-columns:1fr;max-height:340px}
  .fanfiltry input,.fanfiltry select,.fanptak{flex:1 1 100%}
  .fanliczniki .fanlicz{flex:1 1 30%}
}

/* ── RADAR SELEKCJONERA: WAGA LIGI I ROZWIJANIE ──────────────────────────
   Waga stoi przy nazwie ligi, bo od 9.25 wchodzi do noty — czytelnik ma
   widzieć, skąd bierze się różnica, a nie zgadywać. */
.ligaw{font-size:11px;color:var(--dim);white-space:nowrap}
.ligaw b{color:var(--blue);font-variant-numeric:tabular-nums}
.modh .modile{
  font-size:11px;color:var(--dim2);font-weight:600;
  background:var(--card2);border-radius:99px;padding:1px 8px;margin-left:6px;
}
.radarwiecej{margin:6px 0 18px}

/* ── FANTASY: KONTUZJOWANEGO NIE WOLNO WZIĄĆ ─────────────────────────────
   Nie chowamy go z listy — czytelnik ma zobaczyć, że ten zawodnik istnieje
   i dlaczego jest niedostępny. Stąd przygaszenie plus powód wprost. */
.fanpoz.ranny{opacity:.5;border-style:dashed}
.fanpoz.ranny:hover{border-color:var(--acc)}
.fanpuwaga.kont{color:var(--acc);font-weight:700}

/* Ekstremalne statystyki (9.26) — przełącznik „suma / na 90 minut".
   Ten sam wygląd co paski modułów wyżej; osobna klasa tylko po to, żeby
   dało się go odsunąć od tabel bez ruszania tamtych. */
.ekspasek{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:10px 0 4px}
.ekswiecej{margin:6px 0 14px}

/* ── EKSTREMALNE STATYSTYKI 9.31: DZIAŁY, ZAKRES, DOCIĄGANIE ─────────────
   Kilkanaście tabel jedna pod drugą to ściana. Nagłówek działu jest
   wyraźniejszy od nagłówka tabeli, żeby dało się je odróżnić w przewijaniu. */
.ekspasek .chip i{font-style:normal;margin-left:5px;color:var(--dim2);
  font-size:10.5px;font-variant-numeric:tabular-nums}
.ekssep{width:1px;height:18px;background:var(--line);margin:0 4px}
.eksgrh{margin:26px 0 2px;font-size:15px;letter-spacing:-.01em;
  padding-top:14px;border-top:1px solid var(--line)}
.eksgrh span{font-size:11.5px;font-weight:500;color:var(--dim2);margin-left:8px}
.eksros,.ekszr{font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--dim2);border:1px solid var(--line);border-radius:999px;
  padding:1px 7px;vertical-align:middle;font-weight:600}
.ekszr{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 35%,transparent);cursor:help}
.eksdoc{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.eksdoc i{font-style:normal;font-size:11px;color:var(--dim2)}
.eksdoc .zle{color:var(--acc)}

/* ══════════════════════════════════════════════════════════════════════════
   9.26 — FANTASY POLONIA: PRZEJRZYŚCIEJ I W KOLORZE

   Zgłoszenie: „to nasz najmocniejszy produkt eksportowy — ma być
   przejrzyściej i więcej pokolorowania".

   Trzy rzeczy robią tu całą robotę:

     1. KOLOR POZYCJI — bursztyn, błękit, zieleń, czerwień. Ta sama barwa
        w slocie, na karcie i na plakietce, więc skład czyta się z odległości
        metra, bez czytania nazwisk.
     2. PASEK BUDŻETU zamiast trzech liczb w ramkach. Zielony, żółty przy
        85 procentach, czerwony po przekroczeniu — widać kątem oka.
     3. PLAKIETKI pod nazwiskiem: kiedy gra, co ma w sezonie, ile dał
        ostatnio, ilu graczy go wystawiło. Wszystko z danych, które już mamy.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── ZASADY JAKO PLAKIETKI ───────────────────────────────────────────── */
.fanzas{margin:14px 0}
.fanzaschipy{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}
.fanchip{
  display:flex;flex-direction:column;justify-content:center;gap:1px;
  padding:7px 13px;border-radius:10px;background:var(--card2);
  border:1px solid var(--line);border-left:3px solid var(--dim2);
}
.fanchip b{font-size:14px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.fanchip span{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2)}
.fanchip.pom{border-left-color:var(--poz-pom)} .fanchip.pom b{color:var(--poz-pom)}
.fanchip.br{border-left-color:var(--poz-br)}   .fanchip.br b{color:var(--poz-br)}
.fanchip.nap{border-left-color:var(--poz-nap)} .fanchip.nap b{color:var(--poz-nap)}
.fanchip.cena{border-left-color:var(--blue)}   .fanchip.cena b{color:var(--blue)}
.fanchip.kap{border-left-color:var(--pur)}     .fanchip.kap b{color:var(--pur)}
.fanwiecej{
  align-self:center;background:transparent;border:1px dashed var(--line);
  color:var(--dim);border-radius:9px;padding:7px 12px;font-size:12px;cursor:pointer;
}
.fanwiecej:hover{color:var(--tx);border-color:var(--dim2)}
.fanzastresc{
  margin-top:10px;background:var(--card);border:1px solid var(--line);
  border-left:3px solid var(--acc);border-radius:0 10px 10px 0;padding:12px 15px;
}
.fanzastresc p{font-size:13px;line-height:1.55;color:var(--dim);margin-bottom:7px}
.fanzastresc p:last-child{margin-bottom:0}
.fanzastresc b{color:var(--tx)}

/* ── PASEK BUDŻETU ───────────────────────────────────────────────────── */
.fanbudzet{
  background:var(--bg2);border:1px solid var(--line);border-radius:12px;
  padding:13px 15px;margin-bottom:14px;--stan:var(--ok);
}
.fanbudzet.ciasno{--stan:var(--warn)}
.fanbudzet.zle{--stan:var(--acc)}
.fanbgora{display:flex;align-items:baseline;gap:4px;margin-bottom:8px;flex-wrap:wrap}
.fanbgora b{font-size:26px;font-weight:850;line-height:1;color:var(--stan);font-variant-numeric:tabular-nums}
.fanbgora span{font-size:13px;color:var(--dim)}
.fanbgora em{margin-left:auto;font-style:normal;font-size:12px;color:var(--stan);font-weight:650}
.fanbar{height:9px;border-radius:99px;background:var(--card2);overflow:hidden}
.fanbar i{
  display:block;height:100%;border-radius:99px;background:var(--stan);
  transition:width .25s ease;
}
.fandol{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.fanpigula{
  font-size:11.5px;padding:4px 10px;border-radius:99px;
  background:var(--card2);color:var(--dim);border:1px solid var(--line);
}
.fanpigula.ok{color:var(--ok);border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.1)}
.fanpigula.zle{color:var(--acc);border-color:rgba(225,29,52,.4);background:rgba(225,29,52,.1)}
.fanpigula.kap{color:var(--pur);border-color:rgba(167,139,250,.4);background:rgba(167,139,250,.1)}






.fancena{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.fancena.tanio{color:var(--ok)} .fancena.srednio{color:var(--warn)} .fancena.drogo{color:var(--poz-nap)}

/* ── AWATAR ──────────────────────────────────────────────────────────── */
.fanava{
  width:26px;height:26px;border-radius:50%;flex:0 0 26px;object-fit:cover;
  background:var(--card2);border:1.5px solid color-mix(in srgb,var(--poz,var(--dim2)) 60%,transparent);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:9.5px;font-weight:800;color:var(--dim);letter-spacing:.02em;
}
.fanava.pusta{border-style:dashed}

/* ── KARTA W RYNKU ───────────────────────────────────────────────────── */
.fanpoz{
  grid-template-columns:auto auto 1fr auto;
  border-left-width:4px;border-left-color:color-mix(in srgb,var(--poz) 70%,transparent);
  padding:10px 12px;gap:2px 9px;
}
.fanpoz:hover{border-color:var(--dim2);border-left-color:var(--poz);background:var(--card2)}
.fanpoz .fanava{grid-row:1/3}
.fanppoz{
  grid-row:1/3;font-size:9.5px;font-weight:800;letter-spacing:.04em;
  padding:3px 6px;border-radius:5px;align-self:center;
  background:color-mix(in srgb,var(--poz) 18%,transparent);color:var(--poz);
}
.fanwzn{
  font-size:9px;font-weight:900;flex:0 0 auto;
  background:var(--acc);color:#fff;width:15px;height:15px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
}
.fanpk{grid-column:3;grid-row:2}
.fanpc{
  grid-row:1;grid-column:4;font-size:17px;font-weight:850;
  font-variant-numeric:tabular-nums;text-align:right;color:var(--blue);
}
.fanpc.tanio{color:var(--ok)} .fanpc.srednio{color:var(--warn)} .fanpc.drogo{color:var(--poz-nap)}
.fanpw{grid-column:4;grid-row:2}
.fanpoz.wziety{
  border-color:var(--acc);
  background:linear-gradient(180deg,rgba(225,29,52,.16),transparent 75%),var(--card2);
}
.fanpoz.ranny{opacity:.72;filter:saturate(.6)}

/* ── PLAKIETKI POD NAZWISKIEM ────────────────────────────────────────── */
.fanbadge{grid-column:1/5;display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.fanb{
  font-style:normal;font-size:10px;font-weight:650;padding:2.5px 7px;border-radius:99px;
  background:var(--card2);color:var(--dim);white-space:nowrap;
}
.fanb.gra{background:rgba(34,197,94,.14);color:var(--ok)}
.fanb.pauza{background:var(--card2);color:var(--dim2)}
.fanb.kont{background:rgba(225,29,52,.16);color:#fda4af}
.fanb.ga{background:rgba(56,189,248,.14);color:var(--blue)}
.fanb.ocena{background:rgba(148,163,184,.12)}
.fanb.ocena.wys{background:rgba(34,197,94,.14);color:var(--ok)}
.fanb.ocena.nis{color:var(--dim2)}
.fanb.pkt{background:rgba(250,204,21,.14);color:var(--warn)}
.fanb.pkt.wys{background:rgba(250,204,21,.22);color:#fde047}
.fanb.pkt.nis{background:var(--card2);color:var(--dim2)}
.fanb.pop{background:rgba(167,139,250,.16);color:var(--pur)}

@media (max-width:560px){
  .fanlista{grid-template-columns:1fr;max-height:420px}
  .fanbgora b{font-size:22px}
  .fanchip{flex:1 1 calc(50% - 8px)}
}

/* ══════════════════════════════════════════════════════════════════════════
   9.26 — TYPER: KOLOR, RODZAJ PYTANIA I ROZKŁAD NA ŻYWO

   Sześć identycznych szarych kart czytało się jak formularz w urzędzie.
   Teraz każde pytanie nosi barwę swojego rodzaju (skład błękit, gol
   czerwień, czyste konto zieleń), kurs stoi na przycisku jako główna
   liczba, a pod nim widać, ilu graczy wybrało tak samo — także w trakcie
   kolejki, bo bez tego zasada „im mniej osób, tym więcej punktów" jest
   deklaracją, a nie mechaniką.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── PASEK POSTĘPU KUPONU ────────────────────────────────────────────── */
.typpostep{
  background:var(--bg2);border:1px solid var(--line);border-radius:12px;
  padding:12px 15px;margin:14px 0;--stan:var(--blue);
}
.typpostep.pelny{--stan:var(--ok)}
.typpgora{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.typpgora b{font-size:20px;font-weight:850;color:var(--stan);font-variant-numeric:tabular-nums}
.typpgora span{font-size:12.5px;color:var(--dim)}
.typpgora em{margin-left:auto;font-style:normal;font-size:11.5px;color:var(--dim2)}
.typpostep .fanbar i{background:var(--stan)}

/* ── KARTA PYTANIA ───────────────────────────────────────────────────── */
.typp{--rodz:var(--dim2);border-left:4px solid color-mix(in srgb,var(--rodz) 65%,transparent)}
.typp.sklad{--rodz:var(--poz-obr)}
.typp.punkt{--rodz:var(--poz-nap)}
.typp.czyste{--rodz:var(--poz-pom)}
.typp.odpowiedziane{background:linear-gradient(90deg,color-mix(in srgb,var(--rodz) 7%,transparent),transparent 40%),var(--card)}
.typnr{background:var(--rodz);color:#0b0e14}
.typrodzaj{
  font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--rodz);margin-bottom:2px;
}
.typkiedy{
  flex:0 0 auto;align-self:flex-start;font-size:11px;color:var(--dim);
  background:var(--card2);border:1px solid var(--line);
  padding:4px 9px;border-radius:99px;white-space:nowrap;
}

/* ── TAK / NIE ───────────────────────────────────────────────────────── */
.typopcja{--o:var(--dim2)}
.typopcja.tak{--o:var(--ok)}
.typopcja.nie{--o:var(--poz-nap)}
.typopcja:hover:not(:disabled){border-color:color-mix(in srgb,var(--o) 60%,transparent)}
.typopcja .typoetk{color:var(--o)}
.typopcja.wybrana{
  border-color:var(--o);
  background:linear-gradient(180deg,color-mix(in srgb,var(--o) 20%,transparent),transparent),var(--card2);
}
.typopcja.wybrana::after{
  content:'✓';position:absolute;top:5px;right:8px;font-size:11px;color:var(--o);font-weight:800;
}
.typopcja.trafna{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok) inset}
.typopcja.pudlo{border-color:var(--acc);background:rgba(225,29,52,.09)}
.typkurs{font-size:16px;font-weight:850;color:var(--tx)}
/* Pasek pod procentem pokazuje, gdzie stoi tłum — jedno spojrzenie
   zamiast czytania dwóch liczb i porównywania ich w głowie. */
.typudzial{
  width:100%;font-size:10px;color:var(--dim2);position:relative;
  padding-top:5px;display:block;text-align:center;
}
.typudzial i{
  display:block;height:3px;border-radius:99px;margin:0 auto 4px;
  background:color-mix(in srgb,var(--o) 70%,transparent);min-width:2px;
}
.typudzial b{color:var(--dim);font-variant-numeric:tabular-nums}
.typnazywo{
  padding:0 14px 12px;font-size:11px;color:var(--dim2);
}
/* 9.56.29 — podstawa kursu liczonego z naszych danych. Nie „na żywo
   z kuponów", więc i nie ten sam ton: to jest rachunek, nie głosowanie. */
.typnazywo.zdanych{line-height:1.45}
.typnazywo.zdanych b{color:var(--tekst,inherit)}

@media (max-width:560px){
  .typkiedy{display:none}
  .typpgora em{width:100%;margin-left:0}
}

/* ── ALGORYTM PRZEWIDYWAŃ (9.26) ─────────────────────────────────────────
   Trzy procenty to cała treść tej zakładki, więc dostają pasek na pełną
   szerokość: błękit gospodarz, szarość remis, róż goście. Reszta liczb
   to uzasadnienie i stoi niżej, drobniej. */
.przk{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:14px 16px;margin-bottom:12px;
}
.przgora{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.przliga{font-size:11px;color:var(--dim)}
.przliga b{color:var(--blue);font-variant-numeric:tabular-nums}
.przkiedy{font-size:11px;color:var(--dim2)}
.przmecz{display:flex;align-items:flex-start;gap:12px;margin-bottom:11px}
.przdruz{flex:1 1 0;min-width:0;font-weight:700;font-size:15px;line-height:1.25}
.przdruz.pr{text-align:right}
.przdruz em{display:block;font-style:normal;font-size:11px;color:var(--dim);font-weight:500;margin-top:2px}
.przvs{flex:0 0 auto;color:var(--dim2);font-size:13px;padding-top:2px}
.przform{display:inline-flex;gap:2px;margin-top:4px}
.przdruz.pr .przform{justify-content:flex-end;width:100%}
.przform i{
  font-style:normal;font-size:8.5px;font-weight:800;width:14px;height:14px;border-radius:4px;
  display:inline-flex;align-items:center;justify-content:center;
}
.przform i.w{background:rgba(34,197,94,.2);color:var(--ok)}
.przform i.r{background:rgba(148,163,184,.18);color:var(--dim)}
.przform i.p{background:rgba(225,29,52,.18);color:#fda4af}
.przbar{display:flex;height:26px;border-radius:8px;overflow:hidden;background:var(--bg2)}
.przbar i{
  font-style:normal;font-size:11px;font-weight:800;display:flex;align-items:center;
  justify-content:center;color:#0b0e14;min-width:0;overflow:hidden;
}
.przbar i.g{background:var(--blue)}
.przbar i.r{background:#64748b;color:#e9edf5}
.przbar i.w{background:var(--poz-nap);color:#fff}
.przlegenda{display:flex;justify-content:space-between;font-size:9.5px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--dim2);margin-top:4px}
.przlegenda span:nth-child(2){flex:0 0 auto}
.przzdanie{margin-top:10px;font-size:13.5px;font-weight:650}
.przzdanie.pewniak{color:var(--ok)}
.przzdanie.faworyt{color:var(--blue)}
.przzdanie.otwarty,.przzdanie.remis{color:var(--warn)}
.przchipy{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.przb{
  font-style:normal;font-size:10.5px;padding:3px 8px;border-radius:99px;
  background:var(--card2);color:var(--dim);
}
.przb.czyste{background:rgba(34,197,94,.13);color:var(--ok)}
.przynasi{margin-top:10px;font-size:12px;color:var(--dim);display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.przn{
  background:rgba(225,29,52,.12);color:#fda4af;border-radius:99px;
  padding:3px 9px;font-size:11.5px;font-weight:650;
}
.przn em{font-style:normal;color:var(--dim2);font-size:9.5px}
.przh2h{margin-top:8px;font-size:11px;color:var(--dim2);display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:560px){
  .przdruz{font-size:13.5px}
  .przbar{height:22px}
}
.typkurs.stat{color:var(--dim2);font-weight:700}
.typudzial.cicho{color:var(--dim2);opacity:.75}

.fanmiejsca{grid-template-columns:repeat(auto-fit,minmax(172px,1fr))}







/* ══════════════════════════════════════════════════════════════════════════
   9.26 — SKŁAD JAKO KARTY KOLEKCJONERSKIE („PROPOZYCJA B")

   Sześć pionowych kart w dwóch rzędach po trzy. Każda niesie poświatę
   w kolorze pozycji, zdjęcie wychodzące poza górną krawędź i cenę jako
   największą liczbę — bo w budżecie 40 mln to cena jest decyzją.

   Karta od 11 mln dostaje połysk: przy takiej cenie jeden zawodnik zjada
   ponad ćwierć puli, więc ma wyglądać na wybór, a nie na pozycję z listy.
   Animacja wyłącza się, gdy system prosi o ograniczenie ruchu.
   ══════════════════════════════════════════════════════════════════════════ */

.fanmiejsca{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px 12px;margin:30px 0 8px;
}
.fkarta{
  position:relative;border-radius:14px;padding:28px 12px 14px;
  min-height:206px;display:flex;flex-direction:column;align-items:center;
  text-align:center;
  background:linear-gradient(180deg,color-mix(in srgb,var(--poz) 22%,var(--card2)) 0%,
    var(--card) 42%,var(--bg2) 100%);
  border:1px solid color-mix(in srgb,var(--poz) 40%,var(--line));
  box-shadow:0 10px 26px -18px color-mix(in srgb,var(--poz) 80%,transparent);
  overflow:visible;
}
/* Pusta karta: przerywana ramka i plus. Nie udaje zawodnika. */
.fkarta.pusty{
  background:var(--bg2);border:2px dashed color-mix(in srgb,var(--poz) 45%,var(--line));
  box-shadow:none;justify-content:center;
}
.fkarta.rez{border-style:dashed}
.fkplus{
  font-size:30px;font-weight:300;line-height:1;color:color-mix(in srgb,var(--poz) 70%,transparent);
  margin-bottom:6px;
}
.fkpusto{font-size:11.5px;color:var(--dim2)}

.fkrola{
  position:absolute;top:8px;left:11px;text-align:left;
  font-size:8.5px;letter-spacing:.11em;text-transform:uppercase;font-weight:800;
  color:color-mix(in srgb,var(--poz) 75%,var(--dim2));
}
/* Opaska kapitana wisi przy zdjęciu, a nie nad kartą — nad kartą wchodziła
   dokładnie tam, gdzie wystaje avatar. */
.fkkorona{
  position:absolute;right:-4px;bottom:-2px;width:21px;height:21px;border-radius:50%;
  background:var(--pur);color:#15122b;display:inline-flex;align-items:center;
  justify-content:center;border:2px solid var(--card);
}
.fkkorona svg{width:11px;height:11px;fill:currentColor}
.fkpasek{
  margin-top:7px;font-size:8.5px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--pur);
}
.fkpasek.zast{color:var(--dim2)}
.fkarta.kapitan{border-color:var(--pur);box-shadow:0 0 0 1px var(--pur) inset,
  0 12px 30px -18px var(--pur)}

/* Zdjęcie wychodzi poza krawędź karty — stąd `margin-top` na minusie
   i `overflow:visible` wyżej. */
.fkfoto{margin:-40px 0 6px;position:relative}
.fkfoto .fanava{
  width:62px;height:62px;flex:0 0 62px;font-size:17px;
  border-width:2.5px;background:var(--bg);
  box-shadow:0 6px 18px -8px #000;
}
.fkpoz{
  font-size:8.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--poz);margin-bottom:3px;
}
.fknazwa{font-size:13.5px;font-weight:750;line-height:1.2;margin-bottom:2px}
.fkklub{font-size:11px;color:var(--dim);line-height:1.25}
.fkliga{font-size:10px;color:var(--dim2);margin-bottom:auto}
.fkcena{display:flex;align-items:baseline;gap:3px;margin:10px 0 5px}
.fkcena b{font-size:30px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.fkcena span{font-size:10px;color:var(--dim2)}
.fkcena.tanio b{color:var(--ok)}
.fkcena.srednio b{color:var(--warn)}
.fkcena.drogo b{color:#fbbf24;text-shadow:0 0 18px rgba(251,191,36,.35)}
.fkstan{font-size:10px;padding:3px 9px;border-radius:99px;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fkstan.gra{background:rgba(34,197,94,.14);color:var(--ok)}
.fkstan.nie{background:var(--card2);color:var(--dim2)}
.fkarta.ranny .fkstan{background:rgba(225,29,52,.16);color:#fda4af}
.fkarta.ranny{filter:saturate(.75)}

/* Akcje wchodzą przy najechaniu; na dotyku (brak hovera) są widoczne stale. */
.fkakcje{
  position:absolute;top:6px;right:6px;display:flex;gap:4px;
  opacity:0;transform:translateY(-4px);transition:opacity .14s,transform .14s;
}
.fkarta:hover .fkakcje,.fkarta:focus-within .fkakcje{opacity:1;transform:none}
@media (hover:none){ .fkakcje{opacity:1;transform:none} }
.fkbtn{
  width:24px;height:24px;border-radius:7px;cursor:pointer;
  background:rgba(11,14,20,.72);border:1px solid var(--line);color:var(--dim);
  display:inline-flex;align-items:center;justify-content:center;padding:0;
}
.fkbtn svg{width:13px;height:13px;fill:currentColor}
.fkbtn:hover{color:var(--tx);border-color:var(--dim2)}
.fkbtn.on{background:var(--pur);border-color:var(--pur);color:#15122b}
.fkbtn.usun:hover{color:var(--acc);border-color:var(--acc)}

/* POŁYSK dla najdroższych. Przebiega po karcie raz na kilka sekund. */
.fkarta.holo::after{
  content:'';position:absolute;inset:0;border-radius:14px;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.13) 45%,
    rgba(251,191,36,.16) 50%,rgba(255,255,255,.13) 55%,transparent 70%);
  background-size:280% 280%;animation:fkpolysk 5.5s ease-in-out infinite;
}
@keyframes fkpolysk{
  0%,70%{background-position:120% 0}
  100%{background-position:-40% 0}
}
@media (prefers-reduced-motion:reduce){ .fkarta.holo::after{animation:none;opacity:.35} }

/* ── LICZNIK BUDŻETU ─────────────────────────────────────────────────── */
.fanbudzet{display:flex;gap:18px;align-items:center}
.fanblewa{flex:1 1 auto;min-width:0}
.fanbetyk{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim2);margin-bottom:3px}
.fanbkwota{display:flex;align-items:baseline;gap:5px;margin-bottom:8px}
.fanbkwota b{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.fanbkwota span{font-size:12px;color:var(--dim)}
.fanbprawa{flex:0 0 auto;text-align:right;line-height:1}
.fanbprawa b{
  display:block;font-size:40px;font-weight:900;color:var(--stan);
  font-variant-numeric:tabular-nums;text-shadow:0 0 26px color-mix(in srgb,var(--stan) 45%,transparent);
}
.fanbprawa span{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2)}

/* ── RYNEK GĘŚCIEJ ───────────────────────────────────────────────────── */
.fanlista{grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}
.fanpoz{padding:8px 10px}
.fanpoz .fanava{width:22px;height:22px;flex-basis:22px;font-size:8.5px}
.fanpn{font-size:12.5px}
.fanpc{font-size:15px}
.fanbadge{margin-top:5px}

@media (max-width:820px){ .fanmiejsca{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){
  .fanmiejsca{gap:30px 8px}
  .fkarta{min-height:210px;padding:26px 8px 10px}
  .fkcena b{font-size:24px}
  .fanbudzet{flex-direction:column;align-items:stretch;gap:10px}
  .fanbprawa{text-align:left;display:flex;align-items:baseline;gap:8px}
  .fanbprawa b{font-size:30px}
}

/* ══════════════════════════════════════════════════════════════════════════
   9.26 — MÓJ ZAWODNIK

   Jedna osoba na całym ekranie zamiast stu dwudziestu w tabeli. Kolor
   pozycji prowadzi przez całą kartę: obwódka zdjęcia, nagłówek, kafelki.
   ══════════════════════════════════════════════════════════════════════════ */
.mojpasek{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}
.mojchip{
  display:flex;align-items:center;gap:7px;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:99px;
  padding:5px 13px 5px 5px;color:var(--dim);font-size:12.5px;
}
.mojchip:hover{color:var(--tx);border-color:var(--dim2)}
.mojchip.on{background:var(--card2);border-color:var(--poz,var(--acc));color:var(--tx);font-weight:650}
.mojkr{font-style:normal;color:var(--acc);font-size:11px}

.mojava{
  width:44px;height:44px;border-radius:50%;flex:0 0 44px;object-fit:cover;
  background:var(--card2);display:inline-flex;align-items:center;justify-content:center;
  border:2px solid color-mix(in srgb,var(--poz,var(--dim2)) 60%,transparent);
  font-size:13px;font-weight:800;color:var(--dim);
}
.mojava.mini{width:24px;height:24px;flex-basis:24px;font-size:9px;border-width:1.5px}
.mojava.duza{width:76px;height:76px;flex-basis:76px;font-size:24px;border-width:3px}
.mojava.pusta{border-style:dashed}

.mojkarta{
  background:linear-gradient(180deg,color-mix(in srgb,var(--poz) 12%,transparent),transparent 220px),var(--card);
  border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px;
}
.mojglowa{display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.mojkto{flex:1 1 220px;min-width:0}
.mojkto h3{font-size:24px;font-weight:850;line-height:1.15}
.mojklub{font-size:13px;color:var(--dim);margin-top:3px}
.mojliga{font-size:11.5px;color:var(--poz);margin-top:3px}
.mojliga b{font-variant-numeric:tabular-nums}
.mojusun{flex:0 0 auto;opacity:.7}
.mojusun:hover{opacity:1}

.mojstan{
  margin:15px 0;padding:11px 14px;border-radius:10px;font-size:13px;
  background:var(--bg2);border-left:3px solid var(--dim2);color:var(--dim);
}
.mojstan b{color:var(--tx)}
.mojstan.gra{border-left-color:var(--ok);background:rgba(34,197,94,.08)}
.mojstan.gra em{font-style:normal;color:var(--ok);font-weight:650}
.mojstan.ranny{border-left-color:var(--acc);background:rgba(225,29,52,.09)}
.mojstan.ranny b{color:#fda4af}

.mojliczby{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.mojkaf{
  background:var(--bg2);border:1px solid var(--line);border-radius:11px;
  padding:13px 10px;text-align:center;
}
.mojkaf b{display:block;font-size:28px;font-weight:850;line-height:1.05;font-variant-numeric:tabular-nums}
.mojkaf span{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2)}
.mojkaf.ok b{color:var(--ok)} .mojkaf.sred b{color:var(--warn)} .mojkaf.zle b{color:var(--acc)}

/* 9.56.19 — ślad formy pod liczbą. Ma pokazywać KIERUNEK, nie wartości:
   bez osi, bez siatki, bez podpisów. Od wartości jest tabelka niżej. */
.mojiskra{display:block;width:100%;height:22px;margin-top:7px;opacity:.85}
.mojiskra.ros{color:var(--ok,#3fb950)}
.mojiskra.spad{color:var(--acc,#f5c518)}
.mojiskra.plask{color:var(--dim2,#7c8699)}

.mojsezon{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.mojpig{
  font-size:11.5px;color:var(--dim);background:var(--card2);
  border-radius:99px;padding:4px 11px;
}
.mojpig b{color:var(--tx);font-variant-numeric:tabular-nums}

.mojtyt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2);margin-bottom:6px}
.mojtyt em{font-style:normal;text-transform:none;letter-spacing:0;opacity:.75}
/* Poprzedni sezon to TŁO dla bieżącego, nie druga główna liczba — stąd
   przyciszenie i cieńsza kreska nad nagłówkiem (9.56.20). */
.mojtyt.drugi{margin-top:2px;padding-top:10px;border-top:1px solid var(--bd,rgba(255,255,255,.08))}
.mojsezon.stary{opacity:.62}
.mojtempo{
  display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;
  font-size:11.5px;color:var(--dim);margin:-6px 0 14px;
  font-variant-numeric:tabular-nums;
}
.mojtempo b{color:var(--tx);font-weight:650}
.mojtempo span{font-size:10.5px;color:var(--dim2);flex-basis:100%}
.mojtempo.ros{color:var(--ok,#3fb950)}
.mojtempo.spad{color:var(--acc,#f5c518)}
.mojtempo.plask{color:var(--dim2,#7c8699)}
/* Mecz reprezentacji: flaga przed nazwami i mocniejsza lewa krawędź.
   Nie zmieniamy koloru krawędzi — ten mówi o WYNIKU i ma dalej mówić
   o wyniku (9.56.20). */
.mojm.kadra{background:linear-gradient(90deg,rgba(255,255,255,.045),transparent 60%)}
.mojmkadra{margin-right:6px;font-size:13px;line-height:1;vertical-align:-1px}
.mojmecze{display:flex;flex-direction:column;gap:4px}
.mojm{
  display:grid;grid-template-columns:44px 1fr 46px 42px 58px 38px;
  gap:8px;align-items:center;font-size:12px;
  background:var(--bg2);border-left:3px solid var(--dim2);
  border-radius:0 8px 8px 0;padding:7px 10px;
}
.mojm.w{border-left-color:var(--ok)}
.mojm.r{border-left-color:var(--warn)}
.mojm.p{border-left-color:var(--acc)}
.mojmd{color:var(--dim2);font-variant-numeric:tabular-nums}
.mojmo{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mojmw,.mojmm{color:var(--dim);font-variant-numeric:tabular-nums;text-align:center}
.mojmg{color:var(--blue);font-weight:650;text-align:right}
.mojmoc{font-weight:800;text-align:right;font-variant-numeric:tabular-nums}

@media (max-width:560px){
  .mojliczby{grid-template-columns:1fr 1fr}
  .mojkto h3{font-size:19px}
  .mojm{grid-template-columns:40px 1fr 42px 40px;font-size:11.5px}
  .mojmg,.mojmoc{grid-column:span 2;text-align:left}
}

/* ── KTO ROŚNIE, KTO SPADA (9.26) ────────────────────────────────────────
   Dwie kolumny obok siebie: zielona i czerwona. Kolor krawędzi wiersza
   mówi kierunek, zanim czytelnik zdąży spojrzeć na liczby. */
.trgora{
  background:var(--card);border:1px solid var(--line);border-radius:11px;
  padding:11px 14px;margin:12px 0;
}
.trtyt{font-size:13px}
.trtyt b{font-size:14px}
.trwart{font-size:11.5px;color:var(--dim);margin-top:3px}
.trwart.cicho{color:var(--dim2)}
.trtyt2{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2);margin:16px 0 6px}
.trkolumny{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.trkol{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.trkoltyt{
  font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  margin-bottom:9px;display:flex;align-items:center;gap:7px;
}
.trkol.gora .trkoltyt{color:var(--ok)}
.trkol.dol .trkoltyt{color:var(--acc)}
.trkoltyt span{
  font-size:10.5px;background:var(--card2);color:var(--dim);
  border-radius:99px;padding:2px 8px;font-weight:700;
}
.trnag{
  display:grid;grid-template-columns:20px 1fr 78px 92px 62px 42px;
  gap:8px;padding:0 9px 6px;font-size:9.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--dim2);border-bottom:1px solid var(--line);margin-bottom:6px;
}
.trnag .trpr{text-align:right}
.trw{
  display:grid;grid-template-columns:20px 1fr 78px 92px 62px 42px;
  gap:8px;align-items:center;padding:8px 9px;border-radius:9px;
  background:var(--bg2);margin-bottom:5px;font-size:12px;
  border-left:3px solid color-mix(in srgb,var(--poz,var(--dim2)) 70%,transparent);
}
.trnr{color:var(--dim2);font-variant-numeric:tabular-nums;text-align:center}
.trkto{min-width:0}
.trkto b{display:inline;font-size:13px}
.trkto em{display:block;font-style:normal;font-size:10.5px;color:var(--dim2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trzn{
  font-style:normal;font-size:8.5px;letter-spacing:.05em;text-transform:uppercase;
  padding:2px 6px;border-radius:99px;font-weight:800;
}
.trzn.nowy{background:rgba(34,197,94,.16);color:var(--ok)}
.trzn.zniknal{background:rgba(250,204,21,.16);color:var(--warn)}
.trmin{font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
.trmin em{display:block;font-style:normal;font-size:9.5px;font-weight:500;color:var(--dim2)}
.trmin.plus{color:var(--ok)} .trmin.minus{color:var(--acc)}
.trga{font-size:11px;color:var(--dim2);text-align:right;font-variant-numeric:tabular-nums}
.trga b{color:var(--blue);font-size:12px}
.trga em{display:block;font-style:normal;font-size:9.5px;color:var(--dim2)}
.trwar{font-size:11.5px;text-align:right;font-variant-numeric:tabular-nums}
.trwar.plus{color:var(--ok)} .trwar.minus{color:var(--acc)} .trwar.pusto{color:var(--dim2)}
.trnota{font-weight:850;text-align:right;font-variant-numeric:tabular-nums}
.trkol.gora .trnota{color:var(--ok)}
.trkol.dol .trnota{color:var(--acc)}
.trpauza{display:flex;flex-wrap:wrap;gap:6px}
.trp{font-size:11px;color:var(--dim);background:var(--card2);border-radius:99px;padding:4px 10px}
.trp b{color:var(--tx)}

@media (max-width:900px){
  .trkolumny{grid-template-columns:1fr}
  .trw,.trnag{grid-template-columns:18px 1fr 70px 60px;gap:6px}
  .trga,.trwar,.trnag .trpr:nth-child(4),.trnag .trpr:nth-child(5){display:none}
}
.trzn.pierwszy{background:rgba(56,189,248,.16);color:var(--blue)}
.trzn{white-space:nowrap}

/* ══════════════════════════════════════════════════════════════════════════
   9.26 — MAPA POLAKÓW

   Kontur lądów leży pod spodem jako wstrzyknięty SVG (żeby dało się go
   pokolorować), a kraje to kropki ustawione w procentach — dzięki temu
   mapa skaluje się płynnie i nie wymaga ani jednego obrazka rastrowego.
   ══════════════════════════════════════════════════════════════════════════ */
.mapa{margin:12px 0 18px}
.mapaplot{
  position:relative;width:100%;aspect-ratio:2/1;border-radius:14px;overflow:hidden;
  background:radial-gradient(ellipse at 50% 40%,#111a28 0%,#0b0e14 78%);
  border:1px solid var(--line);
}
.mapatlo{position:absolute;inset:0;color:#1d2636}
.mapatlo svg.mapa-swiata{width:100%;height:100%;display:block}
.mapak{
  position:absolute;transform:translate(-50%,-50%);border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;
  border:1.5px solid rgba(255,255,255,.22);color:#0b0e14;
  font-size:10px;font-weight:900;font-variant-numeric:tabular-nums;
  transition:transform .12s,box-shadow .12s;
}
.mapak b{pointer-events:none}
.mapak:hover{transform:translate(-50%,-50%) scale(1.18);z-index:5;box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.mapak.on{box-shadow:0 0 0 3px var(--tx);z-index:6}
.mapak.jeden{background:#2b6fa8;color:#dbeafe;font-size:9px}
.mapak.malo{background:#38bdf8}
.mapak.srednio{background:#facc15}
.mapak.duzo{background:#e11d34;color:#fff}
.mapalegenda{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  margin-top:9px;font-size:11px;color:var(--dim2);
}
.mapal{width:11px;height:11px;border-radius:50%;display:inline-block;margin-left:8px}
.mapal:first-child{margin-left:0}
.mapal.jeden{background:#2b6fa8} .mapal.malo{background:#38bdf8}
.mapal.srednio{background:#facc15} .mapal.duzo{background:#e11d34}
.mapalegenda em{margin-left:auto;font-style:normal}

.mapakont{margin-top:16px}
.mapakont h4{font-size:13px;font-weight:800;display:flex;align-items:baseline;gap:9px;margin-bottom:7px}
.mapakont h4 span{font-size:11px;font-weight:500;color:var(--dim2)}
.mapakraje{display:flex;flex-wrap:wrap;gap:6px}
.mapakraj{
  display:flex;align-items:center;gap:7px;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:6px 11px;color:var(--tx);font-size:12.5px;
}
.mapakraj:hover{border-color:var(--dim2);background:var(--card2)}
.mapakraj.on{border-color:var(--acc);background:rgba(225,29,52,.1)}
.mapaflaga{font-size:14px;line-height:1}
.mapailu{
  font-weight:800;font-variant-numeric:tabular-nums;color:var(--blue);
  background:var(--bg2);border-radius:99px;padding:1px 7px;font-size:11.5px;
}
@media (max-width:560px){
  .mapaplot{aspect-ratio:1.6/1}
  .mapak{font-size:8.5px}
  .mapalegenda em{width:100%;margin-left:0}
}

/* ── ARCHIWUM KOLEJEK (9.26) ─────────────────────────────────────────────
   Pasek nad nagłówkiem: bieżąca kolejka i wszystkie poprzednie, z punktami,
   które w nich ugrałeś. Kolor kropki mówi stan: zielony otwarta,
   niebieski rozliczona, szary zamknięta i czekająca na wyniki. */
.arch{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 0 4px}
.archtyt{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--dim2);margin-right:2px}
.archk{
  display:flex;align-items:center;gap:6px;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:99px;
  padding:5px 12px;color:var(--dim);font-size:12px;
}
.archk:hover{color:var(--tx);border-color:var(--dim2)}
.archk b{font-variant-numeric:tabular-nums;font-weight:650}
.archk::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--dim2)}
.archk.otw::before{background:var(--ok)}
.archk.rozl::before{background:var(--blue)}
.archk.on{background:var(--card2);border-color:var(--acc);color:var(--tx)}
.archpkt{font-style:normal;font-size:10.5px;color:var(--warn);font-weight:700}
.archpkt.otw{color:var(--ok)}
.tydzien.otwarte{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.06)}
.tydzien em{font-style:normal;color:var(--ok);font-weight:700}
.tydznast{width:100%;color:var(--dim)}
.tydznast b{color:var(--tx)}

/* ══════════════════════════════════════════════════════════════════════════
   9.26 — ZAPOWIEDŹ KOLEJKI
   ══════════════════════════════════════════════════════════════════════════ */
.zaphead{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(225,29,52,.14),transparent 55%),var(--card);
  border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:12px 0;
}
.zapkto{flex:1 1 240px;min-width:0}
.zapkto h3{font-size:23px;font-weight:850;line-height:1.15}
.zapstan{
  display:inline-block;margin-top:5px;font-size:10.5px;font-weight:800;
  letter-spacing:.07em;text-transform:uppercase;padding:3px 10px;border-radius:99px;
  background:var(--card2);color:var(--dim);
}
.zapstan.budowa{background:rgba(34,197,94,.16);color:var(--ok)}
.zapstan.trwa{background:rgba(250,204,21,.16);color:var(--warn)}
.zapzegar{flex:0 0 auto;text-align:right}
.zapzegar b{display:block;font-size:24px;font-weight:900;color:var(--tx);font-variant-numeric:tabular-nums}
.zapzegar span{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim2)}

.zapgry{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.zapgra{
  text-align:left;cursor:pointer;padding:14px 16px;border-radius:12px;
  background:var(--bg2);border:2px solid var(--line);display:flex;flex-direction:column;gap:3px;
}
.zapgra:hover{border-color:var(--dim2);background:var(--card2)}
.zapgra.otw{border-color:rgba(34,197,94,.45)}
.zapgra.mam{border-color:var(--acc);background:linear-gradient(180deg,rgba(225,29,52,.1),transparent 70%),var(--bg2)}
.zapgnazwa{font-size:15px;font-weight:800}
.zapgopis{font-size:11.5px;color:var(--dim2)}
.zapgstan{font-size:12px;color:var(--dim);margin-top:4px}
.zapgra.otw .zapgstan{color:var(--ok)}
.zapgra.mam .zapgstan{color:#fda4af}
.zapgilu{font-size:10.5px;color:var(--dim2)}

.zaptyt{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--dim2);margin:4px 0 7px}
.zapdzien{margin-top:18px}
.zapdzien h4{font-size:13.5px;font-weight:800;margin-bottom:7px;display:flex;gap:8px;align-items:baseline}
.zapdzien h4::first-letter{text-transform:uppercase}
.zapdzien h4 span{font-size:11px;font-weight:500;color:var(--dim2)}

.zapm{
  background:var(--card);border:1px solid var(--line);border-radius:11px;
  padding:11px 13px;margin-bottom:7px;
}
.zapm.duzy{
  border-color:rgba(225,29,52,.4);
  background:linear-gradient(180deg,rgba(225,29,52,.09),transparent 60%),var(--card);
  padding:15px 16px;
}
.zapm.po{opacity:.72}
.zapmgora{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.zapmczas{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--tx)}
.zapmliga{font-size:10.5px;color:var(--dim2)}
.zapmliga b{color:var(--blue);font-variant-numeric:tabular-nums}
.zapmwynik{margin-left:auto;font-size:12px;font-weight:800;color:var(--dim)}
.zapmteam{display:flex;align-items:baseline;gap:8px;font-size:14px;flex-wrap:wrap}
.zapm.duzy .zapmteam{font-size:18px}
.zapmteam b{font-weight:750}
.zapmteam i{font-style:normal;color:var(--dim2)}
.zapmnasi{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.zapmn{
  font-size:11px;font-weight:650;padding:3px 9px;border-radius:99px;
  background:rgba(56,189,248,.14);color:var(--blue);
}
.zapmn.ranny{background:rgba(225,29,52,.15);color:#fda4af}
.zapmn i{font-style:normal}
.zapmbar{margin-top:9px;height:20px}
.zapm.duzy .zapmbar{height:24px}
.zapmzdanie{margin-top:7px;font-size:12.5px;font-weight:650;color:var(--dim)}
.zapmzdanie.pewniak{color:var(--ok)} .zapmzdanie.faworyt{color:var(--blue)}
.zapmzdanie.otwarty,.zapmzdanie.remis{color:var(--warn)}
.zapmbrak{margin-top:7px;font-size:11px;color:var(--dim2)}

@media (max-width:640px){
  .zapgry{grid-template-columns:1fr}
  .zapzegar{text-align:left}
  .zapkto h3{font-size:19px}
}
.zapwiecej{margin:4px 0 8px}

/* ── TYPER: TEN SAM JĘZYK, CO KARTY W FANTASY (9.26) ─────────────────────
   Delikatny gradient w kolorze rodzaju pytania, zdjęcie w obwódce i wynik
   pokazany jako punkty, a nie jako słowo „trafiłeś". */
.typp{
  background:linear-gradient(180deg,color-mix(in srgb,var(--rodz) 10%,transparent),transparent 120px),var(--card);
}
.typfotow{
  position:relative;flex:0 0 46px;width:46px;height:46px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--rodz) 16%,var(--card2));
  border:2px solid color-mix(in srgb,var(--rodz) 60%,transparent);
}
.typfoto.pusta{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;color:var(--rodz);
}
.typwynik.traf{background:rgba(34,197,94,.08);border-top-color:rgba(34,197,94,.3)}
.typmoj{background:rgba(34,197,94,.16);color:var(--ok);padding:2px 9px;border-radius:99px;font-size:11.5px}
.typmoj.pudlo{background:var(--card2);color:var(--dim2)}
.trnota em{display:block;font-style:normal;font-size:8.5px;font-weight:500;color:var(--dim2);letter-spacing:.02em}

/* ── PRZERWA REPREZENTACYJNA I POWOŁANIA (9.27) ──────────────────────────── */
.przerwa{
  background:linear-gradient(135deg,rgba(167,139,250,.14),transparent 60%),var(--card);
  border:1px solid rgba(167,139,250,.35);border-radius:var(--r);
  padding:14px 16px;margin:12px 0;
}
.przerwa.szac{border-style:dashed}
.przerwaglowa{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.przerwaglowa b{font-size:15px;color:var(--pur)}
.przerwaglowa span{font-size:12px;color:var(--dim)}
.przerwa p{font-size:13px;line-height:1.55;color:var(--dim);margin-bottom:8px}
.przerwa .btn{margin-top:2px}

.kadglowa{
  display:flex;gap:16px;flex-wrap:wrap;align-items:center;
  background:linear-gradient(135deg,rgba(225,29,52,.12),transparent 55%),var(--card);
  border:1px solid var(--line);border-radius:var(--r);padding:15px 17px;margin:12px 0;
}
.kadkto{flex:1 1 240px;min-width:0}
.kadkto h3{font-size:20px;font-weight:850}
.kadmeta{font-size:11.5px;color:var(--dim2);margin-top:3px}
.kadlicz{display:flex;gap:8px;flex-wrap:wrap}
.kadkaf{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:8px 13px;text-align:center}
.kadkaf b{display:block;font-size:20px;font-weight:850;font-variant-numeric:tabular-nums}
.kadkaf span{font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim2)}
.kadkaf.zle b{color:var(--acc)} .kadkaf.sred b{color:var(--warn)}
.kadmecze{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.kadm{font-size:11.5px;background:var(--card2);color:var(--dim);border-radius:99px;padding:4px 11px}
.kadm i{font-style:normal;color:var(--dim2)}

.kadlista{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.kadw{
  display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;
  background:var(--bg2);border-radius:10px;padding:8px 11px;
  border-left:3px solid color-mix(in srgb,var(--poz,var(--dim2)) 70%,transparent);
}
.kadw.ranny{background:rgba(225,29,52,.07)}
.kadw.pom{border-left-color:var(--warn)}
.kadava{
  width:34px;height:34px;border-radius:50%;overflow:hidden;background:var(--card2);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:var(--dim);
}
.kadava img{width:100%;height:100%;object-fit:cover}
.kadkto2{min-width:0}
.kadkto2 b{font-size:14px}
.kadkto2 em{display:block;font-style:normal;font-size:11px;color:var(--dim2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kadliczby{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end;font-size:11px;color:var(--dim2)}
.kadliczby i{font-style:normal;white-space:nowrap}
.kadliczby b{color:var(--tx);font-variant-numeric:tabular-nums}
.kadliczby .ok b{color:var(--ok)} .kadliczby .zle b{color:var(--acc)}
/* ── ZNACZKI POD WIERSZEM (dopisany / wypadł / kontuzja / flaga / klub) ──
   Jeden kontener na całą szerokość siatki, który sam się zawija. Wcześniej
   każdy chip był osobnym elementem siatki i pierwszy z nich lądował
   w kolumnie szerokiej na 34 px — z `nowrap` wylewał się na sąsiada. */
.kadznaki{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;
  gap:6px;margin-top:2px;min-width:0}
.kadznaki>*{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.kadkont{font-size:11px;color:#fda4af;white-space:nowrap}
.kadobcy{font-size:10.5px;color:var(--dim2);white-space:nowrap}
.kadform{margin:14px 0}
.kadform.otwarty{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.kadform textarea{
  width:100%;min-height:150px;margin:8px 0;padding:10px 12px;border-radius:9px;
  background:var(--bg);border:1px solid var(--line);color:var(--tx);
  font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical;
}
.kadform input[type=text]{
  flex:1 1 220px;padding:8px 11px;border-radius:8px;
  background:var(--bg);border:1px solid var(--line);color:var(--tx);
}
@media (max-width:560px){
  .kadw{grid-template-columns:30px 1fr}
  .kadliczby{grid-column:1/3;justify-content:flex-start}
  .kadznaki{grid-column:1/3}
}

/* ══════════════════════════════════════════════════════════════════════════
   9.27 — LISTA Z FILTRAMI: HIERARCHIA, KOLOR POZYCJI, FORMA

   Najmocniejsza część hubu wyglądała jak paragon: wszystko jednym szarym
   ciągiem, bez pozycji i bez informacji, czy ktoś w ogóle gra. Teraz karta
   odpowiada po kolei na trzy pytania — kto to jest, co zrobił i jak mu idzie.
   ══════════════════════════════════════════════════════════════════════════ */

.grid{grid-template-columns:repeat(auto-fill,minmax(258px,1fr))}
.pcard{
  flex-direction:column;gap:0;padding:11px 12px;
  /* `stretch` jawnie, a nie z domyślnej wartości: dowolna klasa doklejona
     do karty (np. modyfikator stanu) potrafi wnieść własne align-items
     i wtedy każdy wiersz karty kurczy się do szerokości treści. */
  align-items:stretch;
  border-left:3px solid color-mix(in srgb,var(--poz,var(--line)) 70%,transparent);
}
.pcgora{display:flex;gap:10px;align-items:flex-start}
.pcinfo{flex:1 1 auto;min-width:0}
.pcard .nm{font-size:14px}
.pcliga{font-size:10.5px;color:var(--dim2);margin-top:2px}
.pcliga b{color:var(--poz,var(--blue));font-variant-numeric:tabular-nums}
.pcprawa{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.pcpoz{
  font-size:9px;font-weight:800;letter-spacing:.05em;padding:2px 6px;border-radius:5px;
  background:color-mix(in srgb,var(--poz) 18%,transparent);color:var(--poz);
}
.pcard .mv{margin:0;font-size:11px}
.pcwiek{font-size:10px;color:var(--dim2)}

/* Liczby sezonu jako kafelki — „M 26 G 12 A 1 oc. 7.2" czytało się jak paragon. */
.pcard .st{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(42px,1fr));
  gap:4px;margin-top:9px;align-items:stretch;
}
.pcard .st>span{
  background:var(--bg2);border-radius:7px;padding:4px 2px;text-align:center;
  font-size:9px;letter-spacing:.03em;color:var(--dim2);line-height:1.25;
}
.pcard .st b{display:block;font-size:13px;color:var(--tx);font-variant-numeric:tabular-nums}
.pcard .st .sez{grid-column:span 1;align-self:center}
.pcard .st .pusto{grid-column:1/-1;background:transparent;text-align:left}

.pcdol{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.pcforma{display:inline-flex;align-items:center;gap:3px}
.pcforma i{width:9px;height:9px;border-radius:50%;display:inline-block}
.pcforma i.w{background:var(--ok)} .pcforma i.r{background:var(--warn)} .pcforma i.p{background:var(--acc)}
.pcforma i.law{opacity:.35}
.pcforma b{margin-left:4px;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums}
.pczauf{
  flex:1 1 90px;min-width:70px;height:16px;border-radius:99px;background:var(--bg2);
  position:relative;display:flex;align-items:center;overflow:hidden;
}
.pczauf i{position:absolute;left:0;top:0;bottom:0;background:var(--dim2);opacity:.55}
.pczauf.ok i{background:var(--ok)} .pczauf.sred i{background:var(--warn)} .pczauf.zle i{background:var(--acc)}
.pczauf b{position:relative;margin-left:auto;padding-right:7px;font-size:10px;
  color:var(--tx);font-variant-numeric:tabular-nums}

/* ── SZYBKIE CHIPSY FILTRÓW ──────────────────────────────────────────── */
.fchipy{display:flex;gap:6px;flex-wrap:wrap;width:100%;margin-bottom:8px;align-items:center}
.fchip{
  cursor:pointer;font-size:12px;padding:5px 12px;border-radius:99px;
  background:var(--card);border:1px solid var(--line);color:var(--dim);
  border-left:3px solid color-mix(in srgb,var(--poz,var(--line)) 70%,transparent);
}
.fchip:hover{color:var(--tx);border-color:var(--dim2)}
.fchip.on{background:var(--card2);color:var(--tx);border-color:var(--acc)}
.fchip b{color:var(--poz,var(--blue));font-variant-numeric:tabular-nums;font-size:11px}
.fchsep{width:1px;height:20px;background:var(--line);margin:0 3px}

/* ══════════════════════════════════════════════════════════════════════════
   9.28 — LISTA Z FILTRAMI: ZAPISANE WIDOKI, PORÓWNANIE, TABELA, ZMIANA

   Cztery rzeczy dołożone do najmocniejszej zakładki w hubie. Wszystkie żyją
   w tym samym pasku nad filtrami, żeby nie rozsypać układu — i wszystkie
   mają ten sam język kolorów, co karty.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── pasek zapisanych widoków i przełącznik trybu ── */
.fwid{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
.fwidn{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--dim2);margin-right:2px}
.fwbtn{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:999px;
  overflow:hidden;background:var(--card2)}
.fwbtn button{background:none;border:0;color:var(--tx);font:inherit;font-size:11.5px;
  padding:4px 10px;cursor:pointer}
.fwbtn button.x{padding:4px 8px;color:var(--dim2);border-left:1px solid var(--line)}
.fwbtn button.x:hover{color:var(--acc)}
.fwbtn.on{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 16%,transparent)}
.fwdod{background:none;border:1px dashed var(--line);border-radius:999px;color:var(--dim);
  font:inherit;font-size:11.5px;padding:4px 11px;cursor:pointer}
.fwdod:hover{border-color:var(--blue);color:var(--tx)}
.fwnowy{display:inline-flex;gap:5px;align-items:center}
.fwnowy input{font:inherit;font-size:11.5px;padding:4px 9px;border-radius:999px;
  border:1px solid var(--blue);background:var(--bg2);color:var(--tx);min-width:180px}
.fwtryb{margin-left:auto;display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.fwtryb button{background:none;border:0;color:var(--dim);font:inherit;font-size:11.5px;
  padding:4px 11px;cursor:pointer}
.fwtryb button.on{background:var(--card2);color:var(--tx);font-weight:700}

/* ── liczby na karcie są linkiem ── */
.pcard .st>span.klik{cursor:pointer}
.pcard .st>span.klik:hover{background:color-mix(in srgb,var(--blue) 22%,var(--bg2));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue) 45%,transparent)}

/* ── znaczek zmiany formy ── */
.pczm{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:999px;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.pczm.gora{background:rgba(34,197,94,.15);color:#7ee2a8}
.pczm.dol{background:rgba(225,29,52,.15);color:#ffa3ad}

/* ── przycisk „do porównania" na karcie ── */
.pcrzad{display:inline-flex;align-items:center;gap:5px}
.pcpor{background:none;border:1px solid var(--line);border-radius:6px;color:var(--dim2);
  font:inherit;font-size:11px;line-height:1;padding:3px 6px;cursor:pointer}
.pcpor:hover{border-color:var(--blue);color:var(--tx)}
.pcpor.on{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 25%,transparent);color:#fff}

/* ── panel porównania ── */
.porow{border:1px solid var(--line);border-radius:var(--r);background:var(--card);
  padding:10px 12px;margin:10px 0}
.porow.jeden{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--dim)}
/* `.porh` bylo juz zajete (naglowek porownania meczow) — straznik kolizji
   zlapal to od razu, wiec naglowek panelu nazywa sie inaczej. */
.porgl{display:flex;align-items:center;gap:10px;font-weight:800;font-size:13px;margin-bottom:8px}
.porgl .btn{margin-left:auto}
.portab th .pnm{cursor:pointer;font-weight:800}
.portab th .x{background:none;border:0;color:var(--dim2);cursor:pointer;font:inherit;margin-left:6px}
.portab th .x:hover{color:var(--acc)}
.portab th.lew{text-align:left;color:var(--dim2);font-weight:600;white-space:nowrap}
.portab td{text-align:center;font-variant-numeric:tabular-nums}
.portab td.lepszy{background:color-mix(in srgb,var(--ok) 16%,transparent);font-weight:800;color:var(--tx)}

/* ── tryb tabeli ── */
.listatab td,.listatab th{white-space:nowrap}
.listatab td.nazw{text-align:left}
.listatab .lw{color:var(--blue);font-variant-numeric:tabular-nums}
.listatab .tkont{color:var(--acc)}
.listatab .dim{color:var(--dim2);font-size:10.5px}
.listatab .pcpoz{display:inline-block}

/* ── filtr występów w profilu ── */
.wfil{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}

/* ── skąd pochodzi lista powołanych (9.28) ── */
.kadzr{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:8px 0 12px}
.kadzrn{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2)}
.kadzre{font-size:11.5px;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:3px 10px}
.kadzre i{font-style:normal;color:var(--dim2);margin-left:5px}
.kadzre.on{border-color:var(--ok);color:var(--tx);background:color-mix(in srgb,var(--ok) 12%,transparent)}
.kadzrq{font-size:11px;color:var(--dim2);text-decoration:underline dotted;cursor:help}

/* ── POWOŁANIA 9.28: DWA ZESTAWY (A i U21) ───────────────────────────────
   Automat wyłączony, listę wkleja redakcja — przełącznik jest więc pierwszą
   rzeczą na ekranie, żeby było widać, którą kadrę się ogląda. */
.kadzest{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.kadz{background:var(--card2);border:1px solid var(--line);border-radius:999px;
  color:var(--dim);font:inherit;font-size:12.5px;font-weight:700;padding:6px 14px;cursor:pointer}
.kadz:hover{border-color:var(--blue);color:var(--tx)}
.kadz.on{border-color:var(--acc);color:var(--tx);background:color-mix(in srgb,var(--acc) 16%,transparent)}
.kadz i{font-style:normal;margin-left:7px;color:var(--tx);font-variant-numeric:tabular-nums}
.kadz em{font-style:normal;margin-left:7px;color:var(--dim2);font-weight:500}

/* flaga zamiast napisu „gra w kraju" — zawodnik z polskiej ligi
   NIE jest spoza naszej bazy, tylko z innej zakładki */
.kadkraj{font-size:12.5px;line-height:1;background:rgba(34,197,94,.12);
  border:1px solid rgba(34,197,94,.25);border-radius:999px;padding:3px 7px;
  white-space:nowrap;cursor:help}

/* wybór zestawu w formularzu redakcji */
.kadwyb{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.kadwybp{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--dim);
  border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer}
.kadwybp.on{border-color:var(--blue);color:var(--tx);background:var(--card2)}
.kadwybp i{font-style:normal;color:var(--dim2);font-size:11px}
.kadinny{font-size:10.5px;color:#f5c542;background:rgba(245,197,66,.1);
  border:1px solid rgba(245,197,66,.25);border-radius:999px;padding:2px 9px;white-space:nowrap}

/* ── POWOŁANIA 9.30: ZMIANY W KADRZE ─────────────────────────────────────
   Wypadły zawodnik zostaje na liście — przygaszony, z powodem. To jest
   informacja, nie pomyłka do skasowania. */
.kadw.wypadl{opacity:.62}
.kadw.wypadl .kadkto2 b{text-decoration:line-through;text-decoration-color:var(--acc)}
.kadw.dopisany{box-shadow:inset 3px 0 0 var(--ok)}
.kadwyp{font-size:10.5px;color:#ffa3ad;background:rgba(225,29,52,.12);
  border:1px solid rgba(225,29,52,.25);border-radius:999px;padding:2px 9px;white-space:nowrap}
.kaddop{font-size:10.5px;color:#9ae6b4;background:rgba(34,197,94,.12);
  border:1px solid rgba(34,197,94,.25);border-radius:999px;padding:2px 9px;white-space:nowrap}

/* ── PRZYCISKI REDAKCJI W WIERSZU KADRY ──────────────────────────────────
   Wiersz jest siatką [awatar | kto | liczby]. Akcje wchodzą do NOWEGO
   wiersza na całą szerokość — wciśnięte w trzecią kolumnę łamały się
   na trzy linie („dopisz / do / kadry"). */
.kadw .kadakcje{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  margin-top:2px;white-space:nowrap}
.kadw .kadakcje .btn{white-space:nowrap}
.kadpowod{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.kadpowod select,.kadpowod input{font:inherit;font-size:11.5px;padding:4px 8px;border-radius:7px;
  border:1px solid var(--line);background:var(--bg2);color:var(--tx)}
.kadpowod input{min-width:170px}

/* dziennik zmian składu */
.kadzmiany{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:12px 0;
  font-size:12px;color:var(--dim)}
.kadzm{border:1px solid var(--line);border-radius:999px;padding:3px 10px;background:var(--card2)}
.kadzm i{font-style:normal;color:var(--dim2);margin-left:5px;font-size:10.5px}
.kadzm.zle{border-color:rgba(225,29,52,.3);color:#ffb4b4}
.kadzm.ok{border-color:rgba(34,197,94,.3);color:#9ae6b4}

/* ═══ 9.36 — TRYB PRACY PRZY GOLACH ═══════════════════════════════════════ */

/* Trzy kroki zamiast akapitu. Akapit czyta się raz; kroki mówią, co robić,
   za każdym razem — a panel odwiedza się po każdej kolejce. */
.kroki{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;padding:0;list-style:none;
  counter-reset:krok}
.kroki li{counter-increment:krok;flex:1 1 200px;min-width:0;padding:8px 10px 8px 34px;
  position:relative;border:1px solid var(--lin,#2a3242);border-radius:10px;
  background:var(--bg2,#151a23)}
.kroki li::before{content:counter(krok);position:absolute;left:9px;top:8px;
  width:18px;height:18px;border-radius:50%;background:#f5c518;color:#10131a;
  font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.kroki li b{display:block;font-size:12.5px;color:var(--tx)}
.kroki li em{display:block;font-style:normal;font-size:11px;color:var(--dim2);margin-top:2px}

/* Ile zostało — jedna liczba i jeden pasek, bez czytania. */
.brpost{position:relative;height:22px;border-radius:11px;margin:8px 0 4px;
  background:var(--bg2,#151a23);border:1px solid var(--lin,#2a3242);overflow:hidden}
.brpost i{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(250,204,21,.28);
  border-right:1px solid rgba(250,204,21,.6);transition:width .25s ease}
.brpost s{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  text-decoration:none;font-size:11.5px;color:var(--dim);font-variant-numeric:tabular-nums}
.brpost.pelny i{background:rgba(52,211,153,.24);border-right-color:rgba(52,211,153,.6)}
.brpost.pelny s{color:var(--ok,#34d399)}

/* Adres, który nie jest adresem — widać przed kliknięciem, nie po. */
.brrz .brform input.zly{border-color:#7a2338;background:rgba(122,35,56,.12)}
/* Świeżo dodany link mruga raz, żeby było wiadomo, że to ten. */
.brrz .brl.nowy{animation:brmig .9s ease 1}
@keyframes brmig{0%{background:rgba(250,204,21,.35)}100%{background:transparent}}

/* ═══ 9.36 — SKRÓTY I SZUKAJKA W PANELU ═══════════════════════════════════ */

.pgtop{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.pgskroty{display:flex;flex-wrap:wrap;gap:6px}
.pgsk{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-size:12px;
  padding:6px 11px;border-radius:999px;border:1px solid var(--lin,#2a3242);
  background:var(--bg2,#151a23);color:var(--tx,#e6e9ef)}
.pgsk:hover{border-color:#f5c518;color:#f5c518}
.pgszuk{position:relative;flex:1 1 240px;min-width:190px}
.pgszuk input{width:100%;font-size:12.5px;padding:7px 28px 7px 11px;border-radius:999px;
  background:var(--bg2,#151a23);border:1px solid var(--lin,#2a3242);color:var(--tx,#e6e9ef)}
.pgszuk input:focus{outline:none;border-color:var(--blue,#60a5fa)}
.pgx{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;
  background:transparent;color:var(--dim,#8d99ad);font-size:16px;cursor:pointer;line-height:1}
.pgx:hover{color:#ff8fa3}
.pgwynik{flex:1 1 100%;font-size:12px;color:var(--dim,#8d99ad)}
/* W trybie szukania zakładki nie dzielą — pasek zostaje, ale traci znaczenie. */
.pgrupy.szukanie .pgnav{opacity:.45;pointer-events:none}
.pgrupy.szukanie .pgop{display:none}
.p98s[hidden],.pgsek[hidden]{display:none}
/* Skrót podświetla sekcję, do której skoczył — inaczej nie wiadomo, gdzie się jest. */
.p98s.mignij{border-color:#f5c518;box-shadow:0 0 0 2px rgba(245,197,24,.18)}

/* Jedno miejsce na odpowiedź panelu — zamiast okienek, które trzeba klikać. */
.pgecho{flex:1 1 100%;font-size:12.5px;padding:8px 11px;border-radius:9px;
  border:1px solid var(--lin,#2a3242);background:var(--bg2,#151a23);color:var(--tx,#e6e9ef)}
.pgecho.ok{border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.08)}
.pgecho.zle{border-color:#7a2338;background:rgba(122,35,56,.12);color:#ff8fa3}
.pgecho code{font-size:11px;color:var(--dim,#8d99ad);word-break:break-all}

/* ═══ 9.38 — POCZTA ═══════════════════════════════════════════════════════ */

/* W stopce stoi teraz przycisk, a nie adres e-mail. Ma wyglądać jak odnośnik,
   bo tym jest dla czytelnika — ale przyciskiem, bo otwiera okno, nie stronę. */
.link-kontakt{border:0;background:none;padding:0;font:inherit;cursor:pointer;
  color:var(--blue,#60a5fa);text-decoration:underline}
.link-kontakt:hover{color:#f5c518}

.kontakt{max-width:560px}
.kontakt h3{margin:0 0 6px;font-size:18px}
.kontakt label{display:block;margin:10px 0 0;font-size:12px;color:var(--dim,#8d99ad)}
.kontakt input,.kontakt textarea{display:block;width:100%;margin-top:4px;font:inherit;
  font-size:13px;padding:8px 10px;border-radius:9px;background:var(--bg2,#151a23);
  border:1px solid var(--lin,#2a3242);color:var(--tx,#e6e9ef);box-sizing:border-box}
.kontakt textarea{resize:vertical;min-height:110px;line-height:1.5}
.kontakt input:focus,.kontakt textarea:focus{outline:none;border-color:var(--blue,#60a5fa)}
.kont-dol{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}

/* PUŁAPKA NA ROBOTY. Nie `display:none` — część robotów pomija pola ukryte
   tym sposobem, bo to najstarsza sztuczka świata. Pole jest w układzie
   strony obecne, tylko odsunięte poza ekran: robot je widzi i wypełnia,
   człowiek nie ma jak. `aria-hidden` w HTML-u pilnuje, żeby nie przeczytał
   go też czytnik ekranu — inaczej pułapka karałaby osoby niewidome. */
.pulapka{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.pocz-ok{font-size:12.5px;padding:8px 11px;margin:8px 0;border-radius:9px;
  border:1px solid rgba(52,211,153,.45);background:rgba(52,211,153,.08)}
.pocz-tab{width:100%;border-collapse:collapse;margin:8px 0;font-size:12.5px}
.pocz-tab td{padding:5px 8px;border-bottom:1px solid var(--lin,#2a3242);vertical-align:top}
.pocz-tab td:first-child{width:170px;color:var(--dim,#8d99ad)}
.pocz-wzor,.pocz-log{margin:8px 0;padding:9px 11px;border-radius:9px;font-size:11.5px;
  line-height:1.6;background:var(--bg2,#151a23);border:1px solid var(--lin,#2a3242);
  color:var(--tx,#e6e9ef);white-space:pre-wrap;word-break:break-all}
.pocz-log{max-height:260px;overflow:auto;color:var(--dim,#8d99ad)}

/* ═══ 9.46 — LISTA Z ZEWNĄTRZ ═════════════════════════════════════════════ */

#lista-tekst{width:100%;box-sizing:border-box;margin:8px 0;font:inherit;font-size:12.5px;
  line-height:1.5;padding:9px 11px;border-radius:9px;resize:vertical;min-height:110px;
  background:var(--bg2,#151a23);border:1px solid var(--lin,#2a3242);color:var(--tx,#e6e9ef)}
#lista-tekst:focus{outline:none;border-color:var(--blue,#60a5fa)}
.lz-licz{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0;padding:8px 11px;border-radius:9px;
  background:var(--bg2,#151a23);border:1px solid var(--lin,#2a3242);font-size:12px;color:var(--dim,#8d99ad)}
.lz-licz b{color:var(--tx,#e6e9ef);font-variant-numeric:tabular-nums}
.lz-licz b.ok{color:var(--ok,#34d399)}
.lz-licz b.uwaga{color:#f5c518}
.lz-h{margin:16px 0 4px;font-size:14px}
.lz-h s{text-decoration:none;font-size:11px;color:var(--dim2);font-weight:400}
.lz-kraj{margin:10px 0 2px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--dim,#8d99ad)}
.lz-kraj s{text-decoration:none;color:var(--dim2)}
.lz-tab{width:100%;border-collapse:collapse;font-size:12.5px}
.lz-tab td{padding:5px 8px;border-bottom:1px solid var(--lin,#2a3242);vertical-align:middle}
.lz-tab td:last-child{text-align:right;white-space:nowrap}

/* 9.48 — dodawanie wprost z listy z zewnątrz. Formularz rozwija się POD
   wierszem, więc musi być wyraźnie oddzielony od tabeli, ale nie krzyczeć. */
.lz-tab tr.lz-dodany td{opacity:.5}
.lz-tab tr.lz-dodany td b{text-decoration:line-through}
tr.lz-rozwin>td{background:var(--tlo2,#161b26);border-bottom:1px solid var(--lin,#2a3242);
  padding:10px 12px !important}
.lz-form{display:flex;flex-direction:column;gap:8px}
.lz-form.ok{flex-direction:row;align-items:center;gap:8px;color:var(--ok,#34d399);font-size:12.5px}
.lz-pola{display:flex;flex-wrap:wrap;gap:6px}
.lz-pola input{flex:1 1 150px;min-width:110px;padding:6px 9px;border-radius:7px;font-size:12.5px;
  background:var(--tlo,#0f131c);color:var(--tx,#e6e9ef);border:1px solid var(--lin,#2a3242)}
.lz-pola input:focus{outline:none;border-color:var(--akc,#f5c518)}
.lz-guziki{display:flex;flex-wrap:wrap;gap:6px}
.lz-form .lz-echo{margin:0}
.lz-form .afwiersz{padding:3px 0}
@media (max-width:640px){
  .lz-pola input{flex:1 1 100%}
  .lz-tab td:last-child{white-space:normal}
}

/* 9.49 — SKRZYNKA REDAKCJI. Wiadomość od nieznajomego ma wyglądać jak list,
   a nie jak wiersz tabeli: nadawca u góry, treść w całości, guziki na dole. */
.skrz-w{border:1px solid var(--lin,#2a3242);border-radius:10px;padding:11px 13px;margin:9px 0;
  background:var(--card,#141924)}
.skrz-w.nowa{border-left:3px solid var(--akc,#f5c518)}
.skrz-w.kosz{opacity:.55}
.skrz-glowa{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px}
.skrz-data{margin-left:auto;font-size:11.5px;color:var(--dim2,#7c8699);white-space:nowrap}
.skrz-temat{margin:5px 0 7px;font-size:13.5px;font-weight:600}
.skrz-znak{text-decoration:none;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:20px;
  vertical-align:middle;margin-left:5px}
.skrz-znak.nowa{background:rgba(245,197,24,.16);color:#f5c518}
.skrz-znak.ok{background:rgba(52,211,153,.14);color:#34d399}
.skrz-znak.zle{background:rgba(248,113,113,.15);color:#f87171;cursor:help}
.skrz-tresc{font-size:13px;line-height:1.55;color:var(--tx,#e6e9ef);white-space:pre-wrap;
  word-break:break-word}
.skrz-odp{margin:9px 0 0;padding:8px 11px;border-left:3px solid var(--ok,#34d399);
  border-radius:0 8px 8px 0;background:rgba(52,211,153,.06);font-size:12.5px;line-height:1.5}
.skrz-guziki{margin-top:9px;align-items:center}
.skrz-ip{font-size:11px;margin-left:auto}
.skrz-pisz{margin-top:9px}
.skrz-pisz textarea{width:100%;min-height:90px;padding:8px 10px;border-radius:8px;font-size:13px;
  font-family:inherit;background:var(--tlo,#0f131c);color:var(--tx,#e6e9ef);
  border:1px solid var(--lin,#2a3242);resize:vertical}
.skrz-pisz textarea:focus{outline:none;border-color:var(--akc,#f5c518)}
#pocz-pisz textarea{width:100%;min-height:110px;margin-top:6px;padding:8px 10px;border-radius:8px;
  font-size:13px;font-family:inherit;background:var(--tlo,#0f131c);color:var(--tx,#e6e9ef);
  border:1px solid var(--lin,#2a3242);resize:vertical}
#skrz-filtry input{padding:6px 9px;border-radius:7px;font-size:12.5px;
  background:var(--tlo,#0f131c);color:var(--tx,#e6e9ef);border:1px solid var(--lin,#2a3242)}
@media (max-width:640px){
  .skrz-data{margin-left:0;width:100%}
  .skrz-ip{margin-left:0}
}

/* 9.50 — WEJŚCIE CZYTELNIKA. Przycisk w nagłówku, okienko, komunikat. */
.wejscie{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:20px;
  font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;
  background:transparent;color:var(--tx,#e6e9ef);border:1px solid var(--lin,#2a3242);
  transition:border-color .15s,background .15s}
.wejscie:hover{border-color:var(--akc,#f5c518)}
.wejscie.zalogowany{background:rgba(245,197,24,.12);border-color:rgba(245,197,24,.4);
  color:var(--akc,#f5c518);max-width:150px;overflow:hidden;text-overflow:ellipsis}
.wejscie.zalogowany .wej-txt{overflow:hidden;text-overflow:ellipsis}

.modal-tlo{position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.62);
  display:flex;align-items:center;justify-content:center;padding:18px;
  animation:wej-wejdz .16s ease-out}
@keyframes wej-wejdz{from{opacity:0}to{opacity:1}}
.modal{position:relative;width:100%;max-width:380px;padding:22px;border-radius:14px;
  background:var(--card,#141924);border:1px solid var(--lin,#2a3242);
  box-shadow:0 18px 50px rgba(0,0,0,.5)}
.modal h3{margin:0 0 12px;font-size:17px}
.modal-x{position:absolute;top:10px;right:12px;width:28px;height:28px;border-radius:50%;
  background:transparent;border:0;color:var(--dim2,#7c8699);font-size:20px;line-height:1;
  cursor:pointer}
.modal-x:hover{color:var(--tx,#e6e9ef)}
.wej-okno p{margin:0 0 13px;font-size:12.8px;line-height:1.55}
.wej-okno input{width:100%;padding:10px 12px;margin-bottom:10px;border-radius:9px;
  font-size:14px;font-family:inherit;background:var(--tlo,#0f131c);color:var(--tx,#e6e9ef);
  border:1px solid var(--lin,#2a3242)}
.wej-okno input:focus{outline:none;border-color:var(--akc,#f5c518)}
.wej-cyfry{text-align:center;font-size:26px !important;letter-spacing:.34em;
  font-variant-numeric:tabular-nums;padding-left:.34em !important}
.btn.szeroki{width:100%;justify-content:center;padding:10px}
.btn.plaski{width:100%;justify-content:center;background:transparent;border:0;
  color:var(--dim2,#7c8699);margin-top:7px}
.btn.plaski:hover{color:var(--tx,#e6e9ef)}
.wej-okno .kv{padding:7px 0;border-bottom:1px solid var(--lin,#2a3242)}
.wej-stopka{margin:14px 0 0 !important;font-size:11.5px !important;line-height:1.5 !important}
.wej-okno .note{margin:10px 0 0}

.wej-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:950;
  padding:11px 20px;border-radius:24px;font-size:13px;
  background:var(--card,#141924);color:var(--tx,#e6e9ef);
  border:1px solid var(--lin,#2a3242);box-shadow:0 10px 30px rgba(0,0,0,.45);
  transition:opacity .5s,transform .5s}
.wej-toast.znika{opacity:0;transform:translateX(-50%) translateY(8px)}

@media (max-width:640px){
  .wejscie{padding:6px 10px;font-size:12px}
  .wejscie.zalogowany{max-width:96px}
  .modal{max-width:100%}
}

/* 9.50.1 — dziennik prób wejścia w panelu. */
.wej-tab td{vertical-align:top}
.wej-tab td:last-child{text-align:left;white-space:normal}
.wej-czas{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11.5px}
.wej-ok{color:var(--ok,#34d399)}
.wej-uwaga{color:#f5c518}
.wej-zle{color:#f87171}
@media (max-width:640px){
  .wej-tab td{display:block;padding:2px 8px}
  .wej-tab tr{display:block;padding:6px 0;border-bottom:1px solid var(--lin,#2a3242)}
}
.wej-pomoc{display:flex;flex-direction:column;gap:0;margin-top:4px}
.wej-pomoc .btn.plaski{margin-top:2px;font-size:11.5px}
.wej-pomoc .btn.plaski[disabled]{opacity:.45;cursor:default}

/* 9.51 — okienko przenoszenia dorobku. */
.dor-lista{margin:12px 0;padding:10px 13px;border-radius:10px;
  background:var(--tlo,#0f131c);border:1px solid var(--lin,#2a3242)}
.dor-lista .kv{padding:5px 0;border-bottom:1px solid var(--lin,#2a3242);font-size:13px}
.dor-lista .kv:last-child{border-bottom:0}

/* ══ 9.52 — MÓJ PROFIL ══════════════════════════════════════════════════ */
.prof-glowa{padding:18px 20px;border-radius:14px;margin-bottom:18px;
  background:linear-gradient(145deg,var(--card,#141924),var(--tlo2,#161b26));
  border:1px solid var(--lin,#2a3242)}
.prof-kto{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.prof-kto h2{margin:0;font-size:24px;letter-spacing:-.01em}

/* 9.56.8 — awatar z inicjalem. Ton liczony z nazwy (zmienna --ton), wiec
   ten sam czytelnik ma zawsze ten sam kolor. */
.prof-awatar{width:44px;height:44px;flex:0 0 44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:19px;font-weight:700;letter-spacing:.01em;
  color:hsl(var(--ton,45) 70% 82%);
  background:hsl(var(--ton,45) 45% 22%);
  border:1px solid hsl(var(--ton,45) 45% 34%)}

/* 9.56.8 — ranga jako pastylka, a nie samotny napis w rogu. */
.prof-ranga{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--akc,#f5c518);
  padding:5px 11px;border-radius:999px;
  background:rgba(245,197,24,.14);border:1px solid rgba(245,197,24,.32)}

/* 9.56.8 — pasek grubszy i zaokraglony. Jeden spokojny gradient: hub ma
   trzymac styl gazety, nie kasyna. */
.prof-pasek{height:11px;border-radius:999px;margin:14px 0 9px;overflow:hidden;
  background:var(--tlo,#0f131c);border:1px solid var(--lin,#2a3242)}
.prof-pasek-wyp{height:100%;border-radius:999px;
  background:linear-gradient(90deg,rgba(245,197,24,.55),var(--akc,#f5c518));
  transition:width .6s cubic-bezier(.4,0,.2,1)}
.prof-pod{display:flex;flex-wrap:wrap;gap:16px;font-size:12.5px;color:var(--dim,#9aa4b6)}
.prof-pod b{color:var(--tx,#e6e9ef);font-variant-numeric:tabular-nums}
.prof-opis{margin-top:9px;font-size:12.5px;font-style:italic}

.prof-h{margin:22px 0 9px;font-size:14px}
.prof-h s{text-decoration:none;font-size:11px;color:var(--dim2,#7c8699);font-weight:400}

.prof-karty{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
/* 9.56.8 — kafelek: liczba wyraznie wieksza, podpis wyraznie ciszej,
   ikona przy naglowku i delikatne podswietlenie pod kursorem. */
.prof-karta{padding:13px 15px;border-radius:11px;background:var(--card,#141924);
  border:1px solid var(--lin,#2a3242);
  transition:background .15s,border-color .15s}
.prof-karta:hover{background:var(--tlo2,#181e2a);border-color:var(--lin2,#38425a)}
.prof-karta-t{font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dim2,#7c8699);display:flex;align-items:center;gap:6px}
.prof-karta-t .ikn{width:15px;height:15px;flex:0 0 15px;opacity:.85}
.prof-karta-p{font-size:34px;font-weight:700;margin:4px 0 1px;line-height:1.05;
  color:var(--tx,#e6e9ef);font-variant-numeric:tabular-nums}
.prof-karta-o{font-size:11.5px;color:var(--dim2,#7c8699)}

.prof-seria{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px;padding:10px 14px;
  border-radius:11px;font-size:12.5px;background:var(--card,#141924);
  border:1px solid var(--lin,#2a3242)}

/* ══ 9.56.8 — DWIE GABLOTY ODZNAK ═════════════════════════════════════════
   Zdobyta zostaje z opisem — to jest nagroda i ma byc widoczna.
   Zablokowana schodzi do samej ikony z nazwa, w szarosci; opis pokazuje sie
   po klknieciu, bo dymek na najechanie nie dziala na telefonie. */
.prof-odznaki{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:9px}
.odz{padding:11px 13px;border-radius:11px;background:var(--tlo,#0f131c);
  border:1px solid var(--lin,#2a3242);transition:border-color .2s,background .2s}
.odz.mam{display:flex;gap:11px;align-items:flex-start;
  border-color:rgba(245,197,24,.45);background:rgba(245,197,24,.07)}
.odz-ikona{color:var(--akc,#f5c518);flex:0 0 auto;line-height:0}
.ikn{width:18px;height:18px}
.ikn.duza{width:26px;height:26px}
.odz-tresc{min-width:0}
.odz-nazwa{font-size:12.5px;font-weight:600}
.odz.mam .odz-nazwa{color:var(--akc,#f5c518)}
.odz-opis{font-size:11px;line-height:1.45;color:var(--dim2,#7c8699);margin-top:3px}

.odz-dozdobycia{margin:16px 0 8px;font-size:12px}
.odz-dozdobycia s{text-decoration:none;color:var(--tx,#e6e9ef);font-weight:600}
.odz-dozdobycia i{font-style:normal;color:var(--dim2,#7c8699)}

.prof-odznaki.zamkniete{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:7px}
.odz.pusta{display:flex;flex-direction:column;align-items:center;gap:6px;
  text-align:center;padding:12px 7px;cursor:pointer;width:100%;font:inherit;
  color:var(--dim2,#7c8699);filter:grayscale(1);opacity:.5}
.odz.pusta .odz-ikona{color:var(--dim2,#7c8699)}
.odz.pusta .odz-nazwa{font-size:11px;font-weight:500;line-height:1.3}
.odz.pusta:hover{opacity:.8;border-color:var(--lin2,#38425a)}
.odz.pusta.wybrana{opacity:1;filter:none;border-color:var(--akc,#f5c518);
  color:var(--tx,#e6e9ef)}
.odz-dymek{margin-top:9px;padding:10px 13px;border-radius:10px;font-size:12px;
  line-height:1.5;background:var(--card,#141924);border:1px solid var(--lin2,#38425a)}
.odz-dymek b{color:var(--akc,#f5c518);margin-right:5px}

.prof-obs{padding:11px 14px;border-radius:11px;font-size:13px;
  background:var(--card,#141924);border:1px solid var(--lin,#2a3242)}
.prof-obs .btn{margin-left:8px}

.prof-ust{padding:13px 15px;border-radius:11px;margin-bottom:11px;
  background:var(--card,#141924);border:1px solid var(--lin,#2a3242)}
.prof-ust .kv{padding:6px 0;border-bottom:1px solid var(--lin,#2a3242);font-size:12.5px}
.prof-ust .kv:last-child{border-bottom:0}
.prof-pole{display:block;margin-bottom:9px}
.prof-pole span{display:block;font-size:11.5px;color:var(--dim2,#7c8699);margin-bottom:5px}
.prof-pole input{width:100%;max-width:300px;padding:8px 11px;border-radius:8px;font-size:13.5px;
  background:var(--tlo,#0f131c);color:var(--tx,#e6e9ef);border:1px solid var(--lin,#2a3242)}
.prof-pole input:focus{outline:none;border-color:var(--akc,#f5c518)}
.prof-pole-tytul{font-size:13px;font-weight:600;margin-bottom:7px}
.prof-pole-tytul s{text-decoration:none;font-size:11px;color:var(--dim2,#7c8699);font-weight:400}
.prof-znak{text-decoration:none;font-size:10px;padding:1px 6px;border-radius:20px;
  background:rgba(245,197,24,.15);color:var(--akc,#f5c518);margin-left:5px}
.prof-niebezpieczne{border-color:rgba(248,113,113,.3)}
.prof-niebezpieczne .btn{border-color:rgba(248,113,113,.4);color:#f87171}
.prof-niebezpieczne .btn:hover{background:rgba(248,113,113,.1)}

.prof-zapro{max-width:520px;margin:40px auto;text-align:center;padding:26px 22px;
  border-radius:14px;background:var(--card,#141924);border:1px solid var(--lin,#2a3242)}
.prof-zapro h2{margin:0 0 10px;font-size:22px}
.prof-zapro p{font-size:13.5px;line-height:1.6;color:var(--dim,#9aa4b6);margin:0 0 14px}
.prof-zapro #prof-zapas{margin-bottom:16px;font-size:13px}
.prof-zapro .btn{width:100%;justify-content:center;padding:11px}
.prof-drobne{margin-top:11px !important;font-size:11.5px !important}

@media (max-width:640px){
  .prof-kto h2{font-size:20px}
  .prof-ranga{margin-left:0;width:100%}
  .prof-karty{grid-template-columns:repeat(2,1fr)}
  .prof-odznaki{grid-template-columns:1fr}
}

/* 9.53 — dwa liczniki na profilu i historia sezonów. */
.prof-liczniki{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:10px}
.prof-licznik{padding:13px 15px;border-radius:12px;background:var(--card,#141924);
  border:1px solid var(--lin,#2a3242)}
.prof-licznik-t{font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dim2,#7c8699)}
.prof-licznik-p{font-size:31px;font-weight:700;line-height:1.15;margin:2px 0 4px;
  font-variant-numeric:tabular-nums}
.prof-licznik-o{font-size:11px}
.prof-pasek.maly{height:5px;margin:6px 0 5px}
.prof-wyjasnienie{margin:0 0 4px !important;line-height:1.6}
.prof-hist tr.teraz td{background:rgba(245,197,24,.05)}
.prof-hist td:last-child{text-align:right}
@media (max-width:640px){
  .prof-liczniki{grid-template-columns:1fr}
  .prof-licznik-p{font-size:27px}
}

/* 9.54 — powód odmowy na górze okienka logowania. */
.wej-powod{margin:0 0 13px;padding:10px 13px;border-radius:10px;font-size:13px;line-height:1.5;
  background:rgba(245,197,24,.1);border-left:3px solid var(--akc,#f5c518);
  color:var(--tx,#e6e9ef)}
.ustw i.zamkniete{font-style:normal;font-size:10.5px;font-weight:600;padding:1px 7px;
  border-radius:20px;background:rgba(248,113,113,.15);color:#f87171;margin-left:6px}

/* ── 9.55: DWA WPISY, JEDEN CZŁOWIEK ──────────────────────────────────────
   Dwie karty obok siebie i znak równości między nimi. Układ ma mówić wprost,
   o co pytamy: „czy to jest ta sama osoba?". Para pewna (zgodna data
   urodzenia albo numer w API) dostaje zielone obramowanie, para tylko
   podejrzana — żółte, bo tam decyzja naprawdę należy do człowieka. */
.dubpara{border:1px solid var(--lin,#2a3242);border-radius:12px;padding:12px;margin:10px 0;
  border-left:3px solid rgba(245,197,24,.7)}
.dubpara.pewna{border-left-color:#4ade80}
.dubpowod{font-size:12.5px;line-height:1.5;color:var(--dim,#8d99ad);margin-bottom:10px}
.dubpowod b{color:var(--tx,#e6e9ef)}
.dubpary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dubznak{font-size:20px;color:var(--dim,#8d99ad);flex:0 0 auto}
.dubkarta{flex:1 1 240px;min-width:220px;display:flex;gap:10px;align-items:flex-start;
  border:1px solid var(--lin,#2a3242);border-radius:10px;padding:9px 11px;
  background:rgba(255,255,255,.02)}
.dubfoto{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:0 0 auto;
  background:rgba(255,255,255,.05)}
.dubfoto.pusta{display:inline-block}
.dubdane{min-width:0}
.dubdane b{font-size:14px;display:block;margin-bottom:2px}
.dubklub{font-size:12.5px;color:var(--tx,#e6e9ef);opacity:.85}
.dubmeta{font-size:11.5px;color:var(--dim,#8d99ad);margin-top:3px;line-height:1.5}
.dubmeta code{font-size:11px;background:rgba(255,255,255,.06);padding:1px 5px;border-radius:5px}
.dubzrodlo{font-size:11.5px;color:var(--dim,#8d99ad);margin-top:4px}
.dubakcje{display:flex;align-items:center;gap:10px;margin-top:11px;flex-wrap:wrap}
.dubnota{font-size:11.5px;color:var(--dim,#8d99ad)}
@media (max-width:620px){.dubznak{display:none}.dubkarta{flex:1 1 100%}}


/* ── EKRAN „DO SPRAWDZENIA" (9.56.25) ─────────────────────────────────────
   Tabelka redakcji, nie strona czytelnika: gęsto, czytelnie, bez ozdób.
   Cztery kolumny o stałej roli — nazwisko, klub, powód, decyzja — żeby
   dało się przejechać wzrokiem po jednej kolumnie, a nie po całych wierszach. */
.sprpasek{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 12px;font-size:12px;color:var(--dim)}
.sprpasek b{color:var(--tx);font-variant-numeric:tabular-nums;font-size:14px}
.sprh{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2);
  margin:18px 0 6px;padding-bottom:5px;border-bottom:1px solid var(--line)}
.sprile{color:var(--dim2);font-weight:600;text-transform:none;letter-spacing:0}
.sprt{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.sprw{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(130px,1.2fr) 2fr auto;
  gap:10px;align-items:center;font-size:12px;background:var(--bg2);
  border-radius:7px;padding:6px 10px}
.sprn{font-weight:650;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sprn i{font-style:normal;font-weight:400;color:var(--dim2);font-size:11px}
.sprk{color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sprk i{font-style:normal;color:var(--dim2);font-size:11px}
.sprd{color:var(--dim2);font-size:11.5px}
.sprg{text-align:right}
#spr-dociagnij{margin:8px 0 2px}
@media (max-width:760px){
  .sprw{grid-template-columns:1fr auto;row-gap:2px}
  .sprk,.sprd{grid-column:1 / -1}
}

/* Dwa stany klubu na karcie (9.56.25) — mała pastylka, nie krzyk. */
.pcwolny,.pcczeka{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:99px;
  font-size:10px;font-weight:700;letter-spacing:.03em;vertical-align:1px}
.pcwolny{background:rgba(245,197,66,.16);color:var(--acc,#f5c518)}
.pcczeka{background:rgba(255,255,255,.08);color:var(--dim2)}

/* ══════════════════════════════════════════════════════════════════════════
   NEWSROOM (9.57.0) — KAFELKI PO MECZU, TEKSTY I GRAFIKA
   ══════════════════════════════════════════════════════════════════════════
   Ekran jest gęsty z założenia: po weekendzie stoi na nim kilkaset wierszy
   i redakcja ma je PRZEJRZEĆ, a nie przewijać. Dlatego wiersz jest jedną
   linią, a wszystko, co trzeba przeczytać uważnie, otwiera się dopiero
   po kliknięciu. */

.nr-pasek{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 14px}
.nr-okno{display:inline-flex;gap:4px}
.nr-pasek .pole{flex:1;min-width:180px;max-width:320px}
#nr-licznik{margin-left:auto;font-size:12px}

.nr-k{border:1px solid var(--linia,#243049);border-radius:10px;margin-bottom:6px;
  background:var(--karta,#141b2b);overflow:hidden}
.nr-k.otwarty{border-color:var(--akcent,#e11d48)}

.nr-glowa{display:grid;grid-template-columns:46px minmax(140px,1.4fr) minmax(90px,.9fr) minmax(170px,1.6fr) 52px auto 22px;
  gap:10px;align-items:center;padding:9px 12px;cursor:pointer}
.nr-glowa:hover{background:rgba(255,255,255,.035)}

/* Waga — liczba, po której ustawiona jest lista. Kolor niesie znaczenie:
   im wyżej, tym więcej się działo. */
.nr-waga{font-variant-numeric:tabular-nums;font-weight:800;font-size:13px;
  text-align:center;padding:3px 0;border-radius:6px;
  background:rgba(255,255,255,.06);color:var(--dim,#9aa6bd)}
.nr-k:nth-child(-n+3) .nr-waga{background:rgba(225,29,72,.18);color:#ff9aa9}

.nr-kto{display:flex;flex-direction:column;min-width:0}
.nr-kto b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nr-kto span{font-size:11.5px;color:var(--dim,#9aa6bd);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.nr-dorobek{font-size:12.5px;color:var(--dim,#9aa6bd)}
.nr-dorobek b{font-variant-numeric:tabular-nums}
.nr-gol{color:#5cd68a}.nr-asy{color:#7fb6ff}.nr-czyste{color:#ffd27a}.nr-czerw{color:#ff6b7a}

/* Wszystko o `.nr-mecz` w JEDNEJ regule — druga, nawet niesprzeczna, wygląda
   jak dwie różne rzeczy pod tą samą nazwą i tak ją czyta `lib/kolizje.js`. */
.nr-mecz{display:flex;flex-direction:column;min-width:0;font-size:12.5px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nr-mecz>span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.nr-min{font-size:12px;color:var(--dim,#9aa6bd);font-variant-numeric:tabular-nums;text-align:right}
.nr-jest{font-size:11px;color:#5cd68a;white-space:nowrap}
.nr-strzalka{color:var(--dim,#9aa6bd);text-align:center}

.nr-srodek{padding:4px 14px 14px;border-top:1px solid var(--linia,#243049)}
.nr-fakty{font-size:12.5px;line-height:1.6;color:var(--dim,#9aa6bd);
  background:rgba(255,255,255,.03);border-radius:8px;padding:9px 11px;margin:10px 0}
.nr-fakty b{color:var(--tx,#e6e9ef)}
.nr-etyk{display:block;font-size:12px;color:var(--dim,#9aa6bd);margin:10px 0 4px}
.ostrz-tekst{color:#ffc46b}
.nr-srodek .pole{width:100%;box-sizing:border-box}
.nr-srodek textarea.pole{min-height:62px;resize:vertical;font:inherit;line-height:1.5}
.nr-foto{display:grid;gap:0}
.nr-guziki{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}

/* ── WERSJA NA STRONĘ (9.58) ─────────────────────────────────────────────
   Stoi NAD kartami social i jest szersza, bo to jedyny z czterech tekstów,
   który redakcja tu pisze, a nie tylko kopiuje. Ramka w naszej zieleni —
   żeby na pierwszy rzut oka było widać, że to „nasze", a nie „na cudzą
   platformę". */
.nr-strona{margin-top:14px;border:1px solid var(--akcent,#22c55e);border-radius:9px;
  padding:10px;background:rgba(34,197,94,.06)}
.nr-strona .nr-plat-g{border-bottom:1px solid var(--linia,#243049);margin:-10px -10px 10px;
  padding:7px 10px}
.nr-strona .pole{width:100%;margin-bottom:8px}
.nr-art-tresc{font:13px/1.6 inherit;resize:vertical;min-height:160px}

/* ── GOTOWIEC ───────────────────────────────────────────────────────────── */
.nr-platformy{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-top:14px}
.nr-plat{border:1px solid var(--linia,#243049);border-radius:9px;overflow:hidden;
  background:rgba(0,0,0,.18);display:flex;flex-direction:column}
.nr-plat-g{display:flex;align-items:center;gap:8px;padding:7px 10px;
  border-bottom:1px solid var(--linia,#243049);font-size:12.5px}
.nr-plat-g .cichy{margin-left:auto;font-size:11px}
.nr-tekst{margin:0;padding:11px;font:13px/1.55 inherit;white-space:pre-wrap;
  word-break:break-word;flex:1;max-height:340px;overflow:auto}
.nr-link{padding:0 11px 9px;font-size:11.5px;color:var(--dim,#9aa6bd)}
.nr-link code{font-size:11px;word-break:break-all}
.nr-plat .note{margin:0 11px 10px;font-size:11.5px}

/* ── GRAFIKA ────────────────────────────────────────────────────────────── */
.nr-grafika{margin-top:14px;border:1px solid var(--linia,#243049);border-radius:9px;
  padding:10px;background:rgba(0,0,0,.18)}
.nr-grafika-g{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px;font-size:12.5px}
.nr-grafika-g b{margin-right:6px}
.nr-grafika-g .btn-glowny{margin-left:auto}
/* Podgląd skalujemy do szerokości kolumny — plik i tak powstaje w pełnym
   rozmiarze, bo canvas ma własne `width`/`height`. */
.nr-canvas{display:block;width:100%;max-width:760px;height:auto;margin:0 auto;
  border-radius:8px;background:#0b1020}

@media (max-width:860px){
  .nr-glowa{grid-template-columns:40px 1fr auto 18px;row-gap:4px}
  /* Potomek, nie goła klasa — `lib/kolizje.js` słusznie pilnuje, żeby jedna
     nazwa nie dostawała reguł układu w dwóch osobnych miejscach. Dwa razy
     `.nr-mecz` wyglądają jak dwie różne rzeczy walczące o tę samą nazwę. */
  .nr-glowa .nr-dorobek,.nr-glowa .nr-mecz{grid-column:2/4}
  .nr-min{display:none}
}

/* ── REDAKCJA JAKO STRUMIEŃ (9.57.0) ──────────────────────────────────────
   Pierwszy wpis duży, każdy kolejny jako wiersz z miniaturą. Przy jednym
   wpisie dziennie stos plakatów wyglądał dobrze; odkąd Redakcja jest
   głównym miejscem na newsy, czytelnik musi widzieć, że jest ich więcej
   niż jeden. */
.notz{display:grid;grid-template-columns:132px 1fr auto;gap:14px;align-items:center;
  padding:11px 13px;border:1px solid var(--linia,#243049);border-radius:12px;
  background:var(--karta,#141b2b);margin-bottom:9px;cursor:pointer;
  border-left:3px solid var(--nota-kolor,#3b4763);transition:border-color .12s,background .12s}
.notz:hover{background:rgba(255,255,255,.035);border-color:var(--nota-kolor,#3b4763)}
.notz-foto{display:block;width:132px;height:84px;border-radius:8px;overflow:hidden;background:#0d1322}
.notz-foto img{width:100%;height:100%;object-fit:cover;display:block}
.notz-tresc{min-width:0}
.notz-pasek{display:flex;flex-wrap:wrap;gap:9px;align-items:center;font-size:11px;margin-bottom:5px}
.notz-tytul{margin:0 0 4px;font-size:16px;line-height:1.3}
.notz-lead{margin:0;font-size:13px;line-height:1.5;color:var(--dim,#9aa6bd);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.notz-wiecej{font-size:12px;color:var(--akcent,#e11d48);white-space:nowrap;font-weight:650}
@media (max-width:640px){
  .notz{grid-template-columns:92px 1fr;gap:10px}
  .notz-foto{width:92px;height:68px}
  .notz-wiecej{display:none}
  .notz-tytul{font-size:14.5px}
}
