
:root{
  --primary:#0047aa;--primary-dk:#0d1b3e;--primary-lt:#006ae0;
  --accent:#f5a623;--accent-dk:#c47a00;
  --green:#047857;--orange:#c2410c;--purple:#7c3aed;--gold:#b45309;
  --text:#1a2540;--muted:#6b7280;--border:#e4eaf5;--bg:#f8faff;
  --shadow:0 4px 24px rgba(0,0,0,0.08);--shadow-lg:0 8px 40px rgba(0,0,0,0.14);
  --r:10px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Inter','Segoe UI',Arial,sans-serif;color:var(--text);background:#fff;line-height:1.5;}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,27,62,0.97);
  backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,0.08);
  display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:58px;}
.nav-brand{display:flex;align-items:center;gap:12px;}
.nav-brand img{height:22px;}
.nav-brand-divider{width:1px;height:22px;background:rgba(255,255,255,0.2);}
.nav-brand-title{font-size:13px;font-weight:800;color:#fff;letter-spacing:1px;text-transform:uppercase;}
.nav-brand-title span{color:var(--accent);}
.nav-links{display:flex;gap:4px;align-items:center;}
.nav-link{font-size:12.5px;font-weight:600;color:rgba(255,255,255,0.7);padding:6px 14px;
  border-radius:6px;cursor:pointer;transition:.2s;letter-spacing:.3px;}
.nav-link:hover,.nav-link.active{color:#fff;background:rgba(255,255,255,0.1);}
.nav-cta{font-size:12px;font-weight:700;background:var(--accent);color:#000;
  padding:7px 16px;border-radius:7px;cursor:pointer;transition:.2s;border:none;letter-spacing:.3px;}
.nav-cta:hover{background:#e09010;transform:translateY(-1px);}

/* HERO */
.hero{min-height:100vh;background:linear-gradient(150deg,#0d1b3e 0%,#0047aa 55%,#006ae0 100%);
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:80px 28px 40px;}
.hero-stripes{position:absolute;inset:0;
  background:repeating-linear-gradient(180deg,transparent 0,transparent 22px,rgba(255,255,255,0.03) 22px,rgba(255,255,255,0.03) 44px);}
.hero-ball1{position:absolute;right:-60px;top:-60px;width:380px;height:380px;opacity:.07;}
.hero-ball2{position:absolute;left:-40px;bottom:-60px;width:240px;height:240px;opacity:.05;}
.hero-center{max-width:900px;width:100%;text-align:center;position:relative;}
.hero-badge{display:inline-block;background:rgba(245,166,35,.18);border:1px solid rgba(245,166,35,.4);
  color:var(--accent);font-size:10.5px;font-weight:700;letter-spacing:3px;text-transform:uppercase;
  padding:6px 18px;border-radius:20px;margin-bottom:20px;}
.hero-title{font-size:clamp(56px,10vw,100px);font-weight:900;color:#fff;line-height:.85;
  letter-spacing:-4px;margin-bottom:14px;}
.hero-title span{color:var(--accent);}
.hero-sub{font-size:15px;font-weight:500;color:rgba(255,255,255,.65);letter-spacing:2px;
  text-transform:uppercase;margin-bottom:36px;}
.hero-stats{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:44px;}
.stat-chip{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);
  border-radius:12px;padding:14px 22px;text-align:center;min-width:110px;}
.stat-num{font-size:28px;font-weight:900;color:#fff;line-height:1;}
.stat-lbl{font-size:9.5px;font-weight:700;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:1.5px;margin-top:3px;}
.countdown{display:flex;gap:12px;justify-content:center;}
.cd-unit{text-align:center;}
.cd-num{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);
  border-radius:8px;width:62px;height:62px;display:flex;align-items:center;justify-content:center;
  font-size:26px;font-weight:900;color:#fff;font-variant-numeric:tabular-nums;}
.cd-lbl{font-size:8.5px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:1.5px;margin-top:5px;}
.cd-sep{font-size:28px;font-weight:900;color:rgba(255,255,255,.3);align-self:flex-start;margin-top:8px;}
.hero-cta{display:flex;gap:12px;justify-content:center;margin-top:32px;}
.btn-hero{padding:14px 32px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;
  border:none;transition:.2s;letter-spacing:.3px;}
.btn-hero-primary{background:var(--accent);color:#000;}
.btn-hero-primary:hover{background:#e09010;transform:translateY(-2px);}
.btn-hero-secondary{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);}
.btn-hero-secondary:hover{background:rgba(255,255,255,.2);}

/* SECTIONS */
.section{padding:80px 28px;}
.section-alt{background:var(--bg);}
.container{max-width:1060px;margin:0 auto;}
.section-header{text-align:center;margin-bottom:52px;}
.section-badge{display:inline-block;background:#e8f0ff;color:var(--primary);
  font-size:9.5px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;
  padding:5px 14px;border-radius:20px;margin-bottom:12px;}
.section-title{font-size:clamp(28px,4vw,40px);font-weight:900;color:var(--primary-dk);
  letter-spacing:-1px;line-height:1.1;}
.section-sub{font-size:14px;color:var(--muted);margin-top:8px;max-width:500px;margin-left:auto;margin-right:auto;}

/* MUNDIAL 2026 CARDS */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;}
.info-card{background:#fff;border-radius:var(--r);border:1.5px solid var(--border);padding:22px;
  display:flex;flex-direction:column;gap:8px;}
.info-card-icon{font-size:28px;margin-bottom:4px;}
.info-card-title{font-size:13px;font-weight:800;color:var(--primary-dk);}
.info-card-text{font-size:12.5px;color:var(--muted);line-height:1.6;}
.info-card-highlight{font-size:22px;font-weight:900;color:var(--primary);}

.sedes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px;}
.sede-chip{background:#fff;border:1.5px solid var(--border);border-radius:8px;
  padding:10px 14px;font-size:12px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;}
.sede-chip-flag{font-size:18px;}

/* TIMELINE */
.timeline{position:relative;padding-left:50px;}
.timeline::before{content:'';position:absolute;left:18px;top:0;bottom:0;width:2px;background:var(--border);}
.tl-item{position:relative;margin-bottom:20px;display:flex;gap:18px;align-items:flex-start;}
.tl-dot{position:absolute;left:-39px;width:16px;height:16px;border-radius:50%;border:2px solid #fff;
  box-shadow:0 0 0 2px var(--border);background:var(--primary);flex-shrink:0;top:10px;}
.tl-year-box{background:var(--primary-dk);color:#fff;font-size:11px;font-weight:800;
  padding:4px 10px;border-radius:6px;white-space:nowrap;flex-shrink:0;margin-top:6px;}
.tl-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--r);
  padding:14px 18px;flex:1;display:flex;align-items:center;gap:14px;transition:.2s;}
.tl-card:hover{box-shadow:var(--shadow);border-color:#c8d8f0;}
.tl-flag{font-size:28px;flex-shrink:0;}
.tl-info{flex:1;}
.tl-winner{font-size:14px;font-weight:800;color:var(--text);}
.tl-host{font-size:11px;color:var(--muted);margin-top:1px;}
.tl-result{font-size:11.5px;font-weight:600;color:var(--primary);margin-top:3px;}
.tl-scorer{font-size:10.5px;color:var(--muted);margin-top:2px;}
.tl-champion-badge{font-size:9px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;flex-shrink:0;}

/* FACTS */
.facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;}
.fact-card{background:#fff;border-radius:var(--r);border:1.5px solid var(--border);padding:20px;
  transition:.2s;position:relative;overflow:hidden;}
.fact-card::after{content:'';position:absolute;top:0;left:0;width:4px;bottom:0;background:var(--primary);}
.fact-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.fact-num{font-size:34px;font-weight:900;color:var(--accent);line-height:1;margin-bottom:6px;}
.fact-text{font-size:12.5px;color:var(--muted);line-height:1.6;}
.fact-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px;}

