:root{--bg:#0d0f14;--surf:#161920;--surf2:#1e2230;--bord:rgba(255,255,255,0.07);--bord2:rgba(255,255,255,0.16);--text:#f0f2f7;--muted:#6b7280;--acc:#c8f135;--fem:#f472b6;--fem-bg:rgba(244,114,182,0.14);--fem-bord:rgba(244,114,182,0.35);--masc:#38bdf8;--masc-bg:rgba(56,189,248,0.14);--masc-bord:rgba(56,189,248,0.35);--goal:#c8f135;--assist:#a78bfa;--def:#fb923c;--danger:#f87171;--warn:#fbbf24;--ok:#4ade80;--r:12px;--rs:7px;--mono:'DM Mono',monospace;--disp:'Barlow Condensed',sans-serif;--display:'Bebas Neue',sans-serif}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--disp);overscroll-behavior:none}
.app{display:flex;flex-direction:column;height:100dvh;max-width:620px;margin:0 auto}
.hdr{padding:10px 14px 0;border-bottom:1px solid var(--bord);flex-shrink:0;background:var(--bg)}
.hdr-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.logo{font-size:18px;font-weight:400;letter-spacing:2px;font-family:var(--display)}.logo span{color:var(--acc)}
.sync-badge{font-family:var(--mono);font-size:10px;padding:3px 8px;border-radius:20px;border:1px solid var(--bord2);display:flex;align-items:center;gap:5px;transition:all .3s}
.sync-badge.ok{border-color:rgba(74,222,128,.4);color:var(--ok)}
.sync-badge.err{border-color:rgba(248,113,113,.4);color:var(--danger)}
.sync-badge.ing{border-color:rgba(251,191,36,.4);color:var(--warn)}
.sync-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.tabs{display:flex;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs-wrap{position:relative}
/* Flechas para recorrer las pestañas con mouse; en pantallas táctiles se desliza con el dedo */
.tabs-arrow{display:none;position:absolute;top:0;bottom:2px;z-index:2;width:30px;border:none;color:var(--acc);font-size:22px;line-height:1;cursor:pointer;padding:0}
.tabs-arrow.izq{left:0;background:linear-gradient(to right,var(--bg) 60%,transparent)}
.tabs-arrow.der{right:0;background:linear-gradient(to left,var(--bg) 60%,transparent)}
@media(hover:hover) and (pointer:fine){.tabs-arrow.visible{display:block}}
.tab{flex-shrink:0;font-family:var(--display);font-size:13px;font-weight:400;letter-spacing:.08em;padding:7px 12px;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;text-transform:uppercase;transition:all .15s;white-space:nowrap}
.tab.active{color:var(--acc);border-bottom-color:var(--acc)}
.content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.section{display:none}
.section.active{display:block;animation:fadeIn .18s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(3px)}to{opacity:1}}
.padded{padding:12px 14px 24px}
.card{background:var(--surf);border:1px solid var(--bord);border-radius:var(--r);padding:12px;margin-bottom:10px}
.clabel{font-size:12px;font-family:var(--display);text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin-bottom:7px}
input[type=text],select{background:var(--surf2);border:1px solid var(--bord);border-radius:var(--rs);color:var(--text);font-family:var(--disp);font-size:13px;padding:8px 10px;outline:none;transition:border-color .2s;width:100%}
input[type=text]:focus,select:focus{border-color:var(--acc)}
select{font-family:var(--mono);font-size:11px}
.btn{font-family:var(--mono);font-size:11px;font-weight:500;padding:8px 12px;border-radius:var(--rs);border:1px solid var(--bord2);background:transparent;color:var(--text);cursor:pointer;white-space:nowrap;transition:all .15s}
.btn:active{transform:scale(0.97)}
.btn-acc{background:var(--acc);border-color:var(--acc);color:#0d0f14;font-weight:700}
.btn-danger{border-color:var(--danger);color:var(--danger)}
.btn-ok{border-color:var(--ok);color:var(--ok)}
.gender-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gender-opt{padding:10px;border-radius:var(--r);border:1px solid var(--bord2);cursor:pointer;text-align:center;transition:all .15s;background:var(--surf2)}
.gender-opt.sel-fem{border-color:var(--fem);background:var(--fem-bg)}
.gender-opt.sel-masc{border-color:var(--masc);background:var(--masc-bg)}
.g-icon{font-size:18px;display:block;margin-bottom:2px}
.g-lbl{font-size:11px;font-weight:700;font-family:var(--mono)}
.gender-opt.sel-fem .g-lbl{color:var(--fem)}
.gender-opt.sel-masc .g-lbl{color:var(--masc)}
/* LIVE BOARD */
.live-board{background:var(--surf);border-bottom:1px solid var(--bord)}
.timer-bar{background:transparent;padding:0;display:flex;align-items:center;gap:6px}
.timer-display{font-family:var(--display);font-size:22px;font-weight:400;letter-spacing:3px;min-width:52px}
.timer-display.idle{color:var(--muted)}.timer-display.running{color:var(--acc)}.timer-display.ended{color:var(--danger);animation:blink .7s step-end infinite}
@keyframes blink{50%{opacity:0}}
.timer-btns{display:flex;gap:5px}
.t-btn{font-family:var(--mono);font-size:10px;padding:6px 10px;border-radius:var(--rs);border:1px solid var(--bord2);background:transparent;color:var(--text);cursor:pointer;font-weight:500}
.t-btn.tstart{border-color:var(--acc);color:var(--acc)}
.score-section{padding:12px 14px 10px}
.score-teams{display:grid;grid-template-columns:1fr auto 1fr;gap:4px;align-items:center;margin-bottom:8px}
.team-side{display:flex;flex-direction:column;gap:4px}
.team-side.left{align-items:flex-end;text-align:right}
.team-side.right{align-items:flex-start;text-align:left}
.team-name-live{font-size:11px;font-weight:700;line-height:1.2}
.team-score-big{font-family:var(--display);font-size:56px;font-weight:400;line-height:1;color:var(--acc)}
.score-sep{font-family:var(--mono);font-size:24px;color:var(--muted);text-align:center;padding-top:6px}
.score-meta{display:flex;justify-content:center;gap:12px;font-size:10px;font-family:var(--mono);color:var(--muted);margin-bottom:7px}
.gender-center{display:flex;justify-content:center}
.gender-now{font-size:11px;font-family:var(--mono);font-weight:600;padding:5px 14px;border-radius:20px;display:inline-block}
.gn-f{background:var(--fem-bg);color:var(--fem)}.gn-m{background:var(--masc-bg);color:var(--masc)}
.gender-strip{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;padding:8px 0 4px}
.gs-letter{font-family:var(--display);font-weight:400;line-height:1;transition:all .2s;user-select:none;letter-spacing:1px}
.gs-letter.past{font-size:18px;opacity:0.5}
.gs-letter.past.fem{color:var(--danger)}
.gs-letter.past.masc{color:var(--danger)}
.gs-letter.current{font-size:56px;line-height:1;font-family:var(--display)}
.gs-letter.current.fem{color:var(--fem)}
.gs-letter.current.masc{color:var(--masc)}
.gs-letter.next{font-size:18px;opacity:0.35}
.gs-letter.next.fem{color:var(--fem)}
.gs-letter.next.masc{color:var(--masc)}
.val-error{background:rgba(251,191,36,0.1);border:1px solid rgba(251,191,36,0.4);border-radius:var(--rs);padding:7px 11px;font-size:11px;font-family:var(--mono);color:var(--warn);display:none;line-height:1.5;margin:0 14px}
.val-error.show{display:block}
.timeout-section{padding:9px 14px 11px;border-top:1px solid var(--bord)}
.to-label{font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px;text-align:center}
.to-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.to-team{background:var(--surf2);border-radius:var(--rs);padding:8px 10px}
.to-team-name{font-size:10px;font-family:var(--mono);color:var(--muted);margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.to-half{display:flex;align-items:center;gap:5px;margin-bottom:3px}
.to-half-lbl{font-size:9px;font-family:var(--mono);color:var(--muted);min-width:16px}
.to-dots{display:flex;gap:4px}
.to-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--bord2);background:var(--surf);cursor:pointer;transition:all .2s}
.to-dot.used{background:var(--acc);border-color:var(--acc)}
.visar-section{padding:12px 14px;border-top:1px solid var(--bord);background:var(--surf)}
.visar-label{font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:8px;text-align:center}
.visar-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.visar-btn{padding:5px 8px;border-radius:var(--rs);border:1px solid var(--bord2);background:var(--surf2);cursor:pointer;text-align:center;transition:all .2s}
.visar-btn .vb-team{font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:1px}
.visar-btn .vb-status{font-size:9px;font-family:var(--mono);color:var(--muted)}
.visar-btn.visado{border-color:var(--ok);background:rgba(74,222,128,0.1)}
.visar-btn.visado .vb-status{color:var(--ok)}.visar-btn.visado .vb-team{color:var(--ok)}
.enviar-btn{width:100%;padding:14px;border-radius:var(--r);border:none;font-family:var(--disp);font-size:14px;font-weight:800;cursor:pointer;transition:all .2s;display:none}
.enviar-btn.ready{display:block;background:var(--acc);color:#0d0f14;animation:pulse 1.5s ease-in-out infinite}
.enviar-btn.enviado{display:block;background:rgba(74,222,128,0.1);border:1px solid var(--ok);color:var(--ok);cursor:default}
/* Nuevo partido: deshabilitado hasta enviar los datos finales */
.nuevo-btn{display:block;width:100%;margin-top:8px;padding:10px;border-radius:var(--r);font-family:var(--disp);font-size:13px;font-weight:700;border:1px dashed var(--bord2);background:transparent;color:var(--muted);cursor:not-allowed;opacity:.6}
.nuevo-btn span{display:block;font-family:var(--mono);font-size:9px;font-weight:400;margin-top:2px}
.nuevo-btn.listo{border:1px solid var(--acc);color:var(--acc);background:rgba(200,241,53,0.08);cursor:pointer;opacity:1}
/* Rehacer: chico y discreto */
.rehacer-wrap{margin-top:10px;text-align:right}
.rehacer-btn{border:none;background:transparent;color:var(--muted);font-family:var(--mono);font-size:9px;cursor:pointer;padding:4px 2px;text-decoration:underline;opacity:.7}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(200,241,53,0.4)}50%{box-shadow:0 0 0 8px rgba(200,241,53,0)}}
.mode-bar{display:flex;border-bottom:1px solid var(--bord);background:var(--surf);position:sticky;top:0;z-index:20}
.mode-btn{flex:1;padding:12px 6px;font-family:var(--display);font-size:15px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:all .15s;border-bottom:3px solid transparent;display:flex;align-items:center;justify-content:center;gap:5px}
.mode-btn.active-D{color:var(--def);border-bottom-color:var(--def);background:rgba(251,146,60,0.15)}
.mode-btn.active-A{color:var(--assist);border-bottom-color:var(--assist);background:rgba(167,139,250,0.15)}
.mode-btn.active-G{color:var(--goal);border-bottom-color:var(--goal);background:rgba(200,241,53,0.15)}
.tbl-mode-D{background:rgba(251,146,60,0.06);border-top:2px solid var(--def)}
.tbl-mode-A{background:rgba(167,139,250,0.06);border-top:2px solid var(--assist)}
.tbl-mode-G{background:rgba(200,241,53,0.06);border-top:2px solid var(--goal)}
.tbl-controls{display:flex;align-items:center;gap:7px;padding:8px 12px;border-bottom:1px solid var(--bord);background:var(--surf2);flex-wrap:wrap}
.sort-btn{font-family:var(--mono);font-size:10px;padding:5px 10px;border-radius:20px;border:1px solid var(--bord2);background:transparent;color:var(--muted);cursor:pointer}
.sort-btn.active{background:var(--surf);color:var(--text);font-weight:700}
/* Elegir equipo: botones grandes en la primera fila; orden A–Z / # abajo */
.eq-chip{order:-1;flex:1 1 40%;min-width:0;font-family:var(--display);font-size:16px;letter-spacing:.06em;padding:12px 8px;border-radius:var(--r);border:2px solid var(--acc);background:rgba(200,241,53,0.06);color:var(--text);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eq-chip.active{background:var(--acc);border-color:var(--acc);color:#0d0f14}
.tbl-controls>div{display:none}
.tbl-wrap{overflow-x:auto}
.player-table{width:100%;border-collapse:collapse;font-size:13px}
.player-table thead th{background:var(--surf);font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:7px 8px;text-align:center;border-bottom:1px solid var(--bord);font-weight:500}
.player-table thead th.th-name{text-align:left;padding-left:12px}
.player-table thead th.th-num{width:38px;padding-left:10px}
.player-table tbody tr{border-bottom:1px solid rgba(255,255,255,0.04)}
.player-table tbody tr.fem-row{background:var(--fem-bg)}
.player-table tbody tr.masc-row{background:var(--masc-bg)}
.td-num{width:38px;padding:8px 4px 8px 10px}
.td-name{padding:8px 8px 8px 4px}
.td-stat{padding:5px 8px}
.p-num{font-family:var(--mono);font-size:11px;font-weight:500}
.p-num.fem{color:var(--fem)}.p-num.masc{color:var(--masc)}
.p-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;display:block}
.p-name.fem{color:var(--fem)}.p-name.masc{color:var(--masc)}
.stat-cell{display:flex;align-items:center;justify-content:space-between;gap:3px;width:100%}
.big-btn{height:42px;flex:1;border-radius:7px;border:none;cursor:pointer;font-family:var(--mono);font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;transition:all .12s}
.big-btn:active{transform:scale(0.84)}
.big-minus{background:rgba(248,113,113,0.12);color:var(--danger)}
.big-plus.D{background:rgba(251,146,60,0.15);color:var(--def)}
.big-plus.A{background:rgba(167,139,250,0.15);color:var(--assist)}
.big-plus.G{background:rgba(200,241,53,0.15);color:var(--goal)}
.stat-num{font-family:var(--mono);font-size:20px;font-weight:800;min-width:30px;text-align:center}
.stat-num.D{color:var(--def)}.stat-num.A{color:var(--assist)}.stat-num.G{color:var(--goal)}
.total-row td{font-family:var(--mono);font-size:11px;font-weight:700;padding:9px 8px;border-top:1px solid var(--bord2);background:var(--surf)}
.cancha-card{background:var(--surf);border:1px solid var(--bord);border-radius:var(--r);padding:14px 16px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.cancha-card.active-cancha{border-color:var(--acc);background:rgba(200,241,53,0.07)}
.cancha-tag{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:20px;background:var(--surf2);color:var(--muted);white-space:nowrap;border:1px solid var(--bord2)}
.cancha-card.active-cancha .cancha-tag{background:var(--acc);color:#0d0f14;border-color:var(--acc)}
.live-cancha-badge{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--surf2);border-bottom:1px solid var(--bord)}
.live-cancha-badge.c1{border-left:4px solid #c8f135}
.live-cancha-badge.c2{border-left:4px solid #a78bfa}
.live-cancha-badge.c3{border-left:4px solid #38bdf8}
#tab-c1.active{color:#c8f135;border-bottom-color:#c8f135}
#tab-c2.active{color:#a78bfa;border-bottom-color:#a78bfa}
#tab-c3.active{color:#38bdf8;border-bottom-color:#38bdf8}
.live-cancha-badge-tag{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--acc);letter-spacing:.08em}
.live-cancha-badge-change{font-family:var(--mono);font-size:10px;color:var(--muted);margin-left:auto;text-decoration:underline}
/* FIXTURE */
.fix-filter{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.fix-btn{font-family:var(--mono);font-size:10px;padding:5px 12px;border-radius:20px;border:1px solid var(--bord2);background:transparent;color:var(--muted);cursor:pointer;transition:all .15s}
.fix-btn.active{background:var(--acc);border-color:var(--acc);color:#0d0f14;font-weight:700}
.match-card{background:var(--surf);border:1px solid var(--bord);border-radius:var(--r);padding:14px;margin-bottom:8px;border-left:3px solid transparent}
.match-card.GRUPOS{border-left-color:var(--acc)}
.match-card.CUARTOS{border-left-color:var(--assist)}
.match-card.SEMIFINAL{border-left-color:var(--warn)}
.match-card.FINAL{border-left-color:var(--danger)}
.match-card.POSICION{border-left-color:var(--muted)}
.mc-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.mc-cancha{font-family:var(--display);font-size:22px;font-weight:400;color:var(--acc);line-height:1;letter-spacing:1px}
.mc-hora{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:2px}
.mc-fase{font-family:var(--mono);font-size:9px;padding:3px 9px;border-radius:10px;font-weight:600;text-transform:uppercase;display:inline-block;margin-bottom:3px}
.fase-GRUPOS{background:rgba(200,241,53,0.1);color:var(--acc)}
.fase-CUARTOS{background:rgba(167,139,250,0.1);color:var(--assist)}
.fase-SEMIFINAL{background:rgba(251,191,36,0.1);color:var(--warn)}
.fase-FINAL{background:rgba(248,113,113,0.1);color:var(--danger)}
.fase-POSICION{background:rgba(107,114,128,0.12);color:var(--muted)}
.mc-equipos{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:6px}
.mc-eq{font-size:16px;font-weight:700;line-height:1.2;font-family:var(--display);letter-spacing:.5px}
.mc-eq.right{text-align:right}
.mc-eq.unresolved{color:var(--muted);font-style:italic;font-size:13px;font-weight:400;font-family:var(--disp)}
.mc-score{font-family:var(--display);font-size:28px;font-weight:400;color:var(--acc);text-align:center;white-space:nowrap;letter-spacing:1px}
.mc-score.pending{font-size:14px;color:var(--muted)}
.mc-score.terminado{color:var(--ok)}
.mc-score.en-proceso{color:var(--warn);font-size:22px}
.match-card.estado-terminado{border-left-color:var(--ok)!important;background:rgba(74,222,128,0.04)}
.match-card.estado-proceso{border-left-color:var(--warn)!important;background:rgba(251,191,36,0.04)}
.match-card.estado-pendiente{opacity:0.75}
.estado-badge{font-family:var(--mono);font-size:9px;padding:2px 8px;border-radius:10px;font-weight:600;margin-left:6px}
.estado-badge.terminado{background:rgba(74,222,128,0.15);color:var(--ok)}
.estado-badge.en-proceso{background:rgba(251,191,36,0.15);color:var(--warn)}
.estado-badge.pendiente{background:var(--surf2);color:var(--muted)}
/* STATS */
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.met{background:var(--surf2);border-radius:var(--rs);padding:10px;text-align:center}
.met-val{font-size:20px;font-weight:800;line-height:1}
.met-lbl{font-size:9px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-top:2px}
.met-val.g{color:var(--goal)}.met-val.a{color:var(--assist)}.met-val.d{color:var(--def)}
.stbl{width:100%;border-collapse:collapse}
.stbl th{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:6px 8px;text-align:center;border-bottom:1px solid var(--bord)}
.stbl th:first-child{text-align:left}
.stbl td{padding:9px 8px;border-bottom:1px solid var(--bord);font-size:12px;text-align:center}
.stbl td:first-child{text-align:left;font-weight:700;font-size:12px}
.rnk{font-family:var(--mono);font-size:9px;color:var(--muted);margin-right:4px}
.fem-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--fem);margin-right:4px;vertical-align:middle}
.masc-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--masc);margin-right:4px;vertical-align:middle}
.empty{text-align:center;color:var(--muted);font-family:var(--mono);font-size:12px;padding:24px 0}
.fb-btn{font-family:var(--mono);font-size:10px;padding:5px 12px;border-radius:20px;border:1px solid var(--bord2);background:transparent;color:var(--muted);cursor:pointer;transition:all .15s}
.fb-btn.active{background:var(--acc);border-color:var(--acc);color:#0d0f14;font-weight:700}
/* PARTIDO EN VIVO */
.live-envivo-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:start}
@media(max-width:600px){.live-envivo-grid{grid-template-columns:1fr}}
.live-cancha-panel{margin-bottom:0}
.live-cancha-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r) var(--r) 0 0;border:1px solid var(--bord);border-bottom:none}
.ev-quitar{border:1px solid rgba(248,113,113,0.35);background:transparent;color:var(--danger);border-radius:var(--rs);padding:3px 7px;font-size:12px;cursor:pointer;flex-shrink:0}
.live-cancha-header.c1{background:rgba(200,241,53,0.08);border-color:rgba(200,241,53,0.3)}
.live-cancha-header.c2{background:rgba(167,139,250,0.08);border-color:rgba(167,139,250,0.3)}
.live-cancha-header.c3{background:rgba(56,189,248,0.08);border-color:rgba(56,189,248,0.3)}
.live-cancha-name{font-family:var(--display);font-size:18px;letter-spacing:1px}
.live-cancha-name.c1{color:#c8f135}.live-cancha-name.c2{color:#a78bfa}.live-cancha-name.c3{color:#38bdf8}
.live-score-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surf2);border:1px solid var(--bord);border-top:none;border-bottom:none}
.live-score-teams{font-family:var(--display);font-size:13px;letter-spacing:.5px;flex:1;text-align:center}
.live-score-num{font-family:var(--display);font-size:32px;color:var(--acc);min-width:80px;text-align:center}
.live-score-num.done{color:var(--ok)}
.feed-container{border:1px solid var(--bord);border-top:none;border-radius:0 0 var(--r) var(--r);max-height:500px;min-height:100px;overflow-y:auto;background:var(--surf);transition:opacity .4s ease}
.feed-container.refreshing{opacity:0.3}
.feed-empty{padding:28px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--muted);opacity:.6}
.feed-item{display:flex;align-items:flex-start;gap:12px;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,0.04);transition:background .2s}
.feed-item:hover{background:rgba(255,255,255,0.025)}
.feed-item:last-child{border-bottom:none}
.feed-item.undo{opacity:.35}
.feed-item.new-item{animation:feedSlideIn .45s cubic-bezier(0.16,1,0.3,1) both}
@keyframes feedSlideIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.live-score-bar{transition:all .3s ease}
.score-num-wrap{position:relative;display:inline-block}
.score-bump{animation:scoreBump .4s cubic-bezier(0.36,0.07,0.19,0.97) both}
@keyframes scoreBump{0%,100%{transform:scale(1)}30%{transform:scale(1.18)}70%{transform:scale(0.95)}}
.feed-time{font-family:var(--mono);font-size:9px;color:var(--muted);min-width:36px;padding-top:2px;flex-shrink:0}
.feed-icon{font-size:14px;flex-shrink:0;padding-top:1px}
.feed-text{font-family:var(--disp);font-size:13px;font-weight:600;line-height:1.3}
.feed-text .stat-word{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.feed-text .player-name{font-weight:800}
.feed-text .team-name{font-size:11px;font-family:var(--mono)}
.feed-equipo-a{color:#c8f135}.feed-equipo-b{color:#fb923c}
.feed-no-match{padding:20px 14px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--muted);border:1px solid var(--bord);border-top:none;border-radius:0 0 var(--r) var(--r);background:var(--surf)}
.live-badge{font-family:var(--mono);font-size:9px;padding:2px 8px;border-radius:10px;font-weight:600;display:inline-flex;align-items:center;gap:4px}
.live-badge.activo{background:rgba(200,241,53,0.12);color:var(--acc);border:1px solid rgba(200,241,53,0.3)}
.live-badge.activo::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--acc);animation:blink .8s step-end infinite;display:inline-block}
@keyframes blink{50%{opacity:0}}
.live-badge.terminado{background:rgba(74,222,128,0.1);color:var(--ok)}
.live-badge.vacio{background:var(--surf2);color:var(--muted)}
.filter-row{display:flex;gap:7px;margin-bottom:10px;flex-wrap:wrap}
.filter-row select{flex:1;min-width:90px}
/* RANKING */
.rtbl{width:100%;border-collapse:collapse}
.rtbl th{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:7px 8px;text-align:center;border-bottom:1px solid var(--bord)}
.rtbl th:first-child,.rtbl th:nth-child(2){text-align:left}
.rtbl td{padding:8px;border-bottom:1px solid var(--bord);text-align:center;font-family:var(--mono);font-size:12px}
.rtbl td:first-child{text-align:left;width:28px;color:var(--muted);font-weight:700}
.rtbl td:nth-child(2){text-align:left;font-weight:700;font-family:var(--disp);font-size:12px}
.rtbl tr:last-child td{border-bottom:none}
.pos-playoff{color:var(--acc)}.td-pg{color:var(--ok);font-weight:700}.td-pp{color:var(--danger)}
.divider-row td{background:var(--surf2);padding:5px 8px;font-family:var(--mono);font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
/* UPLOAD */
.upload-zone{border:2px dashed var(--bord2);border-radius:var(--r);padding:24px;text-align:center;cursor:pointer;transition:all .2s}
.upload-zone:hover{border-color:var(--acc);background:rgba(200,241,53,0.05)}
.upload-icon{font-size:32px;margin-bottom:8px}
.upload-txt{font-family:var(--mono);font-size:12px;color:var(--muted);line-height:1.6}
.log-box{background:var(--surf2);border:1px solid var(--bord);border-radius:var(--rs);padding:10px;font-family:var(--mono);font-size:11px;max-height:160px;overflow-y:auto;line-height:1.9;margin-top:8px}
.l-ok{color:var(--ok)}.l-err{color:var(--danger)}.l-inf{color:var(--acc)}.l-warn{color:var(--warn)}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.75);display:none;align-items:center;justify-content:center;z-index:999}
.modal-bg.show{display:flex}
.modal{background:var(--surf);border:1px solid var(--bord2);border-radius:var(--r);padding:24px;max-width:320px;width:90%;text-align:center}
.modal h3{font-size:16px;margin-bottom:8px}
.modal p{font-size:12px;color:var(--muted);font-family:var(--mono);margin-bottom:20px;line-height:1.6}
.modal-btns{display:flex;gap:10px;justify-content:center}
/* ── LOGIN Y PERMISOS ── */
.hdr-right{display:flex;align-items:center;gap:6px}
.login-btn{font-family:var(--mono);font-size:10px;padding:3px 9px;border-radius:20px;border:1px solid var(--bord2);background:transparent;color:var(--text);cursor:pointer;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.login-btn.on{border-color:var(--acc);color:var(--acc)}
input[type=email],input[type=password]{background:var(--surf2);border:1px solid var(--bord);border-radius:var(--rs);color:var(--text);font-family:var(--disp);font-size:14px;padding:9px 10px;outline:none;transition:border-color .2s;width:100%}
input[type=email]:focus,input[type=password]:focus{border-color:var(--acc)}
.login-msg{font-family:var(--mono);font-size:11px;min-height:18px;margin:8px 0 12px;color:var(--danger)}
.login-alt{display:block;width:100%;margin-top:12px;padding:6px;border:none;background:transparent;color:var(--acc);font-family:var(--mono);font-size:11px;cursor:pointer;text-decoration:underline}
.perm-help{font-family:var(--mono);font-size:11px;color:var(--muted);line-height:1.6;margin-bottom:10px}
.perm-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--bord);font-size:14px}
.perm-row select{width:auto;min-width:120px}
.perm-acciones{display:flex;align-items:center;gap:6px;flex-shrink:0}
.perm-acciones .btn{padding:6px 9px}
.perm-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:12px}
/* Estado de sincronización del partido en la cancha */
.sync-estado{font-family:var(--mono);font-size:10px;padding:5px 12px;border-bottom:1px solid var(--bord)}
.sync-estado.ok{color:var(--ok)}
.sync-estado.warn{color:var(--warn);background:rgba(251,191,36,0.06)}
.sync-estado.err{color:var(--danger);background:rgba(248,113,113,0.08)}
/* Corregir partido (admin) */
.modal-ancho{max-width:640px;width:96%;max-height:90vh;overflow-y:auto;text-align:left}
.corr-marcador{font-family:var(--display);font-size:18px;letter-spacing:.5px;text-align:center;margin:6px 0 12px}
.corr-marcador b{font-size:26px;color:var(--acc);margin:0 6px}
.corr-antes{font-family:var(--mono);font-size:10px;color:var(--muted)}
.corr-equipo{border:1px solid var(--bord);border-radius:var(--rs);padding:8px;margin-bottom:10px}
.corr-titulo{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}
.corr-titulo span{font-family:var(--mono);font-size:10px}
.corr-bien{color:var(--ok)}.corr-mal{color:var(--danger)}
.corr-tabla{width:100%;border-collapse:collapse;margin-bottom:6px}
.corr-tabla td,.corr-tabla th{padding:3px 2px;font-size:11px;text-align:left}
.corr-tabla th{font-family:var(--mono);font-size:9px;color:var(--muted);font-weight:400}
.corr-tabla select{width:100%;font-size:11px;padding:4px}
.corr-hora{font-family:var(--mono);font-size:10px;color:var(--muted);white-space:nowrap}
.corr-vacio{font-family:var(--mono);color:var(--muted);text-align:center}
.corr-borrar{padding:4px 7px}
.fx-corregir{margin-left:auto;font-size:10px;padding:4px 8px}
