/* Pegamento del sitio publico: marcos, hero y ajustes de solo-lectura.
   El look de tarjetas/tablas/bracket viene tal cual del admin (publico-admin.css). */
body.pub{background:#f1f5f9;color:#1e293b;}
.pub-nav{background:#fff;border-bottom:1px solid #e2e8f0;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;}
.pub-nav .logo{font-weight:900;font-size:18px;color:#0a6532;letter-spacing:.2px;text-decoration:none;}
.pub-nav .logo span{color:#d4a017;}
.pub-nav .tag{font-size:12px;color:#64748b;}
.pub-wrap{max-width:1340px;margin:0 auto;padding:18px 16px 30px;}

/* hero como TARJETA verde (mismo lenguaje que el dashboard del admin) */
.pub-hero{background:linear-gradient(135deg,rgba(13,127,62,.90) 0%,rgba(10,101,50,.93) 60%,rgba(8,82,42,.95) 100%),url("../img/login-bg.jpg") center/cover;border-radius:18px;color:#fff;padding:26px 24px 20px;position:relative;overflow:hidden;box-shadow:0 10px 30px rgba(10,101,50,.18);}
.pub-hero::after{content:"";position:absolute;right:-80px;top:-80px;width:300px;height:300px;border:24px solid rgba(255,255,255,.07);border-radius:50%;pointer-events:none;}
.pub-hero .cod{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.14);border-radius:999px;padding:5px 13px;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;}
.pub-hero h1{font-size:28px;font-weight:900;margin:10px 0 6px;letter-spacing:-.3px;line-height:1.12;}
.pub-hero .meta{display:flex;gap:8px 18px;flex-wrap:wrap;font-size:13px;opacity:.96;}
.pub-hero .meta b{color:#ffd75e;}
.pub-contacto{display:flex;gap:8px 12px;flex-wrap:wrap;margin-top:10px;}
.pub-contacto a{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.13);border-radius:999px;padding:6px 13px;font-weight:700;font-size:12px;color:#fff;text-decoration:none;}
.pub-contacto a:hover{background:rgba(255,255,255,.25);color:#fff;}
.pub-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 13px;font-size:11px;font-weight:900;letter-spacing:.5px;margin-top:12px;}
.pub-badge.vivo{background:#d4a017;}
.pub-badge.vivo .dot{width:8px;height:8px;background:#fff;border-radius:50%;animation:pubP 1.2s infinite;}
.pub-badge.prox{background:rgba(255,255,255,.18);}
.pub-badge.fin{background:rgba(255,255,255,.92);color:#0a6532;}
@keyframes pubP{50%{opacity:.35}}

/* tabs y pills con los botones del admin (myballs.css) */
.pub-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px;}
.pub-tabs .btn-myballs-primary,.pub-tabs .btn-myballs-outline{border-radius:999px;padding:8px 18px;font-size:13px;font-weight:800;}
.pub-pills{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;margin:0 0 14px;padding-bottom:4px;scrollbar-width:none;}
.pub-pills::-webkit-scrollbar{display:none;}
.pub-pills .btn-myballs-primary,.pub-pills .btn-myballs-outline{border-radius:999px;padding:7px 15px;font-size:12px;font-weight:800;white-space:nowrap;}
.pub-pills small{display:block;font-size:9.5px;opacity:.8;font-weight:700;text-align:center;}
.pub-h2{font-size:16px;font-weight:900;display:flex;align-items:center;gap:8px;margin:16px 0 12px;flex-wrap:wrap;color:#1e293b;}
.pub-h2 iconify-icon{color:#0d7f3e;font-size:19px;}
.pub-h2 .sub{font-weight:600;color:#64748b;font-size:13px;}
.pub-vacio{background:#fff;border:1.5px dashed #e2e8f0;border-radius:14px;padding:26px;text-align:center;color:#64748b;font-size:14px;}

/* buscador (mismo espiritu que gr-buscar del admin) */
.pub-buscar{display:flex;gap:8px;margin:0 0 14px;max-width:520px;}
.pub-buscar input{flex:1;border:1.5px solid #e2e8f0;border-radius:999px;padding:9px 16px;font-size:13.5px;background:#fff;outline:none;}
.pub-buscar input:focus{border-color:#0d7f3e;}
.pub-hitbar{background:#fdf6e3;border:1.5px solid #d4a017;border-radius:10px;padding:8px 14px;font-size:12.5px;color:#7a5c00;margin:0 0 14px;display:inline-flex;gap:8px;align-items:center;font-weight:700;}
.pub-hitbar a{color:#0a6532;font-weight:900;text-decoration:none;}

/* HOY: rejilla de canchas (tarjetas pgc del admin) en modo lectura */
.pub-courts{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;align-items:start;}
.pub-courts .pgc{margin:0;}
.pubm-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px;}
.pubm-h{font-weight:900;color:#0a6532;font-size:14.5px;}
.pubm-r{font-size:10px;color:#64748b;font-weight:800;letter-spacing:.4px;text-transform:uppercase;}
.pubm-live{font-size:9px;background:#fdf1cf;color:#b45309;border-radius:5px;padding:2.5px 8px;font-weight:900;letter-spacing:.5px;animation:pubP 1.4s infinite;}
.pub .gr-match-row{cursor:default;}
.pub .m-nm{display:block;line-height:1.25;white-space:normal;}
.pub .m-side{align-items:flex-start;}
.pub-hit-ring{box-shadow:0 0 0 2px #d4a017, 0 4px 14px rgba(212,160,23,.28)!important;border-color:#d4a017!important;background:#fffdf4!important;}

/* CUADROS: columnas del admin SIEMPRE visibles + scroll con puntitos en movil */
.pub .brk-col{display:flex!important;}
.pubw-dots{display:flex;gap:7px;justify-content:center;margin:2px 0 12px;}
.pubw-dots button{width:9px;height:9px;border-radius:50%;border:0;background:#cbd5e1;cursor:pointer;padding:0;transition:all .15s;}
.pubw-dots button.on{background:#0d7f3e;transform:scale(1.25);}
.pubw-scroll{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;-webkit-overflow-scrolling:touch;}
.pubw-scroll .brk-col{flex:0 0 290px;scroll-snap-align:start;}
@media(min-width:1024px){.pubw-scroll{overflow:visible;flex-wrap:nowrap;}.pubw-scroll .brk-col{flex:1 1 0;min-width:240px;}.pubw-dots{display:none;}}

/* GRUPOS: la cuadricula del admin */
.pub .gr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;align-items:start;}
.pub .gr-nm-cell .dosl div{line-height:1.2;}

/* RESULTADOS */
.pub-dia-h{font-weight:900;color:#0a6532;font-size:13.5px;margin:18px 0 10px;display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.4px;}
.pub-res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;}
.pub-res-grid .gr-match-row{background:#fff;}

.pub-foot{text-align:center;color:#94a3b8;font-size:12.5px;padding:16px;}
.pub-foot b{color:#0a6532;}
.pub-foot a{color:#0a6532;text-decoration:none;font-weight:700;}
.pub-foot a:hover{text-decoration:underline;}
@media(min-width:700px){.pub-hero h1{font-size:36px;}}

/* listado de torneos (index) */
.pub-sec-t{font-weight:900;font-size:12.5px;letter-spacing:.5px;text-transform:uppercase;color:#64748b;margin:20px 0 10px;display:flex;align-items:center;gap:7px;}
.pub-sec-t iconify-icon{color:#d4a017;font-size:16px;}
.pub-tcard{display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid #e2e8f0;border-radius:16px;padding:15px 18px;margin-bottom:12px;text-decoration:none;color:#1e293b;transition:all .12s;}
.pub-tcard:hover{border-color:#0d7f3e;box-shadow:0 8px 22px rgba(13,127,62,.10);transform:translateY(-1px);color:#1e293b;}
.pub-tcard .ic{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,#0d7f3e,#0a6532);color:#fff;display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0;}
.pub-tcard.vivo .ic{background:linear-gradient(135deg,#d4a017,#ca8a04);}
.pub-tcard .bd{flex:1;min-width:0;}
.pub-tcard .nom{font-weight:900;font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pub-tcard .met{color:#64748b;font-size:12.5px;margin-top:2px;}
.pub-tcard .chev{color:#94a3b8;font-size:18px;}
.pub-mini-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 10px;font-size:9.5px;font-weight:900;letter-spacing:.4px;background:#d4a017;color:#fff;}
.pub-mini-badge .dot{width:6px;height:6px;background:#fff;border-radius:50%;animation:pubP 1.2s infinite;}

/* ================= CUADROS estilo ROLAND GARROS ================= */
/* mapa de rondas */
.rg-map{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none;}
.rg-map::-webkit-scrollbar{display:none;}
.rg-mr{flex:0 0 118px;text-decoration:none;}
.rg-mr-t{font-size:10.5px;font-weight:800;color:#94a3b8;text-align:center;margin-bottom:6px;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap;}
.rg-mr.on .rg-mr-t{color:#0a6532;}
.rg-mr-box{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:9px 10px;display:flex;flex-direction:column;gap:7px;min-height:74px;justify-content:center;transition:all .12s;}
.rg-mr:hover .rg-mr-box{border-color:#0d7f3e;}
.rg-mr.on .rg-mr-box{background:linear-gradient(135deg,#0d7f3e,#0a6532);border-color:#0a6532;box-shadow:0 6px 16px rgba(10,101,50,.25);}
.rg-mr-sk{display:flex;flex-direction:column;gap:3px;}
.rg-mr-sk span{height:3px;border-radius:2px;background:#d8dee6;}
.rg-mr.on .rg-mr-sk span{background:rgba(255,255,255,.85);}

/* barra: flechas + titulos de las 3 columnas */
.rg-nav{display:grid;grid-template-columns:44px 1fr 1fr 1fr 44px;align-items:center;gap:14px;margin:8px 0 12px;}
.rg-arrow{width:38px;height:38px;border-radius:50%;background:#0d7f3e;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;text-decoration:none;box-shadow:0 4px 12px rgba(13,127,62,.28);transition:all .12s;}
.rg-arrow:hover{background:#0a6532;color:#fff;transform:scale(1.06);}
.rg-arrow.off{background:#e2e8f0;color:#94a3b8;pointer-events:none;box-shadow:none;}
.rg-ct{justify-self:center;max-width:100%;font-size:13px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;color:#64748b;background:#fff;border:1.5px solid #e2e8f0;border-radius:999px;padding:8px 18px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rg-ct.on{color:#fff;background:linear-gradient(135deg,#0d7f3e,#0a6532);border-color:#0a6532;box-shadow:0 6px 16px rgba(10,101,50,.28);}
.rg-ct:empty{display:none;}

/* rejilla del bracket: 3 columnas alineadas con conectores */
.rg-grid{display:grid;gap:0 34px;align-items:stretch;}
.rg-cell{display:flex;align-items:center;position:relative;padding:7px 0;}
/* stub de salida del alimentador (columna con siguiente) */
.rg-cell.haynext::after{content:"";position:absolute;right:-18px;top:50%;width:18px;border-top:1.5px solid #cbd5e1;}
/* conector de entrada: vertical entre los centros de los 2 alimentadores + stub al centro */
.rg-cell.entra::before{content:"";position:absolute;left:-17px;top:25%;bottom:25%;border-left:1.5px solid #cbd5e1;}
.rg-cell.entra .rg-instub{position:absolute;left:-17px;top:50%;width:17px;border-top:1.5px solid #cbd5e1;}

/* tarjeta de partido RG */
.rg-match{background:#eef1f5;border-radius:10px;overflow:hidden;width:100%;box-shadow:0 1px 3px rgba(15,23,42,.06);}
.rg-match.pub-hit-ring{background:#fffdf4;}
.rg-row{display:flex;align-items:center;gap:9px;padding:9px 12px;min-height:44px;}
.rg-row.win{background:#fff;}
.rg-ava{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#0d7f3e,#0a6532);color:#fff;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.3px;}
.rg-row.tbd .rg-ava{background:#cbd5e1;}
.rg-nm{flex:1;min-width:0;font-size:13px;color:#475569;font-weight:600;line-height:1.2;}
.rg-nm div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rg-row.win .rg-nm{color:#0f172a;font-weight:800;}
.rg-row.tbd .rg-nm{color:#94a3b8;font-style:italic;font-weight:600;}
.rg-seed{color:#94a3b8;font-weight:700;font-size:11px;}
.rg-chk{color:#0d7f3e;font-size:15px;flex-shrink:0;display:flex;}
.rg-sets{display:flex;gap:8px;flex-shrink:0;align-items:baseline;}
.rg-g{font-size:14px;font-weight:800;color:#0f172a;position:relative;line-height:1;}
.rg-g.pierde{color:#a3adba;font-weight:700;font-size:12.5px;}
.rg-g sup{font-size:8.5px;font-weight:800;color:#94a3b8;margin-left:1px;}
.rg-txt{font-size:10px;font-weight:900;color:#b45309;background:#fdf1cf;border-radius:5px;padding:2px 7px;}
.rg-prog{padding:6px 12px 8px;font-size:10.5px;color:#64748b;display:flex;align-items:center;gap:5px;border-top:1px dashed #dde3ea;}
.rg-prog iconify-icon{color:#d4a017;font-size:12px;}

/* movil: solo la columna activa */
@media(max-width:900px){
  .rg-nav{grid-template-columns:44px 1fr 44px;}
  .rg-ct.prev,.rg-ct.next{display:none;}
  /* una sola pista al 100%: las celdas de la ronda activa fluyen apiladas */
  .rg-grid{grid-template-columns:1fr!important;gap:0;}
  .rg-cell{grid-column:1!important;grid-row:auto!important;}
  .rg-cell.colprev,.rg-cell.colnext{display:none;}
  .rg-cell::before,.rg-cell::after,.rg-cell .rg-instub{display:none!important;}
  /* canal derecho para los codos del par (patron RG movil) */
  .rg-grid{position:relative;padding-right:20px;}
  .rg-mconn{position:absolute;right:5px;width:11px;border:1.5px solid #cbd5e1;border-left:0;border-radius:0 6px 6px 0;pointer-events:none;}
  .rg-mconn::after{content:"";position:absolute;right:-7px;top:50%;width:7px;border-top:1.5px solid #cbd5e1;}
}

/* logotipo blanco dentro del hero (como el login del admin) */
.pub-hero-logo{height:34px;width:auto;display:block;margin:0 0 14px;}
@media(min-width:700px){.pub-hero-logo{height:40px;}}

/* lista de partidos del jugador buscado (cuadros) */
.pub-hitlist{display:flex;flex-direction:column;gap:8px;margin:-4px 0 16px;max-width:640px;}
.pub-hit-item{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #f0e2b8;border-radius:12px;padding:10px 14px;text-decoration:none;color:#1e293b;transition:all .12s;}
.pub-hit-item:hover{border-color:#d4a017;box-shadow:0 6px 16px rgba(212,160,23,.18);transform:translateY(-1px);color:#1e293b;}
.pub-hit-item iconify-icon.tr{color:#d4a017;font-size:17px;flex-shrink:0;}
.pub-hit-item .rd{font-weight:900;font-size:13px;white-space:nowrap;}
.pub-hit-item .det{flex:1;min-width:0;color:#64748b;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pub-hit-item .det b.g{color:#0d7f3e;} .pub-hit-item .det b.p{color:#94a3b8;}
.pub-hit-item iconify-icon.go{color:#94a3b8;font-size:15px;flex-shrink:0;}
/* destello al llegar por ancla */
.rg-cell:target .rg-match{box-shadow:0 0 0 2px #d4a017,0 4px 14px rgba(212,160,23,.28)!important;background:#fffdf4;animation:hitFlash 1s ease-out 2;}
@keyframes hitFlash{50%{box-shadow:0 0 0 5px rgba(212,160,23,.45),0 4px 18px rgba(212,160,23,.35);}}

/* navbar: logo + soporte */
.pub-nav-logo{height:26px;width:auto;display:block;}
.pub-nav .mail{font-size:12.5px;color:#0a6532;font-weight:800;text-decoration:none;}
.pub-nav .mail:hover{color:#d4a017;}
/* las anclas del bracket aterrizan DEBAJO del header pegajoso */
.rg-cell{scroll-margin-top:70px;}

/* selector de dias: fichas de calendario */
.pub-dias{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:none;scroll-snap-type:x proximity;}
.pub-dias::-webkit-scrollbar{display:none;}
.pub-dia{flex:0 0 auto;scroll-snap-align:start;background:#fff;border:1.5px solid #e2e8f0;border-radius:999px;padding:8px 15px;display:flex;flex-direction:row;align-items:baseline;gap:7px;text-decoration:none;transition:all .13s;position:relative;white-space:nowrap;}
.pub-dia:hover{border-color:#0d7f3e;transform:translateY(-2px);box-shadow:0 6px 14px rgba(13,127,62,.12);}
.pub-dia .ds{font-size:10px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.6px;}
.pub-dia .dn{font-size:17px;font-weight:900;color:#1e293b;line-height:1;}
.pub-dia .dm{font-size:10px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;}
.pub-dia .dh{font-size:8.5px;font-weight:900;color:#fff;background:#d4a017;border-radius:999px;padding:2px 7px;letter-spacing:.6px;align-self:center;}
.pub-dia.on{background:linear-gradient(135deg,#0d7f3e,#0a6532);border-color:#0a6532;box-shadow:0 8px 18px rgba(10,101,50,.30);transform:translateY(-2px);}
.pub-dia.on .ds{color:rgba(255,255,255,.85);}
.pub-dia.on .dn{color:#fff;}
.pub-dia.on .dm{color:rgba(255,255,255,.8);}
.pub-dia.on .dh{background:#ffd75e;color:#7a5a00;}

/* header de cancha (publico): barra FLOTANTE con las 4 esquinas redondeadas */
.pub-courts .pgc{background:transparent;border:0;box-shadow:none;overflow:visible;border-radius:0;}
.pub-courts .pgc-h{border-radius:16px;padding:13px 16px;box-shadow:0 6px 16px rgba(10,101,50,.22);}
.pub-courts .pgc-b{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-top:9px;}
.pub-courts .pgc-h .n{display:flex;align-items:center;gap:9px;font-size:15px;}
.pub-courts .pgc-h .n .pgc-badge{margin-left:2px;}

/* ============ TARJETA DE PARTIDO estilo scorecard ============ */
.scv{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px 11px;margin-bottom:10px;}
.pub-res-grid .scv{margin-bottom:0;}
.scv.pub-hit-ring{background:#fffdf4;}
.scv-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.scv-meta .h{font-weight:900;color:#0a6532;font-size:13.5px;}
.scv-meta .r{font-size:10px;color:#64748b;font-weight:800;letter-spacing:.4px;text-transform:uppercase;}
.scv-body{display:flex;gap:8px;align-items:stretch;}
.scv-names{flex:1;min-width:0;background:#e9f3ec;border-radius:10px;display:flex;flex-direction:column;overflow:hidden;}
.scv-p{flex:1;display:flex;align-items:center;gap:9px;padding:7px 11px;position:relative;min-height:38px;}
.scv-p + .scv-p{border-top:1.5px solid #fff;}
.scv-p .nm{font-size:13px;font-weight:700;color:#475569;line-height:1.22;min-width:0;}
.scv-p .nm div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.scv-p.win{background:#dcefe3;}
.scv-p.win::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3.5px;border-radius:3px;background:#0d7f3e;}
.scv-p.win .nm{color:#0a6532;font-weight:900;}
.scv-p.tbd .nm{color:#94a3b8;font-style:italic;}
.scv-sets{display:flex;gap:3px;flex-shrink:0;}
.scv-set{display:flex;flex-direction:column;gap:3px;width:42px;}
.scv-set .c{flex:1;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:900;color:#fff;min-height:36px;}
.scv-set .c sup{font-size:9px;font-weight:800;margin-left:1px;opacity:.9;}
.scv-set .c.g{background:#0d7f3e;}
.scv-set .c.p{background:#9aa7b4;}
.scv-hora{width:64px;border:2px solid #0d7f3e;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:900;color:#0a6532;font-size:15px;}
.scv-hora.live{border-color:#d4a017;background:#fdf1cf;color:#b45309;animation:pubP 1.4s infinite;}
.scv-hora.tba{border-style:dashed;border-color:#cbd5e1;color:#94a3b8;font-size:18px;}
.scv-txt{width:64px;border-radius:10px;background:#fdf1cf;color:#b45309;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:11px;letter-spacing:.5px;}
.scv-prog{margin-top:7px;font-size:10.5px;color:#64748b;display:flex;align-items:center;gap:5px;}
.scv-prog iconify-icon{color:#d4a017;font-size:12px;}
@media(max-width:420px){.scv-set{width:38px;}.scv-set .c{font-size:15.5px;}.scv-hora,.scv-txt{width:56px;}}

.scv-p .chk{margin-left:auto;color:#0d7f3e;font-size:19px;flex-shrink:0;display:flex;padding-left:6px;}

/* hero compacto */
.pub-hero.compacto{padding:18px 18px 15px;}
.pub-hero.compacto h1{font-size:24px;margin:9px 0 5px;}
.pub-hero.compacto .pub-badge{margin-top:8px;}
@media(min-width:700px){.pub-hero.compacto h1{font-size:32px;}.pub-hero.compacto{padding:22px 24px 18px;}}
/* ficha del torneo */
.fx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;max-width:820px;}
.fx-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px 18px;}
.fx-h{font-weight:900;font-size:14px;color:#0a6532;display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.fx-h iconify-icon{font-size:17px;color:#d4a017;}
.fx-row{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:13.5px;align-items:flex-start;}
.fx-row:last-child{border-bottom:0;}
.fx-row .l{width:96px;flex-shrink:0;color:#94a3b8;font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding-top:2px;}
.fx-row .v{flex:1;color:#1e293b;font-weight:700;}
.fx-row .v div{padding:1px 0;}
.fx-acc{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.fx-acc a{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:9px 16px;font-size:13px;font-weight:800;text-decoration:none;}



/* ===== HEADERS DE CANCHA: ESCALA DE VERDES (cubre prefijos c* y b*) ===== */

/* grupos publico: nombres COMPLETOS sin corte (2 lineas) */
.pub .gr-tabla .gr-nm-txt{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.25;}
.pub .gr-tabla .gr-nm-txt div{padding:1px 0;}
.pub .gr-tabla td.l{min-width:172px;}
.pub .gr-bd-line .g sup{font-size:8px;font-weight:800;}
.pub .gr-clasif{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:14px 16px;margin-bottom:16px;}
.pub .gr-clasif-h{display:flex;align-items:center;gap:8px;font-weight:900;font-size:14px;color:#1e293b;margin-bottom:11px;}
.pub .gr-clasif-h iconify-icon{color:#d4a017;font-size:18px;}

/* grupos: aire lateral en la tabla (numeros y chevrones despegados del borde) */
.pub .gr-tabla th:first-child,.pub .gr-tabla td:first-child{padding-left:14px;}
.pub .gr-tabla th:last-child,.pub .gr-tabla td:last-child{padding-right:14px;}

.pub .gr-frow[data-bdtarget]{cursor:pointer;}
.pub .gr-frow[data-bdtarget]:hover td{background:#f8fafc;}
.pub .gr-bd-btn{cursor:pointer;}

/* grupos: que NADA se corte — frame amplio + columnas a dieta + red de seguridad */
.pub .gr-grid{grid-template-columns:repeat(auto-fill,minmax(min(415px,100%),1fr));}
.pub .gr-card-body{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;}
.pub .gr-card-body::-webkit-scrollbar{height:5px;}
.pub .gr-card-body::-webkit-scrollbar-track{background:transparent;}
.pub .gr-card-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;}
.pub .gr-card-body::-webkit-scrollbar-thumb:hover{background:#94a3b8;}
.pub .gr-tabla{width:100%;}
.pub .gr-tabla th,.pub .gr-tabla td{padding-left:4px;padding-right:4px;}
.pub .gr-tabla th:first-child,.pub .gr-tabla td:first-child{padding-left:14px;}
.pub .gr-tabla th:last-child,.pub .gr-tabla td:last-child{padding-right:14px;}
.pub .gr-tabla td.l{min-width:148px;}
.pub .gr-bd-line .g{width:20px;flex-shrink:0;}
.pub .gr-bd-line .nm{min-width:0;}

/* ===== JUGADORES: directorio por categoria con breakdown ===== */
.jl{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;max-width:760px;}
.jl-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid #f1f5f9;cursor:pointer;}
.jl-row:hover{background:#f8fafc;}
.jl-row:last-child,.jl-bd:last-child{border-bottom:0;}
.jl-ava{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#0d7f3e,#0a6532);color:#fff;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.3px;}
.jl-nm{flex:1;min-width:0;font-size:13.5px;font-weight:800;color:#1e293b;line-height:1.25;}
.jl-nm div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jl-chips{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}
.jl-chip{font-size:10px;font-weight:900;letter-spacing:.3px;border-radius:6px;padding:3px 8px;}
.jl-chip.g{background:#e9f3ec;color:#0a6532;}
.jl-chip.p{background:#fdf1cf;color:#b45309;}
.jl-chip.n{background:#f1f5f9;color:#94a3b8;}
.jl-bd{border-bottom:1px solid #f1f5f9;background:#f8fafc;padding:10px 16px 12px;}
.jl-ronda{font-size:9.5px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;color:#94a3b8;margin-bottom:3px;}
@media(max-width:480px){.jl-chips{display:none;}}

/* grupos: nombres de la pareja APILADOS en renglones (no en columnas flex) */
.pub .gr-tabla .gr-nm-cell{display:block!important;}
.pub .gr-tabla .gr-nm-txt{display:block!important;}
.pub .gr-tabla .gr-nm-txt div{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:1px 0;}
.pub .gr-tabla td.l{min-width:168px;}

/* breakdown: nombres justificados a la IZQUIERDA (digitos siguen a la derecha) */
.pub .gr-bd-line{justify-content:flex-start;text-align:left;}
.pub .gr-bd-line .nm{flex:1;text-align:left;}
.pub .gr-bd-pend{justify-content:flex-start;text-align:left;}

/* etiquetas de ronda (RONDA 1...) como PILDORA */
.pub .gr-ronda-h{display:inline-flex;align-items:center;gap:6px;background:#e9f3ec;color:#0a6532;border-radius:999px;padding:5px 13px;font-size:10.5px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;border:0;margin:14px 0 9px;}
.pub .gr-ronda-h iconify-icon{color:#0d7f3e;font-size:13px;}


/* pildoras de ronda: colores BRILLANTES y bien diferenciados (r1..r8, ciclan) */
.pub .gr-ronda-h.r1{background:#0d7f3e;color:#fff;} .pub .gr-ronda-h.r1 iconify-icon{color:#fff;}
.pub .gr-ronda-h.r2{background:#2563eb;color:#fff;} .pub .gr-ronda-h.r2 iconify-icon{color:#fff;}
.pub .gr-ronda-h.r3{background:#ea580c;color:#fff;} .pub .gr-ronda-h.r3 iconify-icon{color:#fff;}
.pub .gr-ronda-h.r4{background:#7c3aed;color:#fff;} .pub .gr-ronda-h.r4 iconify-icon{color:#fff;}
.pub .gr-ronda-h.r5{background:#0d9488;color:#fff;} .pub .gr-ronda-h.r5 iconify-icon{color:#fff;}
.pub .gr-ronda-h.r6{background:#db2777;color:#fff;} .pub .gr-ronda-h.r6 iconify-icon{color:#fff;}
.pub .gr-ronda-h.r7{background:#ca8a04;color:#fff;} .pub .gr-ronda-h.r7 iconify-icon{color:#fff;}
.pub .gr-ronda-h.r8{background:#4d7c0f;color:#fff;} .pub .gr-ronda-h.r8 iconify-icon{color:#fff;}

/* segmentacion por color al desplegar (grupos y jugadores) */
.pub .seg{border-left:4px solid transparent;}
.pub .seg .gr-bd-wrap{border-radius:0 8px 8px 0;padding:8px 12px;margin:2px 0;}
.pub .seg1{background:#eaf7ef!important;border-left-color:#0d7f3e;}
.pub .seg2{background:#eaf0fe!important;border-left-color:#2563eb;}
.pub .seg3{background:#fff1e8!important;border-left-color:#ea580c;}
.pub .seg4{background:#f3ecfe!important;border-left-color:#7c3aed;}
.pub .seg5{background:#e6faf7!important;border-left-color:#0d9488;}
.pub .seg6{background:#fdeaf3!important;border-left-color:#db2777;}
.pub .seg7{background:#fef9e6!important;border-left-color:#ca8a04;}
.pub .seg8{background:#eef6e2!important;border-left-color:#4d7c0f;}
/* la fila cabecera tambien recibe un puntito de su color al abrir */
.pub .gr-frow[data-idx].abierta td:first-child,.pub .jl-row[data-idx].abierta{position:relative;}

/* titulos de dia (Resultados) como PILDORA grande y colorida */
.pub .pub-dia-h{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:9px 18px;font-size:14px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;color:#fff;margin:22px 0 12px;}
.pub .pub-dia-h iconify-icon{color:#fff;font-size:17px;}
.pub .pub-dia-h.dia1{background:#0d7f3e;}
.pub .pub-dia-h.dia2{background:#2563eb;}
.pub .pub-dia-h.dia3{background:#ea580c;}
.pub .pub-dia-h.dia4{background:#7c3aed;}
.pub .pub-dia-h.dia5{background:#0d9488;}
.pub .pub-dia-h.dia6{background:#db2777;}
.pub .pub-dia-h.dia7{background:#ca8a04;}
.pub .pub-dia-h.dia8{background:#4d7c0f;}

/* etiqueta categoria/ronda/cancha como PILDORA del color del dia (solo Resultados) */
.pub .scv-meta .r-pill{background:var(--diaCol,#0d7f3e);color:#fff;border-radius:999px;padding:3px 11px;letter-spacing:.3px;}

/* ============ DASHBOARD de la Ficha ============ */
.dx-prog{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px 18px;margin-bottom:14px;}
.dx-prog-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.dx-prog-t{font-weight:900;font-size:14px;color:#0a6532;display:flex;align-items:center;gap:8px;}
.dx-prog-t iconify-icon{font-size:18px;}
.dx-prog-n{font-size:13px;color:#64748b;font-weight:700;}
.dx-prog-n b{color:#0d7f3e;font-size:15px;}
.dx-bar{height:12px;background:#eef2f7;border-radius:999px;overflow:hidden;}
.dx-bar span{display:block;height:100%;background:linear-gradient(90deg,#0d7f3e,#16a34a);border-radius:999px;transition:width .6s ease;}
/* KPIs */
.dx-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
.dx-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px 14px;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;overflow:hidden;}
.dx-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;}
.dx-kpi iconify-icon{font-size:26px;margin-bottom:3px;}
.dx-kpi .v{font-size:26px;font-weight:900;color:#1e293b;line-height:1;}
.dx-kpi .l{font-size:11px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.4px;text-align:center;}
.dx-kpi.k1::before{background:#0d7f3e;} .dx-kpi.k1 iconify-icon{color:#0d7f3e;}
.dx-kpi.k2::before{background:#2563eb;} .dx-kpi.k2 iconify-icon{color:#2563eb;}
.dx-kpi.k3::before{background:#ea580c;} .dx-kpi.k3 iconify-icon{color:#ea580c;}
.dx-kpi.k4::before{background:#ca8a04;} .dx-kpi.k4 iconify-icon{color:#ca8a04;}
/* grid 2 columnas */
.dx-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
.dx-col{display:flex;flex-direction:column;gap:16px;}
.dx-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px 18px;}
.dx-card-h{font-weight:900;font-size:14px;color:#0a6532;display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.dx-card-h iconify-icon{font-size:18px;color:#d4a017;}
.dx-empty{color:#94a3b8;font-size:13px;text-align:center;padding:14px;}
.dx-link{display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:12.5px;font-weight:800;color:#0d7f3e;text-decoration:none;}
.dx-link:hover{color:#0a6532;}
/* hoy */
.dx-today{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.dx-td{border-radius:12px;padding:12px 8px;text-align:center;}
.dx-td .n{display:block;font-size:24px;font-weight:900;line-height:1;}
.dx-td .l{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;margin-top:3px;}
.dx-td.live{background:#fdf1cf;color:#b45309;}
.dx-td.prog{background:#eef4f0;color:#0a6532;}
.dx-td.done{background:#f1f5f9;color:#64748b;}
/* proximos */
.dx-next{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f1f5f9;}
.dx-next:last-child{border-bottom:0;}
.dx-next-when{flex-shrink:0;text-align:center;background:#eef4f0;border-radius:10px;padding:6px 10px;min-width:58px;}
.dx-next-when .d{display:block;font-size:10px;font-weight:800;color:#64748b;text-transform:uppercase;}
.dx-next-when .h{display:block;font-size:15px;font-weight:900;color:#0a6532;}
.dx-next-who{flex:1;min-width:0;font-size:12.5px;}
.dx-next-who .p{font-weight:700;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dx-next-who .vs{font-size:10px;color:#94a3b8;font-weight:800;padding:1px 0;}
.dx-next-court{flex-shrink:0;font-size:10.5px;font-weight:800;color:#0d7f3e;background:#eaf7ef;border-radius:6px;padding:3px 8px;}
/* destacados */
.dx-star{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #f1f5f9;}
.dx-star:last-child{border-bottom:0;}
.dx-star-ico{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#d4a017,#ca8a04);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.dx-star-bd{flex:1;min-width:0;}
.dx-star-bd .who{font-weight:900;font-size:13.5px;color:#1e293b;line-height:1.2;}
.dx-star-bd .meta{font-size:11px;color:#94a3b8;font-weight:700;margin-top:2px;}
@media(max-width:820px){.dx-grid{grid-template-columns:1fr;}.dx-kpis{grid-template-columns:repeat(2,1fr);}}
@media(max-width:400px){.dx-kpis{grid-template-columns:repeat(2,1fr);}.dx-td .n{font-size:20px;}}

/* CTA estelar "busca tu partido" */
.dx-hero-cta{background:linear-gradient(135deg,#0d7f3e,#0a6532);border-radius:16px;padding:18px 20px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;box-shadow:0 8px 22px rgba(10,101,50,.20);}
.dx-hero-txt .t{color:#fff;font-weight:900;font-size:17px;display:flex;align-items:center;gap:8px;}
.dx-hero-txt .s{color:rgba(255,255,255,.9);font-size:12.5px;margin-top:3px;max-width:360px;}
.dx-hero-form{display:flex;gap:8px;flex:1;min-width:260px;max-width:440px;}
.dx-hero-form input{flex:1;border:0;border-radius:999px;padding:11px 18px;font-size:14px;outline:none;}
.dx-hero-form button{border:0;background:#d4a017;color:#fff;border-radius:999px;padding:11px 20px;font-weight:900;font-size:13.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.dx-hero-form button:hover{background:#b8860b;}
/* accesos rapidos */
.dx-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;}
.dx-qbtn{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid #e2e8f0;border-radius:14px;padding:14px 16px;text-decoration:none;transition:all .12s;position:relative;overflow:hidden;}
.dx-qbtn::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;}
.dx-qbtn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(13,127,62,.12);border-color:#0d7f3e;}
.dx-qbtn iconify-icon{font-size:26px;flex-shrink:0;}
.dx-qbtn span{display:flex;flex-direction:column;min-width:0;}
.dx-qbtn b{font-size:13.5px;color:#1e293b;font-weight:900;line-height:1.2;}
.dx-qbtn small{font-size:11px;color:#94a3b8;font-weight:700;margin-top:1px;}
.dx-qbtn.q1::before{background:#0d7f3e;} .dx-qbtn.q1 iconify-icon{color:#0d7f3e;}
.dx-qbtn.q2::before{background:#2563eb;} .dx-qbtn.q2 iconify-icon{color:#2563eb;}
.dx-qbtn.q3::before{background:#ea580c;} .dx-qbtn.q3 iconify-icon{color:#ea580c;}
.dx-qbtn.q4::before{background:#ca8a04;} .dx-qbtn.q4 iconify-icon{color:#ca8a04;}
@media(max-width:520px){.dx-hero-cta{flex-direction:column;align-items:stretch;}.dx-hero-form{max-width:none;}}

/* ===== v4.31 — Busqueda predictiva del CTA "Busca tu partido" (Ficha) ===== */
.dx-hero-form{position:relative;}
.dx-sug{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border-radius:14px;box-shadow:0 16px 38px rgba(15,23,42,.25);z-index:80;max-height:324px;overflow-y:auto;text-align:left;}
.dx-sug[hidden]{display:none!important;}
.dx-sug-i{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;border-bottom:1px solid #f1f5f9;}
.dx-sug-i:last-child{border-bottom:0;}
.dx-sug-i:hover,.dx-sug-i.act{background:#f0fdf4;}
.dx-sug-av{width:32px;height:32px;border-radius:50%;background:#e8f5ee;color:#0d7f3e;font-weight:900;font-size:11.5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.3px;}
.dx-sug-tx{display:flex;flex-direction:column;min-width:0;flex:1;}
.dx-sug-n{font-size:13.5px;color:#1e293b;font-weight:700;line-height:1.25;}
.dx-sug-n b{color:#0d7f3e;font-weight:900;}
.dx-sug-c{font-size:10.5px;color:#94a3b8;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
.dx-sug-i iconify-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;}
.dx-sug-empty{padding:16px 14px;font-size:12.5px;color:#64748b;text-align:center;font-weight:600;}
.dx-sug-empty b{color:#ca8a04;}
@media(max-width:520px){.dx-sug{max-height:262px;}}

/* ===== v4.34 - Boton PDF publico (Horarios / Cuadros / Grupos) ===== */
.pub-pdf-btn{display:inline-flex;align-items:center;gap:6px;margin-left:auto;background:#fff;border:1.5px solid #d4a017;color:#b45309;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:900;letter-spacing:.4px;text-decoration:none;transition:all .12s;line-height:1;}
.pub-pdf-btn:hover{background:#d4a017;color:#fff;transform:translateY(-1px);box-shadow:0 6px 14px rgba(212,160,23,.30);}
.pub-pdf-btn iconify-icon{font-size:15px;}

/* ===== v4.35 - Boton "Sembrados" + modal de cabezas de serie ===== */
.pub-seed-btn{display:inline-flex;align-items:center;gap:6px;margin-left:auto;background:#fff;border:1.5px solid #0d7f3e;color:#0a6532;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:900;letter-spacing:.4px;text-decoration:none;transition:all .12s;line-height:1;}
.pub-seed-btn:hover{background:#0d7f3e;color:#fff;transform:translateY(-1px);box-shadow:0 6px 14px rgba(13,127,62,.28);}
.pub-seed-btn iconify-icon{font-size:15px;color:#d4a017;}
.pub-seed-btn:hover iconify-icon{color:#ffd75e;}
.pub-h2 .pub-seed-btn ~ .pub-pdf-btn{margin-left:8px;}
.pub-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:18px;}
.pub-modal[hidden]{display:none!important;}
.pub-modal-velo{position:absolute;inset:0;background:rgba(15,23,42,.55);}
.pub-modal-card{position:relative;background:#fff;border-radius:18px;max-width:430px;width:100%;max-height:82vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.35);}
.pub-modal-h{background:linear-gradient(135deg,#0d7f3e,#0a6532);color:#fff;font-weight:900;font-size:15px;padding:14px 18px;display:flex;align-items:center;gap:9px;}
.pub-modal-h iconify-icon{color:#ffd75e;font-size:18px;}
.pub-modal-x{margin-left:auto;cursor:pointer;font-size:22px;line-height:1;opacity:.85;font-weight:700;}
.pub-modal-x:hover{opacity:1;}
.pub-modal-sub{background:#f0fdf4;color:#0a6532;font-weight:800;font-size:12px;padding:9px 18px;border-bottom:1px solid #e2e8f0;}
.pub-modal-body{overflow-y:auto;padding:4px 0;}
.pub-seed-row{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid #f1f5f9;}
.pub-seed-row:last-child{border-bottom:0;}
.pub-seed-n{width:30px;height:30px;border-radius:50%;background:#fdf1cf;color:#b45309;border:1.5px solid #d4a017;font-weight:900;font-size:12.5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pub-seed-nm{font-size:13.5px;font-weight:800;color:#1e293b;line-height:1.3;min-width:0;}
.pub-seed-nm small{display:block;color:#94a3b8;font-weight:700;font-size:11px;margin-top:1px;}
body.pub-modal-abierta{overflow:hidden;}

/* ===== v4.41 - Cambio de ronda "como pagina": salida/entrada deslizada ===== */
html.rg-out-l .rg-grid{transition:transform .15s ease-in,opacity .15s ease-in;transform:translateX(-42px);opacity:.35;}
html.rg-out-r .rg-grid{transition:transform .15s ease-in,opacity .15s ease-in;transform:translateX(42px);opacity:.35;}
@keyframes rgInL{from{transform:translateX(48px);opacity:.25;}to{transform:none;opacity:1;}}
@keyframes rgInR{from{transform:translateX(-48px);opacity:.25;}to{transform:none;opacity:1;}}
html.rg-in-l .rg-grid{animation:rgInL .22s ease-out;}
html.rg-in-r .rg-grid{animation:rgInR .22s ease-out;}
