:root{
  --pitch:#171A4A;        /* azul-marinho (tema) */
  --pitch-deep:#11143A;
  --pitch-dark:#0B0D26;
  --gold:#f7c948;         /* dourado troféu */
  --gold-deep:#e0a800;
  --ink:#181b2e;
  --paper:#f3f4f9;
  --line:#e3e4ef;
  --muted:#6c7180;
}

*{ -webkit-tap-highlight-color:transparent; }
.app-body{
  font-family:'Manrope',system-ui,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 500px at 90% -10%, rgba(23,26,74,.08), transparent 60%),
    radial-gradient(900px 400px at -10% 0%, rgba(247,201,72,.10), transparent 55%),
    var(--paper);
  min-height:100vh;
}

h1,h2,h3,.display-font{
  font-family:'Anton',sans-serif; font-weight:400;
  letter-spacing:.5px; text-transform:uppercase;
}

/* ---------- Navbar ---------- */
.velar-nav{
  background:linear-gradient(100deg,var(--pitch-deep),var(--pitch));
  box-shadow:0 6px 24px rgba(17,20,58,.25);
}
.brand-logo{
  width:126px;
  height:40px;
  object-fit:contain;
  border-radius:6px;
  flex:0 0 auto;
}
.brand-text{ font-family:'Anton',sans-serif; font-size:20px; letter-spacing:.6px; line-height:1; }
.brand-text small{ display:block; font-size:10px; letter-spacing:3px; color:var(--gold); }
.velar-nav .nav-link{ font-weight:600; border-radius:8px; padding:.45rem .8rem !important; }
.velar-nav .nav-link.active{ background:rgba(255,255,255,.16); }
.avatar{
  width:30px;height:30px;border-radius:50%;
  background:var(--gold);color:var(--pitch-deep);
  display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;
}

/* ---------- Patrocinador / identidade (logos PNG, fundo transparente) ---------- */
.nav-sponsor{ gap:8px; margin-left:14px; padding-left:14px; border-left:1px solid rgba(255,255,255,.22); }
.nav-sponsor img{ height:36px; width:auto; max-width:160px; object-fit:contain; filter:drop-shadow(0 1px 3px rgba(0,0,0,.35)); }
.nav-sponsor-lbl{ color:var(--gold); font-size:9px; letter-spacing:2px; text-transform:uppercase; font-weight:700; }
.footer-sponsor img{ height:32px; width:auto; max-width:170px; object-fit:contain; }
.footer-sponsor small{ letter-spacing:1px; font-size:10px; }
.login-sponsor img{ height:50px; width:auto; max-width:80%; object-fit:contain; }
.login-sponsor small{ letter-spacing:2px; text-transform:uppercase; font-size:10px; }
.config-preview{
  display:flex; align-items:center; justify-content:center; min-height:130px;
  background:repeating-conic-gradient(#eef2ee 0% 25%, #fff 0% 50%) 50% / 22px 22px;
  border:1px solid var(--line); border-radius:14px; padding:16px;
}
.config-preview img{ max-height:130px; max-width:100%; object-fit:contain; }

/* ---------- Bandeiras das seleções ---------- */
.flag-img{
  height:22px; width:auto; border-radius:4px; vertical-align:middle;
  box-shadow:0 1px 3px rgba(0,0,0,.22); background:#fff;
}
.flag-fallback{
  display:inline-flex; align-items:center; justify-content:center;
  height:22px; min-width:32px; padding:0 7px; border-radius:4px;
  background:var(--pitch); color:#fff; font-weight:800; font-size:.7rem; letter-spacing:.5px;
  box-shadow:0 1px 3px rgba(0,0,0,.22);
}
.flag-lg{ height:34px; }
.flag-xl{ height:clamp(30px,6vw,52px); border-radius:6px; }

/* time = bandeira + sigla/nome, alinhados */
.team{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; white-space:nowrap; }
.match{ display:inline-flex; align-items:center; gap:.7rem; font-weight:700; }
.match .vs{ color:var(--muted); font-family:'Anton',sans-serif; font-weight:400; opacity:.8; }

/* ---------- Cards ---------- */
.card{
  border:1px solid var(--line); border-radius:18px;
  box-shadow:0 10px 30px rgba(17,20,58,.06);
}
.card-header{ background:transparent; border-bottom:1px solid var(--line); font-weight:700; }
.section-title{ font-size:1.6rem; margin:0; }
.eyebrow{ letter-spacing:3px; font-size:11px; font-weight:700; color:var(--pitch); text-transform:uppercase; }

/* ---------- Hero do dashboard ---------- */
.hero{
  border-radius:22px; overflow:hidden; position:relative; color:#fff;
  background:linear-gradient(120deg,var(--pitch-deep),var(--pitch));
  padding:26px 24px;
}
.hero::after{
  content:""; position:absolute; inset:0; opacity:.18; pointer-events:none;
  background-image:repeating-linear-gradient(90deg, rgba(255,255,255,.5) 0 2px, transparent 2px 80px);
}
.hero .saud{ font-size:14px; opacity:.85; }
.hero h1{ font-size:2rem; margin:.1rem 0 0; }

/* ---------- KPIs ---------- */
.kpi{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;height:100%;
  transition:transform .15s ease, box-shadow .15s ease;
}
.kpi:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(17,20,58,.10); }
.kpi .lbl{ font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700; }
.kpi .val{ font-family:'Anton',sans-serif;font-size:2rem;color:var(--pitch-deep);line-height:1.1; }
.kpi .ico{ font-size:20px;color:var(--gold-deep); }

