/* CBM Federación — usa los colores del tema si existen (--cbx-*) */
.cbf-next,.cbf-matches,.cbf-table-wrap,.cbf-squad,.cbf-source,.cbf-empty{
  --cbf-bg:var(--cbx-dark,#03150C);--cbf-card:rgba(255,255,255,.04);--cbf-line:rgba(255,255,255,.1);
  --cbf-text:#fff;--cbf-muted:var(--cbx-gray,#A9BCB0);--cbf-accent:var(--cbx-accent,#0A9A3C);
  --cbf-gold:var(--cbx-gold,#D4AF37);--cbf-red:var(--cbx-red,#C8102E);--cbf-us:rgba(10,154,60,.18);
  font-family:'DM Sans',sans-serif;color:var(--cbf-text)
}
.cbf-crest{width:40px;height:40px;object-fit:contain;flex:0 0 auto;border-radius:50%;background:#fff;padding:3px}
.cbf-crest--empty{display:inline-block;width:40px;height:40px;border-radius:50%;background:var(--cbf-line)}
.cbf-empty,.cbf-source{color:var(--cbf-muted);font-size:13px;margin:10px 0 0}
.cbf-source a{color:var(--cbf-muted);text-decoration:underline}

/* Próximo partido */
.cbf-next{text-align:center}
.cbf-next__comp{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--cbf-gold);margin-bottom:18px}
.cbf-next__teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}
.cbf-next__team{display:flex;flex-direction:column;align-items:center;gap:10px;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:16px;line-height:1.2}
.cbf-next__team .cbf-crest{width:76px;height:76px;padding:6px}
.cbf-next__team:where(.is-us){color:#fff}
.cbf-next__team:where(:not(.is-us)){color:#dfe8e2}
.cbf-next__vs{font-family:'Oswald',sans-serif;font-size:22px;color:var(--cbf-gold)}
.cbf-next__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:18px 0 6px;color:var(--cbf-muted);font-size:14px}
.cbf-next__meta span:first-child{color:#fff;font-weight:600}
.cbf-countdown{display:flex;justify-content:center;gap:10px;margin-top:16px}
.cbf-countdown div{min-width:62px;padding:10px 6px;border-radius:10px;background:var(--cbf-card);border:1px solid var(--cbf-line)}
.cbf-countdown b{display:block;font-family:'Oswald',sans-serif;font-size:28px;line-height:1;color:#fff}
.cbf-countdown small{display:block;margin-top:5px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--cbf-muted)}
.cbf-stream{display:inline-block;margin-top:16px;padding:9px 18px;border-radius:999px;background:var(--cbf-red);color:#fff!important;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:13px;letter-spacing:.06em;text-decoration:none}

/* Lista de partidos */
.cbf-matches{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cbf-match{padding:12px 14px;border-radius:12px;background:var(--cbf-card);border:1px solid var(--cbf-line);border-left:4px solid var(--cbf-line)}
.cbf-match.is-win{border-left-color:var(--cbf-accent)}
.cbf-match.is-loss{border-left-color:var(--cbf-red)}
.cbf-match.is-draw{border-left-color:var(--cbf-gold)}
.cbf-match__info{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--cbf-muted);margin-bottom:8px}
.cbf-match__j{font-family:'Oswald',sans-serif;color:var(--cbf-gold);letter-spacing:.05em}
.cbf-match__row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
.cbf-match__team{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:600;line-height:1.2;text-transform:uppercase;color:#dfe8e2}
.cbf-match__team span{overflow:hidden;text-overflow:ellipsis}
.cbf-match__team--home{justify-content:flex-end;text-align:right}
.cbf-match__team:where(.is-us){color:#fff}
.cbf-match__team .cbf-crest{width:32px;height:32px;padding:2px}
.cbf-match__score{min-width:70px;text-align:center;font-family:'Oswald',sans-serif;font-size:20px;color:#fff}
.cbf-match__score i{font-style:normal;color:var(--cbf-muted);margin:0 5px;font-size:15px}
.cbf-match__extra{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;margin-top:8px;font-size:12px;color:var(--cbf-muted)}
.cbf-match__extra a{color:var(--cbf-gold);font-weight:600;text-decoration:none}

/* Clasificación */
.cbf-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cbf-table{width:100%;border-collapse:collapse;font-size:14px;margin:0;background:none!important}
.cbf-table th,.cbf-table td{padding:9px 6px;text-align:center;border:0!important;border-bottom:1px solid var(--cbf-line)!important;background:none!important;color:inherit;white-space:nowrap}
.cbf-table th{font-family:'Oswald',sans-serif;font-weight:500;font-size:12px;letter-spacing:.08em;color:var(--cbf-muted)}
.cbf-table .cbf-team{text-align:left;white-space:normal}
.cbf-table td.cbf-team{display:flex;align-items:center;gap:10px;font-weight:600;text-transform:uppercase;font-size:13px;line-height:1.2}
.cbf-table td.cbf-team .cbf-crest{width:28px;height:28px;padding:2px}
.cbf-table .cbf-pos{width:34px;color:var(--cbf-muted)}
.cbf-table .cbf-pts{font-family:'Oswald',sans-serif;font-size:16px;color:#fff}
.cbf-table tr.is-us td{background:var(--cbf-us)!important;color:#fff}
.cbf-table tr.is-us .cbf-pos{color:var(--cbf-gold);font-weight:700}

/* Plantilla */
.cbf-squad{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}
.cbf-player{text-align:center}
.cbf-player__photo{aspect-ratio:1;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,var(--cbx-navy,#063F25),var(--cbx-dark2,#020E08));display:flex;align-items:center;justify-content:center}
.cbf-player__photo img{width:100%;height:100%;object-fit:cover;display:block}
.cbf-player__ini{font-family:'Oswald',sans-serif;font-size:42px;color:var(--cbf-gold)}
.cbf-player__name{margin-top:8px;font-size:13px;font-weight:600;line-height:1.25}
.cbf-player__role{font-size:12px;color:var(--cbf-muted)}
.cbf-subtitle{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:15px;color:var(--cbx-gold,#D4AF37);margin:34px 0 16px}
.cbf-squad--staff{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}

@media (max-width:600px){
  .cbf-next__team{font-size:13px}
  .cbf-next__team .cbf-crest{width:58px;height:58px}
  .cbf-countdown div{min-width:54px}
  .cbf-countdown b{font-size:22px}
  .cbf-match__team{flex-direction:column;justify-content:flex-start;text-align:center!important;gap:5px;font-size:11px;word-break:normal;overflow-wrap:normal;hyphens:none}
  .cbf-match__team--home{justify-content:flex-start}
  .cbf-match__team--home .cbf-crest{order:-1}
  .cbf-match__team .cbf-crest{width:30px;height:30px}
  .cbf-match__score{min-width:56px;font-size:17px}
  .cbf-table{font-size:13px}
  .cbf-table td.cbf-team{font-size:11px}
  .cbf-table--compact th:nth-child(5),.cbf-table--compact td:nth-child(5){display:none}
  .cbf-squad{grid-template-columns:repeat(2,1fr)}
  .cbf-squad--staff{grid-template-columns:repeat(3,1fr)}
}