/* SCORERS TABLE */
.scorers-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow);}
.scorers-table th{background:var(--primary-dk);color:#fff;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:1px;padding:12px 16px;text-align:left;}
.scorers-table td{padding:14px 16px;border-bottom:1px solid var(--border);font-size:13px;}
.scorers-table tr:last-child td{border-bottom:none;}
.scorers-table tr:hover td{background:var(--bg);}
.rank-medal{font-size:18px;}
.scorer-goals{font-size:20px;font-weight:900;color:var(--primary);}
.scorer-country{font-size:11px;color:var(--muted);}

/* MI CARTILLA */
.cartilla-search{max-width:480px;margin:0 auto 40px;display:flex;gap:10px;}
.cartilla-input{flex:1;padding:14px 18px;border:2px solid var(--border);border-radius:10px;
  font-size:14px;font-family:inherit;outline:none;transition:.2s;color:var(--text);}
.cartilla-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,71,170,.1);}
.cartilla-btn{background:var(--primary);color:#fff;border:none;padding:14px 24px;
  border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:.2s;font-family:inherit;}
.cartilla-btn:hover{background:var(--primary-lt);}

.cartilla-result{display:none;max-width:700px;margin:0 auto;}
.participant-header{background:linear-gradient(135deg,#0d1b3e,#0047aa);
  border-radius:var(--r) var(--r) 0 0;padding:22px 24px;display:flex;align-items:center;gap:16px;}
.participant-avatar{width:52px;height:52px;background:rgba(255,255,255,.15);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;color:#fff;}
.participant-name{font-size:18px;font-weight:800;color:#fff;}
.participant-info{font-size:12px;color:rgba(255,255,255,.7);margin-top:2px;}
.participant-ronda{margin-left:auto;text-align:right;}
.ronda-label{font-size:8.5px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:1.5px;}
.ronda-name{font-size:13px;font-weight:800;color:var(--accent);}

.scores-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;
  background:var(--border);border:1.5px solid var(--border);}
.score-block{background:#fff;padding:16px 18px;}
.score-round{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--muted);margin-bottom:6px;}
.score-total{font-size:28px;font-weight:900;color:var(--primary);line-height:1;}
.score-unit{font-size:11px;color:var(--muted);margin-top:2px;}
.score-status{display:inline-block;font-size:9px;font-weight:700;padding:3px 9px;
  border-radius:20px;margin-top:6px;}
.status-avanza{background:#dcfce7;color:#16a34a;}
.status-eliminado{background:#fee2e2;color:#dc2626;}
.status-pendiente{background:#fef3c7;color:#d97706;}

/* ADMIN OVERLAY */
.admin-overlay{display:none;position:fixed;inset:0;z-index:2000;background:#f1f5f9;}
.admin-overlay.open{display:flex;}
.admin-sidebar{width:220px;background:var(--primary-dk);display:flex;flex-direction:column;flex-shrink:0;}
.admin-logo{padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;gap:10px;}
.admin-logo img{height:20px;}
.admin-logo-text{font-size:12px;font-weight:800;color:#fff;}
.admin-logo-text span{color:var(--accent);}
.admin-nav{padding:12px 10px;flex:1;}
.admin-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;
  font-size:13px;font-weight:600;color:rgba(255,255,255,.65);cursor:pointer;transition:.15s;margin-bottom:2px;}
.admin-nav-item:hover,.admin-nav-item.active{color:#fff;background:rgba(255,255,255,.1);}
.admin-nav-item svg{flex-shrink:0;opacity:.7;}
.admin-nav-item.active svg{opacity:1;}
.admin-logout{margin:12px;padding:10px;background:rgba(239,68,68,.2);color:#fca5a5;
  border:none;border-radius:8px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;width:calc(100% - 24px);}
.admin-logout:hover{background:rgba(239,68,68,.35);}

.admin-main{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.admin-topbar{background:#fff;border-bottom:1px solid var(--border);padding:0 28px;height:58px;
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.admin-topbar-title{font-size:16px;font-weight:800;color:var(--text);}
.admin-topbar-sub{font-size:12px;color:var(--muted);}
.admin-content{flex:1;overflow-y:auto;padding:28px;}

/* ADMIN WIDGETS */
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px;}
.stat-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--r);padding:18px;
  position:relative;overflow:hidden;}
.stat-card::before{content:'';position:absolute;top:0;left:0;width:4px;bottom:0;}
.stat-card.blue::before{background:var(--primary);}
.stat-card.green::before{background:var(--green);}
.stat-card.orange::before{background:var(--orange);}
.stat-card.purple::before{background:var(--purple);}
.stat-card.gold::before{background:var(--gold);}
.stat-card-num{font-size:32px;font-weight:900;color:var(--text);line-height:1;}
.stat-card-lbl{font-size:11px;color:var(--muted);font-weight:600;margin-top:4px;}

.admin-table-wrap{background:#fff;border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;}
.admin-table{width:100%;border-collapse:collapse;}
.admin-table th{background:var(--bg);font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:1px;color:var(--muted);padding:11px 16px;text-align:left;border-bottom:1.5px solid var(--border);}
.admin-table td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;}
.admin-table tr:last-child td{border-bottom:none;}
.admin-table tr:hover td{background:#fafbff;}

/* FORM */
.form-group{margin-bottom:16px;}
.form-label{display:block;font-size:12px;font-weight:700;color:var(--text);margin-bottom:5px;
  text-transform:uppercase;letter-spacing:.5px;}
.form-input,.form-select{width:100%;padding:11px 14px;border:1.5px solid var(--border);
  border-radius:8px;font-size:13.5px;font-family:inherit;color:var(--text);outline:none;transition:.2s;}
.form-input:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,71,170,.1);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-row{display:flex;gap:10px;align-items:flex-end;}

.btn{padding:10px 22px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;
  border:none;font-family:inherit;transition:.2s;letter-spacing:.2px;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-lt);}
.btn-secondary{background:var(--bg);color:var(--text);border:1.5px solid var(--border);}
.btn-secondary:hover{background:#edf1fb;}
.btn-success{background:#047857;color:#fff;}
.btn-success:hover{background:#059669;}
.btn-danger{background:#dc2626;color:#fff;}
.btn-danger:hover{background:#ef4444;}
.btn-sm{padding:6px 14px;font-size:12px;}

/* ROUND COLORS */
.round-grupos{background:var(--primary);}
.round-octavos{background:var(--green);}
.round-cuartos{background:var(--orange);}
.round-semi{background:var(--purple);}
.round-final{background:var(--gold);}

.round-badge{display:inline-block;font-size:9.5px;font-weight:700;color:#fff;
  padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;}

/* PUNTAJE FORM */
.puntaje-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.puntaje-section{background:var(--bg);border-radius:var(--r);padding:18px;border:1.5px solid var(--border);}
.puntaje-section-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--muted);margin-bottom:12px;display:flex;align-items:center;gap:6px;}
.checkbox-row{display:flex;gap:10px;flex-wrap:wrap;}
.day-check{display:flex;flex-direction:column;align-items:center;gap:3px;}
.day-check input{width:20px;height:20px;cursor:pointer;accent-color:var(--primary);}
.day-check label{font-size:9px;color:var(--muted);font-weight:700;text-transform:uppercase;}
.score-preview{margin-top:10px;padding:8px 12px;background:#fff;border-radius:7px;
  border:1px solid var(--border);font-size:12px;display:flex;justify-content:space-between;align-items:center;}
.score-preview-val{font-size:16px;font-weight:900;color:var(--primary);}

.total-bar{background:var(--primary-dk);border-radius:var(--r);padding:16px 22px;
  display:flex;align-items:center;justify-content:space-between;margin-top:16px;color:#fff;}
.total-bar-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;opacity:.7;}
.total-bar-num{font-size:32px;font-weight:900;color:var(--accent);}
.total-bar-min{font-size:12px;opacity:.6;margin-top:2px;}

/* SEARCH/FILTER BAR */
.filter-bar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
.filter-input{padding:8px 14px;border:1.5px solid var(--border);border-radius:8px;
  font-size:13px;font-family:inherit;outline:none;flex:1;min-width:160px;}
.filter-input:focus{border-color:var(--primary);}
.filter-select{padding:8px 14px;border:1.5px solid var(--border);border-radius:8px;
  font-size:13px;font-family:inherit;outline:none;background:#fff;cursor:pointer;}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.5);
  align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:#fff;border-radius:14px;padding:32px;width:90%;max-width:480px;
  box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto;}
.modal-title{font-size:20px;font-weight:900;color:var(--text);margin-bottom:6px;}
.modal-sub{font-size:13px;color:var(--muted);margin-bottom:24px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;}

/* TOAST */
.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;}
.toast{background:#1a2540;color:#fff;padding:12px 18px;border-radius:10px;font-size:13px;
  font-weight:600;box-shadow:var(--shadow-lg);animation:slideIn .3s ease;display:flex;align-items:center;gap:8px;
  max-width:320px;}
.toast.success{background:#047857;}
.toast.error{background:#dc2626;}
@keyframes slideIn{from{transform:translateX(60px);opacity:0;}to{transform:none;opacity:1;}}

/* ADMIN LOGIN */
.admin-login-overlay{display:none;position:fixed;inset:0;z-index:1500;
  background:rgba(13,27,62,.96);align-items:center;justify-content:center;}
.admin-login-overlay.open{display:flex;}
.admin-login-card{background:#fff;border-radius:16px;padding:36px;width:90%;max-width:380px;text-align:center;}
.admin-login-logo{height:30px;margin-bottom:18px;}
.admin-login-title{font-size:22px;font-weight:900;color:var(--text);margin-bottom:4px;}
.admin-login-sub{font-size:13px;color:var(--muted);margin-bottom:28px;}
.admin-login-error{background:#fee2e2;color:#dc2626;font-size:12px;font-weight:600;
  padding:8px 12px;border-radius:7px;margin-top:10px;display:none;}

/* SETUP BANNER */
.setup-banner{background:linear-gradient(90deg,#78350f,#b45309);color:#fff;padding:12px 24px;
  font-size:12.5px;font-weight:600;display:flex;align-items:center;justify-content:space-between;
  gap:12px;margin-bottom:20px;border-radius:var(--r);}
.setup-banner.hidden{display:none;}

/* RESPONSIVE */
@media(max-width:700px){
  .nav-links{display:none;}
  .hero-stats{gap:10px;}
  .stat-chip{min-width:80px;padding:10px 14px;}
  .timeline{padding-left:36px;}
  .tl-card{flex-wrap:wrap;}
  .puntaje-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .sedes-grid{grid-template-columns:repeat(2,1fr);}
  .admin-sidebar{display:none;}
  .admin-content{padding:16px;}
}

/* ══ PODIO ══════════════════════════════════════════════ */
.podio-wrap {
  display: flex; align-items: flex-end; justify-content: center;
  gap: 12px; margin-bottom: 52px; flex-wrap: wrap;
}
.podio-place { display: flex; flex-direction: column; align-items: center; }
.podio-card {
  display: flex; flex-direction: column; align-items: center;
  padding: 0 10px 12px; min-width: 150px;
}
.podio-crown { font-size: 26px; margin-bottom: 4px; }
.podio-avatar {
  width: 72px; height: 72px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; font-weight: 900; color: #fff;
  border: 4px solid #fff; box-shadow: 0 6px 24px rgba(0,0,0,0.18);
  margin-bottom: 10px; flex-shrink: 0;
}
.podio-name { font-size: 14px; font-weight: 800; color: var(--text); text-align: center; line-height: 1.2; }
.podio-sede { font-size: 10.5px; color: var(--muted); text-align: center; margin-top: 3px; }
.podio-pts { font-size: 30px; font-weight: 900; margin: 8px 0 4px; text-align: center; }
.podio-phase-row { display: flex; gap: 4px; flex-wrap: wrap; justify-content: center; margin-top: 6px; }
.podio-phase-chip {
  font-size: 9px; font-weight: 700; padding: 2px 7px;
  border-radius: 20px; white-space: nowrap;
}
.podio-base {
  width: 100%; border-radius: 10px 10px 0 0;
  display: flex; align-items: center; justify-content: center;
  padding: 14px 0;
}
.podio-base-num { font-size: 40px; font-weight: 900; opacity: 0.25; color: #fff; }
.podio-base-1 { background: linear-gradient(150deg,#b8860b,#f5d020); min-height: 130px; }
.podio-base-2 { background: linear-gradient(150deg,#7a7a7a,#c0c0c0); min-height: 95px; }
.podio-base-3 { background: linear-gradient(150deg,#8b4513,#cd7f32); min-height: 65px; }

.ranking-full { margin-top: 8px; }
.ranking-full-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 14px;
}
.ranking-row {
  display: flex; align-items: center; gap: 14px;
  background: #fff; border: 1.5px solid var(--border);
  border-radius: 10px; padding: 12px 16px; margin-bottom: 8px;
  transition: .2s;
}
.ranking-row:hover { box-shadow: var(--shadow); border-color: #c8d8f0; }
.ranking-pos { font-size: 16px; font-weight: 900; color: var(--muted); width: 28px; text-align: center; flex-shrink: 0; }
.ranking-avatar-sm {
  width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 800; color: #fff; flex-shrink: 0;
}
.ranking-info { flex: 1; }
.ranking-player-name { font-size: 14px; font-weight: 700; color: var(--text); }
.ranking-player-meta { font-size: 11px; color: var(--muted); margin-top: 2px; }
.ranking-phases { display: flex; gap: 5px; }
.r-phase { text-align: center; min-width: 44px; }
.r-phase-lbl { font-size: 8px; color: var(--muted); text-transform: uppercase; letter-spacing: .8px; }
.r-phase-pts { font-size: 13px; font-weight: 800; }
.ranking-total { font-size: 22px; font-weight: 900; color: var(--primary); text-align: right; white-space: nowrap; }
.ranking-total small { font-size: 11px; font-weight: 600; color: var(--muted); display: block; }

/* ══ JUGADORES ══════════════════════════════════════════ */
.players-filter {
  display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 28px;
  align-items: center; justify-content: center;
}
.pf-chip {
  padding: 8px 18px; border-radius: 20px; font-size: 12.5px; font-weight: 600;
  cursor: pointer; border: 1.5px solid var(--border); background: #fff;
  color: var(--text); transition: .15s;
}
.pf-chip:hover, .pf-chip.active { background: var(--primary); color: #fff; border-color: var(--primary); }

.players-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
  gap: 14px;
}
.player-card {
  border-radius: 14px; padding: 22px 16px 18px;
  text-align: center; position: relative; overflow: hidden;
  cursor: default; transition: transform .2s, box-shadow .2s;
  background: linear-gradient(150deg, #0d1b3e, #0047aa);
}
.player-card:hover { transform: translateY(-4px); box-shadow: 0 14px 40px rgba(0,0,0,0.18); }
.player-card.round-octavos { background: linear-gradient(150deg, #064e3b, #047857); }
.player-card.round-cuartos { background: linear-gradient(150deg, #7c2d12, #c2410c); }
.player-card.round-semi    { background: linear-gradient(150deg, #4c1d95, #7c3aed); }
.player-card.round-final   { background: linear-gradient(150deg, #78350f, #b45309); }

.pc-ball-bg {
  position: absolute; right: -18px; top: -18px;
  width: 90px; height: 90px; opacity: .07;
}
.pc-num {
  position: absolute; bottom: -8px; left: -4px;
  font-size: 72px; font-weight: 900;
  color: rgba(255,255,255,0.05); line-height: 1; pointer-events: none;
}
.pc-avatar {
  width: 58px; height: 58px; border-radius: 50%;
  background: rgba(255,255,255,0.15);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; font-weight: 900; color: #fff;
  margin: 0 auto 10px;
  border: 2.5px solid rgba(255,255,255,0.25);
  position: relative;
}
.pc-name { font-size: 13px; font-weight: 800; color: #fff; line-height: 1.25; position: relative; }
.pc-sede { font-size: 9.5px; color: rgba(255,255,255,0.6); margin: 4px 0 10px; position: relative; }
.pc-round {
  font-size: 8.5px; font-weight: 700; color: rgba(255,255,255,0.85);
  background: rgba(255,255,255,0.15); padding: 3px 10px; border-radius: 20px;
  display: inline-block; margin-bottom: 12px; position: relative;
}
.pc-pts-lbl {
  font-size: 8px; color: rgba(255,255,255,0.45);
  text-transform: uppercase; letter-spacing: 1.5px; position: relative;
}
.pc-pts {
  font-size: 32px; font-weight: 900; color: #f5a623;
  line-height: 1.1; position: relative;
}
.pc-phases { display: flex; justify-content: center; gap: 4px; margin-top: 10px; position: relative; }
.pc-phase-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: rgba(255,255,255,0.2);
}
.pc-phase-dot.done { background: #f5a623; }
.pc-phase-dot.active { background: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,0.4); }

.players-empty { text-align: center; padding: 52px; color: var(--muted); grid-column: 1/-1; }
.players-count {
  text-align: center; font-size: 12px; color: var(--muted);
  margin-bottom: 20px;
}

@media(max-width:700px){
  .podio-wrap { gap: 6px; }
  .podio-card { min-width: 110px; padding: 0 6px 10px; }
  .podio-avatar { width: 56px; height: 56px; font-size: 20px; }
  .podio-pts { font-size: 22px; }
  .ranking-phases { display: none; }
  .players-grid { grid-template-columns: repeat(auto-fill, minmax(145px,1fr)); gap: 10px; }
}

/* ══ REGISTRO & QUINIELA ══════════════════════════════════ */
.reg-overlay {
  display:none; position:fixed; inset:0; z-index:2500;
  background:rgba(13,27,62,0.96); overflow-y:auto;
}
.reg-overlay.open { display:flex; align-items:flex-start; justify-content:center; padding:24px 16px 48px; }
.reg-card {
  background:#fff; border-radius:16px; width:100%; max-width:780px;
  overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,0.4);
}
.reg-header {
  background:linear-gradient(135deg,#0d1b3e,#0047aa);
  padding:22px 28px; position:relative; overflow:hidden;
}
.reg-header::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(180deg,transparent 0,transparent 18px,rgba(255,255,255,.03) 18px,rgba(255,255,255,.03) 36px); }
.reg-header-title { font-size:20px; font-weight:900; color:#fff; position:relative; }
.reg-header-sub { font-size:12px; color:rgba(255,255,255,.6); margin-top:3px; position:relative; }
.reg-steps {
  display:flex; gap:0; background:#f8faff; border-bottom:1.5px solid var(--border);
}
.reg-step {
  flex:1; padding:12px 8px; text-align:center; font-size:11px;
  font-weight:700; color:var(--muted); border-bottom:3px solid transparent;
  transition:.2s; position:relative;
}
.reg-step.active { color:var(--primary); border-bottom-color:var(--primary); background:#fff; }
.reg-step.done { color:#047857; }
.reg-step-num {
  display:inline-flex; width:20px; height:20px; border-radius:50%;
  align-items:center; justify-content:center; font-size:10px; font-weight:800;
  background:var(--border); color:var(--muted); margin-right:5px;
}
.reg-step.active .reg-step-num { background:var(--primary); color:#fff; }
.reg-step.done .reg-step-num { background:#047857; color:#fff; }
.reg-body { padding:28px; }
.reg-footer {
  padding:16px 28px; border-top:1.5px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
  background:#f8faff;
}

/* Quiniela match card */
.q-group-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:20px; }
.q-tab {
  padding:6px 14px; border-radius:20px; font-size:12px; font-weight:700;
  cursor:pointer; border:1.5px solid var(--border); background:#fff;
  color:var(--text); transition:.15s;
}
.q-tab:hover { border-color:var(--primary); color:var(--primary); }
.q-tab.active { background:var(--primary); color:#fff; border-color:var(--primary); }
.q-tab.done { background:#e8f7ee; color:#047857; border-color:#b3ddc4; }
.q-group-panel { display:none; }
.q-group-panel.active { display:block; }
.q-match-card {
  display:flex; align-items:center; gap:10px;
  background:#fff; border:1.5px solid var(--border); border-radius:10px;
  padding:12px 14px; margin-bottom:8px; transition:.2s;
}
.q-match-card.predicted { border-color:#0047aa22; background:#f8fbff; }
.q-team { flex:1; font-size:13px; font-weight:700; color:var(--text); }
.q-team.right { text-align:right; }
.q-team-flag { font-size:18px; margin-right:5px; }
.q-options { display:flex; gap:5px; flex-shrink:0; }
.q-opt {
  padding:6px 10px; border-radius:7px; font-size:11px; font-weight:700;
  border:1.5px solid var(--border); cursor:pointer; transition:.15s;
  background:#fff; color:var(--muted); white-space:nowrap;
}
.q-opt:hover { border-color:var(--primary); color:var(--primary); background:#f0f5ff; }
.q-opt.selected-a { background:#0047aa; color:#fff; border-color:#0047aa; }
.q-opt.selected-emp { background:#6b7280; color:#fff; border-color:#6b7280; }
.q-opt.selected-b { background:#0047aa; color:#fff; border-color:#0047aa; }
.q-progress { margin-bottom:16px; }
.q-progress-bar { height:6px; background:#e4eaf5; border-radius:3px; overflow:hidden; margin-top:4px; }
.q-progress-fill { height:100%; background:linear-gradient(90deg,#0047aa,#006ae0); border-radius:3px; transition:.3s; }
.q-date { font-size:10px; color:var(--muted); white-space:nowrap; flex-shrink:0; }

/* Pending registrations */
.pending-badge {
  display:inline-flex; align-items:center; justify-content:center;
  background:#f59e0b; color:#000; font-size:10px; font-weight:800;
  width:20px; height:20px; border-radius:50%; margin-left:6px;
}
.reg-status-pendiente { background:#fef3c7; color:#92400e; }
.reg-status-aprobado  { background:#dcfce7; color:#166534; }
.reg-status-rechazado { background:#fee2e2; color:#991b1b; }

/* Quiniela leaderboard */
.q-lb-row {
  display:flex; align-items:center; gap:12px; padding:12px 16px;
  background:#fff; border:1.5px solid var(--border); border-radius:10px; margin-bottom:8px;
}
.q-correct-pct {
  font-size:11px; color:var(--muted);
  background:var(--bg); border-radius:6px; padding:3px 8px;
}

@media(max-width:700px){
  .q-match-card { flex-wrap:wrap; }
  .q-team { font-size:11px; }
  .q-opt { padding:5px 7px; font-size:10px; }
  .reg-body { padding:16px; }
}
