*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* ── Fundos ── */
  --bg:      #0A0A0A;
  --bg2:     #111318;
  --bg3:     #1C1F26;
  --bg4:     #252830;

  /* ── Cores principais ── */
  --accent:  #1A4FBF;
  --accent2: #2E6FE8;

  /* ── Funcionais ── */
  --red:     #E74C3C;
  --green:   #27AE60;

  /* ── Prata (exclusivo FederalSports) ── */
  --prata:   #C8CDD4;
  --prata2:  #8A9099;

  /* ── Tipografia ── */
  --text:    #FFFFFF;
  --text2:   #A0A8B4;
  --text3:   #555E6E;

  /* ── Bordas ── */
  --border:  rgba(255, 255, 255, 0.07);
  --border2: rgba(26, 79, 191, 0.3);

  /* ── Layout ── */
  --sidebar-w: 220px;
  --right-w:   270px;

  /* ── Legado (não remover) ── */
  --blue:    #2E6FE8;
  --yellow:  #f5c518;
}

body { font-family:'Inter',sans-serif; background:var(--bg); color:var(--text); min-height:100vh; font-size:14px; }

/* ── TOPBAR ── */
.topbar {
  background:#070b10;
  border-bottom:1px solid var(--border);
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  position:sticky;
  top:0;
  z-index:200;
}
.logo {
  font-family:'Bebas Neue',sans-serif;
  font-size:26px;
  font-weight:800;
  letter-spacing:.5px;
  color:var(--accent);
  white-space:nowrap;
  margin-right:12px;
  display:flex;
  align-items:center;
  gap:6px;
}
.logo-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); margin-right:2px; }
.logo span { color:var(--text); }
.sport-nav { display:flex; gap:2px; flex:1; overflow-x:auto; scrollbar-width:none; }
.sport-nav::-webkit-scrollbar { display:none; }
.snav-btn {
  display:flex; align-items:center; gap:5px;
  padding:5px 12px; border-radius:6px;
  font-size:12.5px; font-weight:500; color:var(--text2);
  border:none; background:none; cursor:pointer;
  white-space:nowrap; height:34px; transition:all .12s;
}
.snav-btn:hover { background:var(--bg3); color:var(--text); }
.snav-btn.active { background:var(--accent); color:#000; font-weight:700; }
.snav-btn .em { font-size:15px; }
.topbar-right { display:flex; gap:6px; margin-left:auto; }
.tbtn {
  display:flex; align-items:center; gap:5px;
  padding:5px 10px; border-radius:6px;
  font-size:12px; color:var(--text2);
  border:1px solid var(--border); background:none; cursor:pointer;
  transition:all .12s; white-space:nowrap;
}
.tbtn:hover { background:var(--bg3); color:var(--text); }
.tbtn.primary { background:var(--accent); color:#000; border-color:var(--accent); font-weight:700; }

/* ── BUSCA ── */
.search-wrap {
  flex:1; max-width:340px; position:relative; margin:0 12px;
}
.search-input {
  width:100%; height:34px; background:var(--bg2);
  border:1px solid var(--border); border-radius:8px;
  color:var(--text); font-size:13px; font-family:inherit;
  padding:0 12px 0 34px; outline:none; transition:border .15s;
  box-sizing:border-box;
}
.search-input:focus { border-color:var(--accent); }
.search-input::placeholder { color:var(--text3); }
.search-icon {
  position:absolute; left:10px; top:50%; transform:translateY(-50%);
  font-size:14px; pointer-events:none; opacity:.5;
}
.search-clear {
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  background:none; border:none; color:var(--text3); font-size:15px;
  cursor:pointer; padding:2px 4px; display:none; line-height:1;
}
.search-clear:hover { color:var(--text); }
.search-no-results {
  display:none; text-align:center; padding:32px 16px;
  font-size:13px; color:var(--text3);
}
.fifa-extra { display:none; }
.fifa-extra.open { display:block; }
.fifa-mais { padding:8px 14px; font-size:11.5px; color:var(--accent2); cursor:pointer; border-top:1px solid var(--border); }
.fifa-mais:hover { background:var(--bg2); }
.gsr { display:none; margin:10px 12px; background:var(--bg); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.gsr-msg { padding:22px 16px; font-size:13px; color:var(--text3); text-align:center; line-height:1.6; }
.gsr-nota { padding:8px 14px; font-size:11.5px; color:var(--text2); background:#f5c51810; border-bottom:1px solid var(--border); }
.gsr-sec { padding:10px 14px 6px; font-size:10px; font-weight:700; letter-spacing:1px; color:var(--text3); text-transform:uppercase; }
.gsr-date { padding:6px 14px; font-size:11px; font-weight:600; color:var(--text2); background:var(--bg2); }
@media (max-width:520px) { .search-wrap { max-width:160px; margin:0 6px; } }

.live-dot   { width:5px; height:5px; border-radius:50%; background:var(--red); flex-shrink:0; animation:blink 1.3s ease-in-out infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.25} }
@keyframes shimmer { 0%{background-position:-400px 0} 100%{background-position:400px 0} }
.sk { background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%); background-size:800px 100%; animation:shimmer 1.4s infinite; border-radius:4px; }
.sk-match { display:grid; grid-template-columns:40px 1fr 64px 1fr 70px; align-items:center; gap:6px; padding:9px 12px; border-bottom:1px solid var(--border); }
.sk-time  { height:10px; width:32px; }
.sk-team  { height:10px; width:70%; }
.sk-team.r { margin-left:auto; }
.sk-score { height:22px; width:44px; margin:0 auto; border-radius:6px; }
.sk-btn   { height:22px; width:58px; border-radius:6px; }
.sk-line  { height:10px; border-radius:4px; margin:6px 12px; }
.sk-line.w70 { width:70%; }
.sk-line.w50 { width:50%; }
.sk-line.w40 { width:40%; }

/* ── ESTADO DE ERRO AMIGÁVEL ── */
.liga-erro { display:flex; flex-direction:column; align-items:center; gap:8px; padding:22px 16px; text-align:center; }
.liga-erro-ico { font-size:26px; line-height:1; }
.liga-erro-txt { font-size:13px; color:var(--text2); }
.liga-erro-btn { margin-top:2px; background:var(--bg4); color:var(--text); border:1px solid var(--border2); border-radius:8px; padding:7px 16px; font-size:12px; font-weight:600; cursor:pointer; transition:background .15s, border-color .15s; }
.liga-erro-btn:hover { background:var(--bg3); border-color:var(--accent); }

/* ── TOAST ATIVAR TELEGRAM ── */
#tg-toast {
  position:fixed; bottom:20px; left:50%; transform:translateX(-50%);
  display:flex; align-items:center; gap:10px; z-index:9999;
  background:var(--bg3); border:1px solid var(--border2); border-radius:12px;
  padding:12px 14px; font-size:13px; color:var(--text);
  box-shadow:0 8px 24px rgba(0,0,0,.5); max-width:92vw;
  animation:tg-toast-in .25s ease-out;
}
@keyframes tg-toast-in { from { opacity:0; transform:translateX(-50%) translateY(12px); } to { opacity:1; transform:translateX(-50%) translateY(0); } }
#tg-toast-btn {
  background:#229ED9; color:#fff; border:none; border-radius:8px;
  padding:7px 14px; font-size:12px; font-weight:700; cursor:pointer; white-space:nowrap;
}
#tg-toast-btn:hover { background:#1c8cc2; }
#tg-toast-x {
  background:none; border:none; color:var(--text3); cursor:pointer;
  font-size:13px; padding:2px 4px; line-height:1;
}
#tg-toast-x:hover { color:var(--text); }