/* ---------- Botões ---------- */
.btn-pitch{ background:var(--pitch); border-color:var(--pitch); color:#fff; font-weight:700; border-radius:12px; }
.btn-pitch:hover{ background:var(--pitch-deep); border-color:var(--pitch-deep); color:#fff; }
.btn-gold{ background:var(--gold); border:none; color:#3a2f00; font-weight:700; border-radius:12px; }
.btn-gold:hover{ background:var(--gold-deep); color:#1f1900; }

/* ---------- Placar / inputs ---------- */
.placar-input{ width:56px;text-align:center;font-weight:800;border-radius:10px;border:1.5px solid var(--line); }
.placar-input:focus{ border-color:var(--pitch); box-shadow:0 0 0 .2rem rgba(23,26,74,.18); }
.placar-input::placeholder{ color:#aab4ae; font-weight:800; font-size:1.05rem; opacity:1; }

/* Placar do palpite: seleção da casa | inputs | seleção visitante */
.palpite-board{ display:flex; align-items:center; gap:.5rem; }
.palpite-board .team{ flex:1 1 0; min-width:0; white-space:normal; }
.palpite-board .team-home{ justify-content:flex-end; text-align:right; }
.palpite-board .team-away{ justify-content:flex-start; text-align:left; }
.palpite-board .tnome{ line-height:1.15; }
.board-center{ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; gap:.35rem; min-width:140px; }
.board-score{ font-family:'Anton',sans-serif; font-size:1.35rem; letter-spacing:1px; color:var(--pitch-deep); }
.board-lock{ color:#b02a37; font-size:1.15rem; }
.fecha-em{ font-size:.72rem; font-weight:700; color:var(--muted); }
.fecha-em.urgente{ color:#c0392b; }
.fecha-em.fechado{ color:#b02a37; }
.assistir-link{ font-size:.78rem; font-weight:700; color:#c4302b; text-decoration:none; }
.assistir-link:hover{ color:#9b1d18; text-decoration:underline; }
@media (max-width:575.98px){
  .palpite-board{ gap:.3rem; }
  .palpite-board .team{ font-size:.9rem; }
  .board-center{ min-width:128px; }
}
.flag{ font-size:1.1rem; }
.badge-fase{ background:var(--pitch);color:#fff;font-weight:700;border-radius:8px; }
.badge-mult{ background:var(--gold);color:#3a2f00;font-weight:700;border-radius:8px; }
.locked{ color:#b02a37;font-weight:700;font-size:.8rem; }

/* ---------- Ranking ---------- */
.rank-pos{ font-family:'Anton',sans-serif;color:var(--pitch-deep);font-size:1.1rem;width:42px; }
.rank-1 td{ background:linear-gradient(90deg, rgba(247,201,72,.18), transparent); }
.medal{ font-size:1.1rem; }

/* ---------- Login ---------- */
.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
  background:linear-gradient(135deg,var(--pitch-deep),var(--pitch-dark)); position:relative; overflow:hidden; }
.login-wrap::before{ content:""; position:absolute; inset:0; opacity:.10;
  background-image:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 90px),
                   repeating-linear-gradient(0deg,#fff 0 2px,transparent 2px 90px); }
.login-card{ position:relative; width:100%; max-width:420px; border-radius:22px; }
.login-logo{
  display:block;
  width:min(245px, 82%);
  height:auto;
  margin:0 auto 14px;
  border-radius:10px;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
/* ---------- Footer ---------- */
.velar-footer{ border-top:1px solid var(--line); padding:18px 0; margin-top:30px; color:var(--muted); }

.tv-sponsor{ text-align:center; margin:8px auto 28px; }
.tv-sponsor .lbl{ display:block; color:var(--gold); letter-spacing:4px; font-size:13px; text-transform:uppercase; margin-bottom:8px; }
.tv-sponsor img{ height:clamp(48px,9vw,92px); width:auto; max-width:80vw; object-fit:contain; filter:drop-shadow(0 3px 10px rgba(0,0,0,.4)); }

/* ---------- TV ---------- */
.tv-body{ margin:0; background:radial-gradient(1000px 600px at 50% -10%, #20266a, #0a0c24 70%);
  color:#fff; font-family:'Manrope',sans-serif; min-height:100vh; }
.tv-head{ text-align:center; padding:30px 10px 6px; }
.tv-logo{
  width:min(320px, 74vw);
  height:auto;
  border-radius:12px;
  box-shadow:0 14px 34px rgba(0,0,0,.28);
  margin-bottom:16px;
}
.tv-head .eyebrow{ color:var(--gold); letter-spacing:6px; }
.tv-head h1{ font-family:'Anton',sans-serif; font-size:clamp(34px,6vw,64px); margin:0; }
.tv-row{ display:flex;align-items:center;gap:18px; background:rgba(255,255,255,.07);
  border-radius:16px; padding:16px 24px; margin:10px auto; max-width:900px; font-size:clamp(18px,3vw,28px);
  animation:tvIn .5s ease both; }
.tv-row .pos{ font-family:'Anton',sans-serif; color:var(--gold); width:60px; }
.tv-row .nm{ flex:1; font-weight:700; }
.tv-row .pt{ font-family:'Anton',sans-serif; }
.tv-row.top1{ background:rgba(247,201,72,.18); border:2px solid var(--gold); }
@keyframes tvIn{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }
.tv-foot{ display:flex; gap:18px; max-width:900px; margin:20px auto; flex-wrap:wrap; }
.tv-box{ flex:1; min-width:240px; background:rgba(255,255,255,.07); border-radius:16px; padding:16px 22px; }
.tv-box .lbl{ color:#aeb6e8; letter-spacing:2px; font-size:12px; text-transform:uppercase; }
.tv-box .v{ font-family:'Anton',sans-serif; font-size:clamp(22px,3vw,32px); margin-top:4px; }
.tv-row .flag-img{ height:30px; }
.tv-box .flag-img{ height:26px; }
.tv-box .v{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.tv-when{ font-size:14px; color:#aeb6e8; letter-spacing:1px; margin-top:6px; }

/* ---------- Polimento geral ---------- */
.brand-logo{ transition:transform .15s ease; filter:drop-shadow(0 1px 2px rgba(0,0,0,.28)); }
.navbar-brand:hover .brand-logo{ transform:scale(1.04) rotate(-1deg); }

.btn{ transition:transform .12s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease; }
.btn-pitch:hover{ transform:translateY(-1px); box-shadow:0 10px 22px rgba(17,20,58,.28); }
.btn-gold:hover{ transform:translateY(-1px); box-shadow:0 10px 22px rgba(224,168,0,.35); }

.section-title{ position:relative; }

/* tabelas dentro de cards mais elegantes */
.card .table-responsive{ border-radius:18px; overflow:hidden; }
.card .table{ --bs-table-bg:transparent; }
.table > thead th{ text-transform:uppercase; font-size:.72rem; letter-spacing:.6px; color:var(--muted); font-weight:800; border-bottom:2px solid var(--line); }
.table tbody tr{ transition:background .15s ease; }
.card .table tbody tr:hover{ background:rgba(23,26,74,.045); }
.table td, .table th{ vertical-align:middle; }

.badge{ font-weight:700; letter-spacing:.2px; }
.badge-fase{ padding:.42em .7em; }

/* resultado oficial em "placar" */
.score-pill{
  display:inline-flex; align-items:center; gap:.4rem; font-family:'Anton',sans-serif;
  background:var(--ink); color:#fff; border-radius:10px; padding:.25rem .7rem; font-size:1.05rem; letter-spacing:1px;
}

.list-group-item{ border-color:var(--line); }

@media (max-width:575.98px){
  .team{ gap:.35rem; font-size:.95rem; }
  .flag-img{ height:20px; }
  .match{ gap:.4rem .55rem; flex-wrap:wrap; }
}

/* ---------- Palpites: barra de filtro + accordion ---------- */
.filtro-bar{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:12px 14px;
  box-shadow:0 6px 18px rgba(17,20,58,.06);
}
@media (min-width:768px){ .filtro-bar{ position:sticky; top:64px; z-index:6; } }
.filtro-grupos, .filtro-situacao{ display:flex; flex-wrap:wrap; gap:.4rem; }
.filtro-chip{
  border:1.5px solid var(--line); background:#fff; color:var(--ink);
  border-radius:999px; padding:.34rem .85rem; font-weight:700; font-size:.85rem; line-height:1.1;
  cursor:pointer; transition:all .14s ease; white-space:nowrap;
}
.filtro-chip:hover{ border-color:var(--pitch); color:var(--pitch-deep); }
.filtro-chip.ativo{ background:var(--pitch); border-color:var(--pitch); color:#fff; box-shadow:0 4px 12px rgba(17,20,58,.22); }
.filtro-chip.sit.ativo{ background:var(--gold-deep); border-color:var(--gold-deep); color:#1f1900; box-shadow:0 4px 12px rgba(224,168,0,.28); }
.filtro-busca{ min-width:180px; }
.filtro-busca .input-group-text{ border-color:var(--line); }

.acc-palpites .accordion-item{
  border:1px solid var(--line); border-radius:16px !important; margin-bottom:12px;
  overflow:hidden; box-shadow:0 6px 18px rgba(17,20,58,.05);
}
.acc-palpites .accordion-button{
  font-weight:800; background:#fff; color:var(--pitch-deep); padding:.85rem 1rem; border-radius:16px;
}
.acc-palpites .accordion-button:not(.collapsed){
  background:linear-gradient(100deg, rgba(23,26,74,.10), rgba(247,201,72,.14));
  color:var(--pitch-deep); box-shadow:inset 0 -1px 0 var(--line); border-radius:16px 16px 0 0;
}
.acc-palpites .accordion-button:focus{ box-shadow:0 0 0 .2rem rgba(23,26,74,.15); }
.acc-palpites .accordion-button::after{ filter:hue-rotate(85deg) saturate(.6) brightness(.9); }
.grp-badge{
  display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px;
  border-radius:9px; background:var(--pitch); color:#fff; font-family:'Anton',sans-serif;
  font-size:1rem; margin-right:.6rem; flex:0 0 auto;
}
.grp-nome{ font-family:'Anton',sans-serif; letter-spacing:.4px; font-size:1.05rem; }
.grp-meta{ font-size:.78rem; font-weight:700; color:var(--muted); white-space:nowrap; }
.grp-meta-pend{ color:#c0392b; }
.grp-meta-done{ color:var(--pitch); }
.acc-palpites .accordion-body .table{ margin-bottom:0; }
@media (max-width:575.98px){
  .grp-nome{ font-size:.95rem; }
  .grp-meta{ font-size:.7rem; }
  .acc-palpites .accordion-button{ padding:.7rem .8rem; }
}

/* ---------- Mapeia o "verde de sucesso" do Bootstrap para o azul do tema ---------- */
.text-success{ color:var(--pitch) !important; }
.bg-success{ background-color:var(--pitch) !important; }
.text-bg-success{ background-color:var(--pitch) !important; color:#fff !important; }
.progress-bar.bg-success{ background-color:var(--pitch) !important; }
.btn-success{ background-color:var(--pitch); border-color:var(--pitch); color:#fff; }
.btn-success:hover{ background-color:var(--pitch-deep); border-color:var(--pitch-deep); color:#fff; }
.alert-success{ color:var(--pitch-deep); background-color:#e9eaf6; border-color:#cfd2ec; }

/* ---------- Abas (Jogos | Pódio) ---------- */
#abasPalpite .nav-link{ color:var(--pitch-deep); font-weight:800; border-radius:999px; padding:.45rem 1.1rem; border:1.5px solid var(--line); }
#abasPalpite .nav-link:hover{ border-color:var(--pitch); }
#abasPalpite .nav-link.active{ background:var(--pitch); border-color:var(--pitch); color:#fff; box-shadow:0 4px 12px rgba(23,26,74,.22); }
.podio-select option:disabled{ color:#aaa; }
