/*
Theme Name: Ranking UEFA FIX
Theme URI: https://ranking-uefa.pl/
Author: Ranking UEFA
Description: Autorski, lekki motyw dla portalu Ranking UEFA — rankingi, polskie kluby w Europie, analizy i społeczność kibiców.
Version: 0.3.3
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: ranking-uefa
*/

:root {
  --ru-bg: #07111f;
  --ru-bg-2: #0d1a2b;
  --ru-card: #111f31;
  --ru-card-2: #15263b;
  --ru-text: #f5f7fb;
  --ru-muted: #9fb0c5;
  --ru-line: rgba(255,255,255,.10);
  --ru-accent: #25a6ff;
  --ru-accent-2: #69c7ff;
  --ru-poland: #e31b23;
  --ru-white: #ffffff;
  --ru-success: #32c980;
  --ru-radius: 18px;
  --ru-shadow: 0 20px 55px rgba(0,0,0,.22);
  --ru-container: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #f4f7fb;
  color: #162033;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.58;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, textarea, select { font: inherit; }

.ru-container { width: min(calc(100% - 40px), var(--ru-container)); margin: 0 auto; }
.ru-section { padding: 72px 0; }
.ru-section--dark { background: var(--ru-bg); color: var(--ru-text); }
.ru-section--soft { background: #eef3f8; }
.ru-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.ru-kicker { margin:0 0 8px; color: var(--ru-accent); font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.ru-title { margin:0; font-size:clamp(28px,4vw,44px); line-height:1.05; letter-spacing:-.03em; }
.ru-subtitle { margin:10px 0 0; color:#64748b; max-width:720px; }
.ru-section--dark .ru-subtitle { color: var(--ru-muted); }

/* Header */
.ru-site-header { position:sticky; top:0; z-index:50; background:rgba(7,17,31,.96); backdrop-filter: blur(14px); border-bottom:1px solid var(--ru-line); color:#fff; }
.ru-header-inner { min-height:72px; display:flex; align-items:center; gap:28px; }
.ru-brand { display:flex; align-items:center; gap:12px; flex:0 0 auto; font-weight:900; letter-spacing:-.03em; }
.ru-brand-mark { width:46px; height:46px; border-radius:50%; display:grid; place-items:center; background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.18); overflow:hidden; flex:0 0 46px; }
.ru-brand-ball { width:100%; height:100%; display:block; object-fit:cover; }
.ru-brand-ball { width:44px !important; height:44px !important; display:block !important; pointer-events:none; filter:none !important; transform:none !important; opacity:1 !important; }
.ru-brand:focus .ru-brand-ball, .ru-brand:active .ru-brand-ball, .ru-brand:hover .ru-brand-ball { filter:none; transform:none; }
.ru-brand-name { font-size:20px; white-space:nowrap; }
.ru-brand-name span { color:var(--ru-accent-2); }
.ru-primary-nav { margin-left:auto; }
.ru-primary-nav ul { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:4px; }
.ru-primary-nav a { display:block; padding:10px 12px; color:#dbe7f5; font-size:14px; font-weight:700; border-radius:10px; }
.ru-primary-nav a:hover { background:rgba(255,255,255,.08); color:#fff; }
.ru-header-actions { display:flex; gap:10px; align-items:center; }
.ru-btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 18px; border-radius:12px; border:1px solid transparent; font-weight:800; cursor:pointer; transition:.2s ease; }
.ru-btn--primary { background:var(--ru-accent); color:#04111f; }
.ru-btn--primary:hover { transform:translateY(-1px); background:#52b8ff; }
.ru-btn--ghost { border-color:var(--ru-line); color:#fff; background:rgba(255,255,255,.03); }
.ru-menu-toggle { display:none; margin-left:auto; width:44px; height:44px; border-radius:11px; border:1px solid var(--ru-line); background:rgba(255,255,255,.04); color:#fff; font-size:22px; }

/* Hero */
.ru-hero { position:relative; overflow:hidden; background:radial-gradient(circle at 80% 10%, rgba(37,166,255,.18), transparent 32%), linear-gradient(180deg,#07111f 0%,#0b1829 100%); color:#fff; padding:72px 0 58px; }
.ru-hero::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.08; background-image:linear-gradient(rgba(255,255,255,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.25) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(to bottom,black,transparent 75%); }
.ru-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.2fr .8fr; gap:32px; align-items:stretch; }
.ru-hero-copy { padding:18px 0; }
.ru-hero-copy h1 { margin:0 0 18px; font-size:clamp(42px,7vw,76px); line-height:.94; letter-spacing:-.055em; max-width:820px; }
.ru-hero-copy h1 span { color:var(--ru-accent-2); }
.ru-hero-copy p { margin:0; color:#b6c6d9; max-width:700px; font-size:18px; }
.ru-hero-chips { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.ru-chip { padding:9px 12px; border:1px solid var(--ru-line); border-radius:999px; color:#dce8f5; background:rgba(255,255,255,.04); font-size:13px; font-weight:700; }

.ru-ranking-card { background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.04)); border:1px solid rgba(255,255,255,.12); border-radius:24px; padding:26px; box-shadow:var(--ru-shadow); }
.ru-ranking-label { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-bottom:18px; }
.ru-ranking-label strong { font-size:13px; letter-spacing:.14em; text-transform:uppercase; }
.ru-live { display:inline-flex; align-items:center; gap:7px; color:#bdebd6; font-size:12px; font-weight:800; }
.ru-live::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--ru-success); box-shadow:0 0 0 5px rgba(50,201,128,.12); }
.ru-poland-main { display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; padding:22px 0 24px; border-top:1px solid var(--ru-line); border-bottom:1px solid var(--ru-line); }
.ru-place { width:86px; height:86px; border-radius:22px; background:#fff; color:#07111f; display:grid; place-items:center; font-size:34px; font-weight:950; box-shadow:0 12px 32px rgba(0,0,0,.22); }
.ru-place small { font-size:11px; display:block; letter-spacing:.08em; text-transform:uppercase; color:#64748b; margin-top:-9px; }
.ru-country strong { display:block; font-size:32px; letter-spacing:-.03em; }
.ru-country span { color:#b8c7d7; font-size:14px; }
.ru-points { margin-top:6px; font-size:28px; font-weight:900; color:#fff; }
.ru-neighbours { margin-top:18px; display:grid; gap:10px; }
.ru-neighbour { display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:10px; padding:11px 12px; background:rgba(255,255,255,.04); border-radius:12px; color:#dce8f4; }
.ru-neighbour-position { font-weight:900; color:#9fb4ca; font-variant-numeric:tabular-nums; text-align:center; }
.ru-neighbour.is-poland .ru-neighbour-position { color:#fff; }
.ru-neighbour.is-poland { background:rgba(227,27,35,.13); outline:1px solid rgba(227,27,35,.26); }
.ru-neighbour b { color:#fff; }
.ru-neighbour b { display:flex; align-items:center; gap:8px; }
.ru-neighbour-flag { display:inline-flex; width:28px; min-width:28px; justify-content:flex-start; align-items:center; line-height:1; }
.ru-flag-svg { width:24px; height:16px; display:block; border-radius:3px; box-shadow:0 0 0 1px rgba(255,255,255,.18); overflow:hidden; }
.ru-flag-emoji { font-size:18px; line-height:1; }
.ru-ranking-meta { display:flex; justify-content:space-between; gap:10px; margin-top:16px; color:#8fa4bb; font-size:12px; }

/* Club cards */
.ru-clubs-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.ru-club-card { background:#fff; border:1px solid #e4eaf1; border-radius:18px; padding:20px; transition:.2s ease; box-shadow:0 10px 30px rgba(15,23,42,.05); }
.ru-club-card:hover { transform:translateY(-4px); box-shadow:0 18px 42px rgba(15,23,42,.10); }
.ru-club-top { display:flex; align-items:center; gap:12px; }
.ru-club-badge { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:#f0f4f8; font-weight:950; color:#223148; }
.ru-club-name { font-weight:900; font-size:18px; line-height:1.1; }
.ru-club-country { color:#7a899b; font-size:12px; margin-top:4px; }
.ru-club-stats { margin-top:18px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ru-stat { padding:12px; background:#f7f9fc; border-radius:12px; }
.ru-stat span { display:block; color:#78879a; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.ru-stat b { display:block; margin-top:4px; font-size:17px; }

/* Posts */
.ru-posts-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.ru-post-card { overflow:hidden; background:#fff; border:1px solid #e4eaf1; border-radius:18px; box-shadow:0 12px 34px rgba(15,23,42,.05); }
.ru-post-thumb { aspect-ratio:16/9; background:linear-gradient(135deg,#dfe8f2,#eef3f8); overflow:hidden; }
.ru-post-thumb img { width:100%; height:100%; object-fit:cover; }
.ru-post-body { padding:20px; }
.ru-post-meta { color:#8290a1; font-size:12px; margin-bottom:8px; }
.ru-post-title { margin:0 0 10px; font-size:21px; line-height:1.18; letter-spacing:-.02em; }
.ru-post-excerpt { margin:0; color:#637083; font-size:14px; }
.ru-readmore { display:inline-flex; margin-top:14px; color:#087fc5; font-weight:800; font-size:13px; }

/* Community */
.ru-community-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:24px; }
.ru-community-panel { background:var(--ru-card); border:1px solid var(--ru-line); border-radius:20px; padding:24px; }
.ru-community-panel h3 { margin:0 0 18px; font-size:22px; }
.ru-comment-list { display:grid; gap:12px; }
.ru-comment-item { padding:14px; background:rgba(255,255,255,.04); border-radius:14px; }
.ru-comment-item strong { display:block; font-size:14px; }
.ru-comment-item p { margin:6px 0 0; color:#b2c1d2; font-size:13px; }
.ru-user-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--ru-line); }
.ru-user-row:last-child { border-bottom:0; }
.ru-user-name { display:flex; align-items:center; gap:10px; font-weight:800; }
.ru-avatar { width:38px; height:38px; border-radius:50%; background:#20344c; display:grid; place-items:center; color:#a9dfff; font-weight:900; }
.ru-score { color:#8eb5d2; font-size:12px; }

/* Poll */
.ru-poll-card { display:grid; grid-template-columns:.85fr 1.15fr; gap:28px; background:#fff; border:1px solid #e3e9f0; border-radius:24px; padding:30px; box-shadow:0 14px 40px rgba(15,23,42,.06); }
.ru-poll-title { margin:0 0 10px; font-size:32px; line-height:1.08; letter-spacing:-.035em; }
.ru-poll-desc { color:#677588; margin:0; }
.ru-poll-options { display:grid; gap:10px; }
.ru-poll-option { display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center; padding:14px 16px; border:1px solid #e3e9ef; border-radius:14px; background:#fafbfd; }
.ru-poll-option b { font-size:14px; }
.ru-poll-option span { font-weight:900; color:#087fc5; }

/* Content */
.ru-content-wrap { width:min(calc(100% - 40px),920px); margin:0 auto; padding:54px 0 80px; }
.ru-article { background:#fff; border-radius:18px; padding:clamp(24px,5vw,52px); box-shadow:0 12px 36px rgba(15,23,42,.06); }
.ru-article h1 { font-size:clamp(34px,5vw,56px); line-height:1.02; letter-spacing:-.045em; margin:0 0 12px; }
.ru-entry-meta { color:#7d8999; font-size:13px; margin-bottom:26px; }
.ru-entry-content { font-size:18px; }
.ru-entry-content h2 { margin-top:42px; font-size:32px; line-height:1.12; }
.ru-entry-content a { color:#087fc5; text-decoration:underline; text-underline-offset:3px; }

/* Footer */
.ru-footer { background:#050d18; color:#9eb0c4; padding:42px 0; border-top:1px solid rgba(255,255,255,.07); }
.ru-footer-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.ru-footer strong { color:#fff; }
.ru-footer-note { max-width:700px; font-size:13px; }

.ru-empty { padding:24px; border:1px dashed #cad5e1; border-radius:16px; color:#728095; text-align:center; background:#fff; }
.screen-reader-text { position:absolute!important; height:1px; width:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }

@media (max-width: 980px) {
  .ru-primary-nav, .ru-header-actions { display:none; }
  .ru-menu-toggle { display:block; }
  .ru-site-header.is-open .ru-primary-nav { display:block; position:absolute; top:72px; left:0; right:0; background:#07111f; border-top:1px solid var(--ru-line); border-bottom:1px solid var(--ru-line); padding:12px 20px 18px; }
  .ru-site-header.is-open .ru-primary-nav ul { display:grid; gap:4px; }
  .ru-site-header.is-open .ru-header-actions { display:flex; position:absolute; top:320px; left:20px; right:20px; background:#07111f; padding:0 0 18px; }
  .ru-hero-grid, .ru-community-grid, .ru-poll-card { grid-template-columns:1fr; }
  .ru-clubs-grid { grid-template-columns:repeat(2,1fr); }
  .ru-posts-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 640px) {
  .ru-container { width:min(calc(100% - 24px), var(--ru-container)); }
  .ru-section { padding:52px 0; }
  .ru-header-inner { min-height:64px; }
  .ru-brand-name { font-size:18px; }
  .ru-hero { padding:48px 0 42px; }
  .ru-hero-copy h1 { font-size:46px; }
  .ru-hero-copy p { font-size:16px; }
  .ru-ranking-card { padding:20px; border-radius:20px; }
  .ru-place { width:72px; height:72px; font-size:28px; }
  .ru-country strong { font-size:27px; }
  .ru-clubs-grid, .ru-posts-grid { grid-template-columns:1fr; }
  .ru-section-head { align-items:flex-start; flex-direction:column; }
  .ru-poll-card { padding:22px; }
  .ru-poll-title { font-size:28px; }
  .ru-footer-inner { align-items:flex-start; flex-direction:column; }
}


/* Full country ranking page */
.ru-content-wrap--wide { width:min(calc(100% - 32px),1380px); }
.ru-article--ranking { padding:clamp(20px,3vw,38px); }
.ru-article--ranking > h1 { margin-bottom:28px; }
.ru-full-ranking { font-size:15px; }
.ru-full-ranking-head { display:flex; justify-content:space-between; align-items:flex-start; gap:28px; margin:0 0 22px; padding:20px 22px; background:#f5f8fc; border:1px solid #e1e8f0; border-radius:16px; }
.ru-full-ranking-eyebrow { display:block; color:#087fc5; font-size:12px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; margin-bottom:7px; }
.ru-full-ranking-head p { margin:0; color:#59687b; font-size:14px; max-width:780px; }
.ru-full-ranking-update { white-space:nowrap; color:#6c7b8d; font-size:12px; font-weight:700; padding-top:2px; }
.ru-ranking-table-scroll { width:100%; overflow-x:auto; border:1px solid #dfe7ef; border-radius:16px; background:#fff; box-shadow:0 10px 30px rgba(15,23,42,.04); }
.ru-ranking-table { width:100%; min-width:1160px; border-collapse:separate; border-spacing:0; font-size:14px; font-variant-numeric:tabular-nums; }
.ru-ranking-table th { position:sticky; top:0; z-index:2; padding:13px 12px; background:#0c192a; color:#dce9f7; text-align:right; font-size:11px; letter-spacing:.045em; text-transform:uppercase; border-bottom:1px solid #1f3044; white-space:nowrap; }
.ru-ranking-table td { padding:12px; text-align:right; border-bottom:1px solid #e9eef4; color:#26364a; white-space:nowrap; }
.ru-ranking-table tbody tr:last-child td { border-bottom:0; }
.ru-ranking-table tbody tr:hover td { background:#f7faff; }
.ru-ranking-table .is-pos { width:76px; text-align:center; }
.ru-ranking-table .is-country { min-width:230px; text-align:left; }
.ru-ranking-table .is-total { background:#f4f8fc; }
.ru-ranking-table th.is-total { background:#12243a; }
.ru-ranking-table .is-started { width:70px; min-width:70px; text-align:center; padding-left:4px; padding-right:2px; }
.ru-ranking-table .is-remaining { width:62px; min-width:62px; text-align:center; padding-left:2px; padding-right:3px; }
.ru-ranking-table th.is-started,.ru-ranking-table td.is-started { border-left:1px solid #e2e9f0; }
.ru-ranking-table th.is-started { border-left-color:rgba(255,255,255,.08); }
.ru-ranking-table th.is-started,.ru-ranking-table th.is-remaining { letter-spacing:.025em; }

.ru-ranking-table tr.is-poland td { background:#fff2f4; border-bottom-color:#f3cbd1; }
.ru-ranking-table tr.is-poland td.is-total { background:#ffe7eb; }
.ru-ranking-table tr.is-poland td:first-child { box-shadow:inset 4px 0 0 #e31b23; }

/* Delikatne progi/strefy dostępu — miękki separator premium. */
.ru-ranking-table tbody tr.ru-access-zone-start td:not(.is-access-info) {
  border-top:1px solid #bccbda;
  box-shadow:inset 0 7px 12px -14px rgba(22,48,78,.62);
}
.ru-ranking-table tbody tr.ru-access-zone-start td:first-child { position:relative; }
.ru-ranking-table tbody tr.ru-access-zone-start td:first-child::before {
  content:""; position:absolute; left:18px; top:-2px; width:20px; height:2px;
  border-radius:999px; background:#7f9bb6; opacity:.42;
}
.ru-ranking-table tbody tr.ru-access-zone-start.is-poland td:first-child::before { background:#e31b23; opacity:.58; }

/* Flagi w tabeli — własne SVG dla federacji, których emoji Windows nie obsługuje. */
.ru-table-flag { display:inline-flex; width:27px; height:18px; margin-right:9px; vertical-align:-3px; align-items:center; justify-content:center; text-align:center; }
.ru-country-flag-svg { display:block; width:24px; height:16px; border-radius:2px; box-shadow:0 0 0 1px rgba(15,23,42,.10),0 2px 5px rgba(15,23,42,.08); overflow:hidden; }
.ru-country-flag-emoji { display:inline-block; font-size:19px; line-height:1; transform:translateY(1px); }

/* Status liczby drużyn: komplet = zielony, część = złoty, brak = szary. */
.ru-teams-started { color:#495b70; font-weight:800; }
.ru-teams-left { display:inline-grid; place-items:center; min-width:34px; height:28px; padding:0 9px; border-radius:9px; font-weight:950; border:1px solid transparent; box-shadow:0 4px 10px rgba(15,23,42,.05); }
.ru-teams-left.is-complete { background:#e2f7ea; border-color:#c1ebd0; color:#14864b; }
.ru-teams-left.is-partial { background:#fff3d7; border-color:#f1d998; color:#9a6810; }
.ru-teams-left.is-none { background:#eef1f5; border-color:#e0e5eb; color:#7a8796; box-shadow:none; }

/* Prawa szyna informacji o strefie rankingu. Jedno "i" obsługuje cały zakres, np. 11–12. */
.ru-ranking-table th.is-access-head { width:50px; min-width:50px; padding:0; text-align:center; background:#091523; border-left:1px solid rgba(255,255,255,.07); }
.ru-ranking-table td.is-access-info {
  width:50px; min-width:50px; padding:0 7px; text-align:center; vertical-align:middle;
  background:#fbfdff !important; border-left:1px solid #e2e9f0; position:relative; overflow:visible;
}
.ru-access-info-wrap { position:relative; display:inline-grid; place-items:center; }
.ru-access-info-btn {
  width:24px; height:24px; border-radius:50%; border:1px solid #b9c9da; background:#fff; color:#31506e;
  font:800 12px/1 Georgia,serif; display:grid; place-items:center; cursor:help;
  box-shadow:0 4px 12px rgba(15,38,64,.07); transition:.18s ease;
}
.ru-access-info-btn:hover,.ru-access-info-btn:focus-visible { border-color:#239fe8; color:#087fc5; box-shadow:0 0 0 4px rgba(37,166,255,.10),0 7px 16px rgba(15,38,64,.10); outline:none; transform:translateY(-1px); }
.ru-access-tooltip {
  position:absolute; z-index:40; right:calc(100% + 12px); top:50%; width:350px; max-width:min(350px,72vw);
  transform:translateY(-50%) translateX(5px); opacity:0; visibility:hidden; pointer-events:none;
  background:#0d1b2c; color:#eef6ff; border:1px solid rgba(255,255,255,.12); border-radius:15px;
  padding:14px; text-align:left; white-space:normal; box-shadow:0 18px 48px rgba(6,18,32,.28); transition:.16s ease;
}
.ru-access-tooltip::after { content:""; position:absolute; right:-6px; top:50%; width:11px; height:11px; background:#0d1b2c; border-top:1px solid rgba(255,255,255,.12); border-right:1px solid rgba(255,255,255,.12); transform:translateY(-50%) rotate(45deg); }
.ru-access-info-wrap:hover .ru-access-tooltip,.ru-access-info-wrap:focus-within .ru-access-tooltip { opacity:1; visibility:visible; transform:translateY(-50%) translateX(0); }
.ru-access-tooltip-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:10px; margin-bottom:9px; border-bottom:1px solid rgba(255,255,255,.10); }
.ru-access-tooltip-head strong { font-size:14px; color:#fff; }
.ru-access-tooltip-head span { font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:#9fc7e4; background:rgba(101,191,247,.09); border:1px solid rgba(101,191,247,.14); padding:4px 7px; border-radius:999px; }
.ru-access-tooltip-row { display:grid; grid-template-columns:32px 1fr; gap:9px; align-items:start; margin:7px 0; font-size:11.5px; line-height:1.42; color:#cbd8e6; }
.ru-access-tooltip-row b { width:30px; min-height:22px; display:grid; place-items:center; border-radius:6px; font-size:9px; letter-spacing:.06em; color:#fff; }
.ru-access-tooltip-row b.is-cl { background:#2358aa; }
.ru-access-tooltip-row b.is-el { background:#c96b20; }
.ru-access-tooltip-row b.is-co { background:#178255; }
.ru-access-tooltip-note { margin-top:10px; padding-top:9px; border-top:1px solid rgba(255,255,255,.08); color:#879bb0; font-size:9.5px; line-height:1.45; }
.ru-team-status-legend { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:14px; color:#607085; font-size:11px; font-weight:700; }
.ru-team-status-legend span { display:inline-flex; align-items:center; gap:7px; }
.ru-team-status-legend i { width:9px; height:9px; border-radius:50%; display:inline-block; box-shadow:0 0 0 3px rgba(15,23,42,.025); }
.ru-team-status-legend i.is-complete { background:#31b86b; }
.ru-team-status-legend i.is-partial { background:#d9a82d; }
.ru-team-status-legend i.is-none { background:#a7b0bb; }
.ru-ranking-legend { margin-top:9px; color:#68788b; font-size:12px; line-height:1.5; }
.ru-ranking-meta { align-items:center; }
.ru-ranking-meta .ru-full-ranking-button {
  position:relative; display:inline-flex; align-items:center; gap:8px; min-height:38px; padding:6px 7px 6px 11px;
  color:#eff9ff; font-size:11px; font-weight:900; letter-spacing:.015em; white-space:nowrap;
  border:1px solid rgba(105,199,255,.34); border-radius:11px;
  background:linear-gradient(135deg,rgba(37,166,255,.20),rgba(37,166,255,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 22px rgba(0,0,0,.12);
  transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.ru-ranking-meta .ru-full-ranking-button::before {
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.10),transparent 38%); opacity:.7;
}
.ru-full-ranking-button__icon { position:relative; z-index:1; width:18px; height:18px; display:grid; place-items:center; color:#69c7ff; }
.ru-full-ranking-button__icon svg { width:18px; height:18px; display:block; }
.ru-full-ranking-button > span:not(.ru-full-ranking-button__icon):not(.ru-full-ranking-button__arrow) { position:relative; z-index:1; }
.ru-full-ranking-button__arrow {
  position:relative; z-index:1; width:26px; height:26px; display:grid; place-items:center; border-radius:8px;
  color:#061322; background:linear-gradient(180deg,#80d2ff,#45b6f8); font-size:15px; line-height:1;
  box-shadow:0 4px 12px rgba(37,166,255,.18);
}
.ru-ranking-meta .ru-full-ranking-button:hover {
  color:#fff; transform:translateY(-1px); border-color:rgba(105,199,255,.64);
  background:linear-gradient(135deg,rgba(37,166,255,.30),rgba(37,166,255,.12));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 10px 25px rgba(0,0,0,.18);
}
.ru-ranking-meta .ru-full-ranking-button:hover .ru-full-ranking-button__arrow { transform:translateX(1px); }
.ru-full-ranking-button__arrow { transition:transform .18s ease; }

@media (max-width: 760px) {
  .ru-content-wrap--wide { width:min(calc(100% - 18px),1380px); padding-top:24px; }
  .ru-article--ranking { padding:16px 10px 22px; border-radius:14px; }
  .ru-article--ranking > h1 { font-size:32px; padding:0 6px; }
  .ru-full-ranking-head { display:block; padding:16px; }
  .ru-full-ranking-update { margin-top:12px; }
  .ru-ranking-table-scroll { border-radius:12px; }
  .ru-ranking-table { font-size:13px; }
  .ru-ranking-table th, .ru-ranking-table td { padding:10px 9px; }
  .ru-ranking-table td.is-access-info { padding:0 5px; }
  .ru-access-tooltip { width:300px; max-width:68vw; right:calc(100% + 8px); }
}

.ru-poll-cta{display:inline-flex;align-items:center;gap:10px;margin-top:20px;min-height:46px;padding:0 17px;border-radius:12px;background:#0d1d30;color:#fff;font-weight:900;box-shadow:0 10px 24px rgba(15,35,58,.12)}
.ru-poll-cta span{color:var(--ru-accent);font-size:20px;transition:.2s ease}.ru-poll-cta:hover span{transform:translateX(3px)}


/* 0.2.8 — jedna zwarta komórka DRUŻYNY: start / w grze.
   Całe tło komórki pokazuje status i nie używamy kosztownych selektorów :has(). */
.ru-ranking-table th.is-teams {
  width:118px;
  min-width:118px;
  padding:7px 8px;
  text-align:center;
  background:#0b192a;
}
.ru-teams-head { display:grid; place-items:center; gap:1px; line-height:1.05; }
.ru-teams-head strong { color:#fff; font-size:10px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.ru-teams-head small { color:#8ea5bd; font-size:8px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.ru-ranking-table td.is-teams {
  width:118px;
  min-width:118px;
  padding:0 7px;
  text-align:center;
  vertical-align:middle;
  border-left:1px solid rgba(148,163,184,.12);
  border-right:1px solid rgba(148,163,184,.12);
  transition:background-color .14s ease, box-shadow .14s ease;
}
.ru-ranking-table td.is-teams.is-complete {
  background:#e8f8ee !important;
  box-shadow:inset 0 0 0 1px rgba(27,145,75,.07);
}
.ru-ranking-table td.is-teams.is-partial {
  background:#fff3d8 !important;
  box-shadow:inset 0 0 0 1px rgba(194,137,17,.08);
}
.ru-ranking-table td.is-teams.is-none {
  background:#eef1f4 !important;
  box-shadow:inset 0 0 0 1px rgba(100,116,139,.06);
}
.ru-teams-pair {
  min-height:55px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  white-space:nowrap;
}
.ru-teams-started,
.ru-teams-left {
  display:inline-grid;
  place-items:center;
  width:32px;
  min-width:32px;
  height:30px;
  padding:0;
  border-radius:8px;
  background:rgba(255,255,255,.84) !important;
  border:1px solid rgba(124,145,168,.24);
  color:#17324d;
  font-weight:950;
  line-height:1;
  box-shadow:0 3px 8px rgba(15,23,42,.04);
}
.ru-teams-divider {
  display:inline-grid;
  place-items:center;
  width:9px;
  color:#8092a5;
  font-size:14px;
  font-weight:900;
  line-height:1;
}
.ru-ranking-table td.is-teams.is-complete .ru-teams-started,
.ru-ranking-table td.is-teams.is-complete .ru-teams-left {
  border-color:#b7e6c7;
}
.ru-ranking-table td.is-teams.is-complete .ru-teams-left { color:#108447; }
.ru-ranking-table td.is-teams.is-partial .ru-teams-started,
.ru-ranking-table td.is-teams.is-partial .ru-teams-left {
  border-color:#ead18b;
}
.ru-ranking-table td.is-teams.is-partial .ru-teams-left { color:#94620a; }
.ru-ranking-table td.is-teams.is-none .ru-teams-started,
.ru-ranking-table td.is-teams.is-none .ru-teams-left {
  border-color:#d5dce4;
  box-shadow:none;
}
.ru-ranking-table td.is-teams.is-none .ru-teams-left { color:#748292; }
.ru-ranking-table tbody tr:hover td.is-teams.is-complete { background:#e0f5e8 !important; }
.ru-ranking-table tbody tr:hover td.is-teams.is-partial { background:#ffedc3 !important; }
.ru-ranking-table tbody tr:hover td.is-teams.is-none { background:#e7ebef !important; }
/* Polska nadal jest wyróżniona czerwonym akcentem w wierszu, ale status drużyn zachowuje swój kolor. */
.ru-ranking-table tr.is-poland td.is-teams.is-complete { background:#e8f8ee !important; }
.ru-ranking-table tr.is-poland td.is-teams.is-partial { background:#fff3d8 !important; }
.ru-ranking-table tr.is-poland td.is-teams.is-none { background:#eef1f4 !important; }

@media (max-width:760px) {
  .ru-ranking-table th.is-teams,
  .ru-ranking-table td.is-teams { width:108px; min-width:108px; }
  .ru-teams-pair { gap:3px; min-height:49px; }
  .ru-teams-started,.ru-teams-left { width:30px; min-width:30px; height:28px; }
}

/* 0.3.0 — nowe menu, Polskie Kluby i Strefa Kibica */
.ru-nav-dropdown{position:relative}
.ru-nav-dropdown-toggle{display:flex;align-items:center;gap:5px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:#dbe7f5;font-size:14px;font-weight:800;cursor:pointer}
.ru-nav-dropdown-toggle:hover,.ru-nav-dropdown:focus-within>.ru-nav-dropdown-toggle{background:rgba(255,255,255,.08);color:#fff}
.ru-nav-dropdown-toggle span{font-size:15px;color:#69c7ff;transition:transform .18s ease}
.ru-nav-dropdown:hover .ru-nav-dropdown-toggle span,.ru-nav-dropdown:focus-within .ru-nav-dropdown-toggle span,.ru-nav-dropdown.is-open .ru-nav-dropdown-toggle span{transform:rotate(180deg)}
.ru-nav-dropdown-menu{position:absolute;top:calc(100% + 10px);left:50%;z-index:90;width:330px;padding:9px;transform:translate(-50%,8px);opacity:0;visibility:hidden;pointer-events:none;background:#0d1c2e;border:1px solid rgba(255,255,255,.11);border-radius:17px;box-shadow:0 24px 60px rgba(0,0,0,.35);transition:.17s ease}
.ru-nav-dropdown:hover .ru-nav-dropdown-menu,.ru-nav-dropdown:focus-within .ru-nav-dropdown-menu,.ru-nav-dropdown.is-open .ru-nav-dropdown-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.ru-primary-nav .ru-nav-dropdown-menu a{display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:center;padding:10px;border-radius:11px}
.ru-primary-nav .ru-nav-dropdown-menu a:hover{background:rgba(105,199,255,.09)}
.ru-nav-dropdown-menu b{display:block;color:#fff;font-size:13px;line-height:1.15}
.ru-nav-dropdown-menu small{display:block;color:#8fa6bf;font-size:10px;margin-top:3px;font-weight:600}
.ru-menu-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#152d48,#1b4468);border:1px solid rgba(105,199,255,.18);color:#8dd7ff;font-size:10px;font-weight:950;letter-spacing:.03em}
.ru-section-link{display:inline-flex;align-items:center;gap:10px;min-height:43px;padding:0 15px;border:1px solid #d9e3ed;border-radius:12px;background:#fff;color:#17324d;font-size:12px;font-weight:900;box-shadow:0 7px 20px rgba(15,23,42,.04)}
.ru-section-link span{color:#1598e5;font-size:18px}.ru-section-link:hover{border-color:#b7dff7;transform:translateY(-1px)}
.ru-section-link--dark{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.05);color:#fff}.ru-section-link--dark:hover{border-color:rgba(105,199,255,.35)}
.ru-club-card{display:block;color:inherit}
.ru-club-badge.has-logo{background:#fff;padding:5px;overflow:hidden;border:1px solid #e2e9f1}
.ru-club-badge.has-logo img{width:100%;height:100%;object-fit:contain}
.ru-club-card-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:14px;padding-top:13px;border-top:1px solid #edf1f5;color:#7b8b9d;font-size:11px}
.ru-club-card-footer b{color:#168fd7;font-size:11px}
.ru-content-wrap--app{padding-top:22px;padding-bottom:50px}
.ru-article--app{padding:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
.ru-article--app .ru-entry-content{margin:0}

@media(max-width:980px){
  .ru-site-header.is-open .ru-primary-nav{max-height:calc(100vh - 72px);overflow:auto}
  .ru-site-header.is-open .ru-primary-nav>ul{display:grid!important}
  .ru-nav-dropdown-toggle{width:100%;justify-content:space-between;padding:11px 12px}
  .ru-nav-dropdown-menu{position:static;width:auto;margin:4px 0 8px 12px;padding:6px;transform:none!important;display:none;opacity:1;visibility:visible;pointer-events:auto;box-shadow:none;background:#0b1929}
  .ru-nav-dropdown:hover .ru-nav-dropdown-menu{display:none}
  .ru-nav-dropdown.is-open .ru-nav-dropdown-menu{display:block}
  .ru-primary-nav .ru-nav-dropdown-menu a{grid-template-columns:36px 1fr}
  .ru-menu-icon{width:34px;height:34px}
}
@media(max-width:640px){.ru-section-head{align-items:flex-start}.ru-section-link{margin-top:4px}.ru-club-card-footer{font-size:10px}}


/* 0.3.1 — uproszczone menu główne */
.ru-primary-nav ul{gap:8px}
.ru-primary-nav a{padding:10px 14px}