/* ── BODY LAYOUT ── */
.layout { display:flex; max-width:1380px; margin:0 auto; padding:12px 14px; gap:10px; align-items:flex-start; }

/* ── SIDEBAR ── */
.sidebar {
  width:var(--sidebar-w); flex-shrink:0;
  position:sticky; top:94px;
  max-height:calc(100vh - 110px);
  overflow-y:auto; scrollbar-width:thin;
  scrollbar-color:var(--bg4) transparent;
}
.sb-section { margin-bottom:4px; }
.sb-title { font-size:9px; font-weight:700; letter-spacing:1.5px; color:var(--text3); text-transform:uppercase; padding:10px 10px 5px; }
.sb-item {
  display:flex; align-items:center; gap:7px;
  padding:6px 10px; border-radius:6px;
  font-size:12.5px; color:var(--text2); cursor:pointer;
  transition:all .1s;
}
.sb-item:hover { background:var(--bg3); color:var(--text); }
.sb-item.active { background:var(--bg3); color:var(--text); font-weight:600; border-left:2px solid var(--accent); padding-left:8px; }
.sb-flag { font-size:14px; width:20px; text-align:center; flex-shrink:0; }
.sb-flag img { width:18px; height:18px; object-fit:contain; vertical-align:middle; }
.sb-count { margin-left:auto; font-size:9px; color:var(--text3); background:var(--bg3); padding:1px 5px; border-radius:8px; }
.sb-live-badge { margin-left:auto; font-size:9px; font-weight:700; color:var(--red); background:#f0404015; border:1px solid #f0404030; padding:1px 5px; border-radius:8px; animation:blink 1.3s infinite; }
.comp-flag { font-size:15px; width:22px; text-align:center; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.comp-flag img { width:20px; height:20px; object-fit:contain; }

/* ── CENTER ── */
.center { flex:1; min-width:0; }

/* date nav */
.date-nav { display:flex; gap:3px; margin-bottom:10px; overflow-x:auto; scrollbar-width:none; justify-content:center; }
.date-nav::-webkit-scrollbar { display:none; }
.date-btn {
  display:flex; flex-direction:column; align-items:center;
  padding:5px 10px; border-radius:7px; cursor:pointer;
  border:1px solid var(--border); background:none; color:var(--text2);
  min-width:46px; transition:all .12s;
}
.date-btn:hover { background:var(--bg3); color:var(--text); }
.date-btn.active { background:var(--accent); color:#000; border-color:var(--accent); }
.date-btn .dd { font-size:9px; font-weight:700; text-transform:uppercase; }
.date-btn .dn { font-family:'Bebas Neue',sans-serif; font-size:20px; font-weight:700; line-height:1.1; }

/* comp block */
.comp { border:1px solid var(--border); border-radius:9px; overflow:hidden; margin-bottom:7px; }
.comp-hdr {
  display:flex; align-items:center; gap:8px;
  padding:8px 12px; background:var(--bg2);
  border-bottom:1px solid var(--border);
  cursor:pointer; user-select:none; transition:background .1s;
}
.comp-hdr:hover { background:var(--bg3); }
.comp-flag { font-size:15px; width:22px; text-align:center; flex-shrink:0; }
.comp-name { font-size:12.5px; font-weight:700; color:var(--text); }
.comp-sub  { font-size:11px; color:var(--text2); }
.comp-live { display:flex; align-items:center; gap:4px; margin-left:6px; }
.comp-live span { font-size:9px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.8px; }
.comp-count { margin-left:auto; font-size:10px; color:var(--text3); }
.chevron { font-size:11px; color:var(--text3); transition:transform .18s; margin-left:6px; }
.chevron.open { transform:rotate(180deg); }
.fav-star { margin-left:auto; margin-right:2px; font-size:15px; cursor:pointer; opacity:.4; transition:opacity .15s, transform .15s; line-height:1; padding:2px 4px; }
.fav-star:hover { opacity:.8; }
.fav-star.on { opacity:1; }
.match-fav { background:none; border:none; cursor:pointer; font-size:14px; padding:0 2px; color:var(--text3); transition:color .15s, transform .15s; flex-shrink:0; line-height:1; }
.match-fav:hover { color:var(--prata); }
.match-fav.on { color:#f5c518; transform:scale(1.15); }

/* mais ligas */
.mais-ligas { margin-top:14px; }
.mais-ligas-hdr { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; flex-wrap:wrap; }
.mais-ligas-title { font-size:13px; font-weight:700; color:var(--text); }
.mais-ligas-busca {
  flex:1; min-width:160px; max-width:260px;
  background:var(--bg2); border:1px solid var(--border); border-radius:7px;
  color:var(--text); font-size:12px; padding:6px 10px;
}
.mais-ligas-busca:focus { outline:none; border-color:var(--accent); }
.mais-ligas .comp { margin-bottom:6px; }
.mais-ligas-subliga:not(:last-child) { border-bottom:1px solid var(--border); }
.mais-ligas-subliga-nome {
  padding:6px 12px; font-size:11px; font-weight:700; color:var(--text2);
  background:var(--bg); text-transform:uppercase; letter-spacing:.4px;
}
.mais-ligas-subliga-nome span { font-weight:500; text-transform:none; color:var(--text3); }

/* match row */
.match {
  display:grid;
  /* coluna do Aposte com largura FIXA (nao "auto") — como o botao so existe
     em jogos que ainda nao comecaram, "auto" fazia as colunas de time
     (1fr) encolherem/expandirem entre linhas diferentes, empurrando a
     coluna do placar/vs pra uma posicao X diferente conforme o jogo */
  grid-template-columns: 52px 1fr 78px 1fr 78px 20px;
  align-items:center; gap:4px;
  padding:8px 12px; background:var(--bg);
  border-top:1px solid #ffffff04; cursor:pointer;
  transition:background .1s;
  min-height:50px; /* placar (sbox) e "vs" tem alturas diferentes — trava a
    altura da linha pra nao desalinhar o placar/vs de uma linha pra outra */
}
.match:hover { background:var(--bg2); }
.mtime { font-size:11.5px; font-weight:600; color:var(--text2); text-align:center; line-height:1.3; }
.mtime.live { color:var(--red); }
.mtime .ms  { font-size:9px; font-weight:500; }
.st-alerta { display:inline-block; background:rgba(245,197,24,.14); color:#f5c518; border:1px solid rgba(245,197,24,.35); border-radius:6px; padding:1px 5px; font-size:9.5px; font-weight:700; letter-spacing:.3px; text-transform:uppercase; }
.st-alerta.off { background:rgba(138,144,153,.12); color:var(--text3); border-color:var(--border2); }
.mteam { font-size:13px; font-weight:500; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.mteam.right { text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.mteam.win { font-weight:700; }
.mscore { text-align:center; }
.sbox {
  display:inline-flex; align-items:center; gap:4px;
  background:var(--bg3); border-radius:5px;
  padding:3px 9px; font-family:'Bebas Neue',sans-serif;
  font-size:20px; font-weight:700; color:var(--text); letter-spacing:.5px;
}
.sbox.live { background:#f0404012; border:1px solid #f0404025; }
.sbox .sep { color:var(--text3); font-size:15px; }
.svs { font-size:11px; color:var(--text3); font-weight:500; }
.pill { font-size:9px; font-weight:700; padding:2px 6px; border-radius:8px; text-transform:uppercase; display:inline-block; }
.pill.live { background:#f0404018; color:var(--red); border:1px solid #f0404030; }
.pill.ft   { background:var(--bg3); color:var(--text3); }
.pill.up   { background:#3b9eff15; color:var(--blue); border:1px solid #3b9eff30; }
.pill.local{ background:#1A4FBF15; color:var(--accent); border:1px solid #1A4FBF30; }

/* ── DESTAQUES DO DIA ── */
.highlights-wrap { margin-bottom:10px; }
.highlights-title { font-size:10px; font-weight:700; letter-spacing:1px; color:var(--text3); text-transform:uppercase; margin-bottom:8px; padding:0 2px; }
.highlights-scroll { display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; padding-bottom:4px; }
.highlights-scroll::-webkit-scrollbar { display:none; }
.hl-card {
  flex-shrink:0; width:176px; background:var(--bg2);
  border:1px solid var(--border); border-radius:10px;
  padding:10px 12px; cursor:pointer; transition:all .12s;
  display:flex; flex-direction:column; gap:8px;
}
.hl-card:hover { border-color:var(--accent); background:var(--bg3); }
.hl-card.live { border-color:#f0404040; background:#f0404008; }
.hl-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-bottom:8px; border-bottom:1px solid var(--border); }
.hl-league { display:flex; align-items:center; gap:5px; min-width:0; font-size:9px; color:var(--text3); font-weight:600; text-transform:uppercase; letter-spacing:.6px; }
.hl-league img { width:12px; height:12px; object-fit:contain; flex:none; }
.hl-league span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hl-status { flex:none; font-size:10px; font-weight:700; }
.hl-status.live { color:var(--red); }
.hl-status.live::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--red); margin-right:4px; vertical-align:1px; }
.hl-status.ns { color:var(--text2); }
.hl-status.ft { color:var(--text3); }
.hl-row { display:flex; align-items:center; gap:8px; }
.hl-crest { width:18px; height:18px; object-fit:contain; flex:none; }
.hl-crest.ph { border-radius:50%; background:var(--bg3); }
.hl-tn { flex:1; min-width:0; font-size:12px; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hl-gl { font-family:'Bebas Neue',sans-serif; font-size:20px; line-height:1; color:var(--text); min-width:14px; text-align:right; }

/* ── RIGHT COL ── */
.right-col {
  width:var(--right-w); flex-shrink:0;
  display:flex; flex-direction:column; gap:8px;
  position:sticky; top:94px;
}
.widget { background:var(--bg2); border:1px solid var(--border); border-radius:9px; overflow:hidden; }
.widget-hdr {
  display:flex; align-items:center; gap:7px;
  padding:9px 12px; border-bottom:1px solid var(--border);
  font-size:11px; font-weight:700; color:var(--text);
  text-transform:uppercase; letter-spacing:.8px;
}
.widget-hdr .wdot { width:7px; height:7px; border-radius:50%; background:var(--red); animation:blink 1.3s infinite; }

/* standings */
.stbl { width:100%; border-collapse:collapse; font-size:11.5px; }
.stbl th { color:var(--text3); font-weight:600; padding:5px 8px; text-align:center; font-size:9.5px; letter-spacing:.5px; }
.stbl th:nth-child(2) { text-align:left; }
.stbl td { padding:6px 8px; text-align:center; border-top:1px solid #ffffff05; }
.stbl td:nth-child(2) { text-align:left; }
.stbl tr:hover td { background:var(--bg3); }
.pos { width:18px; display:inline-block; color:var(--text3); font-size:10px; }
.pos.q { color:var(--accent); font-weight:700; }
.pts-val { font-weight:700; }
.hl td { background:#1A4FBF06 !important; }
.hl .tname { color:var(--accent); font-weight:700; }

/* scorers */
.scorer { display:flex; align-items:center; gap:8px; padding:7px 12px; border-top:1px solid #ffffff05; font-size:12px; }
.srank { width:16px; color:var(--text3); font-size:10px; font-weight:700; text-align:center; flex-shrink:0; }
.sname { font-weight:600; }
.steam { font-size:10px; color:var(--text2); }
.sgoals { font-family:'Bebas Neue',sans-serif; font-size:19px; font-weight:700; color:var(--accent); margin-left:auto; min-width:22px; text-align:right; }

/* local badge */
.local-tag {
  display:inline-flex; align-items:center; gap:4px;
  font-size:9px; font-weight:700; letter-spacing:.8px;
  color:var(--accent); background:#1A4FBF12;
  border:1px solid #1A4FBF25; border-radius:4px;
  padding:1px 6px; text-transform:uppercase; margin-left:6px;
}

/* ── ADS ── */
.ad-top {
  background:#070b10;
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  padding:0; min-height:90px; overflow:hidden;
}
.ad-box {
  display:flex; align-items:center; justify-content:center;
  border:1px dashed var(--bg4); border-radius:8px;
  color:var(--text3); font-size:11px; font-weight:600;
  letter-spacing:.8px; text-transform:uppercase;
  cursor:pointer; transition:all .15s; position:relative;
  text-decoration:none;
}
.ad-box:hover { border-color:var(--accent); color:var(--accent); background:#1A4FBF06; }
.ad-box .ad-label {
  position:absolute; top:4px; right:6px;
  font-size:8px; color:var(--text3); font-weight:500;
  letter-spacing:.5px; text-transform:uppercase;
}
.ad-top .ad-box { width:100%; max-width:728px; height:44px; }
.ad-mid { margin:8px 0; }
.ad-mid .ad-box { width:100%; height:80px; }
.ad-sidebar .ad-box { width:100%; height:120px; margin-bottom:8px; }
.ad-sidebar-rect .ad-box { width:100%; height:250px; }

/* Slot genérico de anúncio — hoje mostra o banner de divulgação do canal
   (mesma peça usada nos 4 espaços antigos), pronto pra virar Google
   AdSense ou venda direta depois (troca só o conteúdo de dentro do link,
   moldura/rótulo continuam iguais). */
.ad-slot { border-radius:10px; overflow:hidden; position:relative; margin:10px 0; }
.ad-slot-label {
  position:absolute; top:4px; right:8px; z-index:1;
  font-size:8px; color:var(--text3); font-weight:600;
  letter-spacing:.6px; text-transform:uppercase;
  background:#070b10cc; padding:2px 5px; border-radius:4px;
}

/* momentum no modal */
.modal-momentum { padding:12px 16px 16px; border-top:1px solid var(--border); }
.modal-momentum-title { font-size:10px; font-weight:700; letter-spacing:1px; color:var(--text3); text-transform:uppercase; margin-bottom:10px; }
.modal-mom-bar-wrap { position:relative; height:22px; background:var(--bg3); border-radius:20px; overflow:hidden; margin-bottom:6px; }
.modal-mom-bar-casa { position:absolute; left:0; top:0; height:100%; background:linear-gradient(90deg,#1A4FBF,#2E6FE8); border-radius:20px; transition:width .5s; }
.modal-mom-bar-fora { position:absolute; right:0; top:0; height:100%; background:linear-gradient(270deg,#3b9eff,#60afff); border-radius:20px; transition:width .5s; }
.modal-mom-labels { display:flex; justify-content:space-between; font-size:11px; font-weight:700; }
.modal-mom-label-casa { color:var(--accent); }
.modal-mom-label-fora { color:var(--blue); }
.modal-overlay {
  position:fixed; inset:0; background:#000000cc; z-index:500;
  display:flex; align-items:center; justify-content:center;
  padding:16px; opacity:0; pointer-events:none; transition:opacity .18s;
}
.modal-overlay.open { opacity:1; pointer-events:all; }
.modal {
  background:var(--bg2); border:1px solid var(--border); border-radius:16px;
  width:100%; max-width:480px; max-height:85vh; overflow-y:auto;
  transform:translateY(20px); transition:transform .18s;
  scrollbar-width:thin; scrollbar-color:var(--bg4) transparent;
}
.modal-overlay.open .modal { transform:translateY(0); }
.modal-hdr {
  display:flex; align-items:center; gap:8px;
  padding:12px 16px; border-bottom:1px solid var(--border);
  position:sticky; top:0; background:var(--bg2); z-index:1;
}
.modal-league-logo { width:20px; height:20px; object-fit:contain; }
.modal-league-name { font-size:12px; font-weight:600; color:var(--text2); }
.modal-round { font-size:11px; color:var(--text3); margin-left:4px; }
.modal-close {
  margin-left:auto; width:28px; height:28px; border-radius:50%;
  background:var(--bg3); border:none; color:var(--text2); cursor:pointer;
  font-size:16px; display:flex; align-items:center; justify-content:center;
  transition:all .12s;
}
.modal-close:hover { background:var(--bg4); color:var(--text); }

/* scoreboard */
.modal-score {
  padding:24px 16px 16px; text-align:center;
  background:linear-gradient(180deg, #0d1520 0%, var(--bg2) 100%);
}
.modal-teams { display:grid; grid-template-columns:1fr auto 1fr; gap:8px; align-items:center; margin-bottom:16px; }
.modal-team { display:flex; flex-direction:column; align-items:center; gap:6px; }
.modal-team img { width:48px; height:48px; object-fit:contain; }
.modal-team-name { font-size:14px; font-weight:700; text-align:center; line-height:1.2; }
.modal-center { text-align:center; }
.modal-scoreline {
  font-family:'Bebas Neue',sans-serif; font-size:52px; font-weight:800;
  line-height:1; color:var(--text); letter-spacing:-1px;
}
.modal-scoreline.live { color:var(--accent2); }
.modal-vs { font-size:18px; color:var(--text3); font-weight:600; }
.modal-status-row { display:flex; align-items:center; justify-content:center; gap:6px; margin-top:8px; }
.modal-status-badge {
  font-size:11px; font-weight:700; padding:3px 10px; border-radius:10px;
  text-transform:uppercase; letter-spacing:.5px;
}
.modal-status-badge.live { background:#f0404018; color:var(--red); border:1px solid #f0404030; }
.modal-status-badge.ft   { background:var(--bg3); color:var(--text3); }
.modal-status-badge.ns   { background:#3b9eff15; color:var(--blue); border:1px solid #3b9eff30; }
.modal-live-dot { width:6px; height:6px; border-radius:50%; background:var(--red); animation:blink 1.3s infinite; }

/* info rows */
.modal-info { padding:0 16px 16px; }
.modal-info-row {
  display:flex; align-items:center; gap:8px;
  padding:10px 0; border-top:1px solid #ffffff06;
  font-size:13px;
}
.modal-info-row .icon { font-size:16px; width:22px; text-align:center; flex-shrink:0; color:var(--text3); }
.modal-info-label { color:var(--text2); }
.modal-info-value { margin-left:auto; font-weight:600; color:var(--text); text-align:right; }
.modal-info-row.fonte { padding-bottom:0; }
.modal-info-fonte-texto {
  margin:0 0 10px 30px; padding:0 16px 0 0;
  font-size:12px; line-height:1.6; color:var(--text3);
  text-align:justify;
}

/* eventos */
.modal-events { padding:0 16px 16px; }
.modal-events-title { font-size:10px; font-weight:700; letter-spacing:1px; color:var(--text3); text-transform:uppercase; margin-bottom:8px; }
.event-row { display:grid; grid-template-columns:1fr 36px 1fr; align-items:center; padding:6px 0; border-top:1px solid #ffffff06; font-size:12.5px; gap:4px; }
.event-min { text-align:center; color:var(--text3); font-weight:700; font-size:11px; }
.event-icon { font-size:14px; }
.event-home { display:flex; align-items:center; gap:6px; justify-content:flex-end; text-align:right; }
.event-away { display:flex; align-items:center; gap:6px; justify-content:flex-start; text-align:left; }
.event-player { font-size:12px; }
.event-side { font-size:10px; color:var(--text3); }
.modal-no-events { font-size:12px; color:var(--text3); padding:8px 0; }
.modal-section { padding:12px 16px; border-top:1px solid var(--border); }
.modal-section-title { font-size:10px; font-weight:700; letter-spacing:1px; color:var(--text3); text-transform:uppercase; margin-bottom:10px; }
.form-row { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.form-team { font-size:12px; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.form-pills { display:flex; gap:4px; }
.form-pill { width:22px; height:22px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; }
.form-pill.W { background:#27AE6022; color:#27AE60; }
.form-pill.D { background:#ffffff15; color:var(--text2); }
.form-pill.L { background:#ff444422; color:#ff4444; }
.h2h-row { display:grid; grid-template-columns:1fr auto 1fr; gap:6px; align-items:center; padding:6px 0; border-top:1px solid #ffffff06; font-size:12px; }
.h2h-home { text-align:right; color:var(--text2); }
.h2h-away { text-align:left; color:var(--text2); }
.h2h-score { font-weight:700; font-size:13px; background:var(--bg3); padding:2px 8px; border-radius:4px; white-space:nowrap; text-align:center; }
.h2h-date { font-size:10px; color:var(--text3); text-align:center; display:block; margin-top:2px; }
.standings-mini { width:100%; border-collapse:collapse; font-size:11px; }
.standings-mini th { color:var(--text3); font-weight:600; text-align:center; padding:3px 4px; }
.standings-mini th:nth-child(2) { text-align:left; }
.standings-mini td { padding:4px; text-align:center; color:var(--text2); }
.standings-mini td:nth-child(2) { text-align:left; color:var(--text); }
.standings-mini tr.highlight td { background:var(--bg3); }
.standings-mini .pos { color:var(--text3); }

/* botao aposte */
.btn-aposte { display:inline-flex; align-items:center; justify-content:center; gap:3px; padding:4px 8px; border-radius:8px; font-size:11px; font-weight:700; background:#f5c518; color:#000; border:none; cursor:pointer; white-space:nowrap; text-decoration:none; animation:aposte-pulse 1.8s ease-in-out infinite; }
.btn-aposte:hover { background:#ffd740; animation:none; transform:scale(1.05); }
@keyframes aposte-pulse {
  0%,100% { box-shadow:0 0 0 0 rgba(245,197,24,0.5); transform:scale(1); }
  50%      { box-shadow:0 0 0 5px rgba(245,197,24,0); transform:scale(1.04); }
}

/* CTA modal */
.modal-cta { padding:12px 16px 14px; border-top:2px solid var(--border); background:var(--bg2); position:sticky; bottom:0; z-index:10; }
.modal-cta-btn { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:12px; border-radius:10px; background:linear-gradient(135deg,#f5c518,#ffaa00); color:#000; font-size:14px; font-weight:800; text-decoration:none; transition:all .15s; box-sizing:border-box; letter-spacing:.3px; }
.modal-cta-btn:hover { background:linear-gradient(135deg,#ffd740,#ffbb00); transform:translateY(-1px); box-shadow:0 4px 16px #f5c51840; }
.modal-cta-disclaimer { text-align:center; font-size:10px; color:var(--text3); margin-top:6px; }
.modal-share-btn { display:block; width:100%; margin-top:8px; padding:8px; background:transparent; border:1px solid var(--border); border-radius:8px; color:var(--text3); font-size:12px; cursor:pointer; transition:all .15s; }
.modal-share-btn:hover { border-color:var(--accent); color:var(--accent); }

/* odds widget */
.odds-row { display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--border); }
.odds-row:last-of-type { border-bottom:none; }
.odds-book { display:flex; align-items:center; gap:6px; width:90px; flex-shrink:0; }
.odds-book-logo { width:20px; height:20px; border-radius:4px; object-fit:contain; }
.odds-book-name { font-size:12px; font-weight:600; color:var(--text); }
.odds-values { display:flex; gap:6px; flex:1; justify-content:center; }
.odds-val { display:flex; flex-direction:column; align-items:center; gap:1px; }
.odds-label { font-size:9px; color:var(--text3); text-transform:uppercase; }
.odds-num { font-size:13px; font-weight:700; color:var(--accent); }
.odds-btn { font-size:11px; font-weight:700; padding:5px 10px; border-radius:6px; text-decoration:none; white-space:nowrap; }
.odds-btn.active { background:linear-gradient(135deg,#f5c518,#ffaa00); color:#000; }
.odds-btn.soon { background:var(--card2); color:var(--text3); pointer-events:none; }
.odds-disclaimer { font-size:9px; color:var(--text3); text-align:center; margin-top:6px; }

/* team logo — sempre antes do nome (mesma ordem pra casa e visitante) */
.team-logo { width:18px; height:18px; object-fit:contain; vertical-align:middle; margin-right:5px; flex-shrink:0; }

@media (max-width:1100px) { .right-col { display:none; } }
@media (max-width:780px)  { .sidebar { display:none; } }

.mobile-chips { display:none; padding:8px 12px; gap:6px; overflow-x:auto; scrollbar-width:none; background:var(--bg); border-bottom:1px solid var(--border); }
.mobile-chips::-webkit-scrollbar { display:none; }
.chip { display:inline-flex; align-items:center; gap:5px; padding:5px 12px; border-radius:20px; font-size:12px; font-weight:600; white-space:nowrap; border:1px solid var(--border); background:var(--bg2); color:var(--text2); cursor:pointer; flex-shrink:0; transition:all .12s; }
.chip:active { transform:scale(.96); }
.chip.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.chip.live-chip { border-color:#f0404030; color:var(--red); background:#f0404010; }
.chip img { width:14px; height:14px; object-fit:contain; }
@media (max-width:780px) { .mobile-chips { display:flex; } }
@media (max-width:520px)  {
  .match {
    grid-template-columns: 34px 1fr 44px 20px;
    /* linha do "Aposte" reserva altura fixa mesmo vazia (jogo ja iniciado) —
       senao os cards ficam com altura diferente e o placar/vs desalinha
       visualmente de uma linha pra outra */
    grid-template-rows: auto auto minmax(25px, auto);
    grid-template-areas:
      "time home  score fav"
      "time away  score fav"
      "bet  bet   bet   bet";
    row-gap:3px; column-gap:6px;
    padding:7px 8px;
    align-content:start;
  }
  .mtime { grid-area: time; }
  .mteam:not(.right) { grid-area: home; }
  .mteam.right { grid-area: away; text-align:left; }
  .mscore { grid-area: score; align-self:center; }
  .match-fav { grid-area: fav; align-self:center; }
  .btn-aposte { grid-area: bet; justify-self:stretch; margin-top:2px; }
  .sbox  { font-size:17px; padding:2px 6px; }
  .ad-top { display:none; }
}
