/* RDV Mundial 2026 — Frontend */
:root {
  --rdvm-navy: #1B3A6B; --rdvm-red: #CC0000;
  --rdvm-gold: #FFD700; --rdvm-green: #16a34a;
  --rdvm-live: #ef4444; --rdvm-border: #e2e8f0;
  --rdvm-bg: #f8fafc; --rdvm-text: #1e293b;
}
.rdvm-wrap { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;max-width:960px;margin:0 auto; }

/* Hero */
.rdvm-hero { display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#1B3A6B,#0d2244);color:#fff;padding:1.5rem 1.75rem;border-radius:10px;margin-bottom:1.5rem; }
.rdvm-hero__logo { display:flex;align-items:center;gap:1rem; }
.rdvm-trophy { font-size:2.5rem; }
.rdvm-hero h2 { margin:0;font-size:1.4rem;color:#fff; }
.rdvm-hero p  { margin:.25rem 0 0;font-size:.8rem;color:rgba(255,255,255,.65); }
.rdvm-live-badge { display:flex;align-items:center;gap:.5rem;background:var(--rdvm-live);color:#fff;font-weight:800;font-size:.85rem;padding:.5rem 1rem;border-radius:20px;animation:rdvm-pulse-bg 1.5s ease-in-out infinite; }
@keyframes rdvm-pulse-bg { 0%,100%{opacity:1} 50%{opacity:.8} }

/* Live dot */
.rdvm-live-dot { width:10px;height:10px;border-radius:50%;background:var(--rdvm-live);display:inline-block;animation:rdvm-blink 1.2s ease-in-out infinite; }
.rdvm-live-dot--sm { width:7px;height:7px; }
@keyframes rdvm-blink { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.8)} }

/* Live block */
.rdvm-live-block { background:linear-gradient(135deg,#7f0000,var(--rdvm-live));border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.25rem;color:#fff; }
.rdvm-live-header { display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem; }
.rdvm-live-count { font-size:.75rem;opacity:.8;font-weight:400; }
.rdvm-live-matches { display:flex;flex-direction:column;gap:.6rem; }
.rdvm-live-match { background:rgba(255,255,255,.12);border-radius:6px;padding:.75rem 1rem; }
.rdvm-live-status { font-size:.7rem;color:rgba(255,255,255,.75);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem; }
.rdvm-minute { background:rgba(255,255,255,.2);border-radius:20px;padding:.1em .5em;font-weight:700; }
.rdvm-live-scoreline { display:flex;align-items:center;justify-content:space-between;gap:.75rem; }
.rdvm-live-score { font-size:1.4rem;font-weight:900;color:var(--rdvm-gold); }

/* Tabs */
.rdvm-tabs { display:flex;gap:.3rem;background:#0f2347;border-radius:8px;padding:.3rem;margin-bottom:1.25rem;flex-wrap:wrap; }
.rdvm-tab { display:block;padding:.55rem 1rem;color:rgba(255,255,255,.65);font-size:.8rem;font-weight:600;text-decoration:none;border-radius:6px;transition:all .18s; }
.rdvm-tab:hover { color:#fff;background:rgba(255,255,255,.1); }
.rdvm-tab.is-active { color:#fff;background:var(--rdvm-red); }

/* Sections */
.rdvm-section { margin-bottom:1.5rem; }
.rdvm-section-title { font-size:.95rem;font-weight:800;color:var(--rdvm-navy);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid var(--rdvm-border); }

/* Match card */
.rdvm-matches-list { display:flex;flex-direction:column;gap:.5rem; }
.rdvm-match-card { background:#fff;border:1.5px solid var(--rdvm-border);border-radius:8px;padding:.75rem 1rem;transition:box-shadow .18s; }
.rdvm-match-card:hover { box-shadow:0 2px 12px rgba(0,0,0,.08); }
.rdvm-match-card--live { border-color:var(--rdvm-live);background:#fff8f8; }
.rdvm-match-card--done { background:var(--rdvm-bg); }
.rdvm-match-meta { display:flex;align-items:center;gap:.6rem;font-size:.7rem;color:#94a3b8;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em; }
.rdvm-venue { color:#b0bec5; }
.rdvm-live-pill { display:flex;align-items:center;gap:.3rem;color:var(--rdvm-live);font-weight:800;margin-left:auto; }
.rdvm-match-row { display:flex;align-items:center;gap:.75rem; }
.rdvm-team-block { display:flex;align-items:center;gap:.5rem;flex:1; }
.rdvm-team-block--away { justify-content:flex-end; }
.rdvm-team-block--away .rdvm-flag-lg { order:2; }
.rdvm-team-block--away .rdvm-team-name { order:1; }
.rdvm-flag-lg { font-size:1.5rem;line-height:1; }
.rdvm-team-name { font-size:.9rem;font-weight:700;color:var(--rdvm-text); }
.rdvm-score-block { text-align:center;flex-shrink:0;min-width:90px; }
.rdvm-score { font-size:1.3rem;font-weight:900;color:var(--rdvm-navy);display:block; }
.rdvm-score--live { color:var(--rdvm-live); }
.rdvm-score--time { font-size:.85rem;color:#64748b; }
.rdvm-status-label { font-size:.68rem;color:#94a3b8;display:block;margin-top:.15rem; }

/* Teams */
.rdvm-team { display:flex;align-items:center;gap:.4rem; }
.rdvm-team--away { justify-content:flex-end; }
.rdvm-flag { font-size:1.2rem; }
.rdvm-tname { font-size:.88rem;font-weight:700; }

/* Groups */
.rdvm-groups-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem; }
.rdvm-group-card { background:#fff;border-radius:8px;border:1.5px solid var(--rdvm-border);overflow:hidden; }
.rdvm-group-header { background:var(--rdvm-navy);color:#fff;font-weight:800;font-size:.85rem;padding:.6rem 1rem; }
.rdvm-group-table { width:100%;border-collapse:collapse;font-size:.78rem; }
.rdvm-group-table th { background:var(--rdvm-bg);padding:.4rem .5rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;border-bottom:1px solid var(--rdvm-border);text-align:center; }
.rdvm-group-table th:nth-child(2) { text-align:left; }
.rdvm-group-table td { padding:.45rem .5rem;border-bottom:1px solid var(--rdvm-border);text-align:center; }
.rdvm-group-table td:nth-child(2) { text-align:left; }
.rdvm-group-table tr:hover td { background:var(--rdvm-bg); }
.rdvm-qualifies td:first-child { border-left:3px solid var(--rdvm-green); }
.rdvm-pts { color:var(--rdvm-navy); }
.rdvm-team-cell { display:flex;align-items:center;gap:.35rem; }
.rdvm-flag-sm { font-size:.95rem; }
.rdvm-pos { color:#94a3b8;font-weight:700; }
.rdvm-table-note { font-size:.75rem;color:#64748b;margin-top:.75rem; }

/* Fixture */
.rdvm-stage-block { margin-bottom:2rem; }
.rdvm-stage-title { font-size:1rem;font-weight:800;color:var(--rdvm-navy);text-transform:uppercase;letter-spacing:.05em;padding:.5rem 1rem;background:var(--rdvm-bg);border-left:4px solid var(--rdvm-red);margin-bottom:.75rem; }
.rdvm-group-fixture { margin-bottom:1.25rem; }
.rdvm-group-fixture-label { font-size:.75rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem; }
.rdvm-matches-list--compact .rdvm-match-card { padding:.5rem .75rem; }

/* Bracket */
.rdvm-bracket { display:flex;gap:1rem;overflow-x:auto;padding-bottom:1rem; }
.rdvm-bracket-round { min-width:200px;display:flex;flex-direction:column;gap:.5rem; }
.rdvm-bracket-round--final { min-width:240px; }
.rdvm-bracket-round-title { font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--rdvm-navy);text-align:center;padding:.4rem;background:var(--rdvm-bg);border-radius:4px;margin-bottom:.25rem; }
.rdvm-bracket-match { background:#fff;border:1.5px solid var(--rdvm-border);border-radius:6px;padding:.6rem .75rem;position:relative; }
.rdvm-bracket-match.is-live { border-color:var(--rdvm-live); }
.rdvm-bracket-match.is-done { background:var(--rdvm-bg); }
.rdvm-bracket-live-badge { font-size:.65rem;font-weight:800;color:var(--rdvm-live);text-transform:uppercase;margin-bottom:.3rem; }
.rdvm-bracket-team { display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.82rem;border-bottom:1px solid var(--rdvm-border); }
.rdvm-bracket-team:last-of-type { border-bottom:none; }
.rdvm-bracket-team.is-winner { color:var(--rdvm-green);font-weight:800; }
.rdvm-bracket-date { font-size:.68rem;color:#94a3b8;margin-top:.3rem;text-align:center; }

/* Scorers */
.rdvm-scorers-table { width:100%;border-collapse:collapse;font-size:.85rem;background:#fff;border-radius:8px;overflow:hidden;border:1.5px solid var(--rdvm-border); }
.rdvm-scorers-table thead th { background:var(--rdvm-navy);color:#fff;padding:.65rem .85rem;text-align:left;font-size:.75rem;text-transform:uppercase; }
.rdvm-scorers-table tbody td { padding:.7rem .85rem;border-bottom:1px solid var(--rdvm-border); }
.rdvm-scorers-table tbody tr:hover td { background:var(--rdvm-bg); }
.rdvm-top-scorer td { background:#fffbeb!important; }
.rdvm-rank { text-align:center;font-weight:800; }
.rdvm-goals { color:var(--rdvm-red);font-weight:800;text-align:center; }
.rdvm-player-name { white-space:nowrap; }

/* Widget */
.rdvm-widget { font-family:-apple-system,sans-serif;font-size:.84rem; }
.rdvm-widget-live { background:linear-gradient(135deg,#7f0000,var(--rdvm-live));color:#fff;border-radius:8px;padding:.75rem 1rem;margin-bottom:.75rem; }
.rdvm-widget-live-header { display:flex;align-items:center;gap:.4rem;font-weight:800;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem; }
.rdvm-widget-live-match { background:rgba(255,255,255,.15);border-radius:6px;padding:.5rem .75rem;margin-bottom:.35rem; }
.rdvm-widget-live-row { display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:700; }
.rdvm-widget-score { font-size:1.1rem;font-weight:900;color:var(--rdvm-gold); }
.rdvm-widget-minute { text-align:center;font-size:.65rem;color:rgba(255,255,255,.7);margin-top:.2rem; }
.rdvm-widget-section { margin-bottom:.75rem; }
.rdvm-widget-section-title { font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--rdvm-navy);margin-bottom:.4rem; }
.rdvm-widget-match { margin-bottom:.4rem;padding-bottom:.4rem;border-bottom:1px solid var(--rdvm-border); }
.rdvm-widget-date { font-size:.68rem;color:#94a3b8; }
.rdvm-widget-match-row { display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:600; }
.rdvm-widget-score--done { font-size:.9rem;font-weight:900;color:var(--rdvm-navy);padding:0 .4rem; }
.rdvm-widget-more { display:block;text-align:center;font-size:.75rem;color:var(--rdvm-red);font-weight:700;text-decoration:none;margin-top:.5rem; }
.rdvm-widget-more:hover { text-decoration:underline; }

/* Misc */
.rdvm-notice { background:#eff6ff;border:1.5px solid #bfdbfe;color:#1d4ed8;border-radius:6px;padding:.75rem 1rem;font-size:.85rem; }
.rdvm-empty { text-align:center;padding:3rem;color:#94a3b8; }
.rdvm-empty span { font-size:2.5rem;display:block;margin-bottom:.5rem; }
.rdvm-credit { font-size:.7rem;color:#b0bec5;text-align:right;margin-top:1.5rem; }
.rdvm-credit a { color:#94a3b8; }

@media(max-width:600px) {
  .rdvm-hero { flex-direction:column;gap:.75rem;align-items:flex-start; }
  .rdvm-groups-grid { grid-template-columns:1fr; }
  .rdvm-bracket { flex-direction:column; }
  .rdvm-team-name { font-size:.78rem; }
}
