  :root{--bg:#07080a;--panel:#101012;--panel2:#17171b;--line:#262629;--txt:#ededee;--muted:#8a8a92;
    --orange:#f7941d;--orange-soft:rgba(247,148,29,.14);--green:#16c784;--green-soft:rgba(22,199,132,.12);
    --red:#ea3943;--red-soft:rgba(234,57,67,.12);--blue:#3b82f6;--amber:#f0b90b;--accent:#9f86ff;
    --logo-bg:#1d1f26;--authbtn-bg:#1f2733;--authbtn-tx:#cfd6e2;--authbtn-bd:#2a3543;--badge-dk:#1e1f26;}
  html[data-theme="light"]{--bg:#f4f5f7;--panel:#ffffff;--panel2:#eceef1;--line:#dfe2e7;--txt:#1a1c22;--muted:#5f636d;
    --orange:#e07c00;--orange-soft:rgba(224,124,0,.12);--green:#0e9d63;--green-soft:rgba(14,157,99,.12);
    --red:#d72f3b;--red-soft:rgba(215,47,59,.10);--blue:#2563eb;--amber:#a8780a;--accent:#6d4fd6;
    --logo-bg:#eef0f3;--authbtn-bg:#eef1f5;--authbtn-tx:#2a3543;--authbtn-bd:#d3d8e0;--badge-dk:#eef0f3;}
  html[data-theme="light"] body{color:var(--txt)}
  html[data-theme="light"] .pc-live{color:#fff}
  *{box-sizing:border-box;margin:0;padding:0;font-family:'Plus Jakarta Sans','Segoe UI',system-ui,sans-serif}
  body{background:var(--bg);color:var(--txt);padding:16px 22px;max-width:1440px;margin:0 auto}
  .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px 12px;
    position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    padding:11px 0;border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(247,148,29,.06)}
  .top-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  .top-right{display:flex;align-items:center;gap:12px}
  .top-right .theme-btn{width:36px;height:36px;font-size:14.5px}
  #headerAuthOut .btn-cta{padding:10px 16px;font-size:13.5px}
  #headerAuthOut .btn-login{padding:8px 5px;font-size:13.5px}
  .brand{display:flex;align-items:center;gap:9px;transition:opacity .15s}
  .brand:hover{opacity:.85}
  .brand-logo{height:48px;width:auto;display:block}
  @media(max-width:560px){.brand-logo{height:36px}}
  /* Logo naranja+blanco (tema oscuro) / naranja+negro (tema claro) */
  .brand-light,.sf-logo-light{display:none}
  html[data-theme="light"] .brand-dark,html[data-theme="light"] .sf-logo-dark{display:none}
  html[data-theme="light"] .brand-light,html[data-theme="light"] .sf-logo-light{display:block}
  .brand-div{width:1px;height:26px;background:var(--line);flex:none}
  @media(max-width:760px){.brand-div{display:none}}
  .badge{font-size:9.5px;background:var(--orange-soft);color:var(--orange);padding:2px 8px;border-radius:20px;border:1px solid rgba(247,148,29,.3);font-weight:700;letter-spacing:.5px}
  .theme-btn{width:38px;height:38px;flex:none;border-radius:50%;background:transparent;border:1px solid var(--line);color:var(--txt);font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,transform .1s}
  .theme-btn:hover{background:var(--panel2);border-color:var(--orange)}
  .theme-btn:active{transform:scale(.92)}
  /* ── Nav estilo pill: fondo activo suave + hover redondeado ── */
  .toggle{display:flex;align-items:center;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:4px;overflow:visible}
  .toggle button{position:relative;background:transparent;border:none;color:var(--muted);padding:8px 16px;cursor:pointer;font-weight:600;font-size:14px;letter-spacing:.1px;border-radius:10px;transition:color .15s,background .15s}
  .toggle button:hover{color:var(--txt);background:var(--panel2)}
  .toggle button.on{color:#0a0f18;font-weight:700;background:var(--orange);box-shadow:0 2px 10px rgba(247,148,29,.35)}
  .toggle button.on:hover{background:var(--orange)}
  html[data-theme="light"] .toggle button.on{color:#fff}
  @media(max-width:900px){.toggle{gap:0;padding:3px}.toggle button{padding:7px 11px;font-size:13px}}
  /* ── Selector de deporte (chips) — misma posición que Partidos/Tendencias ── */
  .sport-toggle{display:flex;align-items:center;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:4px;overflow-x:auto;max-width:min(52vw,460px)}
  .sport-toggle button{position:relative;background:transparent;border:none;color:var(--muted);padding:8px 11px;cursor:pointer;font-weight:600;font-size:13px;letter-spacing:.1px;border-radius:10px;white-space:nowrap;transition:color .15s,background .15s}
  .sport-toggle button:hover{color:var(--txt);background:var(--panel2)}
  .sport-toggle button.on{color:#0a0f18;font-weight:700;background:var(--orange);box-shadow:0 2px 10px rgba(247,148,29,.35)}
  .sport-toggle button.on:hover{background:var(--orange)}
  html[data-theme="light"] .sport-toggle button.on{color:#fff}
  .sport-toggle button{overflow:visible}
  .sport-toggle .spt-lock{font-size:8px;vertical-align:super;margin-left:1px;color:var(--orange);line-height:1;pointer-events:none}
  .sport-toggle button.spt-unlocked .spt-lock{display:none}
  .util-toggle{padding:3px;gap:0}
  .util-toggle button{padding:7px 8px;font-size:12.5px}
  /* ── Subfila: Partidos/Tendencias de Fútbol (mismo patrón que las subpestañas de /deportes) ── */
  .sub-toggle{display:inline-flex;margin:0 0 14px;padding:4px}
  /* Partidos/Tendencias y los botones de Telegram en la misma línea; los
     botones se van al extremo derecho y bajan solos si no caben. */
  .subnav-fila{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .subnav-fila #tgChannelBtns{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px auto}
  /* Selector de día al lado de Partidos/Tendencias: la .cal-toolbar pierde su
     padding vertical propio para alinearse con las pestañas en la misma fila. */
  /* min-width:0 obligatorio: dentro lleva una .cal-toolbar que en móvil es
     nowrap+overflow-x, y sin esto estiraría la fila entera (scroll horizontal
     de toda la página -- ya pasó con .pf-bar el 19-jul-2026). */
  .subnav-dates{margin:0 0 14px;min-width:0}
  .subnav-dates .cal-toolbar{padding:0;gap:8px}
  .tgbtn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;background:var(--panel2);
    border:1px solid var(--line);color:var(--txt);border-radius:10px;font-size:12px;font-weight:700;
    cursor:pointer;white-space:nowrap;text-decoration:none;font-family:inherit}
  .tgbtn:hover{border-color:#3a3f49}
  .tgbtn-canal{background:linear-gradient(135deg,#0088cc,#00a6ed);color:#fff;border-color:transparent}
  @media(max-width:1300px){.sport-toggle{max-width:38vw}}
  /* ── Botones auth header ── */
  .auth-out{display:flex;align-items:center;gap:12px}
  .btn-login{background:none;border:0;color:var(--txt);font-size:14px;font-weight:600;cursor:pointer;padding:8px 6px;white-space:nowrap;transition:color .15s}
  .btn-login:hover{color:var(--orange)}
  .btn-cta{display:inline-flex;align-items:center;background:var(--orange);color:#0a0f18;font-size:14px;font-weight:800;padding:10px 20px;border:0;border-radius:24px;cursor:pointer;white-space:nowrap;letter-spacing:.2px;transition:filter .15s,transform .05s;text-decoration:none}
  .btn-cta:hover{filter:brightness(1.08)}
  .btn-cta:active{transform:translateY(1px)}
  .btn-cta.upgrade{font-size:13px;padding:9px 16px}
  .filters{display:flex;gap:8px;margin-bottom:16px}
  .chip{background:var(--panel);border:1px solid var(--line);color:var(--muted);padding:8px 16px;border-radius:9px;font-size:13px;cursor:pointer;font-weight:600}
  .chip.active{background:var(--orange-soft);border-color:var(--orange);color:var(--orange)}
  .vtoggle{display:flex;margin-left:auto;background:var(--panel);border:1px solid var(--line);border-radius:9px;overflow:hidden}
  .vtoggle button{background:transparent;border:0;color:var(--muted);padding:7px 13px;cursor:pointer;font-size:15px;line-height:1}
  .vtoggle button.on{background:var(--orange);color:#0a0f18}
  .ptable-wrap{overflow-x:auto;padding:6px}
  table.ptable{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;font-size:13px;background:transparent}
  .ptable th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-weight:500;font-size:11px;
    text-transform:uppercase;letter-spacing:.4px;text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}
  .ptable td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
  .ptable tbody tr:hover td{background:var(--panel2)}
  .ptable .evt .ev-m{font-weight:700;color:var(--txt);white-space:nowrap}
  .ptable .evt .ev-c{color:var(--muted);font-size:12px;margin-top:1px}
  .ptable .evt .ev-t{margin-top:6px}
  .ptable .sel{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ptable .mut{color:var(--muted)}
  .ptable .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
  .pill{display:inline-block;font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;white-space:nowrap}
  .pill.g{background:rgba(22,199,132,.15);color:var(--green)}
  .pill.p{background:rgba(234,57,67,.15);color:var(--red)}
  .pill.r{background:rgba(59,130,246,.15);color:var(--blue)}
  .pill.pe{background:rgba(138,138,146,.15);color:var(--muted)}
  .pill.q{background:rgba(240,185,11,.15);color:var(--amber)}
  .pill2{display:inline-block;font-size:11px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);padding:3px 10px;border-radius:7px;white-space:nowrap}
  .pill2.combi{background:rgba(124,92,255,.16);color:var(--accent);border-color:transparent}
  .promo{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;
    background:linear-gradient(90deg,rgba(247,148,29,.20),rgba(247,148,29,.05));
    border:1px solid rgba(247,148,29,.35);border-radius:12px;padding:13px 18px;margin-bottom:16px;color:var(--txt);font-size:14px}
  .promo:hover{border-color:var(--orange)}
  .promo b{color:var(--orange)}
  /* Prueba de resultados en portada: las cifras son el argumento de venta */
  .proof-card{display:block;text-decoration:none;color:var(--txt);background:var(--green-soft);
    border:1px solid rgba(22,199,132,.3);border-radius:12px;padding:12px 16px;margin-bottom:14px}
  .proof-card:hover{border-color:var(--green)}
  .proof-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px}
  .proof-cta{color:var(--green);font-weight:700;white-space:nowrap}
  .proof-nums{display:flex;flex-wrap:wrap;gap:10px 26px;margin:10px 0 6px}
  .proof-n{display:flex;flex-direction:column;line-height:1.15}
  .proof-n b{font-size:19px;font-weight:800;letter-spacing:-.01em}
  .proof-n b.pos{color:var(--green)}
  .proof-n b.neg{color:var(--red)}
  .proof-n span{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
  .proof-foot{font-size:11.5px;color:var(--muted)}
  .promo .pbtn{background:var(--orange);color:#0a0f18;font-weight:700;padding:9px 18px;border-radius:8px;white-space:nowrap}
  .panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
  .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
  .kpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;text-align:center}
  .kpi .lbl{color:var(--muted);font-size:12px;letter-spacing:1px;margin-bottom:8px}
  .kpi .val{font-size:26px;font-weight:800}
  .pos{color:var(--green)}.neg{color:var(--red)}.or{color:var(--orange)}
  .month{background:var(--panel);border:1px solid var(--line);border-radius:11px;margin-bottom:8px;overflow:hidden}
  .mhead{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;cursor:pointer;user-select:none}
  .mhead:hover{background:var(--panel2)}
  .mhead .left{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px}
  .arrow{color:var(--muted);transition:transform .2s;font-size:12px}
  .month.open .arrow{transform:rotate(90deg)}
  .mval{font-weight:700;font-size:14px;padding:3px 11px;border-radius:7px}
  .mbody{display:none;border-top:1px solid var(--line)}
  .month.open .mbody{display:block}
  table{width:100%;border-collapse:collapse;font-size:13px}
  th{text-align:left;color:var(--muted);font-weight:500;padding:9px 18px;font-size:11px;text-transform:uppercase;letter-spacing:.4px;background:var(--panel2)}
  td{padding:10px 18px;border-bottom:1px solid var(--panel2)}
  tbody tr:last-child td{border-bottom:0}
  tr:hover td{background:var(--panel2)}
  .comp{color:var(--muted);font-size:12px}
  .hasleg{cursor:pointer}
  .exp{color:var(--orange);font-size:10px;margin-right:5px}
  .legrow>td{padding:0!important}
  .legrow table{width:100%;background:var(--panel2);margin:0}
  .legrow td{padding:7px 12px;border-bottom:1px solid var(--bg);font-size:12px;color:var(--muted)}
  .legrow .lpart{color:var(--txt)}
  /* tarjetas estilo BetStats */
  .pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px;padding:14px}
  @media(max-width:560px){
    .pcards{grid-template-columns:1fr;padding:10px;gap:10px}
    .pcard{padding:12px 13px}
    .pc-match{font-size:13px;word-break:break-word}
    .pc-comp{font-size:11px}
    .pc-date{font-size:11px}
    .pc-sel{font-size:12.5px}
    .pc-leg{font-size:11.5px}
    .pc-tags{gap:5px}
    .tag{font-size:10px;padding:3px 7px}
    .brand .name{font-size:16px}
    .ptable .sel{max-width:160px}
    .ptable th,.ptable td{padding:9px 10px}
  }
  .pcard{background:linear-gradient(180deg,var(--panel2),#0e1620);border:1px solid var(--line);border-top:3px solid var(--muted);border-radius:16px;padding:15px 17px;position:relative;
    transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, border-color .2s;
    animation:cardIn .35s ease-out both}
  .pcard:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.3)}
  .pcard.hascard{cursor:pointer}
  .pcard.est-W,.pcard.est-MG{border-top-color:var(--green)}
  .pcard.est-W:hover,.pcard.est-MG:hover{box-shadow:0 10px 28px rgba(0,0,0,.45),0 0 22px rgba(22,199,132,.22)}
  .pcard.est-L,.pcard.est-MP{border-top-color:var(--red)}
  .pcard.est-L:hover,.pcard.est-MP:hover{box-shadow:0 10px 28px rgba(0,0,0,.45),0 0 22px rgba(234,57,67,.18)}
  .pcard.est-P,.pcard.est-Q{border-top-color:var(--amber);animation:cardIn .35s ease-out both, pulseAmber 3s ease-in-out infinite}
  .pcard.est-V{border-top-color:var(--blue)}
  @keyframes cardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
  @keyframes pulseAmber{0%,100%{border-top-color:var(--amber)}50%{border-top-color:#ffd24c}}
  /* badge LIVE */
  .pc-live{position:absolute;top:10px;right:10px;background:linear-gradient(90deg,#ea3943,#ff5d6a);color:#fff;
    font-size:10px;font-weight:800;padding:3px 9px;border-radius:5px;letter-spacing:.06em;display:inline-flex;
    align-items:center;gap:5px;box-shadow:0 0 14px rgba(234,57,67,.55);animation:liveBlink 1.4s ease-in-out infinite;z-index:2}
  .pc-live::before{content:'';width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 6px #fff}
  @keyframes liveBlink{0%,100%{box-shadow:0 0 14px rgba(234,57,67,.55)}50%{box-shadow:0 0 22px rgba(234,57,67,.85)}}
  /* canal pill toggle prominent */
  .canal-pill{display:inline-flex;background:var(--panel2);border:1px solid var(--line);border-radius:24px;padding:3px;gap:2px}
  .canal-pill button{background:transparent;border:0;color:var(--muted);padding:7px 18px;border-radius:20px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:7px;transition:all .2s}
  .canal-pill button:hover{color:var(--txt)}
  .canal-pill .cp-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5}
  .canal-pill button[data-c=free].on{background:rgba(22,199,132,.14);color:#16c784;box-shadow:0 0 12px rgba(22,199,132,.25)}
  .canal-pill button[data-c=free].on .cp-dot{background:#16c784;opacity:1;box-shadow:0 0 6px #16c784}
  .canal-pill button[data-c=premium].on{background:rgba(247,148,29,.14);color:var(--orange);box-shadow:0 0 12px rgba(247,148,29,.25)}
  .canal-pill button[data-c=premium].on .cp-dot{background:var(--orange);opacity:1;box-shadow:0 0 6px var(--orange)}
  /* calendar layout con sidebar derecho */
  .cal-layout{display:grid;grid-template-columns:1fr 300px;gap:18px;align-items:start;margin-top:10px}
  .cal-main{min-width:0}
  .cal-sidebar{display:flex;flex-direction:column;gap:14px;position:sticky;top:14px}
  .side-card{background:linear-gradient(180deg,var(--panel2),#0e1620);border:1px solid var(--line);border-radius:14px;padding:14px 15px}
  .side-h{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--txt);margin-bottom:11px;display:flex;align-items:center;gap:6px}
  .side-pick{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 11px;margin-bottom:7px;cursor:default;transition:transform .15s}
  .side-pick:hover{transform:translateX(2px)}
  .sp-match{font-size:12.5px;font-weight:700;line-height:1.3;margin-bottom:2px}
  .sp-meta{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);margin-bottom:5px}
  .sp-pick{font-size:11.5px;color:var(--muted);margin-bottom:5px;line-height:1.3}
  .sp-foot{display:flex;justify-content:space-between;font-size:11px;color:var(--txt)}
  .side-cta{display:block;margin-top:8px;font-size:12px;color:var(--accent);text-decoration:none;padding:6px;text-align:center;border:1px dashed var(--line);border-radius:8px;transition:all .2s}
  .side-cta:hover{background:rgba(124,92,255,.08);border-color:var(--accent)}
  .side-cta-orange{color:#fff;background:linear-gradient(90deg,var(--orange),#ff7e0a);border:0;font-weight:700;padding:10px}
  .side-cta-orange:hover{background:linear-gradient(90deg,#ff7e0a,var(--orange));transform:translateY(-1px);box-shadow:0 6px 18px rgba(247,148,29,.32)}
  .side-promo{background:linear-gradient(135deg,rgba(247,148,29,.12),var(--panel2) 60%);border-color:rgba(247,148,29,.4)}
  .side-promo-h{font-size:14px;font-weight:800;color:var(--orange);margin-bottom:5px}
  .side-promo-txt{font-size:12px;color:var(--muted);line-height:1.4;margin-bottom:10px}
  .ia-cuota-card{background:linear-gradient(135deg,rgba(247,148,29,.14),var(--panel2) 65%);border:1px solid rgba(247,148,29,.4);border-radius:14px;padding:14px 18px;margin-bottom:14px}
  .ia-cuota-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;flex-wrap:wrap;gap:6px}
  .ia-cuota-lbl{font-size:15px;font-weight:800;color:var(--txt)}
  .ia-cuota-num{font-size:20px;font-weight:800;color:var(--orange)}
  .ia-cuota-bar{width:100%;height:10px;border-radius:6px;background:var(--line);overflow:hidden}
  .ia-cuota-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--orange),#ff7e0a);transition:width .6s ease-out;width:0%}
  /* Poisson Pulse vertical en sidebar */
  .pulse-section-v{background:transparent;border:0;padding:0;margin:0}
  .pulse-section-v .pulse-title{margin-bottom:11px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
  .pulse-cards-v{display:flex;flex-direction:column;gap:8px}
  .pulse-cards-v .pulse-card{padding:10px 12px}
  .pulse-cards-v .pulse-match{font-size:12.5px;margin:4px 0 2px}
  .pulse-cards-v .pulse-liga{font-size:10.5px}
  .pulse-cards-v .pulse-pick{font-size:11.5px;margin-top:5px}
  .pulse-cards-v .pulse-meta{flex-wrap:wrap;gap:4px}
  .pulse-cards-v .pulse-conf{font-size:18px}
  @media(max-width:920px){
    .cal-layout{grid-template-columns:1fr}
    .cal-sidebar{position:static;flex-direction:column}
  }
  /* skeleton loader */
  .skel{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px;padding:14px}
  .skel-card{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:18px;height:160px;position:relative;overflow:hidden}
  .skel-card::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);animation:shimmer 1.4s linear infinite}
  @keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
  .pc-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}
  .pc-evt{display:flex;gap:9px;align-items:flex-start}
  .pc-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none;background:var(--muted)}
  .est-W .pc-dot,.est-MG .pc-dot{background:var(--green)}
  .est-L .pc-dot,.est-MP .pc-dot{background:var(--red)}
  .est-P .pc-dot,.est-Q .pc-dot{background:var(--amber)}
  .est-V .pc-dot{background:var(--blue)}
  .pc-match{font-weight:700;font-size:14px}
  .pc-comp{color:var(--muted);font-size:12px;margin-top:1px}
  .pc-date{color:var(--muted);font-size:12px;text-align:right;white-space:nowrap}
  .pc-sel{color:var(--txt);font-weight:600;font-size:13px;margin-bottom:11px}
  .pc-merc{color:var(--muted);font-weight:500}
  .pc-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:11px}
  .pc-odds{color:var(--muted)}.pc-odds b{color:var(--txt)}
  .pc-tags{display:flex;gap:6px;flex-wrap:wrap}
  .tag{font-size:11px;background:var(--bg);border:1px solid var(--line);color:var(--muted);padding:3px 9px;border-radius:6px;font-weight:600}
  .tag.combi{background:rgba(124,92,255,.16);color:var(--accent);border-color:transparent}
  .tag.g{color:var(--green)}.tag.p{color:var(--red)}.tag.r{color:var(--blue)}.tag.pe{color:var(--muted)}.tag.q{color:var(--amber)}
  .exp{color:var(--orange);font-size:11px}
  .pc-legs{display:none;margin:2px 0 11px}
  .pcard.open .pc-legs{display:block}
  .pc-legs.always-show{display:block}
  .pc-leg{font-size:12px;color:var(--muted);padding:3px 0 3px 11px;border-left:2px solid var(--line)}.pc-leg b{color:var(--txt)}
  .leg-est{display:inline-block;font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px;margin-left:7px;vertical-align:middle;white-space:nowrap}
  .leg-est.g{background:rgba(22,199,132,.16);color:var(--green)}
  .leg-est.p{background:rgba(234,57,67,.16);color:var(--red)}
  .leg-est.r{background:rgba(59,130,246,.16);color:var(--blue)}
  .leg-est.pe{background:rgba(240,185,11,.14);color:var(--amber)}
  .pc-legcard{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 12px;margin:7px 0}
  .leg-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
  .leg-match{font-weight:700;font-size:13px;color:var(--txt)}
  .leg-sport{font-size:10px;color:var(--muted);white-space:nowrap}
  .leg-pick{font-weight:700;font-size:13px;margin-top:3px;color:var(--txt)}
  .leg-pick.g{color:var(--green)}
  .leg-pick.p{color:var(--red)}
  .leg-bt{color:var(--muted);font-size:11px;margin-top:2px}
  .leg-bt .leg-od{color:var(--txt);font-weight:600}
  .st{font-size:11px;font-weight:700;padding:3px 9px;border-radius:6px;white-space:nowrap}
  .u-pos{color:var(--green);font-weight:600}.u-neg{color:var(--red);font-weight:600}
  .loading{color:var(--muted);text-align:center;padding:30px}
  /* Spinner reutilizado en TODOS los estados "Cargando…" del sitio (misma clase,
     una sola regla) -- antes solo era texto plano sin ninguna señal animada. */
  .loading::before{content:'';display:block;width:22px;height:22px;margin:0 auto 10px;
    border-radius:50%;border:2px solid var(--line);border-top-color:var(--orange);animation:aiSpin .8s linear infinite}
  .picks-lock-banner{text-align:center;padding:48px 24px;background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-top:8px}
  .plb-icon{font-size:36px;margin-bottom:12px}
  .plb-title{font-size:18px;font-weight:700;margin-bottom:8px}
  .plb-desc{color:var(--muted);font-size:13px;max-width:340px;margin:0 auto 20px}
  .plb-cta{background:linear-gradient(135deg,#7c5cff,var(--orange));color:#fff;border:none;border-radius:10px;padding:13px 28px;font-size:14px;font-weight:700;cursor:pointer}
  /* Botón propio de Telegram: respaldo cuando el widget oficial no pinta */
  .tg-fallback-btn{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#0088cc,#00a6ed);
    color:#fff;border:none;border-radius:10px;padding:13px 26px;font-size:14.5px;font-weight:700;
    font-family:inherit;cursor:pointer}
  .tg-fallback-btn:hover{filter:brightness(1.08)}
  /* Invita y gana */
  .ref-box{background:linear-gradient(135deg,rgba(124,92,255,.14),rgba(247,148,29,.08));
    border:1px solid rgba(124,92,255,.3);border-radius:12px;padding:16px 18px;margin:0 16px 16px}
  .ref-title{font-size:15px;font-weight:800;margin-bottom:5px}
  .ref-desc{font-size:12.5px;color:var(--muted);line-height:1.5;margin-bottom:12px}
  .ref-link{display:flex;gap:8px;flex-wrap:wrap}
  .ref-link input{flex:1;min-width:200px;background:var(--panel2);border:1px solid var(--line);
    border-radius:9px;padding:11px 12px;color:var(--txt);font-size:12.5px;font-family:inherit}
  .ref-copy{background:linear-gradient(135deg,#7c5cff,var(--orange));color:#fff;border:none;
    border-radius:9px;padding:11px 20px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
  .ref-stats{font-size:11.5px;color:var(--muted);margin-top:10px}
  .ref-stats b{color:var(--green)}
  .months-teaser{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--orange);
    border-radius:10px;padding:12px 14px;margin-bottom:10px;color:var(--muted);font-size:12.5px;line-height:1.5}
  .months-teaser b{color:var(--txt)}
  .note{margin-top:8px;color:var(--muted);font-size:11px;text-align:center}
  .authbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
    margin:0 0 10px;padding:9px 14px;border:1px solid #2a3543;border-radius:10px;
    background:rgba(247,148,29,.07);font-size:12.5px;color:#cfd6e2}
  .authbar a{color:#f7941d;font-weight:700}
  .authbtn{background:var(--authbtn-bg);color:var(--authbtn-tx);border:1px solid var(--authbtn-bd);border-radius:7px;
    padding:5px 13px;cursor:pointer;font-size:12px;text-decoration:none;white-space:nowrap}
  .authbtn:hover{background:var(--panel2)}
  .tgloginbtn{background:#2ca5e0;border-color:#2ca5e0;color:#fff;font-weight:600}
  /* ── User avatar + dropdown ── */
  .user-av-wrap{position:relative;flex:none;display:flex;align-items:center;gap:10px}
  .user-av-btn{width:38px;height:38px;border-radius:50%;background:var(--panel2);color:var(--txt);font-size:14px;font-weight:800;border:1px solid var(--line);cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:border-color .15s}
  .user-av-btn:hover{border-color:var(--orange)}
  .user-av-btn img{width:38px;height:38px;border-radius:50%;object-fit:cover}
  .user-dropdown{position:absolute;top:calc(100% + 10px);right:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;min-width:230px;padding:8px;z-index:200;display:none;box-shadow:0 12px 40px rgba(0,0,0,.45)}
  .user-dropdown.open{display:block}
  .ud-plan-row{padding:6px 8px 2px}
  .ud-head{display:flex;align-items:center;gap:10px;padding:8px 8px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
  .ud-av{width:36px;height:36px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--txt);overflow:hidden}
  .ud-av img{width:36px;height:36px;border-radius:50%;object-fit:cover}
  .ud-id{min-width:0}
  .ud-name{font-size:13.5px;font-weight:700;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ud-email{font-size:11.5px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ud-plan-lbl{font-size:10px;font-weight:700;letter-spacing:.5px;padding:2px 9px;border-radius:10px;display:inline-block}
  .ud-plan-lbl.free{background:rgba(136,136,136,.15);color:var(--muted)}
  .ud-plan-lbl.premium{background:rgba(247,148,29,.15);color:var(--orange)}
  .ud-plan-lbl.canal-free{background:rgba(22,199,132,.15);color:var(--green)}
  .user-dropdown button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;padding:10px 10px;font-size:13.5px;font-weight:600;color:var(--txt);cursor:pointer;border-radius:9px;transition:background .1s}
  .user-dropdown button:hover{background:var(--panel2)}
  .ud-ic{width:18px;text-align:center;font-size:14px;flex:none}
  .ud-chev{margin-left:auto;color:var(--muted);font-size:16px}
  .user-dropdown .ud-danger{color:var(--red)}
  .ud-tg-status{align-items:center;gap:6px;padding:8px 10px;margin:2px 0 4px;border-radius:9px;font-size:11.5px;font-weight:600;flex-wrap:wrap}
  .ud-tg-status.ok{background:rgba(22,199,132,.12);color:var(--green)}
  .ud-tg-status.warn{background:rgba(0,136,204,.12);color:#0088cc}
  .ud-tg-status a{color:inherit;text-decoration:underline;font-weight:700}
  /* ── Subscription 2-col layout ── */
  .sub-layout{display:grid;grid-template-columns:220px 1fr;gap:20px;max-width:980px;margin:0 auto;padding:16px 16px 40px}
  @media(max-width:720px){.sub-layout{grid-template-columns:1fr}}
  .sub-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px 20px;align-self:start;text-align:center}
  .sub-av{width:56px;height:56px;border-radius:50%;background:var(--orange);color:#0a0f18;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 10px}
  .sub-panel-name{font-size:15px;font-weight:800;margin-bottom:3px}
  .sub-panel-email{font-size:11px;color:var(--muted);margin-bottom:14px;word-break:break-all}
  .sub-plan-chip{display:inline-block;padding:3px 12px;border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.5px;margin-bottom:16px}
  .sub-plan-chip.free{background:rgba(136,136,136,.15);color:var(--muted);border:1px solid rgba(136,136,136,.2)}
  .sub-plan-chip.premium{background:rgba(247,148,29,.15);color:var(--orange);border:1px solid rgba(247,148,29,.3)}
  .sub-plan-chip.canal-free{background:rgba(22,199,132,.15);color:var(--green);border:1px solid rgba(22,199,132,.3)}
  .sub-info-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:12px;text-align:left}
  .sub-info-row .sil{color:var(--muted)}
  .sub-info-row .sir{color:var(--txt);font-weight:600}
  .sub-panel-cta{display:block;margin-top:16px;padding:9px;background:var(--orange);color:#0a0f18;border-radius:9px;font-size:13px;font-weight:700;border:none;cursor:pointer;width:100%}
  .sub-layout-wrap{display:block;max-width:980px;margin:0 auto}
  .sub-layout-wrap.active{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:start;padding:16px 16px 0}
  @media(max-width:720px){.sub-layout-wrap.active{grid-template-columns:1fr}}
  .sub-right{min-width:0}
  /* ── Email registration modal ── */
  .reg-modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:500}
  .reg-modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:100%;max-width:380px;padding:28px 24px}
  .reg-modal h3{margin:0 0 6px;font-size:18px;font-weight:800}
  .reg-modal p{color:var(--muted);font-size:13px;margin-bottom:20px}
  .reg-field{margin-bottom:14px}
  .reg-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;font-weight:600}
  .reg-field input{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--txt);box-sizing:border-box}
  .reg-field input:focus{outline:none;border-color:var(--orange)}
  .reg-err{color:#ea3943;font-size:12px;margin-top:-8px;margin-bottom:10px;display:none}
  .reg-submit{width:100%;padding:12px;background:var(--orange);color:#0a0f18;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer}
  .tgloginbtn:hover{background:#1a96d4;border-color:#1a96d4}
  .auth-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;border:2px solid var(--orange);vertical-align:middle;margin-right:6px}
  .auth-initials{width:26px;height:26px;border-radius:50%;background:var(--orange);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:#fff;vertical-align:middle;margin-right:6px}
  .auth-plan-badge{font-size:10px;background:var(--green-soft);color:var(--green);padding:2px 8px;border-radius:12px;font-weight:700;margin-left:4px}
  .authbar.logged{background:rgba(22,199,132,.06);border-color:rgba(22,199,132,.2)}
  .hero{display:grid;grid-template-columns:1fr 360px;gap:12px;margin-bottom:12px}
  .hpanel{padding:16px 18px}
  .phead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px;flex-wrap:wrap}
  .ptitle{font-weight:700;font-size:15px}
  .seg{display:flex;gap:3px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:3px}
  .seg button{background:none;border:0;color:var(--muted);font-size:12px;font-weight:600;padding:5px 12px;border-radius:6px;cursor:pointer}
  .seg button.on{background:var(--green-soft);color:var(--green)}
  .rendpanel{display:flex;flex-direction:column}
  .rend-body{flex:1;display:flex;flex-direction:column}
  .rend-top{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:8px 0}
  .donut{position:relative;width:150px;height:150px;flex:none}
  .donut-c{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800}
  .rend-wl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;text-align:center}
  .rend-wl b{display:block;font-size:22px;font-weight:800;line-height:1.1}
  .rend-wl span{font-size:11px;color:var(--muted)}
  .rend-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:14px;border-top:1px solid var(--line);text-align:center}
  .rend-foot b{display:block;font-size:16px;font-weight:700}
  .rend-foot span{font-size:11px;color:var(--muted)}
  .chip-comp{border-color:rgba(247,148,29,.4)}
  .chip-comp.active{background:var(--orange-soft);color:var(--orange);border-color:var(--orange)}
  @media(max-width:760px){.hero{grid-template-columns:1fr}}
  /* ── Partidos filtros ── */
  .pf-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 0}
  .pf-group{display:flex;gap:4px;align-items:center}
  .pf-chip{background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600;
    padding:5px 13px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .15s}
  .pf-chip:hover{border-color:#3a3f49}
  .pf-chip.on{background:var(--green-soft);color:var(--green);border-color:rgba(22,199,132,.5)}
  .pf-select{background:var(--bg);border:1px solid var(--line);color:var(--txt);font-size:12px;
    padding:5px 10px;border-radius:8px;cursor:pointer;min-width:120px}
  .pf-select:focus{border-color:var(--green);outline:none}
  .pf-label{font-size:11px;color:var(--muted);margin-right:2px}
  .pf-count{font-size:12px;color:var(--muted);margin-left:auto}
  /* ── Partidos ── */
  #partidosView .pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px;padding:14px 0}
  .pcard2{background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:14px 15px;cursor:pointer}
  .pcard2:hover{border-color:#3a3f49}
  .pcard2.free{border-color:rgba(22,199,132,.4)}
  .pcard2.mundial{border-color:rgba(218,165,32,.6);background:linear-gradient(135deg,rgba(218,165,32,.08),var(--panel2) 60%)}
  .pcard2.mundial:hover{border-color:rgba(218,165,32,.9)}
  .pl-mundial-badge{font-size:10px;background:rgba(218,165,32,.18);color:#daa520;padding:2px 8px;border-radius:6px;font-weight:700}
  .pl-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
  .pl-liga{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}
  .pl-fecha{font-size:11px;color:var(--muted)}
  .pl-badge{font-size:11px;padding:3px 8px;border-radius:6px}
  .pl-free{background:rgba(22,199,132,.16);color:var(--green)}
  .pl-lock{background:var(--orange-soft);color:var(--orange)}
  .pl-mid{display:flex;align-items:center;gap:14px}.pl-left{flex:1;min-width:0}
  .pl-team{display:flex;align-items:center;gap:9px;margin-bottom:8px}
  .pl-logo{width:24px;height:24px;border-radius:4px;object-fit:contain;flex:none;background:var(--logo-bg)}
  .pl-ph{display:inline-block;border:0.5px solid #333}
  .pl-nm{flex:1;font-size:14px;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pl-win{font-size:13px;color:var(--green);font-weight:600}
  .pl-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-top:6px}
  .pl-odds{display:flex;gap:6px;margin-top:9px;font-size:11px}
  .pl-odds span{background:var(--bg);padding:3px 8px;border-radius:6px;color:var(--muted)}.pl-odds b{color:var(--txt)}
  .pl-ring{text-align:center;flex:none}.pl-rlbl{font-size:10px;color:var(--muted);margin-top:1px}
  .pl-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:0.5px solid var(--line);padding-top:11px;margin-top:12px}
  .pl-pick{font-size:12px;background:var(--orange-soft);color:var(--orange);padding:4px 10px;border-radius:7px}
  .pl-ev{font-size:12px;padding:4px 9px;border-radius:7px}
  .pl-ev.pos{background:rgba(22,199,132,.14);color:var(--green)}.pl-ev.neg{background:rgba(234,57,67,.14);color:var(--red)}
  .pl-locked{margin-top:11px;font-size:12px;color:var(--muted);background:var(--bg);border:0.5px dashed #3a3320;border-radius:9px;padding:11px;text-align:center}
  .pl-locked a{color:var(--orange);font-weight:700}
  .ficha-ov{position:fixed;inset:0;background:rgba(0,0,0,.62);display:none;align-items:flex-start;justify-content:center;overflow:auto;padding:24px;z-index:50}
  .ficha-ov.show{display:flex}
  .ficha-modal{position:relative;background:var(--panel2);border:1px solid #2d3038;border-radius:14px;padding:0;width:980px;max-width:100%;max-height:92vh;overflow-y:auto}
  .fh-close{position:absolute;top:12px;right:14px;color:var(--muted);cursor:pointer;font-size:16px;z-index:2}
  .fh-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;font-size:15px;font-weight:700;padding-right:18px}
  .fh-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
  .fh-box{background:var(--bg);border-radius:9px;padding:10px}.fh-lbl{font-size:11px;color:var(--muted);margin-bottom:7px}
  .fdots{display:flex;gap:4px}.fdot{width:18px;height:18px;border-radius:5px;font-size:10px;display:flex;align-items:center;justify-content:center}
  .fh-oddsrow{margin-bottom:12px}
  /* Match Intelligence Report */
  .mir-section{margin-top:16px;background:var(--bg);border-radius:10px;padding:14px}
  .mir-h{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;margin-bottom:10px;color:var(--txt)}
  .mir-h .mir-icon{color:var(--orange);font-size:15px}
  .mir-h .mir-badge{margin-left:auto;font-size:10px;background:var(--orange-soft);color:var(--orange);padding:2px 8px;border-radius:6px}
  .mir-header{display:flex;align-items:center;justify-content:center;gap:24px;text-align:center;padding:10px 0}
  .mir-header .mir-team{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}
  .mir-header .mir-team img{width:48px;height:48px;object-fit:contain}
  .mir-header .mir-team b{font-size:14px}
  .mir-header .mir-vs{color:var(--muted);font-size:12px}
  .mir-header .mir-meta{font-size:11px;color:var(--muted);margin-top:6px}
  .mir-verdict{font-size:13px;line-height:1.6;color:var(--txt-soft)}
  .mir-motiv{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
  .mir-motiv-card{background:var(--panel2);border-radius:8px;padding:10px;font-size:12px;line-height:1.5}
  .mir-motiv-card b{display:block;margin-bottom:4px;font-size:11px;text-transform:uppercase}
  .mir-motiv-card b.loc{color:#ea3943}.mir-motiv-card b.vis{color:#2ca5e0}
  /* Score matrix heatmap */
  .mir-matrix{display:grid;grid-template-columns:auto repeat(7,1fr);gap:2px;font-size:11px;text-align:center}
  .mir-matrix .mir-mh{color:var(--muted);font-size:10px;padding:2px 4px}
  .mir-matrix .mir-mc{border-radius:4px;padding:4px 2px;min-width:0;font-size:10px;color:#fff}
  .mir-matrix .mir-ml{color:var(--muted);font-size:10px;padding:2px 4px;text-align:right}
  /* Bars */
  .mir-bar{display:flex;height:28px;border-radius:6px;overflow:hidden;font-size:11px}
  .mir-bar span{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;min-width:30px}
  .mir-3seg{margin-bottom:6px}
  .mir-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
  /* Over/Under histogram — el track tiene alto fijo para que el val/lbl no
     se coman el espacio de la barra (evita solapes con el título de arriba) */
  .mir-hist{display:flex;align-items:flex-end;gap:3px;height:94px;margin:10px 0}
  .mir-hist-bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px}
  .mir-hist-track{width:100%;height:64px;display:flex;align-items:flex-end}
  .mir-hist-bar .bar{width:100%;border-radius:3px 3px 0 0;min-height:2px;flex-shrink:0}
  .mir-hist-bar .lbl{font-size:9px;color:var(--muted);line-height:1.2;white-space:nowrap}
  .mir-hist-bar .val{font-size:9px;color:var(--txt);font-weight:700;line-height:1.2;white-space:nowrap}
  /* OU/BTTS table */
  /* ── Over/Under de goles: cabecera, histograma y escalera de líneas ──
     El Over va SIEMPRE a la izquierda y el Under a la derecha: en las líneas bajas
     lo que se lee es el Over (0.5, 1.5) y en las altas el Under (6.5, 7.5). */
  .ou-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
  .ou-per{display:flex;gap:2px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:2px}
  .ou-per button{background:none;border:0;color:var(--muted);font-size:11px;font-weight:700;padding:4px 11px;border-radius:7px;cursor:pointer}
  .ou-per button.on{background:var(--orange);color:#0a0f18}
  .ou-split{display:flex;height:34px;border-radius:9px;overflow:hidden;font-weight:800;font-size:12.5px;color:#fff}
  .ou-split div{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;transition:width .25s}
  .ou-split .o{background:linear-gradient(180deg,#ffa63d,#f7941d)}
  .ou-split .u{background:linear-gradient(180deg,#3fb3ea,#2ca5e0)}
  .ou-odds{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:5px 2px 12px}
  .ou-zonas{display:flex;justify-content:space-between;font-size:9.5px;color:var(--muted);margin-top:2px}
  /* Escalera: una fila por línea, la barra de Over crece desde la izquierda. */
  .ou-esc{display:flex;flex-direction:column;gap:3px;margin-top:10px}
  .ou-fila{display:grid;grid-template-columns:34px 40px 1fr 40px;align-items:center;gap:7px;padding:3px 5px;border-radius:7px;cursor:pointer}
  .ou-fila:hover{background:var(--panel2)}
  .ou-fila.on{background:var(--orange-soft);outline:1px solid rgba(247,148,29,.35)}
  .ou-fila-l{font-size:11.5px;font-weight:700;color:var(--muted)}
  .ou-fila.on .ou-fila-l{color:var(--orange)}
  .ou-barra{display:flex;height:19px;border-radius:5px;overflow:hidden;font-size:9.5px;font-weight:800;color:#fff}
  .ou-barra span{display:flex;align-items:center;padding:0 6px;white-space:nowrap;overflow:hidden}
  .ou-barra .o{background:#f7941d;justify-content:flex-start}
  .ou-barra .u{background:#2ca5e0;justify-content:flex-end}
  .ou-cuo{font-size:10px;color:var(--muted);text-align:center;white-space:nowrap}
  .ou-cuo.o{color:#f7941d} .ou-cuo.u{color:#2ca5e0}
  .ou-esc-h{display:grid;grid-template-columns:34px 40px 1fr 40px;gap:7px;padding:0 5px 3px;
            font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);margin-bottom:3px}
  @media(max-width:520px){ .ou-fila,.ou-esc-h{grid-template-columns:30px 34px 1fr 34px;gap:4px} .ou-cuo{font-size:9px} }

  .mir-tbl{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px}
  .mir-tbl th{text-align:left;color:var(--muted);font-size:10px;padding:4px 6px;border-bottom:1px solid var(--line)}
  .mir-tbl td{padding:4px 6px;border-bottom:1px solid var(--line)}
  .mir-tbl .hl{color:var(--orange);font-weight:600}
  /* Barra Under/Over proporcional dentro de la tabla O/U */
  .mir-ou-bar{display:flex;height:18px;border-radius:4px;overflow:hidden;min-width:90px}
  .mir-ou-seg{display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700;white-space:nowrap;min-width:2px}
  .mir-ou-seg.u{background:#2ca5e0}
  .mir-ou-seg.o{background:#f7941d}
  /* BTTS matrix 2x2 */
  .mir-btts-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
  .mir-btts-cell{background:var(--panel2);border-radius:8px;padding:10px;text-align:center;font-size:12px}
  .mir-btts-cell b{display:block;font-size:16px;margin-bottom:2px}
  /* Poisson Pulse */
  .mir-pulse-main{background:var(--panel2);border-radius:8px;padding:12px;text-align:center;margin-bottom:8px}
  .mir-pulse-main .consenso{font-size:18px;font-weight:700;color:var(--green)}
  .mir-pulse-main .sub{font-size:11px;color:var(--muted)}
  .mir-pulse-others{display:flex;gap:8px}
  .mir-pulse-others .mir-pulse-item{flex:1;background:var(--panel2);border-radius:8px;padding:10px;text-align:center;font-size:12px}
  .mir-pulse-others b{display:block;font-size:14px}
  /* Ficha de liga: dos columnas en escritorio, una en móvil */
  @media(max-width:820px){ .lf-grid{grid-template-columns:1fr !important} }

  /* ── Fichajes recientes (portada + ficha de liga) ── */
  .fch-row{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
  .fch-row:last-child{border-bottom:0}
  .fch-foto{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:top;background:radial-gradient(circle at 30% 25%,#3a3a38,#232321);border:2px solid var(--line);box-shadow:0 3px 8px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06);flex:none}
  .fch-body{flex:1;min-width:0}
  .fch-nom{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fch-mov{display:flex;align-items:center;gap:6px;margin-top:4px;min-width:0}
  .fch-esc{width:20px;height:20px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}
  .fch-arrow{flex:none;width:30px;height:13px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}
  .fch-club{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fch-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
  .fch-fee{font-size:9.5px;font-weight:800;padding:2.5px 8px;border-radius:999px;color:#fff;white-space:nowrap;background:linear-gradient(160deg,#ffb054,#f7931a 45%,#d96c00);box-shadow:0 2px 6px rgba(247,147,26,.4),inset 0 1px 0 rgba(255,255,255,.35)}
  .fch-fee.loan{background:linear-gradient(160deg,#5cc3f0,#2ca5e0 45%,#146fa5);box-shadow:0 2px 6px rgba(44,165,224,.35),inset 0 1px 0 rgba(255,255,255,.3)}
  .fch-fee.free{background:linear-gradient(160deg,#4fe0a8,#16c784 45%,#0b9a63);box-shadow:0 2px 6px rgba(22,199,132,.35),inset 0 1px 0 rgba(255,255,255,.3)}
  .fch-fecha{font-size:9px;color:var(--muted)}

  /* ── Comparador de ligas: contenido + sidebar de países ── */
  .lg-layout{display:grid;grid-template-columns:minmax(0,1fr) 268px;gap:16px;align-items:start;max-width:1320px;margin:0 auto}
  .lg-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:14px}
  .lg-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 13px}
  .lg-card-h{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:2px}
  .lg-card-sub{font-size:10px;color:var(--muted);margin-bottom:9px}
  .lg-pop{display:flex;align-items:center;gap:7px;padding:5px 4px;border-radius:7px;cursor:pointer;font-size:12px}
  .lg-pop:hover{background:var(--panel2)}
  .lg-pop-pais{margin-left:auto;font-size:10px;color:var(--muted)}
  .lg-paises{max-height:420px;overflow-y:auto;margin:0 -4px}
  .lg-pais{display:flex;align-items:center;gap:7px;padding:5px 6px;border-radius:7px;cursor:pointer;font-size:12px}
  .lg-pais:hover{background:var(--panel2)}
  .lg-pais.on{background:rgba(247,148,29,.13);color:var(--orange);font-weight:700}
  .lg-pais-n{margin-left:auto;font-size:10px;color:var(--muted)}
  /* Chips de ligas seleccionadas */
  .lg-chips{display:flex;flex-wrap:wrap;gap:5px}
  .lg-chip{display:inline-flex;align-items:center;gap:5px;background:var(--panel2);border:1px solid var(--line);
           border-radius:16px;padding:3px 6px 3px 8px;font-size:11.5px;max-width:210px}
  .lg-chip b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lg-chip button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;padding:0 2px}
  .lg-chip button:hover{color:#ea3943}
  .lg-acc{background:none;border:0;color:var(--accent);font-size:11px;cursor:pointer;padding:0 4px}
  .lg-acc:hover{text-decoration:underline}
  .lg-sug{position:absolute;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:10px;
          margin-top:3px;max-height:260px;overflow-y:auto;min-width:290px;box-shadow:0 8px 24px rgba(0,0,0,.5)}
  .lg-sug div{padding:7px 11px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:7px}
  .lg-sug div:hover{background:var(--panel2)}
  /* A partir de ~900px ya caben las dos columnas (268 de sidebar + tabla con scroll
     propio), así que también las aprovechan las pantallas medianas y las tablets
     en horizontal. Por debajo, el sidebar pasa a apilarse bajo la tabla. */
  @media(max-width:899px){
    .lg-layout{grid-template-columns:1fr}
    .lg-side{position:static;flex-direction:column}
    .lg-paises{max-height:260px}
  }

  /* ── Mercados subtabs (ProBettingHub style) ── */
  .mkt-tabs{background:var(--panel);border-radius:10px;overflow:hidden}
  .mkt-tab-nav{display:flex;gap:2px;padding:10px 14px 0;background:var(--panel);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
  .mkt-tab-nav::-webkit-scrollbar{display:none}
  .mkt-tab-btn{background:transparent;border:none;color:var(--muted);font-size:12px;font-weight:600;padding:8px 14px;border-radius:8px 8px 0 0;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}
  .mkt-tab-btn:hover{color:var(--txt);background:rgba(255,255,255,.04)}
  .mkt-tab-btn.on{color:var(--accent);border-bottom-color:var(--accent)}
  .mkt-panel{padding:16px}
  .mkt-section{margin-bottom:20px}
  /* Titulo de seccion: barra naranja + texto claro. Antes era gris y del mismo
     tamaño que el cuerpo, y las secciones se fundian unas con otras. */
  .mkt-sh{font-size:13.5px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;color:var(--txt);
    margin:0 0 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    padding:9px 12px;border-left:3px solid var(--orange);border-radius:0 8px 8px 0;
    background:linear-gradient(90deg,var(--orange-soft),transparent 72%)}
  /* El subtitulo (el "— ultimos 10 partidos") no compite con el titulo */
  .mkt-sh span{font-size:11px}
  .mkt-section{scroll-margin-top:12px}
  .pp-wrap{padding:2px 0}.pp-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.pp-hdr-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--orange)}.pp-hdr-badge{background:rgba(44,165,224,.15);color:#2ca5e0;border:1px solid rgba(44,165,224,.3);border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}
  .pp-main{background:linear-gradient(135deg,#0d1b2a,#1a2a3a);border:1px solid rgba(44,165,224,.2);border-radius:12px;padding:16px;margin-bottom:10px}.pp-coin-badge{display:inline-block;background:rgba(44,165,224,.15);color:#2ca5e0;border-radius:4px;padding:2px 8px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
  .pp-main-result{font-size:22px;font-weight:900;color:#fff;margin:4px 0 2px}.pp-main-sub{font-size:11px;color:rgba(255,255,255,.45);margin-bottom:10px}.pp-main-count{font-size:12px;font-weight:700;color:#fff;margin-bottom:6px}
  .pp-prog{height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden;margin-bottom:8px}.pp-prog-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#2ca5e0,#16c784)}
  .pp-coverage{display:inline-block;background:rgba(22,199,132,.15);color:#16c784;border:1px solid rgba(22,199,132,.3);border-radius:4px;padding:2px 8px;font-size:9px;font-weight:700;text-transform:uppercase}
  .pp-otros-hdr{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:12px 0 8px}.pp-otros{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .pp-otro{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px}.pp-otro-lbl{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;margin-bottom:4px}.pp-otro-val{font-size:15px;font-weight:800;color:var(--txt);margin-bottom:3px}.pp-otro-count{font-size:10px;color:var(--muted);margin-bottom:6px}
  .pp-otro-prog{height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}.pp-otro-prog .fill{height:100%;border-radius:2px;background:#2ca5e0}
  .cuotas-tbl{width:100%;border-collapse:collapse;font-size:12px}.cuotas-tbl th{color:var(--muted);font-size:10px;text-transform:uppercase;padding:6px 8px;border-bottom:2px solid var(--line);text-align:right}.cuotas-tbl th:first-child{text-align:left}
  .cuotas-tbl td{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.04);text-align:right}.cuotas-tbl td:first-child{text-align:left;color:var(--txt)}.cuotas-tbl tr:last-child td{border-bottom:none}.cuotas-tbl td:nth-child(2){font-weight:600}.cuotas-tbl td:nth-child(4){font-weight:600}
  /* ── BTTS ampliado (ProBettingHub style) ── */
  .btts-filter{display:flex;gap:10px;flex-wrap:wrap;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:12px}
  .btts-fgrp{display:flex;align-items:center;gap:4px}
  .btts-flbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-right:2px}
  .btts-fbtn{background:transparent;border:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:700;padding:4px 9px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:all .15s}
  .btts-fbtn.on{background:var(--accent);border-color:var(--accent);color:#0a0f18}
  .btts-donuts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .btts-donut{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px;text-align:center}
  .btts-donut svg{width:84px;height:84px;display:block;margin:0 auto}
  .btts-donut-nm{font-size:12px;font-weight:700;margin-top:6px}
  .btts-donut-sub{font-size:10px;color:var(--muted);margin-top:1px}
  .btts-rend{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
  .btts-rend-card{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px}
  .btts-rend-top{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px}
  .btts-rend-nm{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .btts-pills{display:flex;gap:3px;flex-shrink:0}
  .btts-pill{width:15px;height:15px;border-radius:4px;font-size:8px;font-weight:800;display:flex;align-items:center;justify-content:center;color:#fff}
  .btts-pill.y{background:#16c784}.btts-pill.n{background:#ea3943}
  /* Ni supera ni queda por debajo: iguala exactamente la media del equipo */
  .btts-pill.e{background:#5f5e5a}
  .btts-rend-big{font-size:24px;font-weight:900;line-height:1}
  .btts-rend-pct{font-size:11px;color:var(--muted);margin-left:6px}
  .btts-rend-bar{height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:8px}
  .btts-rend-bar>div{height:100%;border-radius:3px}
  .btts-stbl{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}
  .btts-stbl th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.04em;padding:6px 8px;border-bottom:2px solid var(--line);text-align:center}
  .btts-stbl th:first-child{text-align:left}
  .btts-stbl td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.04);text-align:center;font-weight:700}
  .btts-stbl td:first-child{text-align:left;color:var(--muted);font-weight:400;font-size:11px}
  .btts-stbl tr:last-child td{border-bottom:none}
  .btts-insight{display:flex;gap:6px;align-items:flex-start;background:rgba(22,199,132,.07);border:1px solid rgba(22,199,132,.2);border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.5;margin-top:8px;color:var(--txt)}
  .btts-insight .ic{color:#16c784;flex-shrink:0;font-weight:800}
  .btts-p2p{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:4px 10px}
  .btts-p2p-row{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px}
  .btts-p2p-row:last-child{border-bottom:none}
  .btts-p2p-date{font-size:9px;color:var(--muted);width:46px;flex-shrink:0}
  .btts-p2p-mt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .btts-p2p-sc{font-weight:700;width:38px;text-align:center;flex-shrink:0}
  .btts-p2p-bt{font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;width:34px;text-align:center;flex-shrink:0}
  .btts-p2p-bt.y{background:rgba(22,199,132,.15);color:#16c784}.btts-p2p-bt.n{background:rgba(234,57,67,.15);color:#ea3943}
  .btts-cuotas-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .btts-cq-card{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px;min-height:118px}
  .btts-cq-h{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:10px;display:flex;align-items:center;gap:5px}
  .btts-cq-lockwrap{position:relative;min-height:70px;display:flex;align-items:center;justify-content:center;text-align:center}
  .btts-cq-lock{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);font-size:10px;line-height:1.5}
  .btts-cq-lock b{color:var(--orange);font-size:11px}
  .btts-mov-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:6px 0}
  @media(max-width:768px){.btts-donuts,.btts-rend,.btts-cuotas-grid{grid-template-columns:1fr}.btts-filter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}}
  .es-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:10px}.es-col-hdr{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--muted);padding:0 2px 4px;text-align:center;border-bottom:1px solid var(--line);margin-bottom:4px}
  .es-item{display:flex;align-items:center;justify-content:space-between;padding:5px 6px;border-radius:5px;font-size:12px;border:1px solid transparent;background:var(--panel2);margin-bottom:3px}.es-item.top{border-color:var(--orange);background:rgba(247,148,29,.12)}
  .es-item-score{font-weight:700}.es-item.top .es-item-score{color:var(--orange)}.es-item-pct{font-size:10px;color:var(--muted)}.es-item.top .es-item-pct{color:var(--orange);font-weight:700}
  .es-top-badge{font-size:7px;font-weight:700;background:var(--orange);color:#000;border-radius:3px;padding:1px 3px;margin-left:3px;vertical-align:middle}
  .mkt-badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:20px}
  .mkt-badge-home{background:rgba(22,199,132,.15);color:#16c784}
  .mkt-badge-away{background:rgba(234,57,67,.15);color:#ea3943}
  .mkt-badge-even{background:rgba(120,120,120,.15);color:var(--muted)}
  .mkt-bar-full{display:flex;height:38px;border-radius:8px;overflow:hidden;margin-bottom:14px}
  .mkt-bar-full>div{display:flex;align-items:center;justify-content:center;min-width:0;transition:width .4s}
  .mkt-bar-lbl{font-size:11px;font-weight:700;color:#fff;white-space:nowrap;padding:0 5px;text-shadow:0 1px 2px rgba(0,0,0,.4)}
  .mkt-pcard-row{display:flex;gap:8px;margin-bottom:14px}
  .mkt-pcard{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px 8px;text-align:center;min-width:0;transition:border-color .2s}
  .mkt-pcard-win{border-color:rgba(22,199,132,.5);background:rgba(22,199,132,.07)}
  .mkt-pcard-draw{border-color:rgba(100,100,100,.5);background:rgba(100,100,100,.05)}
  .mkt-pcard-nm{font-size:10px;color:var(--muted);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:4px}
  .mkt-pcard-pct{font-size:26px;font-weight:900;line-height:1.1;margin-bottom:4px}
  .mkt-pcard-odds{font-size:10px;color:var(--muted)}
  .mkt-fav{display:inline-block;background:#f0b90b;color:#000;font-size:9px;font-weight:800;padding:1px 5px;border-radius:4px}
  .mkt-forma-cmp{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:start;background:var(--panel2);border-radius:8px;padding:12px;margin-bottom:12px}
  .mkt-fc-side{display:flex;flex-direction:column;gap:4px}
  .mkt-fc-mid{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;font-size:10px;color:var(--muted);padding-top:4px}
  .mkt-fc-rec{font-size:11px;font-weight:600;color:var(--txt)}
  .mkt-fc-avg{font-size:11px;color:var(--muted)}
  .mkt-analisis{background:var(--panel2);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:12px 14px;font-size:12px;line-height:1.6;color:var(--txt);margin-top:12px}
  /* Metrics comparison */
  .mir-metrics{display:flex;flex-direction:column;gap:8px}
  .mir-metric-row{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:8px;font-size:12px}
  .mir-metric-row .val-l{text-align:right;font-weight:700;font-size:14px}
  .mir-metric-row .val-r{text-align:left;font-weight:700;font-size:14px}
  .mir-metric-row .met-label{text-align:center;font-size:11px;color:var(--muted)}
  .mir-metric-row .met-bars{display:flex;gap:2px;height:6px}
  .mir-metric-row .met-bars .bl{flex:1;border-radius:3px;background:#ea3943}
  .mir-metric-row .met-bars .br{flex:1;border-radius:3px;background:#2ca5e0}
  /* Injuries */
  .mir-inj{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:12px}
  .mir-inj-team b{display:block;margin-bottom:6px;font-size:11px;text-transform:uppercase}
  .mir-inj-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 0;border-bottom:1px solid var(--line)}
  .mir-inj-item .nom{font-size:11.5px;font-weight:600;line-height:1.25}
  .mir-inj-item .tipo{color:#ea3943;font-size:10px;font-weight:600;line-height:1.25}
  /* Tactical read */
  .mir-tact{font-size:12px;line-height:1.6;color:var(--txt-soft)}
  .mir-tact-item{margin-bottom:8px}.mir-tact-item b{color:var(--orange);font-size:11px;display:block;margin-bottom:2px}
  /* Fair odds comparison */
  .mir-fair{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
  .mir-fair-item{flex:1;min-width:80px;background:var(--panel2);border-radius:8px;padding:8px;text-align:center;font-size:12px}
  .mir-fair-item .fair-lbl{font-size:10px;color:var(--muted)}
  .mir-fair-item .fair-just{font-size:14px;font-weight:700}
  .mir-fair-item .fair-real{font-size:11px;color:var(--muted)}
  /* ── ProBettingHub redesign ── */
  .mir-hdr{background:linear-gradient(180deg,rgba(247,148,29,.07) 0%,transparent 100%);border-bottom:1px solid var(--line);padding:18px 20px 14px}
  .mir-hdr-meta{text-align:center;font-size:11px;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}
  /* Jornada, justo debajo de liga+fecha. Sin ronda el hueco total queda igual que antes (5+9=14) */
  .mir-hdr-ronda{text-align:center;font-size:11px;font-weight:700;color:var(--orange);letter-spacing:.4px}
  .mir-teams-row{display:flex;align-items:center;gap:8px;margin-top:9px}
  .mir-team-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}
  .mir-tlogo{width:56px;height:56px;object-fit:contain}
  .mir-tname{font-size:15px;font-weight:700;line-height:1.2}
  .mir-vs-col{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:210px}
  @media(max-width:600px){.mir-vs-col{min-width:152px}}
  .mir-vs-badge{font-size:11px;font-weight:700;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 10px}
  .mir-score{font-size:36px;font-weight:900;min-width:46px;text-align:center;font-variant-numeric:tabular-nums;flex:none;line-height:1}
  .mir-res-badge{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 10px;white-space:nowrap}
  .mir-res-badge.live{color:#ea3943;border-color:rgba(234,57,67,.4);background:rgba(234,57,67,.1);animation:liveBlink 1.4s ease-in-out infinite}
  @media(max-width:600px){.mir-score{font-size:26px;min-width:34px}}
  /* Cuotas 1X2 de la cabecera: cada una en su cuadro, igual que el badge VS */
  .mir-odds-box{display:flex;gap:10px}
  .mir-odd{display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--bg);
    border:1px solid var(--line);border-radius:8px;padding:6px 14px;min-width:62px}
  .mir-odd-lbl{font-size:9.5px;font-weight:700;color:var(--muted);letter-spacing:.06em;line-height:1}
  .mir-odd-val{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
  @media(max-width:600px){.mir-odds-box{gap:6px}.mir-odd{min-width:46px;padding:5px 8px}.mir-odd-val{font-size:15px}}
  /* Layout */
  .mir-layout{display:grid;grid-template-columns:1fr 290px;gap:0}
  .mir-main{padding:0 14px 14px;border-right:1px solid var(--line);min-width:0}
  .mir-sidebar{padding:12px;display:flex;flex-direction:column;gap:10px}
  /* Tabs */
  .mir-tabs{display:flex;border-bottom:1px solid var(--line);margin:0 -14px 12px;padding:0 14px}
  .mir-tabs button{background:none;border:none;color:var(--muted);font-size:13px;font-weight:600;padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}
  .mir-tabs button.on{color:var(--orange);border-bottom-color:var(--orange)}
  .mir-tabs button:hover:not(.on){color:var(--txt)}
  @media(max-width:600px){.mir-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mir-tabs::-webkit-scrollbar{display:none}.mir-tabs button{flex-shrink:0}}
  .mir-tabpanel{display:flex;flex-direction:column;gap:10px}
  /* Cards */
  .mir-sb-card{background:var(--bg);border-radius:10px;padding:12px}
  .mir-sb-h{font-size:12px;font-weight:700;color:var(--txt);margin-bottom:8px;display:flex;align-items:center;gap:6px}
  .mir-sb-teams{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:6px}
  /* AI verdict */
  .mir-ai-card{background:var(--bg);border-radius:10px;padding:14px}
  /* ── Match Intelligence veredicto card ── */
  .mi-vc-card{background:var(--panel);border:1px solid rgba(247,148,29,.25);border-radius:12px;padding:16px;margin-bottom:14px}
  .mi-vc-hdr{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:14px;display:flex;align-items:center;gap:6px}
  .mi-vc-body{display:flex;gap:14px;align-items:center;margin-bottom:16px}
  .mi-vc-ring{flex:none;width:76px;height:76px;position:relative;display:flex;align-items:center;justify-content:center}
  .mi-vc-ring svg{position:absolute;top:0;left:0;width:76px;height:76px}
  .mi-vc-ring-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center}
  .mi-vc-ring-pct{font-size:19px;font-weight:900;color:var(--txt);line-height:1.1}
  .mi-vc-ring-lbl{font-size:9px;color:var(--muted);line-height:1.2}
  .mi-vc-title{font-size:15px;font-weight:800;color:var(--txt);margin-bottom:6px;line-height:1.2}
  .mi-vc-odds{display:inline-flex;align-items:center;gap:5px;background:rgba(240,185,11,.14);color:var(--amber);font-weight:800;font-size:14px;padding:3px 11px;border-radius:7px;white-space:nowrap;line-height:1.2}
  .mi-vc-odds small{font-size:8px;font-weight:700;opacity:.85;text-transform:uppercase;letter-spacing:.05em}
  .cuota-up{color:#16c784;font-size:11px}
  .cuota-down{color:#ea3943;font-size:11px}
  /* "▼ ahora 1.42" junto a la cuota que detectamos: la bajada del mercado es la
     prueba de que el pick llegó antes, así que se lee sin abrir un tooltip. */
  .cuota-mov{color:#ea3943;font-size:10px;font-weight:700;white-space:nowrap;opacity:.95}
  .mi-vc-desc{font-size:12px;color:var(--muted);line-height:1.55}
  .mi-vc-minibars{display:flex;gap:10px;flex-wrap:wrap}
  .mi-vc-minibar{flex:1;min-width:150px}
  .mi-vc-minibar-lbl{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
  .mi-vc-bar{display:flex;height:20px;border-radius:6px;overflow:hidden;margin-bottom:8px}
  .mi-vc-bar>div{min-width:0;transition:width .4s}
  .mi-vc-bar-rows{display:flex;justify-content:space-between;gap:4px;margin-bottom:4px}
  .mi-vc-bar-itm{display:flex;flex-direction:column;font-size:11px;line-height:1.2}
  .mi-vc-bar-itm b{font-weight:800;font-size:12px}
  .mi-vc-bar-itm small{font-size:9px;color:var(--muted)}
  .mi-vc-bar-itm:last-child{align-items:flex-end}
  .mir-ganador-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}
  .mir-ganador-lbl{font-size:11px;color:var(--muted);text-transform:uppercase}
  .mir-ganador-val{font-size:16px;font-weight:700;color:var(--green);flex:1}
  .mir-ev{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}
  .mir-ev.pos{background:rgba(22,199,132,.15);color:var(--green)}
  .mir-ev.neg{background:rgba(234,57,67,.15);color:#ea3943}
  /* Bars */
  .mir-bar3{display:flex;height:26px;border-radius:6px;overflow:hidden;margin-bottom:4px}
  .mir-b3-seg{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;min-width:28px}
  .mir-b3-labs{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:10px}
  .mir-verdict-text{font-size:13px;line-height:1.65;color:var(--txt-soft);margin-top:8px}
  .mir-tact-box{background:var(--panel2);border-radius:8px;padding:10px;margin-top:10px}
  .mir-tact-h{font-size:11px;font-weight:700;color:var(--orange);margin-bottom:4px}
  /* Poisson Pulse */
  /* ── Clasificación en el sidebar de la ficha ──
     Solo se enseñan las filas alrededor de los dos equipos; el resto se colapsa
     en "+N equipos más". Con un 1º contra un 15º salen dos tramos separados. */
  .cl-tbl{width:100%;border-collapse:collapse;font-size:11px}
  .cl-tbl th{font-size:9px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;
             padding:0 3px 5px;text-align:center;border-bottom:1px solid var(--line)}
  .cl-tbl th:nth-child(2){text-align:left}
  .cl-tbl td{padding:4px 3px;text-align:center;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.03)}
  .cl-tbl td:nth-child(2){text-align:left;color:var(--txt)}
  .cl-tbl tr:last-child td{border-bottom:0}
  .cl-eq{display:flex;align-items:center;gap:5px;min-width:0}
  .cl-eq img{width:14px;height:14px;object-fit:contain;flex:none}
  .cl-eq span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cl-pos{font-weight:700}
  .cl-pts{font-weight:800;color:var(--txt)}
  .cl-g{color:#16c784} .cl-e{color:#f0b90b} .cl-p{color:#ea3943}
  .cl-tbl tr.on td{background:rgba(255,255,255,.045)}
  .cl-tbl tr.on td:nth-child(2){font-weight:700}
  .cl-dot{width:6px;height:6px;border-radius:50%;flex:none}
  .cl-mas td{text-align:center;color:var(--muted);font-size:9.5px;padding:3px;background:var(--panel2)}
  .cl-zona{width:3px;border-radius:2px;display:inline-block;height:13px;vertical-align:middle;margin-right:1px}

  .mir-pulse-consensus{background:var(--panel2);border-radius:8px;padding:12px;text-align:center;margin-bottom:8px}
  .mir-cons-val{font-size:20px;font-weight:700;color:var(--green);margin:4px 0}
  .mir-cons-sub{font-size:10px;color:var(--muted)}
  /* Con la línea de córners son 3 tarjetas: se envuelven 2+1 en vez de apretarse */
  .mir-pulse-row{display:flex;gap:6px;flex-wrap:wrap}
  .mir-pr-item{flex:1 1 calc(50% - 3px);background:var(--panel2);border-radius:8px;padding:8px;text-align:center}
  .mir-pr-lbl{font-size:10px;color:var(--muted)}
  .mir-pr-val{font-size:14px;font-weight:700;margin:2px 0}
  .mir-pr-sub{font-size:10px;color:var(--muted)}
  /* Tendencias */
  .mir-tend-row{display:flex;align-items:center;padding:5px 0;border-bottom:1px solid var(--line)}
  .mir-tr-lbl{flex:1;text-align:center;font-size:11px;color:var(--muted)}
  .mir-tr-val{font-size:13px;font-weight:700;min-width:44px}
  .mir-tr-val:first-child{text-align:left}
  .mir-tr-val:last-child{text-align:right}
  /* Scout pick cards */
  .scout-pick{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px}
  .scout-pick:last-child{margin-bottom:0}
  .scout-pick-h{font-size:11px;font-weight:700;color:var(--txt);margin-bottom:4px}
  .scout-pick-txt{font-size:11px;color:var(--txt-soft);line-height:1.45;margin-bottom:6px}
  .scout-l10{display:flex;gap:2px;margin-bottom:7px;flex-wrap:wrap}
  .scout-pick-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .scout-mkt{font-size:11px;font-weight:600;color:var(--txt);flex:1;min-width:0}
  .scout-odds{font-size:12px;font-weight:700;color:var(--green);background:rgba(22,199,132,.12);padding:2px 7px;border-radius:4px;white-space:nowrap}
  .scout-ev{font-size:11px;font-weight:700;padding:2px 5px;border-radius:3px;white-space:nowrap}
  .scout-ev.pos{background:rgba(22,199,132,.15);color:var(--green)}
  .scout-ev.neg{background:rgba(234,57,67,.12);color:#ea3943}
  .scout-corners-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid var(--line);font-size:11px}
  .scout-corners-row:last-child{border-bottom:none}
  /* Scout Picks — pestaña Tendencias */
  .pf-bar-mkt{margin-top:-4px;padding-top:0}
  .sc-card{cursor:pointer;transition:border-color .15s}
  .sc-card.sc-open{border-color:rgba(124,92,255,.5)}
  .sc-head-pick{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
  .sc-l10{display:flex;align-items:center;gap:2px;flex-wrap:wrap;margin-bottom:7px}
  .sc-seg{width:15px;height:7px;border-radius:2px;flex:none}
  .sc-seg.hit{background:var(--green)}
  .sc-seg.miss{background:#ea3943}
  .sc-l10-pct{font-size:11px;font-weight:700;color:var(--green);margin-left:6px}
  .sc-pick-foot{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  .sc-mkt{font-size:12px;font-weight:700;color:var(--txt);flex:1;min-width:0}
  .sc-odds{font-size:12px;font-weight:700;color:var(--green);background:rgba(22,199,132,.12);padding:2px 8px;border-radius:5px;white-space:nowrap}
  .sc-ev{font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap}
  .sc-ev.pos{background:rgba(22,199,132,.15);color:var(--green)}
  .sc-cardfoot{margin-top:8px}
  .sc-more{font-size:11px;font-weight:600;color:var(--accent)}
  .sc-expand{margin-top:11px;padding-top:11px;border-top:1px solid var(--line)}
  .sc-probs{display:flex;gap:6px;margin-bottom:10px}
  .sc-prob{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 4px;text-align:center}
  .sc-prob b{display:block;font-size:18px;font-weight:900;color:var(--txt)}
  .sc-prob span{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
  .sc-prob.mid b{color:var(--muted)}
  .sc-adv{font-size:12px;color:var(--txt-soft);background:rgba(124,92,255,.1);border-radius:7px;padding:7px 10px;margin-bottom:10px}
  .sc-adv b{color:var(--accent)}
  .sc-pick{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin-bottom:8px}
  .sc-pick-txt{font-size:11.5px;color:var(--txt-soft);line-height:1.45;margin-bottom:7px}
  .sc-nopick{font-size:11.5px;color:var(--muted);padding:6px 0}
  /* Tarjetas pick-céntricas (Tendencias / Picks Destacados) */
  .tp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(430px,100%),1fr));gap:12px;padding:14px 0}
  /* Pie del pintado por lotes (ver _tpPintarLote): el autocargado lo pulsa solo
     al acercarse, pero queda visible para que se pueda forzar a mano. */
  .tp-mas-wrap{display:flex;justify-content:center;padding:4px 0 22px}
  .tp-mas{background:var(--panel2);color:var(--txt);border:1px solid var(--line);
          border-radius:10px;padding:11px 20px;font-size:13px;font-weight:700;cursor:pointer}
  .tp-mas:hover{border-color:rgba(124,92,255,.45)}
  .tp-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 15px;cursor:pointer;transition:border-color .15s}
  .tp-card:hover{border-color:rgba(124,92,255,.45)}
  /* La tendencia abierta del día. Va la primera de la rejilla (ver
     renderPartidosFiltrados) y se distingue del muro de candados: si no se ve,
     el usuario cree que NADA es gratis y se va. */
  .tp-card.tp-free{border-color:rgba(46,204,113,.55);background:linear-gradient(180deg,rgba(46,204,113,.07),transparent 62%);position:relative}
  .tp-card.tp-free:hover{border-color:rgba(46,204,113,.85)}
  .tp-free-tag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#2ecc71;background:rgba(46,204,113,.14);border:1px solid rgba(46,204,113,.35);border-radius:20px;padding:3px 9px;margin-bottom:9px}
  .tp-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
  .tp-logo{flex:none;display:flex}.tp-logo img{width:30px;height:30px;border-radius:5px;object-fit:cover}
  .tp-subj{flex:1;min-width:0}
  .tp-team{font-size:15px;font-weight:800;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tp-meta{font-size:11px;color:var(--muted);margin-top:1px}
  .tp-heat{font-size:12px;font-weight:800;padding:3px 9px;border-radius:20px;white-space:nowrap}
  .tp-heat.hot{background:rgba(247,148,29,.18);color:#f7941d}
  .tp-heat.warm{background:rgba(240,185,11,.16);color:#f0b90b}
  .tp-heat.cool{background:rgba(138,143,153,.16);color:#8a8f99}
  .tp-go{font-size:20px;color:var(--muted);font-weight:700;line-height:1}
  .tp-txt{font-size:12.5px;color:var(--txt-soft);line-height:1.5;margin-bottom:11px}
  .tp-mktbox{display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin-bottom:11px}
  .tp-mkt-ic{font-size:14px}
  .tp-mkt-name{flex:1;font-size:13px;font-weight:700;color:var(--txt);min-width:0}
  .tp-odds{font-size:13px;font-weight:800;color:var(--green);background:rgba(22,199,132,.12);padding:3px 10px;border-radius:6px;white-space:nowrap}
  .tp-fair{font-size:13px;font-weight:700;color:var(--muted);background:rgba(148,163,184,.12);border:1px dashed rgba(148,163,184,.35);padding:2px 9px;border-radius:6px;white-space:nowrap}
  .tp-prom{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
  .tp-l10{display:flex;align-items:center;gap:7px;margin-bottom:7px}
  .tp-l10-lbl{font-size:10px;font-weight:800;color:var(--muted);background:var(--panel2);padding:2px 7px;border-radius:5px;flex:none}
  .tp-l10-bar{display:flex;gap:3px;flex:1;flex-wrap:wrap}
  .tp-l10-pct{font-size:13px;font-weight:800;color:var(--green);flex:none}
  .tp-foot{font-size:11.5px;color:var(--muted)}
  .tp-foot b{color:var(--green)}
  .tp-more-hint{text-align:center;font-size:11.5px;color:var(--accent);font-weight:700;letter-spacing:.04em;padding:6px 0 2px;cursor:pointer;opacity:.9}
  /* Antes se ocultaba al abrir porque la tarjeta entera cerraba el desplegable.
     Ahora la tarjeta abre la ficha, así que este enlace es la única salida y
     tiene que quedarse. */
  .tp-card.tp-open .tp-more-hint{opacity:.75}
  .tp-card.tp-open{border-color:rgba(124,92,255,.5)}
  .tp-go{transition:transform .15s}
  .tp-card.tp-open .tp-go{transform:rotate(90deg)}
  .tp-expand{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
  .tp-an-title{font-size:12px;font-weight:800;color:var(--txt);margin-bottom:8px}
  .tp-bullets{list-style:none;margin:0 0 12px;padding:0}
  .tp-bullets li{font-size:12px;color:var(--txt-soft);line-height:1.5;padding:3px 0 3px 16px;position:relative}
  .tp-bullets li:before{content:'●';color:var(--green);position:absolute;left:0;font-size:9px;top:6px}
  .tp-bullets b{color:var(--txt)}
  .tp-chart-h{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px}
  .tp-chart{display:flex;align-items:flex-end;gap:5px;height:96px;padding:4px 0}
  .tp-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
  .tp-bar-v{font-size:10px;font-weight:700;color:var(--txt-soft);margin-bottom:2px}
  .tp-bar{width:100%;max-width:26px;border-radius:4px 4px 0 0;min-height:6px}
  .tp-bar-opp{font-size:9px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .sc-ficha{font-size:11.5px;font-weight:600;color:var(--orange);text-align:center;padding:8px 0 2px;cursor:pointer}
  /* Forma reciente */
  .mir-recent-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .mir-rr-team{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase}
  .mir-recent-row{display:flex;align-items:center;gap:6px;padding:3px 0;border-bottom:1px solid var(--line);font-size:11px}
  .mir-rr-dot{width:16px;height:16px;border-radius:4px;font-size:9px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;flex-shrink:0}
  .mir-rr-rival{flex:1;color:var(--txt-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mir-rr-score{color:var(--txt);font-weight:600;font-size:10px;flex-shrink:0}
  /* Sidebar cards — accent stripe */
  .mir-sb-card{background:var(--bg);border-radius:10px;padding:12px;border-left:2px solid rgba(247,148,29,.3)}
  .mir-sb-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}
  /* Bloqueo con blur (Poisson Pulse / Tendencias premium) — genera FOMO en vez de ocultar */
  .mir-blur-wrap{position:relative;overflow:hidden;cursor:pointer}
  /* El desenfoque tiene que TAPAR, no insinuar: con blur(5px) y velo .35 los
     números grandes del Pulse ("Over 2.5 55%") se leían a simple vista y el
     candado no servía de nada. Sigue viéndose que hay contenido debajo — el FOMO
     se mantiene — pero ya no se puede leer ningún dato. */
  .mir-blur-content{filter:blur(14px);opacity:.5;user-select:none;pointer-events:none}
  /* Candado COMPACTO para las pestañas que van bloqueadas enteras (Córners,
     Tarjetas). Sin tope, el bloque medía lo que mide su contenido —media
     pantalla de borrón— y había que hacer scroll por delante de la nada para
     seguir leyendo la ficha. El mensaje se entiende igual en 170 px. */
  .mir-blur-mini{max-height:170px}
  /* Cuerpo de relleno para el candado cuando el servidor ya NO manda el dato
     premium. Antes el blur necesitaba contenido real debajo —y por eso el dato
     viajaba y se leía en el JSON—; esto le da volumen sin información ninguna.
     Anchos distintos por fila para que parezca contenido y no una caja vacía. */
  .prem-skel{display:flex;flex-direction:column;gap:9px;padding:6px 0}
  .prem-skel-row{height:15px;border-radius:6px;background:var(--panel2)}
  .prem-skel-row:nth-child(1){width:88%}
  .prem-skel-row:nth-child(2){width:70%}
  .prem-skel-row:nth-child(3){width:79%}
  .prem-skel-row:nth-child(4){width:58%}
  /* Celda suelta difuminada (columnas de cuotas en Córners/Tarjetas). Va en
     inline-block porque `filter` no se aplica a un inline suelto en todos los
     navegadores, y con 6px un número de 4 cifras a 11px queda ilegible. */
  .cel-lock{display:inline-block;min-width:30px;filter:blur(6px);opacity:.55;user-select:none;pointer-events:none}
  .mir-blur-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:rgba(10,10,12,.72);text-align:center;padding:8px}
  .mir-blur-lock{font-size:20px}
  .mir-blur-cta{font-size:11px;color:var(--txt);line-height:1.5}
  .mir-blur-cta b{color:var(--orange)}
  /* Prediction market cards in Estadísticas tab */
  .st-pred-row{display:flex;gap:8px;flex-wrap:wrap}
  .st-pred-item{flex:1;min-width:90px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 8px;text-align:center}
  .st-pred-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px}
  .st-pred-val{font-size:13px;font-weight:700;color:var(--txt);margin-bottom:3px;line-height:1.2}
  .st-pred-pct{font-size:11px;color:var(--orange);font-weight:600}
  /* Team toggle */
  .mir-team-toggle{display:flex;gap:3px;background:var(--panel2);border-radius:8px;padding:3px;margin-bottom:10px}
  .mir-team-toggle button{flex:1;padding:7px 8px;border:none;border-radius:6px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;background:none;transition:all .15s}
  .mir-team-toggle button.on{background:var(--bg);color:var(--txt)}
  .mir-team-panel{display:none}
  .mir-team-panel.on{display:block}
  /* Rich recent match row */
  .mir-rm{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
  .mir-rm:last-child{border-bottom:none}
  .mir-rm-badge{width:22px;height:22px;border-radius:5px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
  .mir-rm-score{font-weight:700;font-size:13px;min-width:36px;text-align:center;flex-shrink:0}
  /* Forma stats — tabla 3 columnas */
  .mir-fstats{margin:8px 0}
  .mir-fst-hdr{display:grid;grid-template-columns:48px 1fr 48px;gap:4px;padding:3px 0 7px;border-bottom:2px solid var(--line);margin-bottom:2px}
  .mir-fst-hdr span:first-child{font-size:10px;font-weight:700;color:var(--orange);text-align:left}
  .mir-fst-hdr span:last-child{font-size:10px;font-weight:700;color:#2ca5e0;text-align:right}
  .mir-fst{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:4px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04)}
  .mir-fst:last-child{border-bottom:none}
  .mir-fst-val-h{font-size:13px;font-weight:700;text-align:left}
  .mir-fst-val-a{font-size:13px;font-weight:700;text-align:right}
  .mir-fst-mid{display:flex;flex-direction:column;align-items:center;gap:2px}
  .mir-fst-bar{height:3px;border-radius:2px;overflow:hidden;background:var(--line);width:100%}
  .mir-fst-bh{height:100%;border-radius:2px;background:var(--orange)}
  .mir-fst-lbl{font-size:9px;color:var(--muted);line-height:1.3;text-align:center}
  /* Metrics sidebar */
  .mir-mk-row{padding:6px 0;border-bottom:1px solid var(--line)}
  .mir-mk-row:last-child{border-bottom:none}
  .mir-mk-vals{display:flex;align-items:center;gap:6px;margin-bottom:3px}
  .mir-mk-h{font-size:16px;font-weight:700;min-width:40px;text-align:center}
  .mir-mk-lbl{flex:1;text-align:center;font-size:10px;color:var(--muted);line-height:1.3}
  .mir-mk-bar{height:4px;border-radius:2px;overflow:hidden;display:flex}
  .mir-mk-bar .bh{background:var(--orange)}
  .mir-mk-bar .ba{background:#2ca5e0}
  @media(max-width:768px){
    .mir-layout{grid-template-columns:1fr}
    .mir-main{border-right:none;padding:0 12px 12px}
    .mir-sidebar{border-top:1px solid var(--line);padding:12px}
  }
  @media(max-width:600px){
    .ficha-modal{width:100%;padding:0}
    .mir-motiv,.mir-inj,.mir-btts-grid{grid-template-columns:1fr}
    .mir-matrix{font-size:9px}
    .mir-recent-cols{grid-template-columns:1fr}
    .mir-tname{font-size:13px}
    .mir-tlogo{width:44px;height:44px}
  }
  /* ── Cabecera de la ficha en móvil ──
     Medido a 414px: la cabecera pedía 478px, o sea que escudos, nombres, puntos
     de forma y las tres cajas del 1X2 se salían 64px por la derecha — el nombre
     del visitante quedaba fuera de la pantalla. Se aprieta todo un punto en vez
     de esconder nada: la cabecera es lo primero que se ve de un partido y
     recortarle información es peor que hacerla pequeña. */
  @media(max-width:480px){
    .mir-hdr{padding:12px 10px 10px}
    .mir-teams-row{gap:4px}
    .mir-team-col{gap:5px;min-width:0}
    .mir-tlogo{width:36px;height:36px}
    .mir-tname{font-size:12px;line-height:1.15}
    .fdots{gap:2px}
    .fdot{width:14px;height:14px;font-size:8px;border-radius:4px}
  }
  .fh-1x2{margin-bottom:12px}.fh-mk{margin-bottom:10px}
  .fh-mkh{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:5px}
  .fh-mkbar{height:7px;border-radius:4px;background:var(--line)}.fh-mkbar span{display:block;height:7px;border-radius:4px}
  .fh-anal{background:var(--bg);border-radius:9px;padding:12px;margin-top:4px}
  .fh-anal-h{font-size:11px;color:var(--orange);margin-bottom:6px}
  .fh-anal div:last-child{font-size:13px;color:#cfd3da;line-height:1.55}
  .pos{color:var(--green)}.neg{color:var(--red)}
  /* ── Calendario ── */
  .cal-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 0 6px}
  .cal-dates{display:flex;gap:4px}
  .cal-dates button{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
  .cal-dates button.on{background:var(--orange);color:#0a0f18;border-color:var(--orange)}
  .cal-nav{padding:6px 11px!important;font-size:15px!important;line-height:1;color:var(--txt)!important}
  .cal-nav:disabled{opacity:.35;cursor:default}
  .cal-cur-date{font-size:12px;color:var(--muted);font-weight:600;text-transform:capitalize;padding:0 4px;white-space:nowrap}
  .cal-filtros{display:flex;gap:8px;flex-wrap:wrap;padding:6px 0 10px}
  .cal-filtros button{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:6px 13px;font-size:12px;font-weight:600;cursor:pointer}
  .cal-filtros button.on{background:var(--orange);color:#0a0f18;border-color:var(--orange)}
  /* Poisson Pulse */
  .pulse-section{margin-bottom:16px}
  .pulse-title{font-size:13px;font-weight:700;color:var(--orange);margin-bottom:10px;display:flex;align-items:center;gap:7px}
  .pulse-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
  .pulse-card{background:var(--panel2);border:1px solid rgba(247,148,29,.35);border-radius:12px;padding:12px 14px;cursor:pointer}
  .pulse-card:hover{border-color:var(--orange)}
  .pulse-conf{font-size:22px;font-weight:800;color:var(--green)}
  .pulse-match{font-size:13px;font-weight:700;margin-top:4px}
  .pulse-liga{font-size:11px;color:var(--muted);margin-top:2px}
  .pulse-pick{font-size:12px;color:var(--orange);margin-top:6px;font-weight:600}
  .pulse-meta{display:flex;gap:8px;margin-top:6px;font-size:11px;color:var(--muted)}
  .pulse-meta .o25{padding:2px 7px;border-radius:5px;font-weight:600}
  .pulse-meta .o25.si{background:rgba(22,199,132,.14);color:var(--green)}
  .pulse-meta .o25.no{background:rgba(234,57,67,.14);color:var(--red)}
  /* Liga header */
  .cal-liga{margin-bottom:12px;border:0.5px solid var(--line);border-radius:11px;overflow:hidden}
  .cal-liga-mundial{border-color:rgba(218,165,32,.5);background:linear-gradient(135deg,rgba(218,165,32,.06),transparent 40%)}
  .otras-ligas-sep{font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--muted);padding:10px 4px 4px;text-transform:uppercase;opacity:.7}
  .otras-ligas-sep.fav-sep{color:var(--orange);opacity:1;display:flex;align-items:center;gap:6px}
  .otras-ligas-sep.fav-sep svg{width:13px;height:13px;fill:var(--orange)}
  /* Estrella de liga favorita (fija arriba las ligas marcadas por el usuario) */
  .cal-fav{background:none;border:0;cursor:pointer;padding:3px;margin:-3px 0;display:inline-flex;align-items:center;color:var(--muted);opacity:.45;transition:opacity .15s,color .15s,transform .1s;-webkit-tap-highlight-color:transparent}
  .cal-fav svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
  .cal-fav:hover{opacity:1;color:var(--orange)}
  .cal-fav:active{transform:scale(.85)}
  .cal-fav.on{opacity:1;color:var(--orange)}
  .cal-fav.on svg{fill:currentColor}
  .cal-liga-h{display:flex;justify-content:space-between;align-items:center;background:var(--panel2);padding:9px 13px;font-size:12.5px;font-weight:700}
  /* Nivel PAÍS: envuelve a las ligas de ese país. Se diferencia del nivel liga
     con la barra naranja y un fondo algo más oscuro, para que se lea la jerarquía. */
  .cal-pais{margin-bottom:14px}
  .cal-pais-h{display:flex;justify-content:space-between;align-items:center;background:var(--bg);
    border-left:3px solid var(--orange);border-radius:8px;padding:8px 12px;margin-bottom:7px;
    font-size:13px;cursor:pointer;user-select:none}
  .cal-pais-h:hover{background:var(--panel2)}
  .cal-pais-fl{width:21px;height:15px;object-fit:cover;border-radius:2px;flex-shrink:0}
  .cal-pais-b{padding-left:11px}
  @media(max-width:600px){.cal-pais-b{padding-left:5px}}
  .cal-liga-h img.liga-flag{width:18px;height:13px;border-radius:2px;object-fit:cover;margin-right:7px;vertical-align:middle}
  .cal-liga-n{font-size:11px;color:var(--muted);background:var(--bg);padding:2px 8px;border-radius:10px}
  .cal-liga-pais{font-size:11px;color:var(--muted);font-weight:600;margin-left:6px}
  .cal-row{display:flex;align-items:center;gap:10px;padding:9px 13px;border-top:0.5px solid var(--line);cursor:pointer}
  .cal-row:hover{background:var(--panel2)}
  .cal-row-locked{opacity:.28;transition:opacity .15s}
  .cal-row-locked:hover{opacity:.5;background:rgba(247,148,29,.04)}
  .cal-lock-badge{display:inline-flex;align-items:center;gap:3px;background:rgba(247,148,29,.18);border:0.5px solid rgba(247,148,29,.4);border-radius:6px;padding:2px 7px;font-size:10px;font-weight:700;color:#f7941d;white-space:nowrap}
  .cal-reg-badge{background:rgba(22,199,132,.18);border-color:rgba(22,199,132,.4);color:#16c784}
  .cal-gate-note{font-size:11px;color:var(--muted);text-align:center;padding:8px 0 4px;cursor:pointer}
  .cal-gate-note b{color:var(--orange)}
  .cal-hora{font-size:11px;color:var(--muted);width:52px;flex:none}
  .cal-teams{flex:0 1 250px;min-width:0}
  .cal-t{display:flex;align-items:center;gap:7px;margin:2px 0}
  /* Nombre + forma apilados. `cal-fm` (los puntos bajo el nombre) solo existe
     para el móvil: en escritorio la forma tiene su columna y esto va oculto. */
  .cal-tcol{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .cal-fm{display:none;gap:2px}
  .cal-t .pl-logo{width:20px;height:20px}
  .cal-nm{flex:1;font-size:13px;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cal-sc{font-size:13px;font-weight:700;width:18px;text-align:right}
  .cal-forma{display:flex;gap:2px;flex:none}
  .cal-fdot{width:15px;height:15px;border-radius:4px;font-size:9px;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.02em}
  .cal-fdot.win{background:rgba(22,199,132,.18);color:var(--green)}
  .cal-fdot.draw{background:rgba(240,185,11,.18);color:var(--amber)}
  .cal-fdot.loss{background:rgba(234,57,67,.18);color:var(--red)}
  .cal-live{display:inline-flex;align-items:center;gap:5px}
  .cal-live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:livePulse 1.4s ease-in-out infinite;flex-shrink:0}
  .cal-live-min{font-size:11px;font-weight:700;color:var(--orange)}
  .cal-live-st{font-size:10px;font-weight:700;color:var(--green);letter-spacing:.03em}
  @keyframes livePulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(22,199,132,.45)}50%{opacity:.55;box-shadow:0 0 0 4px rgba(22,199,132,0)}}
  .cal-stats{display:flex;gap:6px;flex:none;align-items:center}
  .cal-stats .cs{font-size:11px;color:var(--muted);background:var(--bg);border:0.5px solid var(--line);border-radius:5px;padding:2px 6px;white-space:nowrap;cursor:default}
  .cal-stats .cs b{color:var(--txt)}
  .cal-odds{display:flex;gap:5px;flex:none}
  .cal-odds span{background:var(--bg);border:0.5px solid var(--line);border-radius:5px;padding:3px 7px;font-size:11px;color:var(--muted);min-width:34px;text-align:center}
  .cal-o25{flex:none;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;white-space:nowrap}
  .cal-o25.si{background:rgba(22,199,132,.14);color:var(--green)}
  .cal-o25.no{background:rgba(234,57,67,.14);color:var(--red)}
  .cal-conf{font-size:13px;font-weight:700;text-align:right;flex:none}
  .cal-lock{font-size:13px;width:56px;text-align:right;flex:none}
  .cal-conf-w{width:56px;text-align:right;flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:1px}
  /* La cuota del pick bajo el %: un "62%" solo no dice nada; "62% · 1.51" comunica
     que ademas paga bien. Se apila para no ensanchar apenas la columna. */
  .cal-conf-odd{font-size:10.5px;font-weight:700;color:var(--muted);line-height:1;white-space:nowrap}
  .cal-chips{display:flex;gap:4px;flex:none;width:130px;justify-content:flex-start}
  .cal-forma{width:104px;flex:none}
  .cal-stats{width:100px;flex:none}
  .cal-odds{width:116px;flex:none}
  .cal-odds-empty{width:116px;flex:none;display:flex;gap:5px}
  .cal-odds-empty span{background:var(--bg);border:0.5px solid var(--line);border-radius:5px;padding:3px 7px;font-size:11px;color:var(--line);min-width:34px;text-align:center}
  .cal-forma-empty{width:104px;flex:none}
  .cal-stats-empty{width:100px;flex:none}
  /* Column headers */
  .cal-col-hdr{display:flex;align-items:center;gap:10px;padding:5px 13px;border-top:0.5px solid var(--line);background:var(--panel2)}
  .cal-col-hdr span{font-size:10px;color:#a3a8b2;text-transform:uppercase;letter-spacing:.6px;font-weight:700}
  .cal-ch-h{width:52px;flex:none}
  .cal-ch-t{flex:0 1 250px;min-width:0}
  .cal-ch-f{width:104px;flex:none}
  .cal-ch-s{width:100px;flex:none}
  .cal-ch-o{width:116px;flex:none;text-align:center}
  .cal-ch-m{flex:1 1 240px;min-width:220px}
  .cal-ch-c{width:42px;flex:none;text-align:right}
  /* Cabecera de la columna de mercado v2: cinco celdas alineadas con la fila */
  .cal-ch-m2{flex:1 1 472px;min-width:418px;display:flex;align-items:center;gap:10px}
  .cal-ch-m2 i{font-style:normal;text-align:center;white-space:nowrap;overflow:hidden}
  /* Los dos anillos ya no se comen el hueco sobrante: se quedan juntos a la
     izquierda y el resto se lo reparten goles/córners/tarjetas, que es donde
     hacía falta —"TARJETAS" no cabía y partía en dos líneas mientras los anillos
     andaban separados media fila—.
     Todo con `flex-shrink:1` y min-width:0 a propósito: con anchos rígidos, a
     1024px la última celda se salía 163px de su fila. Encogen a la vez, y por
     eso cabecera y fila comparten exactamente estas reglas. */
  .cal-ch-m2 i:nth-child(1),.cal-ch-m2 i:nth-child(2){flex:0 1 96px;min-width:0}
  .cal-ch-m2 i:nth-child(n+3){flex:1 1 80px;min-width:0}
  /* ── Mercado v2: anillo de probabilidad + medias ──
     El anillo es un conic-gradient sobre un círculo: sin SVG, sin JS y sin
     imágenes, así que no añade peso a una lista que puede tener 500 filas. */
  .cal-mkt2{flex:1 1 472px;min-width:418px;display:flex;align-items:center;gap:10px}
  .m2{flex:0 1 96px;min-width:0;display:flex;align-items:center;gap:7px}
  .m2-ring{position:relative;width:34px;height:34px;flex:none;border-radius:50%;
    background:conic-gradient(var(--c) calc(var(--p)*1%), var(--line) 0);
    display:flex;align-items:center;justify-content:center}
  .m2-ring::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--panel)}
  .m2-ring i{position:relative;z-index:1;font-style:normal;font-size:11px;font-weight:800;color:var(--txt)}
  /* Etiquetas de fila: solo en móvil. De 481px para arriba manda la cabecera de
     la tabla y repetir "Over 2.5" en cada fila era ruido; por debajo, esa
     cabecera se oculta (ver el media query de 480px) y sin ellas quedarían
     números sueltos sin decir de qué hablan. */
  .m2-lb,.m2-avg small{display:none}
  .m2-lb-w{display:flex;flex-direction:column;min-width:0;gap:1px}
  /* La cuota, en caja, igual que las de 1X2: es el mismo tipo de dato y en la
     misma fila, así que tenía que leerse igual. Suelta competía con el número
     del anillo y se confundía con otra probabilidad. */
  .m2-od{display:inline-block;background:var(--bg);border:0.5px solid var(--line);
    border-radius:5px;padding:3px 7px;min-width:44px;text-align:center;
    font-size:11px;font-weight:700;color:var(--txt);font-variant-numeric:tabular-nums}
  .m2-od-no{color:var(--line);font-weight:600}
  .m2-avg{flex:1 1 80px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px}
  .m2-avg b{font-size:13px;font-weight:800;color:var(--txt)}
  .m2-avg small{font-size:9px;color:var(--muted);text-transform:lowercase}
  /* El icono va en la cabecera, no en la celda: identifica la columna una vez en
     lugar de 150 veces por pantalla. */
  .m2-ico-cel{display:none}   /* solo en móvil: ver el media query de 480px */
  .m2-ico{display:inline-block;width:13px;height:13px;color:var(--muted);vertical-align:-2px}
  .m2-ico svg{width:100%;height:100%;display:block}
  .cal-ch-m2 i .m2-ico{margin-left:5px}
  /* Barra de respaldo histórico. Alto 3px a propósito: acompaña al número sin
     competir con él ni con el anillo, que es quien manda en la fila. */
  .m2-bar{display:block;width:44px;height:3px;border-radius:2px;background:var(--line);
    overflow:hidden;margin-top:2px}
  .m2-bar i{display:block;height:100%;border-radius:2px}
  .m2-bar-no{background:transparent}
  .m2-lock{cursor:pointer;opacity:.75}
  .m2-lock:hover{opacity:1}
  .cal-reg-badge{display:inline-flex;align-items:center;gap:3px;margin-top:3px;font-size:9.5px;
    font-weight:800;color:#f0b90b;background:rgba(240,185,11,.14);
    border:1px solid rgba(240,185,11,.35);border-radius:20px;padding:1px 6px;white-space:nowrap;cursor:pointer}
  /* ── Mercado: barras O/U 2.5 + BTTS ── */
  .cal-mkt{flex:1 1 240px;min-width:220px}
  .mkt-b{display:flex;gap:14px}
  .mkt-b .mkt-grp{flex:1;min-width:0}
  .mkt-a{display:none}
  .mkt-c{display:none}
  .mkt-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);background:var(--bg);border:0.5px solid var(--line);border-radius:6px;padding:3px 8px;white-space:nowrap}
  .mkt-chip b{color:var(--green);font-weight:800}
  .mkt-hd{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
  .mkt-row{display:flex;align-items:center;gap:6px;margin-bottom:3px}
  .mkt-lab{font-size:10.5px;width:36px;flex:none}
  .mkt-track{flex:1;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
  .mkt-fill{display:block;height:100%}
  .mkt-pct{font-size:10.5px;width:26px;text-align:right;flex:none}
  .mkt-split{display:flex;height:20px;border-radius:5px;overflow:hidden}
  .mkt-seg{display:flex;align-items:center;justify-content:center;font-size:11px;min-width:0;overflow:hidden}
  .mkt-split-pct{display:flex;justify-content:space-between;margin-top:3px;font-size:11px}
  /* Match Intelligence: mismas barras pero más gruesas y con aire */
  .mkt-ficha{display:flex;gap:18px;margin-top:4px}
  .mkt-ficha .mkt-grp{flex:1;min-width:0}
  .mkt-ficha .mkt-hd{font-size:10px;margin-bottom:7px}
  .mkt-ficha .mkt-row{margin-bottom:6px;gap:8px}
  .mkt-ficha .mkt-lab{font-size:12px;width:44px}
  .mkt-ficha .mkt-track{height:9px}
  .mkt-ficha .mkt-pct{font-size:12px;width:32px}
  @media(max-width:600px){.mkt-ficha{flex-direction:column;gap:12px}}
  /* ── Calendario en móvil (≤700px): la MISMA tabla que escritorio ──
     Lo que había era un diseño aparte: se ocultaban 1X2 y forma, y el mercado
     bajaba a una tira propia. Pero la mayoría de los usuarios SOLO ve el móvil,
     así que ese recorte era el producto entero para ellos. Ahora la fila
     conserva todas las columnas de escritorio: hora, equipos y forma quedan
     FIJAS a la izquierda y el resto —1X2 en vertical, anillos con cuota,
     esperados— se desliza en horizontal, al estilo ProBettingHub. */
  @media(max-width:700px){
    .cal-lg-body{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
    .cal-lg-body::-webkit-scrollbar{display:none}
    /* align-items:stretch, no center: las celdas fijas tienen que medir la fila
       ENTERA. Centradas solo tapaban su propio alto y las columnas del carril
       —más altas por sus rótulos y barras— asomaban por encima y por debajo de
       la tarjeta de equipos al deslizar. */
    .cal-row{width:max-content;min-width:100%;gap:8px;padding:5px 10px 5px 0;align-items:stretch}
    .cal-col-hdr{display:none}
    .cal-stats,.cal-stats-empty,.cal-ch-s{display:none}
    /* Columnas fijas: SOLO hora y equipos+marcador (la forma va bajo el nombre).
       Las dos sticky forman una franja opaca CONTINUA de 0 a 180px, a toda la
       altura de la fila, para que lo que se desliza desaparezca limpio en su
       borde. El hover de la fila cambia el fondo, así que las celdas fijas lo
       cambian con ella o se notaría el parche. */
    .cal-hora{position:sticky;left:0;z-index:2;background:var(--panel);flex:none;
      width:44px;padding-left:8px;padding-right:0;font-size:10px;
      display:flex;flex-direction:column;justify-content:center}
    /* margin-left:-8px se come el gap de la fila: sin él, la celda descansaba
       8px más allá de su `left` y al primer scroll daba un salto de 8px para
       clavarse — y ese hueco, además, dejaba ver el carril por debajo. */
    .cal-teams{position:sticky;left:44px;z-index:2;background:var(--panel);flex:none;width:144px;
      margin-left:-8px;padding-left:8px;
      display:flex;flex-direction:column;justify-content:center;
      box-shadow:8px 0 10px -6px rgba(0,0,0,.55)}
    .cal-row:hover .cal-hora,.cal-row:hover .cal-teams{background:var(--panel2)}
    /* La forma va DEBAJO del nombre de cada equipo, dentro de la columna fija:
       cinco puntos pequeños por equipo. La columna de forma de escritorio se
       apaga — aquí sería una parada más del carril y esto se lee sin deslizar. */
    .cal-forma,.cal-forma-empty{display:none}
    .cal-fm{display:flex}
    .cal-fm .cal-fdot{width:9px;height:9px;font-size:6.5px;border-radius:2px}
    .cal-nm{font-size:11.5px}
    .cal-sc{font-size:11.5px;width:13px}
    /* 1X2 en vertical, como ProBettingHub: tres cajas apiladas, cada una con su
       etiqueta dentro — en horizontal no cabían y por eso se ocultaban.
       justify-content:center porque la celda ahora se estira a toda la fila. */
    .cal-odds,.cal-odds-empty{display:flex;flex-direction:column;gap:2px;width:auto;flex:none;justify-content:center}
    .cal-odds span{min-width:48px;padding:2px 5px;font-size:10px;display:flex;align-items:center;justify-content:space-between;gap:4px}
    .cal-odds span::before{font-size:8px;font-weight:800;color:var(--muted)}
    .cal-odds span:nth-child(1)::before{content:'1'}
    .cal-odds span:nth-child(2)::before{content:'X'}
    .cal-odds span:nth-child(3)::before{content:'2'}
    /* Mercado: celdas a ancho fijo dentro del carril deslizante. Sin cabecera de
       tabla, cada celda se rotula sola: icono y nombre ARRIBA, dato en medio,
       cuota o barra abajo — y las cinco comparten alturas para que la tira no se
       lea escalonada. */
    .cal-mkt2{flex:none;min-width:0;width:max-content;gap:7px;align-items:flex-start}
    .m2{flex:none;width:72px;display:grid;justify-items:center;gap:3px}
    .m2-lb-w{display:contents}
    .m2-ico-cel{display:block;order:0;height:11px;width:11px;margin-bottom:1px}
    /* Hueco del icono en las celdas de anillo, que no lo llevan: sin él sus
       rótulos empezaban 15px más arriba y la tira quedaba escalonada. */
    .m2::before{content:'';display:block;order:0;height:11px}
    /* Rótulos a UNA línea (nowrap): la altura reservada baja de 19 a 12px. El
       min-height iba dimensionado para dos renglones de "AMBOS MARCAN"; en
       nowrap a 8.5px cabe en los 72px de la celda y ese aire sobraba en las
       cinco columnas — era el grueso del alto de la fila. */
    .m2-lb,.m2-avg small{min-height:12px;white-space:nowrap;display:flex;align-items:flex-start;justify-content:center}
    .m2-lb{order:1;font-size:8.5px;color:var(--muted);text-transform:uppercase;
      letter-spacing:.3px;text-align:center;line-height:1.15}
    .m2-ring{order:2;width:30px;height:30px}
    .m2-ring i{font-size:10px}
    .m2-od{order:3;min-width:0;width:100%;padding:2px 4px;font-size:10px}
    .m2-avg{flex:none;width:52px;display:flex;flex-direction:column;align-items:center;gap:1px;justify-content:flex-start}
    .m2-avg small{order:1;font-size:8.5px;letter-spacing:.3px;text-transform:uppercase;line-height:1.15}
    .m2-avg b{order:2;font-size:13px;min-height:30px;display:flex;align-items:center}
    .m2-avg .m2-bar{order:3;width:30px;margin-top:3px}
    .m2-lock{opacity:1}
  }
  @media(max-width:480px){
    .cal-conf-w{width:42px}
    .cal-conf{font-size:11px}
    .cal-conf-odd{font-size:9.5px}
    .cal-ch-c{display:none}
  }
  /* ── Ficha en móvil: nada CORTADO ──
     Auditadas las 8 pestañas a 414px. Los desbordes de página eran cero, pero
     había contenido amputado por overflow:hidden — que es peor, porque ni se ve
     ni se puede llegar a él: la clasificación (9 columnas, 439px medidos) perdía
     la columna de PUNTOS. La regla: lo que no cabe se DESLIZA, nunca se corta. */
  @media(max-width:700px){
    .ficha-modal div:has(> table){overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
    .ficha-modal div:has(> table)::-webkit-scrollbar{display:none}
    /* Los nombres largos en tarjetas de pick y títulos de mercado ("Sportivo
       Luqueno vs Club Guarani") iban en nowrap+hidden: se parten en dos líneas
       en vez de perder letras. */
    .mkt-pcard-nm,.btts-p2p-mt{white-space:normal;overflow:visible}
  }
  /* ── Mis Picks ──────────────────────────────────────────────────────────
     Anillos y donuts con conic-gradient, igual que la columna de mercado del
     calendario: para cuatro anillos y tres donuts no se justifica cargar una
     librería de gráficas en el bundle. */
  .mp-subnav{display:flex;gap:6px;margin:14px 0 4px}
  .mp-subnav button{background:var(--panel);border:1px solid var(--line);color:var(--muted);
    font-size:12.5px;font-weight:700;padding:8px 14px;border-radius:20px;cursor:pointer}
  .mp-subnav button.on{background:rgba(247,148,29,.14);border-color:var(--orange);color:var(--orange)}
  .mp-que-es{font-size:12px;color:var(--muted);line-height:1.6;margin:2px 0 10px;max-width:760px}
  .mp-que-es b{color:var(--txt-soft)}
  .mp-que-es-sep{color:var(--orange);margin:0 6px;font-weight:800}
  .mp-kpis{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
  .mp-kpi{flex:1 1 96px;min-width:88px;background:var(--panel);border:1px solid var(--line);
    border-radius:12px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:6px}
  .mp-kpi b{font-size:19px;font-weight:900;color:var(--txt)}
  .mp-kpi span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;text-align:center}
  .mp-ring{position:relative;width:56px;height:56px;border-radius:50%;
    background:conic-gradient(var(--c) calc(var(--p)*1%), var(--line) 0);
    display:flex;align-items:center;justify-content:center}
  .mp-ring::after{content:'';position:absolute;inset:5px;border-radius:50%;background:var(--panel)}
  .mp-ring i{position:relative;z-index:1;font-style:normal;font-size:13px;font-weight:900;color:var(--txt)}
  .mp-donuts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
  .mp-donut{flex:1 1 150px;display:flex;align-items:center;gap:10px;background:var(--panel);
    border:1px solid var(--line);border-radius:12px;padding:10px 12px}
  .mp-dring{position:relative;width:44px;height:44px;flex:none;border-radius:50%;
    background:conic-gradient(#16c784 calc(var(--p)*1%), #ea3943 0);
    display:flex;align-items:center;justify-content:center}
  .mp-dring::after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--panel)}
  .mp-dring i{position:relative;z-index:1;font-style:normal;font-size:11px;font-weight:800}
  .mp-dlbl{display:flex;flex-direction:column;gap:1px;min-width:0}
  .mp-dlbl b{font-size:12.5px;text-transform:capitalize}
  .mp-dlbl span{font-size:10.5px;color:var(--muted)}
  .mp-filtros{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
  .mp-filtros .chip{cursor:pointer}
  .mp-dia{background:var(--panel);border:1px solid var(--line);color:var(--txt);
    border-radius:8px;padding:6px 8px;font-size:12px}
  .mp-list{display:flex;flex-direction:column;gap:8px}
  .mp-card{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line);
    border-radius:10px;padding:10px 12px}
  .mp-card.mp-ganado{border-left-color:var(--green)}
  .mp-card.mp-perdido{border-left-color:var(--red)}
  .mp-card.mp-pendiente{border-left-color:var(--orange)}
  .mp-card-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px}
  .mp-liga{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mp-est{font-size:10px;font-weight:800;padding:3px 8px;border-radius:6px;white-space:nowrap}
  /* Pick sembrado de demostración (origen='historico'): partido ya jugado, con la
     cuota que guardamos y el resultado real. Va marcado para que no se lea como
     un pick propio. */
  .mp-hist{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;
    padding:3px 7px;border-radius:6px;white-space:nowrap;cursor:help;margin-left:auto;
    color:var(--muted);background:var(--panel2);border:1px solid var(--line)}
  /* Vista del no-premium: explicación a la vista + demo con candado */
  .mp-como{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--orange);
    border-radius:12px;padding:16px 18px;margin-bottom:16px}
  .mp-como h3{font-size:16px;font-weight:800;margin:0 0 8px}
  .mp-como-int{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 14px}
  .mp-como-int b{color:var(--txt)}
  .mp-pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px}
  .mp-paso{display:flex;gap:10px;align-items:flex-start;background:var(--panel2);
    border:1px solid var(--line);border-radius:10px;padding:11px 12px}
  .mp-paso-n{flex:none;width:20px;height:20px;border-radius:50%;background:var(--orange);
    color:#0a0f18;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
  .mp-paso b{display:block;font-size:12.5px;font-weight:800;margin-bottom:3px}
  .mp-paso span{display:block;font-size:11.5px;color:var(--muted);line-height:1.5}
  .mp-demo-tit{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;
    color:var(--muted);margin-bottom:10px}
  .mp-est.ok{background:rgba(22,199,132,.16);color:var(--green)}
  .mp-est.ko{background:rgba(234,57,67,.16);color:var(--red)}
  .mp-est.pend{background:rgba(247,148,29,.16);color:var(--orange)}
  .mp-est.nula{background:var(--panel2);color:var(--muted)}
  .mp-part{font-size:13px;font-weight:700}
  .mp-part span{color:var(--muted);font-weight:400;font-size:11px}
  .mp-mkt{font-size:12.5px;color:var(--txt-soft);margin:3px 0 7px}
  .mp-card-f{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:11.5px;color:var(--muted)}
  .mp-cuota{font-weight:800;color:var(--txt);font-variant-numeric:tabular-nums}
  .mp-stake{display:flex;align-items:center;gap:5px}
  .mp-stake input{width:56px;background:var(--bg);border:1px solid var(--line);color:var(--txt);
    border-radius:6px;padding:3px 6px;font-size:11.5px}
  .mp-u{font-weight:800;margin-left:auto;font-variant-numeric:tabular-nums}
  .mp-del{background:none;border:0;color:var(--muted);font-size:16px;cursor:pointer;padding:0 2px}
  .mp-del:hover{color:var(--red)}
  .mp-nota{font-size:11.5px;color:var(--muted);margin:-6px 0 12px}
  .mp-vacio{text-align:center;padding:40px 20px;background:var(--panel);border:1px solid var(--line);border-radius:14px}
  .mp-vacio-ic{font-size:34px;margin-bottom:8px}
  .mp-vacio h3{font-size:16px;margin-bottom:6px}
  .mp-vacio p{font-size:13px;color:var(--muted);max-width:420px;margin:0 auto 16px;line-height:1.55}
  .mp-demo-wrap{position:relative;overflow:hidden;border-radius:14px;cursor:pointer}
  /* La demo NO se tapa. El blur de .mir-blur-content (14px + opacidad .5) está
     para ocultar contenido premium REAL, que no debe poder leerse ni abriendo la
     pestaña de red. Aquí los datos son inventados y van etiquetados: taparlos
     dejaba la sección en negro y el visitante veía un candado sobre un
     rectángulo vacío en vez de "así funciona esto". La llamada a premium se
     queda, pero como banda inferior sobre un degradado, no como velo encima. */
  .mp-demo-wrap .mir-blur-content{filter:none;opacity:1}
  .mp-demo-wrap .mir-blur-overlay{top:auto;bottom:0;justify-content:flex-end;
    background:linear-gradient(to top,rgba(10,10,12,.97) 52%,rgba(10,10,12,.85) 74%,rgba(10,10,12,0));
    padding:56px 12px 14px}
  .mp-demo-nota{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-size:10px;
    color:var(--muted);z-index:2;margin:0}
  /* Botón "Añadir" en la tarjeta de tendencia */
  .tp-acciones{display:flex;align-items:center;gap:8px;justify-content:space-between}
  .mp-add{background:rgba(247,148,29,.14);border:1px solid rgba(247,148,29,.45);color:var(--orange);
    font-size:11.5px;font-weight:800;padding:5px 11px;border-radius:14px;cursor:pointer;white-space:nowrap}
  .mp-add:hover{background:rgba(247,148,29,.24)}
  .mp-add.on{background:rgba(22,199,132,.16);border-color:rgba(22,199,132,.5);color:var(--green)}
  .mp-add:disabled{opacity:.7;cursor:default}
  /* ── ValueBOT ── */
  .vb-hero{background:linear-gradient(135deg,#f7941d 0%,#ff6b35 100%);border-radius:16px;padding:32px 34px;margin-bottom:20px;color:#fff}
  /* Qué son las ValueBets: la gente confundía este historial automático con los
     picks del tipster del canal Premium */
  .vb-que-es{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);
    border-radius:10px;padding:12px 14px;margin-bottom:18px;font-size:12.5px;color:var(--muted);line-height:1.55}
  .vb-que-es a{color:var(--orange);font-weight:700;cursor:pointer}
  .vb-hero h2{font-size:13px;font-weight:500;opacity:.8;margin-bottom:8px;text-transform:uppercase;letter-spacing:.6px}
  .vb-hero .vb-profit{font-size:58px;font-weight:900;line-height:1;margin-bottom:4px}
  .vb-hero .vb-sub{font-size:13px;opacity:.65;margin-bottom:20px}
  .vb-hero .vb-kpis{display:flex;gap:0;margin-top:0}
  .vb-hero .vb-kpi{text-align:left;padding:0 28px 0 0;margin:0 28px 0 0;border-right:1px solid rgba(255,255,255,.3)}
  .vb-hero .vb-kpi:last-child{border-right:0;padding-right:0;margin-right:0}
  .vb-hero .vb-kpi b{display:block;font-size:26px;font-weight:900;line-height:1.1}
  .vb-hero .vb-kpi span{font-size:11px;opacity:.65;text-transform:uppercase;letter-spacing:.6px}
  .vb-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;align-items:center}
  .vb-filters label{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.6px;min-width:58px}
  .vb-chips{display:flex;flex-wrap:wrap;gap:6px}
  .vb-chips button{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}
  .vb-chips button.on{background:var(--orange);color:#0a0f18;border-color:var(--orange)}
  .vb-grid{display:grid;grid-template-columns:.85fr 2fr;gap:16px;margin-bottom:16px}
  @media(max-width:980px){.vb-grid{grid-template-columns:1fr}}
  @media(max-width:760px){.vb-hero .vb-kpis{flex-wrap:wrap;gap:14px}}
  /* Barra apilada ganados/perdidos/void */
  .vb-wlbar{display:flex;height:10px;border-radius:6px;overflow:hidden;background:var(--panel2);margin-bottom:10px}
  .vb-wlbar i{display:block;height:100%}
  .vb-wlbar .w{background:var(--green)}.vb-wlbar .l{background:var(--red)}.vb-wlbar .v{background:var(--muted);opacity:.45}
  .vb-wllegend{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-bottom:6px}
  .vb-wllegend b{color:var(--txt);font-weight:800;margin-left:6px}
  .vb-wllegend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:1px}
  .vb-stats{display:grid;grid-template-columns:1fr;gap:0}
  .vb-stat{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line)}
  .vb-stat:last-child{border-bottom:0}
  .vb-stat span:first-child{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}
  .vb-stat b{color:var(--txt);font-size:19px;font-weight:900;line-height:1;white-space:nowrap}
  .vb-stat b.pos{color:var(--green)}.vb-stat b.neg{color:var(--red)}
  .vb-chartbox{position:relative;height:378px}
  @media(max-width:980px){.vb-chartbox{height:280px}}
  .vb-table{width:100%;border-collapse:collapse;font-size:12.5px}
  .vb-table th{text-align:left;color:var(--muted);font-weight:500;padding:10px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel)}
  .vb-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
  .vb-table tbody tr:hover td{background:var(--panel2)}
  .vb-table .vb-kind{font-size:10px;font-weight:700;padding:3px 8px;border-radius:5px;white-space:nowrap}
  .vb-kind.pre{background:rgba(59,130,246,.16);color:#3b82f6}
  .vb-kind.live{background:rgba(234,57,67,.16);color:#ea3943}
  .vb-kind.corners{background:rgba(240,185,11,.16);color:#f0b90b}
  .vb-kind.o25{background:rgba(22,199,132,.16);color:#16c784}
  .vb-kind.k1x2{background:rgba(168,85,247,.16);color:#a855f7}
  .vb-kind.dc{background:rgba(99,102,241,.16);color:#6366f1}
  .vb-kind.lo25{background:rgba(20,184,166,.16);color:#14b8a6}
  .vb-kind.o15{background:rgba(249,115,22,.16);color:#f97316}
  .vb-league-badge{display:inline-block;font-size:10px;font-weight:700;padding:4px 10px;border-radius:6px;background:var(--badge-dk);color:var(--txt);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis;letter-spacing:.3px;border:1px solid var(--line)}
  .vb-cuota{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:34px;border-radius:8px;background:var(--orange);color:#fff;font-weight:800;font-size:14px;padding:0 10px}
  .vb-res{font-weight:700;font-size:12px}
  .vb-res.win{color:var(--green)}.vb-res.loss{color:var(--red)}.vb-res.void{color:var(--muted)}
  /* ── Pricing ── */
  .founding-banner{background:linear-gradient(90deg,rgba(247,148,29,.18),rgba(247,148,29,.08));border:1px solid rgba(247,148,29,.35);border-radius:12px;margin:16px 16px 0;padding:14px 18px;display:flex;align-items:center;gap:10px}
  .founding-banner span{font-size:13px;color:var(--txt);line-height:1.5}
  .pricing-hero{text-align:center;padding:28px 20px 16px}
  .pricing-hero h2{font-size:28px;font-weight:900;margin-bottom:6px}
  .pricing-hero p{color:var(--muted);font-size:13px;margin-bottom:0}
  .pricing-grid{display:flex;flex-direction:column;gap:18px;max-width:1100px;margin:20px auto 32px;padding:0 16px}
  .price-cards-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  @media(max-width:900px){.price-cards-row{grid-template-columns:1fr 1fr}}
  @media(max-width:700px){.pricing-grid{padding:0 12px}.price-cards-row{grid-template-columns:1fr}}
  .periodo-toggle{display:flex;justify-content:center;gap:6px;background:var(--panel2);border-radius:12px;padding:4px;margin:0 auto;width:fit-content}
  .periodo-btn{border:none;background:none;color:var(--muted);font-size:12px;font-weight:700;padding:8px 16px;border-radius:9px;cursor:pointer;white-space:nowrap}
  .periodo-btn.on{background:var(--orange);color:#0a0f18}
  .periodo-ahorro{font-size:10px;font-weight:700;opacity:.85}
  .price-old{font-size:12px;color:var(--muted);margin-bottom:8px}
  .price-old s{opacity:.75}
  /* Lo que se cobra de verdad: debe leerse ANTES de ir a la pasarela */
  .price-total{font-size:12px;color:var(--txt);margin:6px 0 2px}
  .price-total b{font-weight:800}
  .price-save{font-size:11.5px;color:var(--green);font-weight:700;margin-bottom:6px}
  .price-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px 20px;text-align:center;position:relative;transition:border-color .2s;display:flex;flex-direction:column}
  .price-card:hover{border-color:rgba(247,148,29,.5)}
  .price-card.featured{border-color:var(--orange);border-width:2px}
  .pc-badge{display:inline-block;font-size:10px;font-weight:800;padding:3px 12px;border-radius:10px;letter-spacing:.5px;margin-bottom:10px;background:var(--orange);color:#0a0f18}
  .pc-badge.green{background:var(--green);color:#0a0f18}
  .price-card h3{font-size:17px;font-weight:800;margin-bottom:4px}
  .price-card .price-desc{font-size:12px;color:var(--muted);margin-bottom:14px;min-height:28px}
  .price-card .price-amt{font-size:36px;font-weight:900;line-height:1;margin-bottom:2px}
  .price-card .price-amt small{font-size:15px;font-weight:600;color:var(--muted)}
  .pc-trial{font-size:12px;color:var(--green);font-weight:700;margin-bottom:4px}
  .price-card .price-cycle{font-size:11px;color:var(--muted);margin-bottom:16px}
  .price-card .price-features{list-style:none;text-align:left;margin-bottom:20px;flex:1}
  .price-card .price-features li{font-size:12px;color:var(--muted);padding:5px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:7px}
  .price-card .price-features li::before{content:'✓';color:var(--green);font-weight:700;font-size:13px;flex-shrink:0}
  .price-card .price-features li.no::before{content:'✗';color:var(--red)}
  .price-card .price-features li.no{opacity:.85;color:var(--txt)}
  .price-btn{display:block;width:100%;padding:12px;border-radius:10px;border:0;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .2s;margin-top:auto}
  .price-btn:hover{opacity:.85}
  .price-btn.primary{background:var(--orange);color:#0a0f18}
  .price-btn.secondary{background:var(--panel2);color:var(--txt);border:1px solid var(--line)}
  .price-btn.current{background:rgba(22,199,132,.15);color:var(--green);border:1px solid rgba(22,199,132,.3);cursor:default}
  .price-btn.upgrade{background:linear-gradient(135deg,#7c5cff,var(--orange));color:#fff}
  .pricing-manage-box{max-width:600px;margin:0 auto 32px;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:16px}
  .pricing-manage-box h4{font-size:14px;font-weight:800;margin-bottom:12px;color:var(--txt)}
  .pricing-manage-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
  .pricing-login-box{max-width:400px;margin:0 auto 32px;padding:28px 20px;background:var(--panel);border:1px solid var(--line);border-radius:16px;text-align:center}
  .toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:var(--green);color:#fff;padding:14px 28px;border-radius:12px;font-weight:700;font-size:14px;z-index:999;animation:toastIn .3s ease}
  @keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(-20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
  /* ── Footer ── */
  .site-footer{margin-top:56px;border-top:1px solid var(--line);padding:40px 0 24px}
  .sf-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;margin-bottom:32px}
  .sf-brand{display:flex;flex-direction:column;align-items:flex-start;gap:18px;max-width:420px;flex:1 1 320px}
  .sf-logo-img{height:52px;width:auto}
  .sf-desc{font-size:14px;color:var(--muted);line-height:1.7}
  .sf-socials{display:flex;gap:12px;flex-wrap:wrap}
  .sf-btn{display:inline-flex;align-items:center;gap:9px;padding:11px 22px;border-radius:10px;font-size:14px;font-weight:700;text-decoration:none;transition:opacity .15s,transform .05s}
  .sf-btn:hover{opacity:.85}
  .sf-btn:active{transform:translateY(1px)}
  .sf-nav{display:flex;gap:48px;flex-wrap:wrap}
  .sf-col h4{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
  .sf-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
  .sf-col a{color:var(--txt);opacity:.82;text-decoration:none;font-size:14px;cursor:pointer}
  .sf-col a:hover{color:var(--orange);opacity:1}
  .sf-tg{background:#0088cc;color:#fff}
  .sf-x{background:var(--panel2);color:var(--txt);border:1px solid var(--line)}
  .ft-legal{border-top:1px solid var(--line);padding-top:20px;margin-bottom:20px;font-size:12px;color:var(--muted);line-height:1.7}
  .ft-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
  .ft-bottom a{color:var(--muted);text-decoration:none}.ft-bottom a:hover{color:var(--orange)}
  .ft-bottom .ft-rg{display:flex;align-items:center;gap:16px}
  .ft-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  .ft-bottom .ft-18{font-weight:800;color:var(--txt)}
  /* ── Stats strip ── */

  /* ── Estadísticas tab ── */
  .stat-kpi-row{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:12px}
  .stat-kpi{background:var(--panel2);border-radius:8px;padding:9px 10px}
  .stat-kpi-lbl{font-size:10px;color:var(--muted);margin-bottom:3px}
  .stat-kpi-vals{display:flex;align-items:baseline;gap:5px;font-size:15px;font-weight:700}
  .stat-kpi-sep{font-size:10px;color:var(--muted);font-weight:400}
  .stat-sec-hdr{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 0 3px;border-bottom:1px solid var(--line);margin-bottom:2px;margin-top:8px}
  .stat-cmp{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid var(--line)}
  .stat-cmp:last-child{border-bottom:none}
  .stat-val{font-weight:700;font-size:13px;color:var(--muted)}
  .stat-val.h{color:#2ca5e0}
  .stat-val.a{color:var(--orange)}
  .stat-mid{display:flex;flex-direction:column;gap:3px;align-items:center}
  .stat-bar-wrap{width:100%;display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--panel2)}
  .stat-bar-h{background:#2ca5e0;border-radius:3px 0 0 3px;transition:width .4s}
  .stat-bar-a{background:var(--orange);border-radius:0 3px 3px 0;transition:width .4s}
  .stat-lbl{font-size:10px;color:var(--muted);text-align:center}

  /* ── Comparador de equipos (estilo StatsHub) ── */
  .cmp-wrap{display:flex;flex-direction:column;gap:14px}
  .cmp-toolbar{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:10px}
  .cmp-stat-select{display:flex;gap:6px;flex-wrap:wrap}
  .cmp-stat-btn{background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:11.5px;font-weight:600;padding:6px 11px;border-radius:20px;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}
  .cmp-stat-btn.on{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg))}
  .cmp-stat-btn:disabled{opacity:.35;cursor:not-allowed}
  .cmp-filters-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
  .cmp-pill-group{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:2px;gap:2px}
  .cmp-pill{background:transparent;border:none;color:var(--muted);font-size:11px;font-weight:600;padding:5px 10px;border-radius:16px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
  .cmp-pill.on{background:var(--accent);color:#0a0a0c}
  .cmp-pill:disabled{opacity:.3;cursor:not-allowed}
  .cmp-pill-sm .cmp-pill,.cmp-card-ctrls .cmp-pill{font-size:10.5px;padding:4px 8px}
  .cmp-stepper{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:3px 4px}
  .cmp-stepper button{background:var(--panel2);border:none;color:var(--txt);width:22px;height:22px;border-radius:50%;font-size:14px;font-weight:700;cursor:pointer;line-height:1}
  .cmp-stepper span{font-size:12px;font-weight:700;color:var(--txt);min-width:28px;text-align:center}
  .cmp-aviso{background:rgba(240,185,11,.08);border:1px solid rgba(240,185,11,.28);border-radius:8px;padding:10px 12px;font-size:11px;line-height:1.5;color:var(--txt)}
  /* Una tarjeta debajo de otra, a todo el ancho — no lado a lado: con dos
     columnas los chips salían diminutos. Full-width deja sitio para escudo +
     valor + marcador sin apretar. */
  .cmp-cards{display:flex;flex-direction:column;gap:16px}
  .cmp-card{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}
  .cmp-card-hdr{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:700;color:var(--txt)}
  .cmp-card-hdr img{width:28px;height:28px;object-fit:contain}
  .cmp-card-ctrls{display:flex;flex-wrap:wrap;gap:6px}
  .cmp-pct{font-size:42px;font-weight:800;text-align:center;line-height:1;margin-top:4px}
  .cmp-pct-sub{font-size:12.5px;color:var(--muted);text-align:center;margin-bottom:4px}
  /* 5 partidos por línea a propósito (pedido explícito) — fijo, no auto-fill,
     para que no varíe según el ancho disponible. */
  .cmp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
  .cmp-chip{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 4px;text-align:center;cursor:default}
  .cmp-chip.ok{border-color:rgba(22,199,132,.4);background:rgba(22,199,132,.08)}
  .cmp-chip.no{border-color:rgba(234,57,67,.4);background:rgba(234,57,67,.08)}
  .cmp-chip-escudos{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:2px}
  .cmp-chip-escudos img{width:18px;height:18px;object-fit:contain}
  .cmp-chip-noesc{width:18px;height:18px}
  .cmp-chip-top{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}
  .cmp-chip-val{font-size:19px;font-weight:800;color:var(--txt);margin:4px 0}
  .cmp-chip-ico{font-size:11px}
  .cmp-chip.ok .cmp-chip-ico{color:#16c784}
  .cmp-chip.no .cmp-chip-ico{color:#ea3943}

  /* ── Goleadores sidebar ── */
  .gol-widget{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:12px}
  .gol-title{font-size:13px;font-weight:700;color:var(--orange);margin-bottom:10px;display:flex;align-items:center;gap:6px}
  .gol-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);font-size:12px}
  .gol-row:last-child{border-bottom:none}
  .gol-pos{width:18px;text-align:center;font-weight:700;color:var(--muted);font-size:11px}
  .gol-foto{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--panel2);flex-shrink:0}
  .gol-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0}
  .picks-hoy-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
  .picks-hoy-row{padding:7px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:opacity .15s}
  .picks-hoy-row:last-child{border-bottom:none}
  .picks-hoy-row:hover{opacity:.75}
  .phr-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
  .phr-conf{font-size:15px;font-weight:800;color:var(--green)}
  .phr-time{font-size:10px;color:var(--muted)}
  .phr-match{font-size:11.5px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .phr-pick{font-size:11px;color:var(--orange);font-weight:600}
  .cal-no-disponible{text-align:center;padding:60px 24px;color:var(--muted)}
  .cal-no-disponible .cnd-icon{font-size:40px;margin-bottom:12px}
  .cal-no-disponible h3{color:var(--txt);font-size:16px;margin-bottom:8px}
  .cal-no-disponible p{font-size:12px;line-height:1.6}
  .gol-info{flex:1;min-width:0}
  .gol-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .gol-team{font-size:10px;color:var(--muted)}
  .gol-count{font-weight:800;font-size:15px;color:var(--green)}

  /* ── Jugadores tab ── */
  .jug-section{margin-bottom:16px}
  .jug-team-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--line)}
  .jug-team-logo{width:24px;height:24px}
  .jug-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .jug-card{background:var(--panel2);border-radius:6px;padding:8px;display:flex;align-items:center;gap:8px;font-size:11px}
  .jug-card.titular{border-left:3px solid var(--green)}
  .jug-card.suplente{border-left:3px solid var(--muted);opacity:.7}
  .jug-foto{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--panel)}
  .jug-name{font-weight:600;font-size:12px}
  .jug-pos{font-size:10px;color:var(--muted)}
  .jug-dorsal{font-size:10px;color:var(--orange);font-weight:700}
  @media(max-width:600px){.jug-grid{grid-template-columns:1fr}}
  /* ═══ FICHA INLINE SPLIT LAYOUT ═══ */
  .ficha-inline-layout{display:none;grid-template-columns:270px 1fr;height:calc(100vh - 110px);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);margin-top:8px}
  .fil-sidebar{overflow-y:auto;border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}
  .fil-sidebar-h{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;background:var(--panel);position:sticky;top:0;z-index:2}
  .fil-back{display:inline-flex;align-items:center;gap:4px;color:var(--muted);cursor:pointer;font-size:12px;padding:4px 9px;border-radius:6px;border:1px solid var(--line);background:var(--bg);white-space:nowrap}
  .fil-back:hover{color:var(--txt);border-color:var(--muted)}
  .fil-match-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
  .fil-match-item:hover{background:var(--panel2)}
  .fil-match-item.active{background:var(--orange-soft);border-left:3px solid var(--orange)}
  .fil-match-time{color:var(--muted);font-size:11px;min-width:38px;font-weight:600;text-align:center}
  .fil-match-teams{flex:1;min-width:0}
  .fil-match-name{font-weight:600;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fil-match-league{color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
  .fil-match-score{font-weight:700;font-size:12px;color:var(--green);min-width:32px;text-align:right;white-space:nowrap}
  .fil-detail{overflow-y:auto;background:var(--panel2);display:flex;flex-direction:column;min-width:0}
  .breadcrumb{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted);padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:2;flex-shrink:0}
  .breadcrumb .bc-link{cursor:pointer}.breadcrumb .bc-link:hover{color:var(--txt)}
  .breadcrumb .bc-cur{color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* ═══ LAZY AI GENERATION ═══ */
  .ai-gen-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 20px;background:var(--bg);border-radius:10px;border:1px dashed var(--line);text-align:center;margin:8px 0}
  .ai-gen-icon{font-size:36px}
  .ai-gen-desc{color:var(--muted);font-size:13px;line-height:1.5;max-width:300px}
  .ai-gen-cta{background:linear-gradient(90deg,var(--orange),#ff7e0a);color:#fff;font-weight:700;padding:10px 24px;border-radius:8px;border:0;cursor:pointer;font-size:13px;transition:transform .15s,box-shadow .15s}
  .ai-gen-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(247,148,29,.35)}
  .ai-gen-cta:disabled{opacity:.6;cursor:not-allowed;transform:none}
  /* ═══ Generación IA en vivo: spinner + pasos + barra de progreso ═══ */
  .ai-gen-spinner{width:44px;height:44px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--orange);animation:aiSpin .9s linear infinite}
  @keyframes aiSpin{to{transform:rotate(360deg)}}
  .ai-gen-step{color:var(--txt);font-size:13.5px;font-weight:600;min-height:18px;animation:aiStepIn .35s ease-out}
  @keyframes aiStepIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
  .ai-gen-bar{width:220px;height:4px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:2px}
  .ai-gen-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--orange),#ff7e0a);transition:width 1s ease-out;width:4%}
  .ai-gen-wrap.done .ai-gen-spinner{border-top-color:#16c784;animation:none;border-color:#16c784}
  .ficha-fade-in{animation:fichaFadeIn .4s ease-out}
  @keyframes fichaFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
  .ai-gen-lock{background:var(--panel);border:1px solid var(--line);color:var(--muted);padding:10px 24px;border-radius:8px;font-size:13px;cursor:not-allowed;opacity:.6}
  /* ═══ ANÁLISIS VISUAL (ProBettingHub style) ═══ */
  .mi-ia-header{background:linear-gradient(135deg,rgba(247,148,29,.08),transparent 70%);border:1px solid rgba(247,148,29,.2);border-radius:12px;padding:14px 16px;margin-bottom:10px}
  .mi-ia-toprow{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .mi-ia-badge{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:var(--orange);text-transform:uppercase;letter-spacing:.05em}
  .mi-ia-ai-tag{background:rgba(22,199,132,.12);color:var(--green);font-size:10px;padding:2px 8px;border-radius:8px;font-weight:700;letter-spacing:0}
  .mi-ia-updated{font-size:10px;color:var(--muted)}
  .mi-ia-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
  .mi-chip{font-size:10px;padding:3px 9px;border-radius:12px;border:1px solid var(--line);color:var(--muted);background:var(--panel)}
  .mi-chip.accent{border-color:rgba(247,148,29,.4);color:var(--orange);background:rgba(247,148,29,.08)}
  .mi-veredicto{font-size:13px;color:var(--txt);line-height:1.65;margin:10px 0 0}
  /* Motivación */
  .motiv-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
  .motiv-card{background:var(--panel2);border-radius:9px;padding:10px 12px}
  .motiv-card.loc{border-left:3px solid var(--orange)}
  .motiv-card.vis{border-left:3px solid #2ca5e0}
  .motiv-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}
  .motiv-title.loc{color:var(--orange)}.motiv-title.vis{color:#2ca5e0}
  .motiv-lvl{font-size:9px;padding:2px 7px;border-radius:8px;font-weight:700;letter-spacing:.02em}
  .motiv-lvl.alta{background:rgba(22,199,132,.15);color:var(--green)}
  .motiv-lvl.media{background:rgba(247,148,29,.15);color:var(--orange)}
  .motiv-lvl.baja{background:rgba(234,57,67,.15);color:var(--red)}
  .motiv-text{font-size:11.5px;color:var(--muted);line-height:1.55}
  .tact-card{background:var(--panel2);border-radius:9px;padding:12px;margin-top:8px}
  .tact-card-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--txt);margin-bottom:7px;display:flex;align-items:center;gap:5px}
  @media(max-width:900px){.ficha-inline-layout{grid-template-columns:1fr;height:auto}.fil-sidebar{display:none}.motiv-grid{grid-template-columns:1fr}}
  @media(max-width:700px){.motiv-grid{grid-template-columns:1fr}}
  .fil-mobile-back{display:none;align-items:center;gap:6px;padding:11px 16px;background:var(--panel);border-bottom:1px solid var(--line);cursor:pointer;color:var(--orange);font-size:13px;font-weight:700;position:sticky;top:0;z-index:3;flex-shrink:0;-webkit-tap-highlight-color:transparent}
  .fil-mobile-back:active{background:var(--orange-soft)}
  @media(max-width:900px){.fil-mobile-back{display:flex}}
  /* ── Noticias ── */
  .nv-new{background:#e53935;color:#fff;font-size:8px;font-weight:800;padding:1px 5px;border-radius:6px;margin-left:4px;vertical-align:super}
  #noticiasView{max-width:1200px;margin:0 auto;padding:18px 16px 40px}
  .news-head h2{font-size:26px;margin:6px 0 8px}
  .news-head p{color:var(--muted);font-size:13px;margin:0 0 14px;max-width:640px}
  .news-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
  /* Paginador del archivo de noticias */
  .news-pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
    margin:26px 0 8px;padding-top:20px;border-top:1px solid var(--line)}
  .npg-nums{display:flex;gap:6px;flex-wrap:wrap}
  .npg-btn{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:9px;
    padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}
  .npg-btn:hover:not(:disabled){background:rgba(247,148,29,.12);border-color:var(--orange)}
  .npg-btn.active{background:var(--orange);border-color:var(--orange);color:#111;cursor:default}
  .npg-btn:disabled{opacity:.35;cursor:default}
  .npg-dots{color:var(--muted);align-self:center;padding:0 2px}
  .npg-info{flex-basis:100%;text-align:center;color:var(--muted);font-size:12px;margin-top:4px}
  @media(max-width:600px){.npg-btn{padding:7px 11px;font-size:12px}}
  .news-cat{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--orange)}
  .news-hero{display:grid;grid-template-columns:1fr 1fr;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;margin-bottom:18px}
  .news-hero img{width:100%;height:100%;min-height:220px;object-fit:cover;background:rgba(255,255,255,.02)}
  .news-hero .nh-body{padding:22px}
  .news-hero h3{font-size:20px;margin:8px 0;line-height:1.3}
  .news-hero p{color:var(--muted);font-size:13px;line-height:1.5}
  /* grid-auto-flow:dense es lo que evita huecos: cuando una tarjeta grande no
     cabe en la fila actual, el navegador retrocede y rellena con las tarjetas
     normales que vienen después en vez de dejar la celda vacía. */
  .news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-flow:dense;gap:14px}
  .news-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .15s,border-color .15s;display:flex;flex-direction:column}
  .news-card:hover{transform:translateY(-2px);border-color:var(--orange)}
  .news-card img{width:100%;height:150px;object-fit:cover;background:rgba(255,255,255,.02)}
  .news-card .nc-body{padding:12px 14px}
  .news-card h4{font-size:14px;margin:6px 0;line-height:1.35}
  .news-meta{color:var(--muted);font-size:11px;margin-top:6px}
  /* Variedad visual: 2 tamaños extra además del normal, repartidos en un patrón
     fijo (no aleatorio de verdad: así el layout no "salta" entre recargas) que
     evita que las tarjetas grandes cifra siempre en la misma columna. */
  .news-card.size-wide{grid-column:span 2}
  .news-card.size-wide img{height:220px}
  .news-card.size-wide h4{font-size:18px;line-height:1.3}
  .news-card.size-tall img{height:230px}
  .news-card.size-tall h4{font-size:15.5px}
  @media(max-width:700px){.news-card.size-wide{grid-column:span 1}}
  .news-article-wrap{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:minmax(0,760px) minmax(320px,1fr);gap:24px;align-items:start}
  .news-article{max-width:none;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:0 0 26px;overflow:hidden}
  .news-sidebar{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;position:sticky;top:16px}
  .news-sidebar h5{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 16px;font-weight:800}
  .ns-item{cursor:pointer;margin-bottom:18px}
  .ns-item:last-child{margin-bottom:0}
  .ns-item img{width:100%;height:130px;object-fit:cover;border-radius:9px;background:rgba(255,255,255,.02);margin-bottom:9px}
  .ns-item h6{font-size:13.5px;line-height:1.35;margin:0 0 4px;font-weight:700;color:var(--txt)}
  .ns-item:hover h6{color:var(--orange)}
  @media(max-width:900px){.news-article-wrap{grid-template-columns:1fr}.news-sidebar{position:static}.ns-item{display:flex;gap:10px}.ns-item img{width:90px;height:70px;margin-bottom:0;flex-shrink:0}}
  .na-hero{width:100%;max-height:380px;object-fit:cover;display:block}
  .na-imgcaption{font-size:11px;color:var(--muted);text-align:right;padding:6px 16px 0;font-style:italic;opacity:.75}
  .na-inner{padding:20px 28px 0}
  .news-article h1{font-size:26px;line-height:1.25;margin:8px 0 6px;letter-spacing:-.01em}
  .news-article .na-body{line-height:1.75;font-size:14.5px;margin-top:14px}
  .news-article .na-body>p:first-of-type{font-size:16px;color:var(--txt);font-weight:500}
  .news-article .na-body h2{color:var(--txt);font-size:17px;margin:26px 0 10px;padding-left:12px;border-left:3px solid var(--orange)}
  .news-article .na-body ul{list-style:none;padding:0;display:grid;gap:8px;margin:14px 0}
  .news-article .na-body ul li{background:var(--orange-soft,rgba(247,148,29,.07));border:1px solid rgba(247,148,29,.2);border-radius:10px;padding:11px 14px 11px 36px;position:relative}
  .news-article .na-body ul li::before{content:'▸';color:var(--orange);position:absolute;left:15px;top:10px;font-weight:800}
  /* Panel de probabilidades del partido */
  .na-stats{background:var(--panel2,rgba(255,255,255,.03));border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:18px 0}
  .na-stats-head{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;font-size:14px;margin-bottom:12px}
  .na-stats-head img{width:26px;height:26px;object-fit:contain}
  .na-stats-tag{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--orange);text-align:center;margin-bottom:10px}
  .pb-row{display:flex;align-items:center;gap:10px;margin:7px 0}
  .pb-lbl{width:110px;font-size:12px;color:var(--muted);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pb-track{flex:1;height:14px;background:rgba(255,255,255,.06);border-radius:7px;overflow:hidden}
  .pb-fill{height:100%;border-radius:7px;transition:width .8s cubic-bezier(.2,.8,.2,1)}
  .pb-h{background:linear-gradient(90deg,#f7941d,#ffb340)}
  .pb-e{background:linear-gradient(90deg,#5a6272,#7e8aa0)}
  .pb-a{background:linear-gradient(90deg,#0088cc,#00a6ed)}
  .pb-val{width:46px;font-size:12px;font-weight:800}
  .na-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
  .na-chip{background:rgba(22,199,132,.1);border:1px solid rgba(22,199,132,.25);color:var(--green,#16c784);font-size:11.5px;font-weight:700;padding:5px 11px;border-radius:99px}
  .na-scores{display:flex;gap:8px;margin-top:10px;justify-content:center}
  .na-score{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:800}
  .na-score small{display:block;font-weight:600;color:var(--muted);font-size:10px;text-align:center}
  .na-ficha{display:block;text-align:center;margin-top:14px;color:var(--orange);font-size:13px;font-weight:800;text-decoration:none;cursor:pointer}
  .news-back{color:var(--orange);font-size:13px;font-weight:700;cursor:pointer;margin-bottom:10px;display:inline-block}
  .na-share{margin-top:18px;display:flex;gap:14px}
  .na-share a{color:var(--orange);font-size:13px;font-weight:700;text-decoration:none}
  @media(max-width:760px){.news-hero{grid-template-columns:1fr}.news-article{padding:18px}}

  /* ═══════════════ PULIDO PRO: profundidad, iconos SVG, animaciones y widgets nuevos ═══════════════ */
  :root{--shadow-1:0 1px 2px rgba(0,0,0,.28),0 10px 28px -16px rgba(0,0,0,.55);--glow-orange:0 0 24px rgba(247,148,29,.16)}
  html[data-theme="light"]{--shadow-1:0 1px 2px rgba(16,24,40,.05),0 8px 22px -14px rgba(16,24,40,.12);--glow-orange:0 0 24px rgba(224,124,0,.14)}
  body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
    background:radial-gradient(900px 420px at 50% -160px,rgba(247,148,29,.075),transparent 65%)}
  .panel,.kpi,.side-card,.price-card,.month,.news-card,.picks-hoy-card,.gol-widget,.pcard,.pcard2,.tp-card{box-shadow:var(--shadow-1)}
  .price-card.featured{box-shadow:var(--shadow-1),var(--glow-orange)}
  .btn-cta{box-shadow:0 4px 14px rgba(247,148,29,.28)}
  .side-promo{box-shadow:var(--shadow-1),var(--glow-orange)}
  /* Iconos SVG inline (sustituyen emojis en el chrome de la UI) */
  .ic{width:1.05em;height:1.05em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:-.14em;flex:none}
  .ic-fill{fill:currentColor;stroke:none}
  .ic-or{color:var(--orange)}
  /* Toggle de tema con morph sol/luna */
  .theme-btn{position:relative;overflow:hidden}
  .theme-btn .tb-i{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}
  .theme-btn .tb-moon{transform:translateY(130%) rotate(-90deg);opacity:0}
  html[data-theme="light"] .theme-btn .tb-sun{transform:translateY(-130%) rotate(90deg);opacity:0}
  html[data-theme="light"] .theme-btn .tb-moon{transform:none;opacity:1}
  #bellBtn.on{color:var(--orange);border-color:rgba(247,148,29,.5);background:var(--orange-soft)}
  /* Transición entre pestañas */
  @keyframes tabIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .tab-anim{animation:tabIn .22s ease-out}
  /* Entrada escalonada de bloques de liga */
  @keyframes calIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .cal-liga{animation:calIn .32s ease-out both}
  .cal-liga:nth-of-type(2){animation-delay:.04s}.cal-liga:nth-of-type(3){animation-delay:.08s}
  .cal-liga:nth-of-type(4){animation-delay:.12s}.cal-liga:nth-of-type(5){animation-delay:.16s}
  .cal-liga:nth-of-type(6){animation-delay:.20s}.cal-liga:nth-of-type(n+7){animation-delay:.24s}
  /* Filas sin cuotas/mercado/IA: atenuadas y sin cajas vacías de guiones */
  .cal-row-bare{opacity:.55;transition:opacity .15s}
  .cal-row-bare:hover{opacity:.9}
  .cal-row-bare .cal-odds-empty span{opacity:0}
  /* Flash verde al gol */
  @keyframes goalFlash{0%{background:rgba(22,199,132,.35)}60%{background:rgba(22,199,132,.14)}100%{background:transparent}}
  .cal-row.goal-flash{animation:goalFlash 1.8s ease-out}
  /* Skeleton de filas (calendario / historial) */
  .skel-row{height:52px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;margin-bottom:8px;position:relative;overflow:hidden}
  .skel-row::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.045),transparent);animation:shimmer 1.4s linear infinite}
  .skel-cal{padding:14px 0}
  /* ── Ticker de partidos en vivo ── */
  .lticker{display:none;align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;overflow:hidden;height:36px;box-shadow:var(--shadow-1)}
  .lticker.show{display:flex}
  .lt-lbl{flex:none;display:flex;align-items:center;gap:7px;background:rgba(234,57,67,.12);color:#ea3943;font-size:10px;font-weight:800;letter-spacing:.07em;padding:0 13px;border-right:1px solid var(--line);white-space:nowrap}
  .lt-lbl .dot{width:7px;height:7px;border-radius:50%;background:#ea3943;animation:liveBlink 1.4s ease-in-out infinite}
  .lt-viewport{flex:1;overflow:hidden;position:relative}
  /* El desplazamiento lo mueve JS (requestAnimationFrame): así funciona aunque el
     usuario tenga "reduce motion" activado — un ticker de resultados es informativo,
     no decorativo — y no se reinicia al refrescar los marcadores cada 90s. */
  .lt-track{display:flex;align-items:center;height:100%;gap:30px;width:max-content;padding:0 15px;will-change:transform}
  .lt-item{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);cursor:pointer;white-space:nowrap;transition:color .15s}
  .lt-item:hover{color:var(--txt)}
  .lt-min{color:var(--orange);font-weight:800;font-size:11px;font-variant-numeric:tabular-nums}
  .lt-sc{color:var(--txt);font-weight:800;font-variant-numeric:tabular-nums}
  /* ── Pick del día (hero del calendario) ── */
  .pdd{position:relative;display:flex;align-items:center;gap:18px;background:linear-gradient(120deg,rgba(247,148,29,.10),var(--panel) 58%);border:1px solid rgba(247,148,29,.35);border-radius:14px;padding:18px;margin:12px 0 4px;cursor:pointer;box-shadow:var(--shadow-1);transition:border-color .2s,box-shadow .2s}
  .pdd:hover{border-color:var(--orange);box-shadow:var(--shadow-1),var(--glow-orange)}
  .pdd-tag{position:absolute;top:0;left:18px;background:var(--orange);color:#0a0f18;font-size:9px;font-weight:800;letter-spacing:.08em;padding:3px 11px;border-radius:0 0 8px 8px}
  .pdd-ring{flex:none;width:62px;height:62px;position:relative;display:flex;align-items:center;justify-content:center}
  .pdd-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
  .pdd-ring b{font-size:16px;font-weight:900}
  .pdd-ring small{position:absolute;bottom:8px;font-size:7.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
  .pdd-mid{flex:1;min-width:0;padding-top:6px}
  .pdd-meta{font-size:11px;color:var(--muted);margin-bottom:5px}
  .pdd-match{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;flex-wrap:wrap}
  .pdd-match img{width:24px;height:24px;object-fit:contain;border-radius:4px;background:var(--logo-bg)}
  .pdd-vs{color:var(--muted);font-size:11px;font-weight:600}
  .pdd-pick{display:inline-flex;align-items:center;gap:7px;margin-top:8px;background:var(--orange-soft);color:var(--orange);font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:8px}
  .pdd-cta{flex:none;background:var(--orange);color:#0a0f18;font-size:13px;font-weight:800;padding:11px 20px;border-radius:10px;white-space:nowrap;box-shadow:0 4px 14px rgba(247,148,29,.28)}
  @media(max-width:760px){.pdd{flex-wrap:wrap;gap:12px;padding:16px 14px}.pdd-cta{width:100%;text-align:center}}
  /* ── Buscador global (Ctrl+K) ── */
  .spal-ov{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:400;display:none;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
  .spal-ov.show{display:flex}
  .spal{width:580px;max-width:100%;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.55);overflow:hidden;animation:tabIn .18s ease-out}
  .spal-in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);color:var(--muted)}
  .spal-in input{flex:1;background:none;border:0;outline:none;color:var(--txt);font-size:15px;font-family:inherit}
  .spal-kbd{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:1px 6px;white-space:nowrap}
  .spal-res{max-height:46vh;overflow-y:auto;padding:6px}
  .spal-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:13px}
  .spal-item:hover,.spal-item.sel{background:var(--panel2)}
  .spal-hora{color:var(--muted);font-size:11px;min-width:40px;font-variant-numeric:tabular-nums}
  .spal-t{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .spal-lg{color:var(--muted);font-size:11px;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}
  /* Emoji del deporte en los resultados que NO son de fútbol: avisa de que al
     pulsar te vas a /deportes, no a una ficha de esta página. */
  .spal-dep{margin-right:5px;font-size:12px}
  .spal-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px}
  /* ── Calculadora de stake ── */
  .calc-row{display:flex;gap:6px}
  .calc-f{flex:1;min-width:0}
  .calc-f label{display:block;font-size:9.5px;color:var(--muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
  .calc-f input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:7px;color:var(--txt);padding:7px 8px;font-size:13px;font-family:inherit}
  .calc-f input:focus{outline:none;border-color:var(--orange)}
  .calc-out{display:flex;gap:6px;margin-top:9px}
  .calc-box{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 6px;text-align:center}
  .calc-box b{display:block;font-size:15px;font-weight:800}
  .calc-box span{font-size:9.5px;color:var(--muted)}
  .calc-note{font-size:10px;color:var(--muted);margin-top:7px;line-height:1.45}
  /* Accesibilidad: respetar reduced motion */
  @media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  }
  /* Navegación por teclado: anillo de foco consistente, invisible para clics de
     ratón (:focus-visible solo dispara con teclado en navegadores modernos). */
  :focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}

  /* ═══════════════ CAPA MÓVIL TIPO APP (≤768px — no afecta al escritorio) ═══════════════ */
  .mbnav{display:none}
  @media(max-width:768px){
    html{-webkit-text-size-adjust:100%}
    body{padding:10px 12px calc(78px + env(safe-area-inset-bottom));max-width:100%}
    button,a,.chip,.pf-chip{-webkit-tap-highlight-color:transparent;touch-action:manipulation}

    /* Header compacto: el nav pasa a la barra inferior. Fila 1: logo +
       idioma/buscar/tema/perfil; fila 2: chips de deporte de lado a lado
       (mismo patrón que deportes.html; el .top sticky las deja fijas). */
    .top{padding:8px 0 0;flex-wrap:wrap;row-gap:8px;gap:8px 10px}
    .top-left{display:contents}
    .brand{order:1}
    .brand-div{display:none}
    .sub-toggle{display:none}
    .util-toggle{display:none}
    .brand-logo{height:38px}
    /* Cabecera de una sola fila junto al logo, con el BUSCADOR dentro.
       Antes login y CTA no cabían y bajaban a un renglón propio, y el buscador
       se ocultaba del todo por debajo de 560px — o sea que la función estaba
       muerta justo en el tamaño de pantalla que usa la mayoría. Cuentas a
       414px: logo 95 + tres iconos de 32 + login 62 + CTA 78 + huecos = 373 de
       los 390 disponibles. Cabe, y por eso los iconos bajan a 32 y el CTA dice
       "Únete gratis" en vez de "Comenzar Gratis". */
    .top-right{order:2;margin-left:auto;gap:5px}
    /* El hueco entre "Entrar" y el CTA: 12px sobraban y eran justo los que
       empujaban la fila a 391px cuando el sitio son 390 — un píxel decidía si la
       cabecera iba en una línea o en dos. */
    .auth-out{gap:6px}
    .top-right .theme-btn{width:32px;height:32px;font-size:13px}
    .top-right .theme-btn .ic{width:17px;height:17px}
    #searchBtn{display:flex}
    .sport-toggle{order:3;flex:1 0 100%;width:calc(100% + 24px);max-width:none;
      margin:0 -12px -1px;border-radius:0;border-left:none;border-right:none;
      -webkit-overflow-scrolling:touch;scrollbar-width:none}
    .sport-toggle::-webkit-scrollbar{display:none}
    /* Con `#headerAuthOut` delante a propósito: la regla base de la cabecera
       (`#headerAuthOut .btn-cta`, id + clase) gana a cualquier `.btn-cta` suelto
       por especificidad, aunque esté dentro de un media query. Sin el id, esto
       no se aplicaba y el CTA seguía midiendo 116px en móvil. */
    #headerAuthOut .btn-cta{font-size:12px;padding:8px 12px}
    #headerAuthOut .btn-login{font-size:12px;padding:8px 2px}
    .btn-cta{font-size:12px;padding:8px 12px}
    .btn-cta.upgrade{font-size:11.5px;padding:8px 11px}
    .btn-login{font-size:12px;padding:8px 2px}
    .user-dropdown{max-width:calc(100vw - 24px)}

    /* Barra de navegación inferior estilo app */
    .mbnav{position:fixed;left:0;right:0;bottom:0;z-index:120;display:flex;justify-content:space-around;align-items:stretch;
      background:color-mix(in srgb,var(--panel) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
      border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));
      box-shadow:0 -6px 24px rgba(0,0,0,.35)}
    .mbnav button{flex:1;min-width:0;background:none;border:0;color:var(--muted);cursor:pointer;
      display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px;border-radius:12px;
      font-size:9.5px;font-weight:700;letter-spacing:.02em;position:relative;transition:color .15s}
    .mbnav button svg{width:22px;height:22px;flex:none}
    .mbnav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .mbnav button.on{color:var(--orange)}
    .mbnav button.on::before{content:'';position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--orange)}
    .mbnav button:active{background:var(--panel2)}
    .mbnav .mb-dot{position:absolute;top:3px;right:calc(50% - 15px);width:7px;height:7px;border-radius:50%;background:#e53935}

    /* Táctil y legibilidad (auditoría móvil 19-jul) */
    .cal-nav{min-width:40px;min-height:40px}
    .cal-fav{padding:10px;margin:-10px -5px}
    .side-cta{min-height:42px;display:flex;align-items:center;justify-content:center}
    .pdd-ring small{font-size:9.5px}
    .pdd-tag{font-size:10px}

    /* Alertas: la tabla de resultados pasa a tarjetas apiladas */
    .vb-table thead{display:none}
    .vb-table,.vb-table tbody,.vb-table tr{display:block;width:100%}
    .vb-table tr{padding:11px 14px;border-bottom:1px solid var(--line)}
    .vb-table td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:2px 0;border-bottom:none}
    .vb-table td[data-l]::before{content:attr(data-l);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.03em;flex:none}
    .vb-table td.vb-td-match{font-size:13.5px;padding-bottom:5px}

    /* Banners y filtros: compactos y con scroll horizontal fluido */
    .promo{padding:11px 13px;font-size:12.5px;gap:8px}
    .promo .pbtn{padding:8px 13px;font-size:12px}
    .proof-card{padding:11px 13px}
    .proof-nums{gap:8px 18px;margin:9px 0 5px}
    .proof-n b{font-size:17px}
    .proof-head{font-size:12px}
    .filters{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:7px;padding-bottom:2px}
    .filters::-webkit-scrollbar{display:none}
    .filters .chip{white-space:nowrap;flex:none;padding:9px 14px}
    .canal-pill{flex:none}
    .vtoggle{flex:none}
    .vtoggle button{padding:9px 14px}

    /* Filtros de Partidos/Tendencias: filas deslizables tipo app */
    .pf-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:10px 0;gap:7px}
    .pf-bar::-webkit-scrollbar{display:none}
    .pf-bar .pf-label,.pf-bar .pf-group,.pf-bar .pf-select{flex:none}
    .pf-chip{padding:8px 14px;font-size:12.5px}
    .pf-select{padding:8px 10px;font-size:13px}
    .pf-count{display:none}
    .cal-toolbar,.cal-filtros,.vb-chips,.news-chips,.mkt-tab-nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
    .cal-toolbar::-webkit-scrollbar,.cal-filtros::-webkit-scrollbar,.vb-chips::-webkit-scrollbar,.news-chips::-webkit-scrollbar{display:none}
    .cal-toolbar>*,.cal-filtros>*,.vb-chips>*,.news-chips>*{flex:none}
    .cal-dates button,.cal-filtros button{padding:8px 15px}

    /* Hero + KPIs en formato app */
    .hero{gap:10px;margin-bottom:10px}
    .hpanel{padding:13px 14px}
    .kpis{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
    .kpi{padding:13px 10px;border-radius:12px}
    .kpi .val{font-size:21px}
    .kpi .lbl{font-size:10.5px;margin-bottom:5px}
    .panel{padding:14px;border-radius:12px}

    /* Ficha de partido a pantalla completa (como una app) */
    .ficha-ov{padding:0;align-items:stretch}
    .ficha-modal{width:100%;max-width:100%;max-height:100dvh;min-height:100dvh;border-radius:0;border-left:0;border-right:0;
      padding-top:env(safe-area-inset-top);padding-bottom:calc(86px + env(safe-area-inset-bottom))}
    .fh-close{top:calc(10px + env(safe-area-inset-top));right:12px;font-size:18px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center}
    .mir-hdr{padding:14px 14px 12px}

    /* ValueBOT */
    .vb-hero{padding:20px 18px;border-radius:14px}
    .vb-hero .vb-profit{font-size:40px}
    .vb-hero .vb-kpi{padding:0 16px 0 0;margin:0 16px 0 0}
    .vb-hero .vb-kpi b{font-size:20px}

    /* Suscripción */
    .pricing-hero{padding:20px 14px 10px}
    .pricing-hero h2{font-size:23px}
    .founding-banner{margin:10px 0 0;padding:12px 14px}
    .founding-banner span{font-size:12.5px}
    .price-card{padding:20px 16px}

    /* Noticias */
    #noticiasView{padding:12px 0 24px}
    .news-head h2{font-size:21px}
    .news-hero h3{font-size:17px}
    .na-inner{padding:16px 16px 0}
    .news-article h1{font-size:21px}

    /* Formularios: 16px evita el zoom automático de iOS */
    .reg-field input{font-size:16px;padding:12px}
    .reg-modal{max-width:calc(100vw - 28px)}

    /* Footer compacto */
    .site-footer{margin-top:32px;padding:24px 0 10px}
    .sf-logo-img{height:42px}
    .sf-btn{padding:11px 16px;font-size:13px;flex:1;justify-content:center}
    .sf-socials{width:100%}
    .sf-nav{gap:28px 20px}
    .sf-col{min-width:42%}
    .ft-bottom{flex-direction:column;align-items:flex-start;gap:8px}
    .ft-bottom .ft-rg{flex-wrap:wrap;gap:10px}

    /* El toast no tapa la barra inferior */
    .toast{top:auto;bottom:calc(90px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 32px);text-align:center}
  }
  /* (El bloque que partía la fila en dos líneas con .cal-mkt v1 se retiró: la
     fila móvil ahora es la tabla de escritorio con scroll horizontal — ver el
     media query del calendario en móvil, más arriba.) */
  @media(max-width:560px){
    /* Solo la CAMPANA se va. Antes se iba también el buscador, y eso dejaba sin
       función de búsqueda justo a la mayoría de los usuarios; los avisos de gol
       del navegador, en cambio, apenas se usan en móvil (el sistema ya manda
       notificaciones por Telegram) y son lo que se puede sacrificar. */
    #bellBtn{display:none}
  }
  @media(max-width:420px){
    /* 375px (iPhone SE/mini y medio Android) es donde la cabecera de una fila se
       decide: con el logo a 34px el contenido pedía 375 de los 351 disponibles.
       Bajando el logo a 30 y apretando el CTA cabe con margen — y sigue siendo
       una fila con logo, idioma, buscador, tema, Entrar y el CTA. */
    .brand-logo{height:30px}
    .top-right{gap:4px}
    .top-right .theme-btn{width:30px;height:30px}
    #headerAuthOut .btn-cta{font-size:11.5px;padding:7px 10px}
    .btn-cta{font-size:11.5px;padding:7px 10px}
    .kpi .val{font-size:19px}
    /* Con 8 botones (entró "Buscar") el texto ya no cabe a 10px en pantallas
       estrechas; se compensa apretando la letra y quitando el relleno lateral,
       no ocultando la etiqueta (un nav de solo iconos se entiende peor).
       Medido a 375px: la más larga, "Tendencias", pedía 4px más de los 42 que
       tenía; sin el padding lateral el botón le da los 46 justos. El área táctil
       no baja, que el botón sigue ocupando su 1/8 del ancho. */
    .mbnav button{font-size:9px;letter-spacing:0;padding:5px 0}
    .mbnav button svg{width:20px;height:20px}
  }
  @media(max-width:640px){
    .cmp-stat-btn{font-size:11px;padding:5px 9px}
    .cmp-pct{font-size:32px}
    .cmp-grid{grid-template-columns:repeat(3,1fr)}
  }
