:root{
  --primary:#2b2a76; --primary-600:#23215f; --primary-700:#1b1a4d;
  --accent:#3b39a8; --bg:#f4f5fb; --surface:#ffffff; --border:#e6e8f0;
  --text:#1f2330; --muted:#6b7280; --muted-2:#9aa1ad;
  --success:#16a34a; --success-bg:#dcfce7; --danger:#dc2626; --danger-bg:#fee2e2;
  --warning:#d97706; --warning-bg:#fef3c7; --info:#2563eb; --info-bg:#dbeafe;
  --radius:14px; --radius-sm:10px; --shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);
  --shadow-lg:0 12px 32px rgba(16,24,40,.18);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;max-width:100%;overflow-x:hidden}   /* trava o arrasto/scroll lateral (mobile) */
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
/* Pente-fino anti-overflow horizontal: nada estoura a largura; tabelas largas rolam DENTRO do wrapper */
.main,.content,.page,.card{max-width:100%}
img,svg,table,pre{max-width:100%}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.boot{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--muted)}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}

/* ---------- Layout shell ---------- */
.shell{display:flex;min-height:100vh}
.sidebar{width:248px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:40;transition:transform .2s ease}
.sidebar__brand{padding:20px;display:flex;align-items:center;justify-content:center;background:var(--primary);border-bottom:1px solid var(--primary-700)}
.sidebar__brand img{max-height:64px;max-width:200px;object-fit:contain}
.sidebar__nav{padding:14px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.navlink{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;color:#4b5160;font-weight:500;font-size:14.5px;transition:.12s}
.navlink:hover{background:#f1f2f8;color:var(--text)}
.navlink.active{background:var(--primary);color:#fff;box-shadow:var(--shadow)}
.navlink .ico{width:18px;height:18px;flex:none;opacity:.9}
.navico{display:block;width:18px;height:18px}
.navgroup__head .ico .navico{width:18px;height:18px}
.navlink small{margin-left:auto;background:#eef0f7;color:#5b6172;border-radius:999px;padding:1px 8px;font-size:11px}
.navlink.active small{background:rgba(255,255,255,.2);color:#fff}
.navgroup__head{width:100%;display:flex;align-items:center;gap:12px;padding:11px 14px;border:none;background:none;color:#5b6172;font-weight:700;font-size:12px;letter-spacing:.05em;text-transform:uppercase;border-radius:10px;cursor:pointer}
.navgroup__head:hover{background:#f1f2f8}
.navgroup__head .chev{margin-left:auto;transition:.15s;font-size:10px}
.navgroup.open>.navgroup__head{background:var(--primary);color:#fff}
.navgroup.open>.navgroup__head .chev{transform:rotate(180deg)}
.navgroup__items{display:none;flex-direction:column;gap:2px;padding:4px 0 4px 6px}
.navgroup.open>.navgroup__items{display:flex}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:18px}
.tab{padding:9px 16px;border:none;background:none;font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-radius:999px;cursor:pointer}
.tab.active{background:var(--primary);color:#fff}
.checkrow{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:14px}
.barchart{display:flex;align-items:flex-end;gap:10px;height:190px;padding:24px 4px 22px;background:linear-gradient(180deg,#fbfbff,#f1f2fb);border:1px solid var(--border);border-radius:14px;position:relative}
.barchart .bar{flex:1;background:linear-gradient(180deg,#7a78ff,#3b39b0);border-radius:8px 8px 3px 3px;min-height:3px;position:relative;cursor:pointer;transition:transform .12s,filter .12s;box-shadow:0 4px 12px rgba(59,57,176,.25)}
.barchart .bar:hover{filter:brightness(1.12);transform:translateY(-3px)}
.barchart .bar::after{content:"";position:absolute;inset:0;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,rgba(255,255,255,.35),transparent 45%)}
.barchart .bar span{position:absolute;top:-19px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:800;color:var(--primary);white-space:nowrap}
.barchart .bar small{position:absolute;bottom:-19px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted);white-space:nowrap}

/* ---------- Resumo de Fechamento (tabelas) ---------- */
.fech{max-width:100%;overflow-x:auto}
.fech-tbl{width:100%;border-collapse:collapse;margin-bottom:18px;font-size:12.5px;background:#fff;box-shadow:var(--shadow);border-radius:8px;overflow:hidden}
.fech-tbl th,.fech-tbl td{border:1px solid #e3e6f0;padding:8px 10px;text-align:right;white-space:nowrap}
.fech-tbl td:first-child,.fech-tbl th:first-child{text-align:left}
.fech-tbl thead tr:last-child th{background:#2b2a76;color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.03em}
.fech-tbl__cap{background:#1f3b9b;color:#fff;text-align:left!important;font-size:13px;letter-spacing:.04em;padding:11px 12px;font-weight:800}
.fech-tbl--total .fech-tbl__cap{background:#147a37}
.fech-tbl__sub td{background:#eef1fb;font-weight:800}
.fech-tbl td.pos{color:#147a37}.fech-tbl td.neg{color:#c0392b}
@media print{
  body{background:#fff}
  .sidebar,.topbar,.no-print,.cupom-fab,.cupom-backdrop,.betslip-col,.toast-wrap{display:none!important}
  .main{margin-left:0!important}
  .content{padding:8px!important}
  .fech-tbl{box-shadow:none}
}

/* ---------- Cupom de apostas (cambista) ---------- */
.content--betslip{margin-right:312px}
.betslip-col{position:fixed;right:0;top:60px;bottom:0;width:300px;padding:16px 14px;overflow-y:auto;z-index:20}
.betslip__card{overflow:hidden}
.betslip__head{background:var(--primary);color:#fff;font-weight:700;padding:12px 16px;text-align:center}
.betslip__body{padding:14px}
.betslip__sel{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:8px 10px;margin-bottom:10px}
.betslip__sel>div:first-child{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}   /* info dos times encolhe/quebra; não empurra a lixeira */
.betslip__sel-actions{flex:0 0 auto;display:flex;align-items:center;gap:8px}          /* odd + lixeira: bloco fixo, nunca encolhe */
.betslip__rm{border:none;background:none;cursor:pointer;font-size:13px}
.betslip__row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin:3px 0}
.betslip__row b{color:var(--text)}
.input-icon{position:relative;display:flex;align-items:center}
.input-icon>span{position:absolute;left:11px;color:var(--muted);font-size:13px}
.input-icon>.input{padding-left:30px}
/* lista de jogos estilo casa de apostas */
.league-bar{background:var(--primary);color:#fff;font-weight:700;font-size:13px;padding:9px 14px;border-radius:8px 8px 0 0;display:flex;align-items:center;gap:8px;margin-top:14px}
.champ-grid{display:flex;flex-wrap:wrap;gap:10px;padding:12px;background:#fff;border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px}
.champ-link{flex:1;min-width:220px;padding:11px 14px;font-size:13.5px;color:#4b5160;text-decoration:none;border-radius:8px;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.champ-link:hover{background:#eef1f8;color:var(--primary);box-shadow:0 2px 8px rgba(43,47,143,.12)}
.champ-count{font-size:12px;color:var(--muted);font-weight:500}
.champ-back{display:inline-block;margin-bottom:10px;font-size:13px;font-weight:600;color:var(--primary);text-decoration:none}
.champ-back:hover{text-decoration:underline}
.page-head--liga .page-head__liga{display:flex;align-items:center;gap:10px}
.game-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border);background:#fff}
.g-info{flex:1;min-width:0;cursor:pointer}
/* BookiesAPI multi-esporte: escudos, bandeiras, cartões de campeonato */
.bk-crest{width:18px;height:18px;object-fit:contain;vertical-align:-4px;margin-right:5px;border-radius:3px}
.bk-crest--ph{display:inline-flex;align-items:center;justify-content:center;background:var(--surface,#eef);color:var(--muted,#667);font-size:11px}
.bk-flag{width:22px;height:15px;object-fit:cover;vertical-align:-2px;margin-right:7px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.bk-champ-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;padding:10px}
.bk-champ{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;background:var(--surface,#f4f5fb);border:1px solid var(--border,#e3e5f0);border-radius:10px;padding:12px 14px;cursor:pointer;font-weight:600;color:var(--text);transition:border-color .12s,background .12s}
.bk-champ:hover{border-color:var(--primary,#2b2a76);background:#fff}
.bk-champ small{background:var(--primary,#2b2a76);color:#fff;border-radius:999px;padding:1px 8px;font-size:11px;flex:0 0 auto}
.odd-cell.bk-noodd{background:#eef0f6!important;color:#9aa0b4!important;animation:none!important;cursor:default}
.bk-mkbtn{background:var(--surface,#eef0f6)!important;color:var(--primary)!important;border:1px dashed var(--primary)!important;font-size:12px;font-weight:700;animation:none!important}
.bk-modal-ov{position:fixed;inset:0;background:rgba(20,20,40,.55);display:flex;align-items:flex-end;justify-content:center;z-index:9999}
.bk-modal{background:var(--bg,#fff);width:100%;max-width:520px;max-height:82vh;border-radius:16px 16px 0 0;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -8px 40px rgba(0,0,0,.3)}
.bk-modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}
.bk-modal__x{background:none;border:none;font-size:18px;cursor:pointer;color:var(--muted);padding:2px 6px;line-height:1}
.bk-modal__body{overflow-y:auto;padding:8px 16px 20px}
.bk-mk{margin-top:12px}
.bk-mk__name{font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}
.bk-mk__picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.bk-mk__pick{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface,#f4f5fb);border:1px solid var(--border);border-radius:10px;padding:11px 13px;cursor:pointer;font-weight:600;color:var(--text)}
.bk-mk__pick:hover{border-color:var(--primary)}
.bk-mk__pick.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.bk-mk__pick b{font-size:14px}
@media(min-width:560px){.bk-modal-ov{align-items:center}.bk-modal{border-radius:16px}}
/* Abas de esportes ao vivo (tudo numa tela só) */
.live-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.live-tabs::-webkit-scrollbar{display:none}
.live-tab{flex:0 0 auto;display:flex;align-items:center;gap:7px;background:var(--surface,#f0f1f8);border:1px solid var(--border,#e3e5f0);border-radius:12px;padding:9px 14px;cursor:pointer;font-weight:700;font-size:13px;color:var(--text);white-space:nowrap;transition:border-color .12s,background .12s}
.live-tab:hover{border-color:var(--primary,#2b2a76)}
.live-tab.active{background:var(--primary,#2b2a76);color:#fff;border-color:var(--primary,#2b2a76)}
.live-tab__ico{font-size:16px}
.live-tab__n{min-width:20px;text-align:center;background:rgba(0,0,0,.12);color:inherit;border-radius:999px;padding:0 7px;font-size:11px}
.live-tab.active .live-tab__n{background:rgba(255,255,255,.25)}
.live-tab__n:empty{display:none}
.g-info .teams .t{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-meta{display:flex;align-items:center;gap:8px;margin-top:3px;font-size:11.5px;color:var(--muted)}
.g-live{color:var(--danger);font-weight:700}
.g-more{background:#eef0f7;color:#5b6172;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;cursor:pointer}
.g-more:empty{display:none}
.game-row .teams .t{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px}
.game-row .when{font-size:11px;color:var(--muted);min-width:64px}
.odd-cells{display:flex;gap:6px}
.odd-cell{width:62px;flex:none;text-align:center;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:9px 4px;cursor:pointer;font-weight:700;line-height:1.2;font-size:13.5px}
.odd-cell small{display:block;font-size:10px;font-weight:500;opacity:.85}
.odd-cell.on{background:var(--success)}
.odd-cell:disabled{opacity:.45;cursor:not-allowed}
.odd-more{width:46px;flex:none;text-align:center;background:var(--danger);color:#fff;border:none;border-radius:8px;padding:9px 4px;font-weight:700;font-size:12px;cursor:pointer;white-space:nowrap;overflow:hidden}
.carousel{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:16px}
.carousel .cg{background:#111;color:#fff;border-radius:12px;padding:16px;text-align:center;background-size:cover}
@media (max-width:1100px){.content--betslip{margin-right:0}.betslip-col{position:static;width:auto;border-top:1px solid var(--border)}}

/* ---------- Página do jogo (mercados) ---------- */
.fixture-banner{color:#fff;border-radius:14px;padding:26px 28px;margin-bottom:14px;background-size:cover;background-position:center;min-height:120px;display:flex;flex-direction:column;justify-content:center}
.fixture-banner__league{text-align:center;font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.92;margin-bottom:16px;font-weight:600}
.fixture-banner__teams{display:flex;align-items:center;justify-content:space-between;gap:14px}
.fixture-banner__teams .t{display:flex;align-items:center;gap:10px;flex:1;font-weight:700;font-size:15px;min-width:0}
.fixture-banner__teams .t span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fixture-banner__teams .t--home{justify-content:flex-start}
.fixture-banner__teams .t--away{justify-content:flex-end;text-align:right}
.fixture-banner__teams .t img{height:36px;width:36px;object-fit:contain;flex:none}
.fixture-banner__time{text-align:center;font-size:26px;font-weight:800;min-width:90px;flex:none;line-height:1.1}
.fixture-banner__time small{display:block;font-size:12px;opacity:.85;font-weight:500}
.fixture-banner__half{text-align:center;font-size:11px;color:#cfd2f0;letter-spacing:.12em;margin:-6px 0 8px;text-transform:uppercase;font-weight:700}
.fb-strips{display:flex;justify-content:space-between;align-items:flex-start;margin-top:14px;gap:16px}
.fb-strip{background:rgba(8,8,28,.6);border-radius:8px;overflow:hidden;min-width:150px}
.fb-strip[data-side="away"]{margin-left:auto}
.fb-strip__h{display:flex;background:#10112a;align-items:center}
.fb-strip__h span{flex:1;text-align:center;font-size:10px;padding:5px 0;color:#9a9cc8;font-weight:700;display:flex;align-items:center;justify-content:center;min-height:22px}
.fb-strip__h .fb-y{background:#f1c40f;max-width:14px;height:14px;border-radius:2px;flex:none;margin:0 auto}
.fb-strip__h .fb-r{background:#e0322c;max-width:14px;height:14px;border-radius:2px;flex:none;margin:0 auto}
.fb-strip__v{display:flex}
.fb-strip__v b{flex:1;text-align:center;font-size:14px;padding:6px 0;color:#fff}
/* Loader de transição de página (escudo SCOBETS + anel vermelho/branco girando) */
#route-loader{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:rgba(247,248,252,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#route-loader.on{display:flex}
.rl-box{display:flex;flex-direction:column;align-items:center;gap:14px}
.rl-spinner{position:relative;width:128px;height:128px;display:flex;align-items:center;justify-content:center}
.rl-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#e11d2a,#fff,#c0c8d6,#fff,#e11d2a,#fff,#e11d2a);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 11px),#000 calc(100% - 10px));mask:radial-gradient(farthest-side,transparent calc(100% - 11px),#000 calc(100% - 10px));animation:rl-spin .9s linear infinite;filter:drop-shadow(0 1px 3px rgba(0,0,0,.15))}
.rl-logo{position:relative;z-index:1;width:84px;height:84px;object-fit:contain;animation:rl-pulse 1.6s ease-in-out infinite}
.rl-gif{width:140px;height:140px;object-fit:contain}
.rl-txt{font-weight:800;letter-spacing:.5px;color:#1b2a4a}
@keyframes rl-spin{to{transform:rotate(360deg)}}
@keyframes rl-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@media(prefers-reduced-motion:reduce){.rl-ring,.rl-logo{animation-duration:2.4s}}
.fixture-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.fixture-toolbar .fx-filter-input{flex:1;min-width:0}
.fx-iconbtn{flex:none;width:42px;height:42px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.fx-iconbtn:active{opacity:.85}
@media(max-width:560px){
  .fixture-toolbar{gap:6px;flex-wrap:nowrap}
  .fixture-toolbar .fx-filter-input{font-size:14px;padding:9px 11px}
  .criar-toggle{padding:6px 9px;font-size:9.5px;gap:6px}
  .criar-toggle>span:first-child{max-width:48px;line-height:1.05;text-align:center}
  .criar-slider{width:30px;height:16px}
  .criar-slider::after{width:12px;height:12px}
  .criar-toggle input:checked + .criar-slider::after{left:16px}
  .fx-iconbtn{width:38px;height:38px;font-size:14px;border-radius:9px}
}
.market{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:8px;background:#fff}
.market__head{background:var(--primary);color:#fff;font-weight:700;font-size:13.5px;padding:11px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.market__head .chev{transition:.15s}
.market.closed .market__head .chev{transform:rotate(-90deg)}
.market__body{display:block}
.market.closed .market__body{display:none}
.market__row{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;border-top:1px solid var(--border);font-size:14px;cursor:pointer}
.market__row:hover{background:#fafbff}
.odd-badge{background:var(--primary);color:#fff;border-radius:6px;padding:4px 12px;font-weight:700;font-size:13px;min-width:54px;text-align:center}
.odd-badge.on{background:var(--success)}
/* Flash da odd ao vivo: sobe → VERDE forte, desce → VERMELHO forte (fundo + texto branco + escala + halo) */
@keyframes oddUp{
  0%{background:#15803d;color:#fff;box-shadow:0 0 0 4px rgba(22,163,74,.55),0 0 16px rgba(22,163,74,.9);transform:scale(1.2)}
  25%{background:#22c55e;color:#fff;transform:scale(1.2)}
  60%{background:#16a34a;color:#fff;transform:scale(1.07)}
  100%{box-shadow:0 0 0 0 rgba(22,163,74,0);transform:scale(1)}
}
@keyframes oddDown{
  0%{background:#b91c1c;color:#fff;box-shadow:0 0 0 4px rgba(220,38,38,.55),0 0 16px rgba(220,38,38,.9);transform:scale(1.2)}
  25%{background:#ef4444;color:#fff;transform:scale(1.2)}
  60%{background:#dc2626;color:#fff;transform:scale(1.07)}
  100%{box-shadow:0 0 0 0 rgba(220,38,38,0);transform:scale(1)}
}
.odd-up{animation:oddUp 1.7s cubic-bezier(.22,1,.36,1);border-radius:6px;position:relative;z-index:3;will-change:transform,background}
.odd-down{animation:oddDown 1.7s cubic-bezier(.22,1,.36,1);border-radius:6px;position:relative;z-index:3;will-change:transform,background}

/* ---------- Recibo do bilhete ---------- */
.rcpt{border:2px solid #e3b505;background:#fffbe6;border-radius:10px;padding:18px;max-width:440px;margin:0 auto;color:#1a1a2e;font-size:13.5px;line-height:1.5}
.rcpt-sep{border-top:1px dashed #cdb866;margin:10px 0}
.rcpt-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rcpt-status{background:#2f6fed;color:#fff;text-align:center;font-weight:700;letter-spacing:.06em;border-radius:8px;padding:10px;margin-top:12px}
.rcpt-subsel{margin:6px 0 6px 12px;padding:4px 0 4px 12px;border-left:2px solid #e3b505}
.rcpt-subsel + .rcpt-subsel{border-top:1px dashed #e7dca8}

/* ---------- Home pública (visitante) ---------- */
.guest{min-height:100vh;background:#f4f5fb}
.guest__top{height:64px;background:var(--primary);display:flex;align-items:center;gap:12px;padding:0 22px;position:sticky;top:0;z-index:30}
.guest__logo{height:38px;object-fit:contain}
.guest__main{display:flex;gap:18px;max-width:1180px;margin:0 auto;padding:18px;align-items:flex-start}
.guest__games{flex:1;min-width:0}
.guest__slip{width:320px;flex:none;position:sticky;top:82px}
@media (max-width:1000px){.guest__main{flex-direction:column}.guest__slip{width:auto;position:static}}

/* ---------- Banner + carrossel de destaques ---------- */
.home-banner{border-radius:10px;overflow:hidden;margin-bottom:14px;line-height:0}
.home-banner img{width:100%;height:auto;display:block}
.feat{position:relative;overflow:hidden;border-radius:12px;margin-bottom:16px}
.feat__track{display:flex;transition:transform .5s ease-out;will-change:transform}
.feat__card{flex:0 0 33.3333%;box-sizing:border-box;min-height:200px;margin-right:0;padding:18px;color:#fff;background:#0f1030;background-size:cover!important;background-position:center!important;position:relative}
.feat__card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,12,43,.55),rgba(13,12,43,.85))}
.feat__card>*{position:relative;z-index:1}
.feat__card+.feat__card{border-left:3px solid #f4f5fb}
.feat__lg{text-align:center;font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;opacity:.92}
.feat__dt{text-align:center;font-size:11px;opacity:.8;margin-bottom:14px}
.feat__teams{display:flex;align-items:center;justify-content:space-around;gap:8px}
.feat__t{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12.5px;font-weight:600;text-align:center;flex:1}
.feat__vs{font-weight:800;opacity:.8}
.feat__nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;border-radius:50%;background:rgba(255,255,255,.9);color:var(--primary);font-size:20px;font-weight:700;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center}
.feat__prev{left:8px}.feat__next{right:8px}
@media (max-width:1100px){.feat__card{flex-basis:50%}}
@media (max-width:700px){.feat__card{flex-basis:100%}}

/* ---- Mega Impulso (bilhetes prontos de 1 clique) ---- */
.mega{margin:0 0 16px}
.mega[hidden]{display:none}
.mega__head{display:flex;align-items:baseline;gap:10px;margin:0 0 10px;flex-wrap:wrap}
.mega__title{font-size:16px;font-weight:800;color:var(--text);letter-spacing:.01em}
.mega__sub{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.mega__viewport{position:relative;overflow:hidden}
.mega__track{display:flex;gap:12px;padding:2px 2px 12px;transition:transform .55s ease-out;will-change:transform}
.mega__nav{position:absolute;top:calc(50% - 6px);transform:translateY(-50%);width:34px;height:34px;border:none;border-radius:50%;background:rgba(255,255,255,.92);color:var(--primary);font-size:20px;font-weight:700;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.mega__nav[hidden]{display:none}
.mega__prev{left:6px}.mega__next{right:6px}
.mega__loading{padding:22px 12px;color:var(--muted);font-size:13px}
.mega__card{flex:0 0 262px;scroll-snap-align:start;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:14px;color:#fff;background:linear-gradient(160deg,#23215f,#1b1a4d 58%,#0f1030);box-shadow:var(--shadow);position:relative;overflow:hidden}
.mega__card::before{content:"";position:absolute;right:-32px;top:-32px;width:120px;height:120px;background:radial-gradient(circle,rgba(232,144,26,.38),transparent 70%);pointer-events:none}
.mega__card>*{position:relative;z-index:1}
.mega__lg{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mega__when{font-size:11px;opacity:.72}
.mega__match{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12.5px;font-weight:700}
.mega__team{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.mega__team:last-child{justify-content:flex-end;text-align:right}
.mega__team b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mega__team img{width:20px;height:20px;object-fit:contain;flex:0 0 auto}
.mega__x{opacity:.6;font-weight:800;flex:0 0 auto}
.mega__legs{display:flex;flex-direction:column;gap:5px;margin:2px 0 4px}
.mega__leg{display:flex;justify-content:space-between;gap:8px;align-items:center;background:rgba(255,255,255,.08);border-radius:8px;padding:5px 8px}
.mega__leg-mk{font-size:10px;text-transform:uppercase;letter-spacing:.03em;opacity:.72;flex:0 0 auto}
.mega__leg-pk{font-size:12px;font-weight:700;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mega__cta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;border:none;cursor:pointer;border-radius:10px;padding:10px 14px;font-weight:800;color:#1b1a4d;background:linear-gradient(90deg,#ffb347,#e8901a);transition:.15s;box-shadow:0 4px 14px rgba(232,144,26,.35)}
.mega__cta span{font-size:12px;letter-spacing:.03em}
.mega__cta b{font-size:17px;font-weight:800}
.mega__odds{display:flex;align-items:baseline;gap:6px}
.mega__odds s{font-size:12px;opacity:.68;text-decoration:line-through;font-weight:700}
.mega__arrow{font-style:normal;opacity:.7;font-size:13px;font-weight:800}
.mega__cta:hover{transform:translateY(-1px);filter:brightness(1.05)}
.mega__cta:disabled{opacity:.6;cursor:default;transform:none;filter:none}
@media (max-width:700px){.mega__card{flex-basis:82%}}

/* cabeçalho de colunas Casa/Empate/Fora — alinhado exatamente sobre as células */
.league-bar{display:flex;align-items:center;gap:8px}
.lg-cols{margin-left:auto;display:flex;gap:6px;padding-right:2px}
.lg-cols span{width:62px;text-align:center;font-size:11px;opacity:.9;font-weight:600}
@media (max-width:700px){.lg-cols{display:none}}

/* ---------- Modal Pix profissional ---------- */
.pixmodal{max-width:420px;margin:0 auto}
.pixmodal__head{background:linear-gradient(120deg,#0d0c2b,#2b2a76);color:#fff;border-radius:12px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.pixmodal__brand{font-size:12px;opacity:.9;display:flex;align-items:center;gap:6px}
.pixmodal__pix{background:#32bcad;color:#fff;font-weight:800;border-radius:5px;padding:2px 7px;font-size:12px}
.pixmodal__amount{text-align:right}
.pixmodal__amount span{display:block;font-size:11px;opacity:.85}
.pixmodal__amount b{font-size:20px}
.pixmodal__qr{text-align:center}
.pixmodal__qr img{width:220px;height:220px;border:1px solid var(--border);border-radius:12px;padding:8px;background:#fff}
.pixmodal__noqr{padding:20px;background:#f4f5fb;border-radius:10px;color:var(--muted)}
.pixmodal__steps{margin:14px 0;display:flex;flex-direction:column;gap:10px}
.pixmodal__steps>div{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.45}
.pixmodal__steps .pixstep-n{flex:none;width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}
.pixmodal__steps>div>span:last-child{flex:1 1 auto}
.pixmodal__code{display:flex;gap:8px;align-items:center;background:#f4f5fb;border:1px solid var(--border);border-radius:10px;padding:8px 10px}
.pixmodal__code code{flex:1;font-size:11px;word-break:break-all;color:#333}
.pixmodal__note{background:#ecf6ff;border:1px solid #cbe6fb;color:#1b5e8a;border-radius:10px;padding:10px 12px;margin-top:12px;font-size:12.5px;text-align:center}
/* Telas pequenas: encolhe os elementos do modal Pix pra caber tudo (footer sempre visível) */
@media(max-width:560px){
  .modal__body{padding:16px}
  .pixmodal__head{padding:11px 14px;margin-bottom:10px}
  .pixmodal__amount b{font-size:18px}
  .pixmodal__qr img{width:168px;height:168px;padding:6px}
  .pixmodal__steps{margin:10px 0;gap:8px}
  .pixmodal__steps>div{font-size:12.5px;line-height:1.4}
  .pixmodal__code{padding:7px 9px}
  .pixmodal__note,.pixmodal__warn{margin-top:8px;padding:8px 10px;font-size:11.5px}
}

/* ---------- Modal pagar prêmio (dados do cliente) ---------- */
.prizebox{max-width:420px;margin:0 auto}
.prizebox__amount{background:linear-gradient(120deg,#147a37,#1f9d4e);color:#fff;border-radius:12px;padding:14px 16px;text-align:center;margin-bottom:14px}
.prizebox__amount span{display:block;font-size:12px;opacity:.9}
.prizebox__amount b{font-size:26px}
.prizerow{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}
.prizerow span{color:var(--muted)}
.prizerow b{text-align:right;word-break:break-all}

/* ---------- Toggle CRIAR APOSTA (página do jogo) ---------- */
.criar-toggle{display:inline-flex;align-items:center;gap:8px;background:var(--primary);color:#fff;border-radius:20px;padding:6px 12px;font-size:11px;font-weight:700;cursor:pointer;user-select:none}
.criar-toggle input{display:none}
.criar-slider{width:34px;height:18px;border-radius:10px;background:rgba(255,255,255,.35);position:relative;transition:.15s;flex:none}
.criar-slider::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:.15s}
.criar-toggle input:checked + .criar-slider{background:var(--success)}
.criar-toggle input:checked + .criar-slider::after{left:18px}

/* ---------- Bloco "Criar Aposta" no cupom ---------- */
.betslip__combo{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:#fffdf7}
.betslip__combohead{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;margin-bottom:4px}
.betslip__combohead>:first-child{justify-self:start}
.betslip__combohead>:nth-child(2){justify-self:center}   /* chip do esporte (Futebol) centralizado */
.betslip__combohead>:last-child{justify-self:end;text-align:right}
.cb-tag{color:#e8901a;font-weight:800;font-size:12.5px}
.bs-sport{display:inline-block;background:var(--primary);color:#fff;font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:999px;letter-spacing:.02em;line-height:1.5;white-space:nowrap}
.betslip__combo .betslip__sel{border:none;padding:6px 0;margin:0;border-top:1px dashed var(--border)}
.betslip__rm{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:#c0392b;cursor:pointer;padding:0;opacity:.85;flex:0 0 auto;width:26px;height:26px;font-size:14px}
.betslip__rm:hover{opacity:1}

/* ---------- Overlay "Aguarde" (análise das partidas ao vivo) ---------- */
.aguarde-overlay{position:fixed;inset:0;background:rgba(20,20,40,.55);display:flex;align-items:center;justify-content:center;z-index:9999}
.aguarde-box{background:#fff;border-radius:14px;padding:28px 40px;box-shadow:0 20px 60px rgba(0,0,0,.3);text-align:center;max-width:90vw}
.aguarde-box p{margin:14px 0 0;font-weight:600;color:#1a1a2e}
.aguarde-spin{width:34px;height:34px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;margin:0 auto;animation:aguarde-rot .8s linear infinite}
@keyframes aguarde-rot{to{transform:rotate(360deg)}}

/* ---------- AO VIVO piscando (acompanhamento do bilhete) ---------- */
.badge-live{display:inline-block;background:#c0392b;color:#fff;font-size:10px;font-weight:700;border-radius:4px;padding:1px 6px;animation:blink-live 1s steps(2,start) infinite}
@keyframes blink-live{50%{opacity:.3}}

/* ---------- Painel ao vivo (estatísticas / lances / campinho) ---------- */
.livepanel{padding:0;overflow:hidden;margin-bottom:14px;background:linear-gradient(160deg,#10112a,#1b1c3f);color:#e7e8f5;border:1px solid #2a2c52}
.livepanel__head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(120deg,#1b1a4d,#3b39b0);flex-wrap:wrap;gap:8px}
.livepanel__teams{display:flex;align-items:center;gap:14px;font-weight:700}
.livepanel__teams b{font-size:24px;background:rgba(255,255,255,.14);padding:2px 14px;border-radius:8px}
.livepanel__tabs{display:flex;border-bottom:1px solid #2a2c52}
.lp-tab{flex:1;background:none;border:none;color:#9a9cc8;padding:12px;font-weight:700;font-size:13px;cursor:pointer;border-bottom:3px solid transparent;transition:.12s}
.lp-tab:hover{color:#cfd2f0}
.lp-tab.active{color:#fff;border-bottom-color:#ff5a5f}
.lp-pane{padding:16px 18px}
.lp-empty{text-align:center;color:#8688b3;padding:26px}
.lp-stat{margin-bottom:13px}
.lp-stat__row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:5px}
.lp-stat__row span{color:#b9bce0;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
.lp-stat__row b{font-weight:800}
.lp-stat__bar{display:flex;height:7px;border-radius:4px;overflow:hidden;background:#0d0e22}
.lp-stat__bar i{display:block;height:100%}
.lp-stat__bar i:first-child{background:linear-gradient(90deg,#5a47d6,#7a78ff)}
.lp-stat__bar i:last-child{background:linear-gradient(90deg,#ff8a5f,#ff5a5f);margin-left:auto}
.lp-timeline{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}
.lp-ev{display:flex;align-items:center;gap:10px;font-size:13px;padding:7px 9px;border-radius:8px;background:#161735}
.lp-ev.away{flex-direction:row-reverse;text-align:right}
.lp-ev__min{background:#2a2c52;color:#cfd2f0;border-radius:6px;padding:2px 8px;font-weight:700;font-size:11px;flex:none}
.lp-ev__ico{font-size:16px}
.lp-ev__txt small{color:#9a9cc8;margin-left:4px}
.lp-field{position:relative;width:100%;aspect-ratio:16/9;background:repeating-linear-gradient(90deg,#0f7a3f 0 10%,#0c6e37 10% 20%);border-radius:12px;overflow:hidden;border:2px solid rgba(255,255,255,.25);margin-bottom:8px}
.lp-field::before{content:"";position:absolute;inset:8px;border:2px solid rgba(255,255,255,.3);border-radius:6px}
.lp-half{position:absolute;left:50%;top:8px;bottom:8px;width:2px;background:rgba(255,255,255,.3)}
.lp-circle{position:absolute;left:50%;top:50%;width:64px;height:64px;border:2px solid rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%)}
.lp-player{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1px;z-index:2}
.lp-player__n{width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.lp-player--home .lp-player__n{background:#fff;color:#10112a}
.lp-player--away .lp-player__n{background:#ff5a5f;color:#fff}
.lp-player__name{font-size:9px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.95);white-space:nowrap;max-width:62px;overflow:hidden;text-overflow:ellipsis}
.lp-form{display:flex;justify-content:space-between;font-size:12px;color:#b9bce0}

/* bolinha "Ao vivo" pulsando (menu) */
.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#e0322c;position:relative;vertical-align:middle}
.live-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:#e0322c;animation:live-pulse 1.4s ease-out infinite}
@keyframes live-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.8);opacity:0}}

/* ---------- Cards "Jogos do Dia" (sidebar) ---------- */
.diacards{display:flex;gap:6px;padding:6px 8px 8px}
.diacard{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:1px solid var(--border);border-radius:8px;background:#fff;text-decoration:none}
.diacard:hover{border-color:var(--primary);background:#f4f5fb}
.diacard__m{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:700;letter-spacing:.04em}
.diacard__d{font-size:19px;font-weight:800;color:var(--primary)}

/* abas de data na página principal (Hoje/Amanhã/Depois) */
.day-tabs{display:flex;gap:8px;margin:0 0 14px}
.day-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:1px solid var(--border);border-radius:10px;background:#fff;text-decoration:none;color:var(--text);text-align:center;line-height:1.2}
.day-tab:hover{border-color:var(--primary);background:#f4f5fb}
.day-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.day-tab__l{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.day-tab__d{font-size:11px;opacity:.85}

/* ---------- Cupom mobile (bottom sheet) ---------- */
.betslip__close{display:none;background:none;border:none;color:#fff;font-size:18px;cursor:pointer;float:right;line-height:1}
.cupom-fab{display:none;position:fixed;bottom:16px;right:16px;z-index:61;background:var(--primary);color:#fff;border:none;border-radius:26px;padding:13px 22px;font-weight:800;letter-spacing:.04em;box-shadow:0 6px 22px rgba(0,0,0,.35);align-items:center;gap:8px;cursor:pointer}
.cupom-fab__n{background:var(--danger);border-radius:50%;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;padding:0 5px}
.cupom-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60}
body.has-modal .cupom-fab,body.has-modal .cupom-backdrop{display:none!important}   /* modal aberto → esconde o fab do cupom (anti-sobreposição) */
/* Botões do Relatório — quadrados, uniformes e profissionais */
.rel-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.rel-actions .rel-btn{flex:0 0 auto;height:44px;padding:0 20px;border-radius:10px!important;justify-content:center;font-weight:700;letter-spacing:.02em;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:filter .12s,transform .12s}
.rel-actions .rel-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.rel-actions .rel-btn.btn--ghost{border:1px solid var(--border)}
@media(max-width:560px){.rel-actions{width:100%}.rel-actions .rel-btn{flex:1 1 46%;height:46px}}
.cupom-backdrop.show{display:block}
@media (min-width:1101px){.cupom-backdrop,.cupom-backdrop.show{display:none!important}}
@media (max-width:900px){
  .cupom-fab{display:inline-flex}
  .betslip__close{display:inline-flex}
  .content--betslip{margin-right:0!important}
  .betslip-col{position:fixed!important;left:0;right:0;bottom:0;top:auto!important;width:auto!important;max-height:86vh;overflow-y:auto;margin:0!important;transform:translateY(110%);transition:transform .28s ease;z-index:62;border-radius:16px 16px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.3);background:#fff}
  .betslip-col.sheet-open{transform:translateY(0)}
  .betslip__card{border-radius:16px 16px 0 0;margin:0}
}

/* ---------- Resumo do caixa na vertical ---------- */
.kpi-col{display:flex;flex-direction:column;gap:8px}
.kpi-col .kpi-card{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.kpi-col .kpi-card .lbl{margin:0}
.kpi-col .kpi-card .val{font-size:18px}

.main{flex:1;margin-left:248px;display:flex;flex-direction:column;min-width:0}
.topbar{height:60px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:30}
.topbar__title{font-weight:700;letter-spacing:.3px}
.topbar__right{display:flex;align-items:center;gap:18px;font-size:13px}
.bal{display:flex;flex-direction:column;line-height:1.25;text-align:right}
.bal b{font-size:13px}
.usermenu{position:relative}
.usermenu__btn{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:none;color:#fff;padding:7px 12px;border-radius:999px}
.usermenu__pop{position:absolute;right:0;top:46px;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);min-width:180px;overflow:hidden}
.usermenu__pop a,.usermenu__pop button{display:block;width:100%;text-align:left;padding:11px 16px;border:none;background:none;font-size:14px}
.usermenu__pop a:hover,.usermenu__pop button:hover{background:#f4f5fb}
.content{padding:26px 28px;flex:1}
.hamburger{display:none;background:none;border:none;color:#fff;font-size:22px}

/* ---------- Page header ---------- */
.page-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.page-title{font-size:24px;font-weight:800;margin:2px 0 4px}
.page-sub{color:var(--muted);font-size:14px;margin:0 0 18px}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.page-head .actions{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- Cards / KPIs ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.card.pad{padding:20px}
.grid{display:grid;gap:16px}
.grid.kpi{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}   /* sempre 2 colunas, lado a lado, encolhe pra caber */
@media(max-width:520px){.grid--2{gap:10px}}
/* Caixa: card centralizado + lançamentos COMPRIMIDOS pra caber numa tela (prioridade); rola só a tabela se ainda assim faltar */
.caixa-grid{min-width:0}
.caixa-grid>*{min-width:0;max-width:100%}   /* IMPORTANTE: impede a tabela de descrições longas estourar o grid e empurrar tudo pra direita */
.caixa-center{display:flex;justify-content:center;min-width:0}
.caixa-center>.card{width:100%;max-width:360px}   /* card preenche a largura (não encolhe pra 161px no mobile) e centraliza */
.lanc-compact .tablewrap{overflow-x:auto}
.lanc-compact .tbl{font-size:12px;table-layout:fixed;width:100%}
.lanc-compact .tbl th,.lanc-compact .tbl td{padding:6px 7px;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
@media(max-width:560px){
  .lanc-compact .tbl{font-size:10px}
  .lanc-compact .tbl th,.lanc-compact .tbl td{padding:4px 3px}
  /* colunas bem justas (sem gap): Data | Tipo | Valor (à direita) | Descrição (resto) */
  .lanc-compact .tbl th:nth-child(1),.lanc-compact .tbl td:nth-child(1){width:22%}
  .lanc-compact .tbl th:nth-child(2),.lanc-compact .tbl td:nth-child(2){width:14%}
  .lanc-compact .tbl th:nth-child(3),.lanc-compact .tbl td:nth-child(3){width:24%;text-align:right}
  .lanc-compact .tbl th:nth-child(4),.lanc-compact .tbl td:nth-child(4){width:40%}
}
.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}
.kpi-card .lbl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.kpi-card .val{font-size:26px;font-weight:800;margin-top:6px}
.kpi-card .val.pos{color:var(--success)} .kpi-card .val.neg{color:var(--danger)}
.section-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);font-weight:700;margin:22px 0 10px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:999px;padding:9px 18px;font-weight:700;font-size:13px;transition:.12s;background:#eef0f7;color:#3a4050}
.btn:hover{filter:brightness(.97)}
.btn--primary{background:var(--primary);color:#fff}
.btn--success{background:var(--success);color:#fff}
.btn--danger{background:var(--danger);color:#fff}
.btn--warning{background:var(--warning);color:#fff}
.btn--ghost{background:transparent;border:1px solid var(--border);color:#4b5160}
.btn--sm{padding:6px 13px;font-size:12px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.w-full{justify-content:center}

/* ---------- Forms ---------- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#5b6172}
.input,.select,textarea.input{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 13px;font-size:14px;background:#fff;outline:none;transition:.12s}
.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,57,168,.12)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 18px}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.help{font-size:12px;color:var(--muted)}
.err{color:var(--danger);font-size:12.5px;margin-top:4px}

/* ---------- Tables ---------- */
.tablewrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
table.tbl{width:100%;border-collapse:collapse;font-size:14px}
table.tbl th{text-align:left;padding:13px 16px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);background:#fafbfe;border-bottom:1px solid var(--border)}
table.tbl td{padding:13px 16px;border-bottom:1px solid var(--border);color:#374151}
table.tbl tr:last-child td{border-bottom:none}
table.tbl tr:hover td{background:#fafbff}
.row-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- Badges ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:700}
.badge--success{background:var(--success-bg);color:#15803d}
.badge--danger{background:var(--danger-bg);color:#b91c1c}
.badge--warning{background:var(--warning-bg);color:#b45309}
.badge--info{background:var(--info-bg);color:#1d4ed8}
.badge--muted{background:#eef0f7;color:#5b6172}

/* ---------- Toolbar / filters ---------- */
.toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:16px}
.toolbar .field{margin-bottom:0;min-width:180px;flex:1}
.toolbar .spacer{flex:1}

/* ---------- Empty / loading ---------- */
.empty{text-align:center;padding:48px 20px;color:var(--muted)}
.empty .ico{font-size:34px;opacity:.4}
.skeleton{height:14px;border-radius:6px;background:linear-gradient(90deg,#eef0f6,#f7f8fc,#eef0f6);background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- Pagination ---------- */
.pager{display:flex;gap:6px;justify-content:center;align-items:center;margin-top:0;flex-wrap:wrap}
.pager button{min-width:36px;height:36px;border-radius:6px;border:1px solid var(--border);background:#fff;font-weight:600;font-size:14px;cursor:pointer;color:var(--primary)}
.pager button:hover:not(.active):not([disabled]){background:#f1f5f9}
.pager button.active{background:var(--primary);color:#fff;border-color:var(--primary);cursor:default}
.pager button[disabled]{opacity:1;cursor:default}

/* ---------- Modal ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(17,20,32,.55);display:flex;align-items:center;justify-content:center;z-index:60;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom));animation:fade .15s}
.modal{background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:90vh;max-height:92dvh;overflow:hidden;display:flex;flex-direction:column;animation:pop .16s}
.modal__head{flex:none}
.modal--lg{max-width:760px}
.modal__head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}
.modal__head h3{margin:0;font-size:18px;font-weight:800}
.modal__head .x{background:none;border:none;font-size:22px;color:var(--muted);line-height:1}
.modal__body{padding:22px;overflow:auto;flex:1 1 auto;-webkit-overflow-scrolling:touch}
.modal__foot{flex:none;padding:16px 22px;padding-bottom:calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;background:inherit}

/* ==== Voucher do PIN — modal "bet internacional" (profissional) ==== */
.modal--voucher{max-width:432px}
.modal--voucher .modal__head{border-bottom:none;padding-bottom:0}
.modal--voucher .modal__head h3{font-size:16px;letter-spacing:.01em}
.modal--voucher .modal__body{padding-top:8px}
.modal--voucher .modal__foot{border-top:none;padding-top:6px}
.modal--voucher .modal__foot>div{flex:1 1 auto;width:100%}
.pinv{text-align:center}
.pinv__check{width:56px;height:56px;margin:2px auto 0;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--success);background:var(--success-bg);box-shadow:0 0 0 6px rgba(22,163,74,.10)}
.pinv__sub{color:var(--muted);font-size:14px;line-height:1.5;margin:16px auto 20px;max-width:300px}
.pinv__sub b{color:var(--text)}
.pinv__label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:11px}
.pinv__code{display:flex;justify-content:center;gap:8px}
.pinv__code span{width:46px;height:58px;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--primary-700);background:linear-gradient(180deg,#f8f9ff,#eceffb);border:1.5px solid #dbdff2;border-radius:12px;box-shadow:inset 0 -3px 0 rgba(43,42,118,.06)}
.pinv__meta{display:flex;align-items:stretch;background:#f7f8fc;border:1px solid var(--border);border-radius:14px;padding:13px 6px;margin:20px 0 0}
.pinv__meta-item{flex:1;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-width:0}
.pinv__meta-item span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.pinv__meta-item b{font-size:16px;font-weight:800;color:var(--text);letter-spacing:.02em;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.pinv__meta-sep{width:1px;background:var(--border)}
.pinv__note{display:flex;gap:9px;text-align:left;align-items:flex-start;background:#eef2ff;border:1px solid #d8e0ff;color:#3b4790;border-radius:12px;padding:11px 13px;margin-top:14px;font-size:12.5px;line-height:1.5}
.pinv__note b{color:var(--primary)}
.pinv__note-ico{flex:none}
.pinv-btn-copy,.pinv-btn-ok{flex:1;justify-content:center;border-radius:12px;padding:13px 16px;font-size:14px;font-weight:800}
.pinv-btn-copy{background:#fff;border:1.5px solid var(--primary);color:var(--primary)}
.pinv-btn-copy:hover{background:var(--primary);color:#fff;filter:none}
.pinv-btn-copy.is-done{background:var(--success-bg);border-color:var(--success);color:var(--success)}
.pinv-btn-ok{background:linear-gradient(135deg,var(--primary),var(--primary-700));color:#fff;box-shadow:0 8px 20px rgba(43,42,118,.28)}
.pinv-btn-ok:hover{filter:brightness(1.09)}
@media(max-width:420px){.pinv__code{gap:6px}.pinv__code span{width:42px;height:54px;font-size:27px}.pinv__sub{margin:14px auto 16px}}
@keyframes fade{from{opacity:0}} @keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}}

/* ---------- Toast ---------- */
#toast-root{position:fixed;top:18px;right:18px;z-index:80;display:flex;flex-direction:column;gap:10px}
.toast{background:#fff;border:1px solid var(--border);border-left:4px solid var(--info);border-radius:12px;box-shadow:var(--shadow-lg);padding:13px 16px;min-width:280px;max-width:380px;display:flex;gap:10px;align-items:flex-start;animation:slide .2s}
.toast--success{border-left-color:var(--success)} .toast--error{border-left-color:var(--danger)} .toast--warning{border-left-color:var(--warning)}
.toast b{font-size:14px} .toast p{margin:2px 0 0;font-size:13px;color:var(--muted)}
@keyframes slide{from{opacity:0;transform:translateX(20px)}}

/* ---------- Login ---------- */
.login{min-height:100vh;min-height:100dvh;display:flex;background:var(--primary-700);background-size:cover;background-position:center;position:relative;padding:18px 16px;overflow-y:auto}   /* 100dvh + scroll: campos ficam visíveis com o teclado aberto */
.login::before{content:"";position:fixed;inset:0;background:linear-gradient(180deg,rgba(8,10,25,.45),rgba(8,10,25,.72))}
.login__card{position:relative;margin:auto;background:rgba(15,17,46,.82);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border:1px solid rgba(255,255,255,.14);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08);width:100%;max-width:380px;padding:24px 24px 22px;overflow:hidden}
.login__card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#e11d2a,#fff,#e11d2a)}   /* faixa SCOBETS */
.login__logo{display:flex;justify-content:center;margin-bottom:10px}
.login__logo img{max-height:52px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.login__title{color:#fff;text-align:center;font-size:20px;font-weight:800;margin:0}
.login__sub{color:rgba(255,255,255,.6);text-align:center;font-size:13px;margin:3px 0 16px}
.login__card label{color:rgba(255,255,255,.85)!important;font-weight:600;font-size:12.5px;letter-spacing:.2px}
.login__card .field{margin-bottom:14px}
.lg-inp{position:relative;display:flex;align-items:center}
.lg-ico{position:absolute;left:12px;font-size:14px;opacity:.65;pointer-events:none}
.login__card .input{background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.18);border-radius:11px;padding:12px 12px 12px 38px;color:#11142b;width:100%;transition:border-color .15s,box-shadow .15s}
.login__card .input:focus{outline:none;border-color:#7c86ff;box-shadow:0 0 0 3px rgba(124,134,255,.3)}
.login__card #login-btn{background:#e11d2a!important;color:#fff;border:none;border-radius:11px;font-weight:800;letter-spacing:.5px;box-shadow:0 6px 18px rgba(225,29,42,.35)}
.login__card #login-btn:hover{filter:brightness(1.06)}
.login__card #login-home{background:rgba(255,255,255,.08);color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.18);border-radius:11px}
.login__card .err{color:#ffb4b4;font-size:13px;text-align:center;margin-bottom:8px}
.login__hint{color:rgba(255,255,255,.7);font-size:11.5px;margin-top:14px;line-height:1.6}
.login__hint a{color:#9fb0ff}
.login__logo img{max-height:74px}
.login__hint{margin-top:18px;font-size:12.5px;color:var(--muted);background:#f6f7fb;border:1px dashed var(--border);border-radius:10px;padding:12px}
.login__hint b{color:var(--text)}
.login__hint code{background:#fff;border:1px solid var(--border);border-radius:6px;padding:1px 6px}

/* ===== LOTERIA (.lot) — cliente: cards + montar aposta ===== */
.lot{max-width:720px;margin:0 auto;padding:8px 12px 28px}
.lot__head{display:flex;align-items:center;gap:12px;margin:4px 0 16px}
.lot__back{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.lot__title{font-size:22px;font-weight:800;margin:0}
.lot__sub{font-size:13px;color:var(--muted);margin:2px 0 0}
.lot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.lot-card{position:relative;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;cursor:pointer;transition:transform .12s,border-color .12s;box-shadow:0 6px 18px rgba(0,0,0,.05)}
.lot-card:hover{transform:translateY(-3px);border-color:var(--primary)}
.lot-card__badge{display:inline-block;background:#dcfce7;color:#15803d;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.lot-card__name{font-size:22px;font-weight:900;color:var(--primary);margin:10px 0 6px}
.lot-card__desc{font-size:13px;color:var(--muted);line-height:1.5;min-height:38px}
.lot-card__foot{font-size:12px;color:var(--text);margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
.lot-card__go{position:absolute;top:18px;right:18px;color:var(--primary);font-weight:800;font-size:13px}
.lot-empty{text-align:center;color:var(--muted);padding:40px 20px}
.lot-sec{margin-bottom:14px}
.lot-step{font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--primary);margin-bottom:12px}
.lot-qtds{display:flex;flex-wrap:wrap;gap:8px}
.lot-qtd{min-width:48px;padding:10px 12px;border:1.5px solid var(--border);background:var(--surface);border-radius:10px;font-weight:800;cursor:pointer;font-size:15px}
.lot-qtd.is-on{background:var(--primary);color:#fff;border-color:var(--primary)}
.lot-premios{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.lot-prcol{background:#f7f8fc;border:1px solid var(--border);border-radius:12px;padding:10px 12px}
.lot-prhead{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted-2);margin-bottom:6px}
.lot-pr{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;color:var(--muted)}
.lot-pr.is-on{color:var(--text);font-weight:700}
.lot-pr b{color:var(--text)}
.lot-tipo{display:flex;gap:0;background:#eef0f7;border-radius:12px;padding:4px;max-width:340px}
.lot-tipo__b{flex:1;background:transparent;border:none;padding:10px;border-radius:9px;font-weight:800;cursor:pointer;color:var(--muted)}
.lot-tipo__b.is-on{background:var(--success);color:#fff}
.lot-count{text-align:center;font-size:13px;color:var(--muted);margin-bottom:10px}
.lot-count span{font-weight:800;color:var(--primary)}
.lot-grid-nums{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:7px}
.lot-num{aspect-ratio:1;border:1.5px solid var(--border);background:var(--surface);border-radius:9px;font-weight:800;font-size:14px;cursor:pointer;color:var(--text);transition:.1s}
.lot-num:hover:not(:disabled){border-color:var(--primary)}
.lot-num.is-on{background:var(--primary);color:#fff;border-color:var(--primary)}
.lot-num:disabled{opacity:.4;cursor:not-allowed}
.lot-resumo{display:flex;gap:8px;background:#f7f8fc;border:1px solid var(--border);border-radius:12px;padding:12px;margin-top:14px}
.lot-resumo>div{flex:1;text-align:center;display:flex;flex-direction:column;gap:3px}
.lot-resumo span{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2)}
.lot-resumo b{font-size:15px;color:var(--text)}
.lot-ticket-nums{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px 0}
.lot-ticket-nums span{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;border-radius:8px;font-weight:800;font-size:13px}
@media(max-width:520px){.lot-premios{grid-template-columns:1fr}.lot-grid-nums{grid-template-columns:repeat(auto-fill,minmax(38px,1fr))}}

/* ===== LOGIN "casa de apostas internacional" (.auth) — hero esportivo + card 2 modos ===== */
.auth{min-height:100vh;min-height:100dvh;position:relative;display:flex;align-items:center;justify-content:center;padding:20px 16px;overflow-y:auto;background:#0a0c1e var(--auth-bg,none) center/cover no-repeat}
.auth::before{content:"";position:absolute;inset:0;background:radial-gradient(1200px 600px at 15% 10%,rgba(43,42,118,.55),transparent 60%),linear-gradient(180deg,rgba(6,8,20,.72),rgba(6,8,20,.9))}
.auth__shade{position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 38px,rgba(255,255,255,.012) 38px 39px)}
.auth__grid{position:relative;width:100%;max-width:960px;display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center}
/* --- HERO --- */
.auth__hero{color:#eef1ff;padding:8px 6px}
.auth__brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.auth__brand img{max-height:52px;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}
.auth__brand-txt{font-size:26px;font-weight:900;letter-spacing:.06em;color:#fff}
.auth__live{display:inline-flex;align-items:center;gap:7px;background:rgba(225,29,42,.16);border:1px solid rgba(225,29,42,.5);color:#ff8a92;font-size:11px;font-weight:800;letter-spacing:.14em;padding:5px 11px;border-radius:999px;text-transform:uppercase}
.auth__live i{width:8px;height:8px;border-radius:50%;background:#e11d2a;box-shadow:0 0 0 0 rgba(225,29,42,.7);animation:ltvpulse 1.6s infinite}
.auth__headline{font-size:38px;line-height:1.08;font-weight:900;margin:0 0 14px;letter-spacing:-.5px}
.auth__headline span{color:#ff5964}
.auth__lead{font-size:15px;line-height:1.6;color:rgba(230,233,255,.72);max-width:440px;margin:0 0 22px}
.auth__rights{display:flex;gap:13px;align-items:flex-start;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-left:3px solid #e11d2a;border-radius:12px;padding:13px 15px;max-width:440px}
.auth__rights-ico{font-size:22px;line-height:1}
.auth__rights b{display:block;font-size:13.5px;color:#fff;margin-bottom:2px}
.auth__rights small{font-size:12px;color:rgba(230,233,255,.62);line-height:1.45}
.auth__feats{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:10px 22px}
.auth__feats li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:rgba(230,233,255,.85)}
.auth__feats li span{font-size:15px}
/* --- CARD --- */
.auth__card{position:relative;background:rgba(14,16,40,.86);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border:1px solid rgba(255,255,255,.13);border-radius:20px;box-shadow:0 30px 70px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.08);padding:26px 26px 20px;overflow:hidden}
.auth__card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#e11d2a,#fff,#e11d2a)}
.auth__card-brand{display:none;justify-content:center;margin-bottom:14px}
.auth__card-brand img{max-height:46px}
.auth__tabs{display:flex;gap:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:4px;margin-bottom:20px}
.auth__tab{flex:1;background:transparent;border:none;color:rgba(230,233,255,.7);font-size:13px;font-weight:800;letter-spacing:.02em;padding:10px;border-radius:9px;cursor:pointer;transition:.15s}
.auth__tab.is-on{background:#fff;color:#141634;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.auth__title{color:#fff;font-size:20px;font-weight:800;margin:0}
.auth__sub{color:rgba(230,233,255,.6);font-size:13px;margin:3px 0 18px}
.auth__card label{color:rgba(255,255,255,.85)!important;font-weight:600;font-size:12.5px;letter-spacing:.2px}
.auth__card .field{margin-bottom:14px}
.auth__card .input{background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.18);border-radius:11px;padding:12px 12px 12px 38px;color:#11142b;width:100%;transition:border-color .15s,box-shadow .15s}
.auth__card .input:focus{outline:none;border-color:#e11d2a;box-shadow:0 0 0 3px rgba(225,29,42,.28)}
.auth__go{background:#e11d2a!important;color:#fff!important;border:none;border-radius:12px;font-weight:900;letter-spacing:.6px;padding:14px;justify-content:center;box-shadow:0 10px 24px rgba(225,29,42,.4);transition:filter .15s,transform .1s}
.auth__go:hover{filter:brightness(1.08)}
.auth__go:active{transform:translateY(1px)}
.auth__card .err{color:#ffb4b4;font-size:13px;text-align:center;margin:2px 0 10px}
.auth__note{color:rgba(230,233,255,.6);font-size:12px;text-align:center;margin:12px 2px 0;line-height:1.5}
.auth__note b{color:#fff}
.auth__rules{display:flex;gap:9px;align-items:flex-start;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);color:rgba(230,233,255,.6);font-size:11.5px;line-height:1.55}
.auth__rules b{color:rgba(255,255,255,.9)}
.auth__back{width:100%;margin-top:14px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.16);border-radius:11px;padding:11px;font-weight:700;font-size:13px;cursor:pointer;transition:.15s}
.auth__back:hover{background:rgba(255,255,255,.12)}
.auth__card .login__hint{margin-top:14px;background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.18);color:rgba(230,233,255,.7)}
.auth__card .login__hint b{color:#fff}
.auth__card .login__hint code{background:rgba(255,255,255,.9);border:none;color:#141634}
.auth__card .login__hint a{color:#9fb0ff}
@media(max-width:820px){
  .auth__grid{grid-template-columns:1fr;max-width:420px;gap:0}
  .auth__hero{display:none}
  .auth__card-brand{display:flex}
}

/* ---------- helpers ---------- */
.flex{display:flex} .items-center{align-items:center} .gap-2{gap:8px} .gap-3{gap:12px}
.mono{font-variant-numeric:tabular-nums}
.text-right{text-align:right} .text-muted{color:var(--muted)} .w-full{width:100%}
.hide{display:none!important}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .sidebar{transform:translateX(-100%)} .sidebar.open{transform:translateX(0);box-shadow:var(--shadow-lg)}
  .main{margin-left:0} .hamburger{display:block}
  .sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:35}
}
@media (min-width:1025px){
  .navlink--mobile-only{display:none!important}
}

/* ============================================================
   DASHBOARD BETCONTROL — tema claro/escuro ISOLADO em #dash-root
   REGRA: TODO seletor escuro começa com "#dash-root.dash-dark"
   para não vazar pro resto do app.
   ============================================================ */

/* --- Variáveis do tema claro (padrão dentro do dash) --- */
#dash-root {
  --dash-bg:         #f0f2f8;
  --dash-card-bg:    #ffffff;
  --dash-border:     #e6e8f0;
  --dash-text:         #1f2330;
  --dash-muted:        #6b7280;
  --dash-muted-strong: #374151; /* contraste WCAG AA ~4.5:1 sobre bg claro */
  --dash-heading:      #0f172a;
  --dash-accent:     #2b2a76;
  --dash-accent2:    #3b39a8;
  --dash-pos:        #16a34a;
  --dash-neg:        #dc2626;
  --dash-shadow:     0 1px 4px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);
  --dash-shadow-md:  0 4px 16px rgba(16,24,40,.10);
  --dash-radius:     14px;
  --dash-kpi-accent: #2b2a76;
  /* novas vars de cor padrao */
  --dash-primary:    #2563EB;
  --dash-success:    #10B981;
  --dash-warning:    #F59E0B;
  --dash-danger:     #EF4444;
  --dash-entrada:    #2563EB;
  --dash-saida:      #EF4444;
  --dash-barra:      #2563EB;
  --dash-radius-sm:  10px;
  background: var(--dash-bg);
  border-radius: 0;
  padding: 0;
  transition: background .25s, color .25s;
}

/* --- Variáveis do tema escuro --- */
#dash-root.dash-dark {
  --dash-bg:         #0f172a;
  --dash-card-bg:    #1e293b;
  --dash-border:     #334155;
  --dash-text:         #e2e8f0;
  --dash-muted:        #94a3b8;
  --dash-muted-strong: #cbd5e1; /* contraste WCAG AA sobre dark bg */
  --dash-heading:      #f1f5f9;
  --dash-accent:     #818cf8;
  --dash-accent2:    #a5b4fc;
  --dash-pos:        #4ade80;
  --dash-neg:        #f87171;
  --dash-shadow:     0 1px 4px rgba(0,0,0,.35),0 1px 2px rgba(0,0,0,.25);
  --dash-shadow-md:  0 4px 20px rgba(0,0,0,.45);
  --dash-kpi-accent: #818cf8;
  --dash-entrada:    #3b82f6;
  --dash-saida:      #f87171;
  --dash-barra:      #3b82f6;
}

/* --- Reset de cor/bg dos elementos internos ao dark --- */
#dash-root.dash-dark .dash-card,
#dash-root.dash-dark .dash-chart-card {
  background: var(--dash-card-bg);
  border-color: var(--dash-border);
  color: var(--dash-text);
}
/* SVG herdado no dark: labels de eixo, legendas inline.
   :not([fill]) evita sobrescrever textos com fill explícito (legendas coloridas). */
#dash-root.dash-dark svg text:not([fill]) { fill: var(--dash-muted); }
#dash-root.dash-dark svg text:not([fill])[font-weight="700"],
#dash-root.dash-dark svg text:not([fill])[font-weight="800"] { fill: var(--dash-text); }
/* Linhas de grade dos charts */
#dash-root.dash-dark svg line { stroke: #334155; }
/* barras do barPanelHTML (fill hardcoded #222 nos valores de barra) */
#dash-root.dash-dark .card { background: var(--dash-card-bg); border-color: var(--dash-border); color: var(--dash-text); }
#dash-root.dash-dark .section-label { color: var(--dash-muted); }

/* --- Layout raiz do dash --- */
.dash-root { display: flex; flex-direction: column; gap: 20px; color: var(--dash-text); }

/* --- Barra superior --- */
.dash-topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 0 4px;
}
.dash-eyebrow {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--dash-accent);
  margin-bottom: 2px;
}
.dash-heading {
  font-size: 26px;
  font-weight: 800;
  color: var(--dash-heading);
  margin: 0;
  letter-spacing: -.3px;
  line-height: 1.1;
}

/* --- Botão toggle tema --- */
.dash-theme-btn {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--dash-border);
  background: var(--dash-card-bg);
  color: var(--dash-text);
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 16px;
  cursor: pointer;
  box-shadow: var(--dash-shadow);
  transition: background .2s, border-color .2s, box-shadow .15s;
  line-height: 1;
}
.dash-theme-btn:hover { box-shadow: var(--dash-shadow-md); }
.dash-theme-sun  { display: block; }
.dash-theme-moon { display: none; }
#dash-root.dash-dark .dash-theme-sun  { display: none; }
#dash-root.dash-dark .dash-theme-moon { display: block; }
.dash-theme-btn--spin {
  animation: dash-theme-spin 300ms ease;
}

/* --- Grid de KPIs --- */
.dash-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 14px;
}
.dash-kpi {
  background: var(--dash-card-bg);
  border: 1px solid var(--dash-border);
  border-radius: var(--dash-radius);
  box-shadow: var(--dash-shadow);
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  transition: box-shadow .15s, transform .15s;
}
.dash-kpi:hover { box-shadow: var(--dash-shadow-md); transform: translateY(-1px); }
.dash-kpi-ico {
  font-size: 26px;
  flex: none;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--dash-bg);
  border-radius: 10px;
}
#dash-root.dash-dark .dash-kpi-ico { background: rgba(255,255,255,.06); }
.dash-kpi-body { min-width: 0; flex: 1; }
.dash-kpi-label {
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dash-muted);
  font-weight: 700;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dash-kpi-value {
  font-size: 22px;
  font-weight: 800;
  color: var(--dash-text);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.dash-kpi-value.pos { color: var(--dash-pos); }
.dash-kpi-value.neg { color: var(--dash-neg); }

/* --- Grid de donuts: 3 em linha, 2 em tablet, 1 em mobile estreito --- */
.dash-donuts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 900px) { .dash-donuts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .dash-donuts-grid { grid-template-columns: 1fr; } }

/* --- Grid de gráficos de barras: 2 lado a lado --- */
.dash-charts-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 700px) { .dash-charts-grid { grid-template-columns: 1fr; } }

/* --- Card genérico do dash --- */
.dash-card {
  background: var(--dash-card-bg);
  border: 1px solid var(--dash-border);
  border-radius: var(--dash-radius);
  box-shadow: var(--dash-shadow);
  padding: 20px;
  overflow: hidden;
}
.dash-chart-card {
  background: var(--dash-card-bg);
  border: 1px solid var(--dash-border);
  border-radius: var(--dash-radius);
  box-shadow: var(--dash-shadow);
  padding: 20px;
  overflow: hidden;
}
.dash-chart-title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--dash-accent);
  margin-bottom: 14px;
}
.dash-chart-empty {
  color: var(--dash-muted);
  font-size: 13px;
  padding: 24px 0;
  text-align: center;
}

/* --- Donut component --- */
.dash-donut-wrap { display: flex; flex-direction: column; gap: 14px; }
.dash-donut-title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--dash-accent);
}
.dash-donut-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.dash-donut-legend {
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex: 1;
  min-width: 100px;
}
.dash-donut-leg-item {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  color: var(--dash-text);
  min-width: 0;
}
.dash-donut-leg-dot {
  flex: none;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  display: block;
}
.dash-donut-leg-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--dash-muted);
  font-weight: 600;
}
.dash-donut-leg-val {
  flex: none;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.dash-donut-leg-val small {
  font-weight: 500;
  font-size: 10px;
  color: var(--dash-muted);
  margin-left: 2px;
}
.dash-donut-empty {
  color: var(--dash-muted);
  font-size: 13px;
  padding: 20px 0;
  text-align: center;
}

/* --- barPanelHTML / lineChart dentro do dash — ajuste de cores no dark --- */
#dash-root.dash-dark .card.pad { background: var(--dash-card-bg) !important; border-color: var(--dash-border) !important; }
#dash-root.dash-dark .section-label[style*="color:#"] { color: var(--dash-accent) !important; }

/* ================================================================
   DASHBOARD PREMIUM — novos componentes
   ================================================================ */

/* --- Keyframes --- */
@keyframes dash-draw {
  from { stroke-dashoffset: var(--spark-len, 200); }
  to   { stroke-dashoffset: 0; }
}
/* Sparkline: opacity fade substitui dash-draw (evita stroke-dasharray hardcoded) */
@keyframes dash-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
/* Skeleton shimmer */
@keyframes dash-shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}
@keyframes dash-live-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .3; }
}
@keyframes dash-theme-spin {
  0%   { transform: rotate(0deg) scale(1); }
  50%  { transform: rotate(30deg) scale(0.82); }
  100% { transform: rotate(0deg) scale(1); }
}

/* --- Skeleton shimmer placeholders --- */
.dash-skel {
  border-radius: 6px;
  background: linear-gradient(90deg, var(--dash-border) 25%, var(--dash-card-bg) 50%, var(--dash-border) 75%);
  background-size: 800px 100%;
  animation: dash-shimmer 1.4s infinite linear;
}
.dash-skel--h12  { height: 12px; }
.dash-skel--h20  { height: 20px; }
.dash-skel--h36  { height: 36px; }
.dash-skel--h200 { height: 200px; }
.dash-skel--w40  { width: 40%; }
.dash-skel--w60  { width: 60%; }
.dash-skel--w80  { width: 80%; }
.dash-skeleton-card { pointer-events: none; }

/* --- Grid KPI Financeiro (3 colunas × 2 linhas) --- */
.dash-kpi-grid-financial {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 900px) { .dash-kpi-grid-financial { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .dash-kpi-grid-financial { grid-template-columns: 1fr; } }

/* --- Grid KPI Operacional (4 colunas) --- */
.dash-kpi-grid-operational {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 900px) { .dash-kpi-grid-operational { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .dash-kpi-grid-operational { grid-template-columns: 1fr; } }

/* --- KPI Card Premium (.dash-kpi2) --- */
.dash-kpi2 {
  background: var(--dash-card-bg);
  border: 1px solid var(--dash-border);
  border-radius: var(--dash-radius);
  box-shadow: var(--dash-shadow);
  padding: 18px 20px 16px;
  position: relative;
  overflow: hidden;
  transition: box-shadow .15s, transform .15s;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.dash-kpi2:hover { box-shadow: var(--dash-shadow-md); transform: translateY(-2px); }

.dash-kpi2-stripe {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--accent-color, #2563EB);
}

.dash-kpi2-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.dash-kpi2-ico {
  width: 36px; height: 36px;
  border-radius: 9px;
  background: var(--ico-bg, rgba(37,99,235,.12));
  display: flex; align-items: center; justify-content: center;
  flex: none;
}
/* Dark: rgba de 12% é quase invisível sobre #1e293b — aumentar para 22% */
#dash-root.dash-dark .dash-kpi2-ico {
  filter: brightness(1.6);
}

.dash-kpi2-delta {
  font-size: 11px; font-weight: 600;
  display: flex; align-items: center; gap: 3px;
}
.dash-kpi2-delta--up   { color: var(--dash-pos); }
.dash-kpi2-delta--down { color: var(--dash-neg); }

.dash-kpi2-value {
  font-size: 24px; font-weight: 800;
  color: var(--dash-text);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}

.dash-kpi2-label {
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--dash-muted);
}

.dash-kpi2-sublabel {
  font-size: 12px; color: var(--dash-muted);
}

.dash-kpi2-spark {
  margin-top: 8px;
}

/* KPI compacto (operacional) */
.dash-kpi2--sm { padding: 14px 16px 12px; }
/* --lg em cards operacionais deve ser MENOR que os 24px dos cards financeiros primários */
.dash-kpi2-value--lg { font-size: 22px; }

/* Valor com cor dinâmica (taxa de acerto) */
.dash-kpi2-value--pos { color: var(--dash-pos); }
.dash-kpi2-value--neg { color: var(--dash-neg); }

/* --- Faixa AO VIVO --- */
.dash-live-band {
  background: rgba(239, 68, 68, .07);
  border: 1px solid rgba(239, 68, 68, .22);
  border-radius: 10px;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
#dash-root.dash-dark .dash-live-band {
  background: rgba(239, 68, 68, .09);
  border-color: rgba(239, 68, 68, .28);
}
.dash-live-band-left {
  display: flex; align-items: center; gap: 8px; flex: none;
}
.dash-live-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #EF4444; flex: none; display: inline-block;
  animation: dash-live-pulse 1.4s ease infinite;
}
.dash-live-label {
  font-size: 11px; font-weight: 800;
  color: #EF4444; letter-spacing: .1em;
}
.dash-live-count {
  font-size: 12px; color: var(--dash-muted);
}
.dash-live-band-items {
  display: flex; gap: 8px; flex: 1; flex-wrap: wrap; min-width: 0;
}
.dash-live-chip {
  font-size: 11px; color: var(--dash-text);
  background: rgba(239,68,68,.06);
  border: 1px solid rgba(239,68,68,.15);
  border-radius: 6px; padding: 3px 8px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 220px;
}
.dash-live-chip b { color: #EF4444; margin-left: 4px; font-variant-numeric: tabular-nums; }
.dash-live-more { font-size: 11px; color: var(--dash-muted); align-self: center; }
.dash-live-band-right {
  font-size: 12px; color: var(--dash-muted);
  flex: none; margin-left: auto;
}
.dash-live-band-right b {
  color: var(--dash-text); font-variant-numeric: tabular-nums;
}
@media (max-width: 600px) {
  .dash-live-band { flex-direction: column; align-items: flex-start; gap: 8px; }
  .dash-live-band-right { margin-left: 0; }
}

/* --- Grid principal: chart 2fr + ranking 1fr --- */
.dash-charts-grid-main {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 16px;
}
/* Sidebar fecha em 1024px; colapsar aqui evita coluna ranking de ~87px */
@media (max-width: 1024px) { .dash-charts-grid-main { grid-template-columns: 1fr; } }

/* --- Grid bottom: 3 colunas --- */
.dash-bottom-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 900px) { .dash-bottom-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .dash-bottom-grid { grid-template-columns: 1fr; } }

/* --- Ranking horizontal animado --- */
.dash-ranking { display: flex; flex-direction: column; gap: 10px; }
.dash-ranking-title {
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--dash-accent); margin-bottom: 6px;
}
.dash-ranking-row {
  display: flex; align-items: center; gap: 8px;
}
.dash-ranking-pos {
  font-size: 11px; font-weight: 700; color: var(--dash-muted);
  width: 14px; flex: none; text-align: center;
}
.dash-ranking-name {
  font-size: 12px; color: var(--dash-text);
  width: 80px; flex: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dash-ranking-bar-wrap { flex: 1; min-width: 0; }
.dash-ranking-bar {
  width: var(--pct, 0%); min-width: 4px;
  height: 4px;
  background: linear-gradient(90deg, #2563EB, #14B8A6);
  border-radius: 2px;
  transition: width 0.5s ease 0.2s;
}
.dash-ranking-val {
  font-size: 12px; font-weight: 700;
  color: var(--dash-text); font-variant-numeric: tabular-nums;
  white-space: nowrap; flex: none; width: 68px; text-align: right;
}

/* --- Card de Resumo de Status --- */
.dash-status-list { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.dash-status-row {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--dash-text);
}
.dash-status-dot {
  width: 8px; height: 8px; border-radius: 3px; flex: none;
}
.dash-status-lbl { flex: 1; color: var(--dash-muted); font-size: 12px; font-weight: 600; }
.dash-status-val { font-weight: 700; font-variant-numeric: tabular-nums; }
.dash-status-divider {
  height: 1px; background: var(--dash-border); margin: 2px 0;
}
.dash-status-row--total .dash-status-lbl { color: var(--dash-text); font-weight: 700; }
.dash-status-row--total .dash-status-val { color: var(--dash-text); }

/* ---- Roleta do sorteio ---- */
.roleta{position:relative;overflow:hidden;height:66px;border-radius:12px;background:linear-gradient(180deg,#11132a,#0b0c1c);border:1px solid #2a2c50;box-shadow:inset 0 0 24px rgba(0,0,0,.5)}
.roleta__track{display:flex;transition:transform 5s cubic-bezier(.1,.85,.16,1);will-change:transform}
.roleta__item{flex:0 0 150px;height:66px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;color:#aeb1e0;border-right:1px solid #20223f;letter-spacing:.04em}
.roleta__item.win{color:#ffd84d;text-shadow:0 0 12px rgba(255,216,77,.6)}
.roleta__pointer{position:absolute;left:50%;top:-3px;bottom:-3px;width:3px;background:#e0322c;transform:translateX(-50%);z-index:2;box-shadow:0 0 12px #e0322c}
.roleta__pointer::before{content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);border:7px solid transparent;border-top-color:#e0322c}
.roleta__pointer::after{content:'';position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);border:7px solid transparent;border-bottom-color:#e0322c}
.roleta__win{background:linear-gradient(135deg,#fff6cc,#ffe9a8);border:1px solid #f0c860;animation:roletaPop .4s ease}
@keyframes roletaPop{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}

/* ---- Odds Casa/Empate/Fora nos cards do carrossel ---- */
.feat__odds{display:flex;gap:6px;margin-top:10px}
.feat__odd{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 4px;border:none;border-radius:8px;background:rgba(255,255,255,.16);color:#fff;cursor:pointer;transition:.15s;backdrop-filter:blur(2px)}
.feat__odd span{opacity:.85;font-size:10px;letter-spacing:.02em}
.feat__odd b{font-size:14px;font-weight:800}
.feat__odd:not(:disabled):hover{background:rgba(255,255,255,.3);transform:translateY(-1px)}
.feat__odd.on{background:#19b85a;color:#fff;box-shadow:0 0 0 2px rgba(25,184,90,.4)}
.feat__odd:disabled{opacity:.45;cursor:default}

/* ---- Odd bloqueada (API não forneceu) ---- */
.odd-cell.locked, .feat__odd.locked, .market__row.locked{opacity:.5;cursor:not-allowed}
.odd-cell.locked{background:#eef0f6;color:#9aa0b4}
.odd-lock{font-size:13px;opacity:.75}
.feat__odd.locked{background:rgba(255,255,255,.08)}

/* ---- Busca de jogos + linha clicável + mobile full-width ---- */
.games-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:2px 12px;margin:12px 0 14px;box-shadow:var(--shadow)}
.games-search span{opacity:.5;font-size:15px}
.games-search input{flex:1;border:none;outline:none;background:none;padding:11px 0;font-size:15px}
.game-row .teams,.game-row .when{cursor:pointer}
.game-row .teams:hover .t{color:var(--primary)}
@media (max-width:760px){
  .content{padding:10px 8px!important}
  .game-row{padding:9px 7px;gap:6px}
  .game-row .teams .t{font-size:13px}
  .game-row .when{min-width:54px;font-size:10.5px}
  .odd-cell{width:52px;padding:8px 2px;font-size:13px;border-radius:7px}
  .odd-more{width:40px;font-size:11px}
  .league-bar{padding:8px 10px;font-size:12px}
  .page-head{padding:4px 2px}
}

/* ---- PIN no rodapé do bilhete ---- */
.rcpt-statuswrap{position:relative}
.rcpt-pin{position:absolute;right:6px;bottom:-8px;background:#fff;border:2px solid var(--primary);color:var(--primary);border-radius:10px;padding:4px 14px;font-weight:800;font-size:13px;box-shadow:0 3px 10px rgba(16,24,40,.2)}
.rcpt-pin b{font-size:15px;letter-spacing:.06em;margin-left:4px}

/* ---- Avatar do perfil + topbar mobile compacto ---- */
.usermenu__avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#fff;color:var(--primary);font-weight:800;font-size:14px;flex:none}
@media (max-width:760px){
  .topbar{padding:0 12px}
  .topbar__title{display:none}
  .topbar__right{gap:10px}
  .bal{font-size:11px}.bal b{font-size:11.5px}
  .usermenu__btn{padding:0;background:none}
  .usermenu__name,.usermenu__chev{display:none}
}

/* ---- Voltar ao topo (flutuante, no tema) ---- */
.to-top{position:fixed;right:18px;bottom:84px;z-index:60;width:46px;height:46px;border-radius:50%;border:none;
  background:linear-gradient(160deg,var(--primary),var(--primary-700));color:#fff;font-size:22px;font-weight:800;line-height:1;
  box-shadow:0 8px 22px rgba(16,24,40,.35);cursor:pointer;opacity:0;transform:translateY(14px) scale(.85);pointer-events:none;transition:.22s ease}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{filter:brightness(1.12)}
@media (max-width:760px){ .to-top{right:14px;bottom:78px;width:42px;height:42px;font-size:20px} }

/* ---- Skeleton shimmer enquanto a odd carrega (some quando preenche ou trava no cadeado) ---- */
.odd-cell:disabled:not(.locked){color:transparent!important;background:linear-gradient(100deg,#2b2f8f 30%,#3f44b0 50%,#2b2f8f 70%);background-size:200% 100%;animation:oddshimmer 1.1s linear infinite}
.feat__odd:disabled:not(.locked) b{color:transparent}
@keyframes oddshimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---- Fluidez em listas longas: o browser pula a renderização do que está fora da tela ---- */
.league-block{content-visibility:auto;contain-intrinsic-size:auto 320px}

/* ---- Admin pronto p/ mobile: nada estoura a tela ---- */
@media (max-width:760px){
  .toolbar{padding:12px;gap:10px}
  .toolbar .field{min-width:100%;flex:1 1 100%;margin-bottom:0}
  .toolbar .field[style*="align-self"]{display:flex;gap:8px;flex-direction:row}
  .toolbar .field .btn{flex:1}
  .grid.kpi{grid-template-columns:1fr 1fr;gap:10px}
  .kpi-card{padding:12px 14px}.kpi-card .val{font-size:19px}
  .tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px}
  table.tbl{font-size:12.5px;min-width:540px}
  table.tbl th,table.tbl td{padding:9px 10px}
  .tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{white-space:nowrap;flex:none}
  .card.pad{padding:14px}
  .page-title{font-size:21px}
  .page-head{flex-direction:column;align-items:stretch}
  .page-head .actions{width:100%}
  .page-head .actions .btn{flex:1}
  /* formulários em 2 colunas (Título|Link, Início|Fim) → 1 coluna no celular */
  .form-2col,.fields-2{grid-template-columns:1fr!important}
}

/* ---- Carrossel de banners da home ---- */
.bcar{position:relative;overflow:hidden;border-radius:14px}
.bcar__track{display:flex;transition:transform .5s ease}
.bcar .bslide{flex:0 0 100%;min-width:100%}
.bcar .bslide img{width:100%;display:block;border-radius:14px;object-fit:cover}
.bcar__dots{position:absolute;left:0;right:0;bottom:8px;display:flex;gap:6px;justify-content:center;z-index:2}
.bcar__dots .bdot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:.2s}
.bcar__dots .bdot.on{background:#fff;width:20px;border-radius:4px}

/* ---- Aviso + botão Fechar no modal Pix ---- */
.pixmodal__warn{margin-top:10px;background:#fff7e6;border:1px solid #ffd591;color:#9a6a00;border-radius:10px;padding:9px 12px;font-size:12px;line-height:1.45;text-align:center}
.pixmodal__close{background:#eef0f7;color:#3b4252;border:1px solid var(--border);font-weight:700}
.pixmodal__close:hover{background:#e3e6f0}

/* ---- Acompanhar bilhete (cards de jogo em tempo real) ---- */
.tk{max-width:540px;margin:0 auto}
.tk-head{background:linear-gradient(160deg,#23266b,#15183f);color:#fff;border-radius:14px;padding:16px;margin-bottom:12px;box-shadow:var(--shadow);text-align:center;position:relative}
.tk-logo{max-height:30px;margin-bottom:8px;object-fit:contain}
.tk-head__row{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:#cfd3f5;margin-bottom:8px}
.tk-cupom{font-weight:800;letter-spacing:.08em;color:#fff;font-size:15px}
.tk-status{display:inline-block;background:#ffd84d;color:#3a2f00;font-weight:800;font-size:11px;letter-spacing:.06em;border-radius:999px;padding:4px 14px;margin-bottom:10px}
.tk-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;border-top:1px solid rgba(255,255,255,.12);padding-top:10px}
.tk-summary div{display:flex;flex-direction:column;gap:2px}
.tk-summary span{font-size:9px;letter-spacing:.06em;color:#9aa0d8;text-transform:uppercase}
.tk-summary b{font-size:12.5px;color:#fff}
.tk-game{background:#fff;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;overflow:hidden;box-shadow:var(--shadow)}
.tk-game__top{display:flex;justify-content:space-between;background:#f6f7fb;padding:6px 12px;font-size:9.5px;letter-spacing:.05em;color:var(--muted);text-transform:uppercase;font-weight:700;border-bottom:1px solid var(--border)}
.tk-game__teams{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px}
.tk-team{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:0}
.tk-team b{font-size:13px;font-weight:700;line-height:1.2}
.tk-badge{width:34px;height:34px;border-radius:50%;background:linear-gradient(160deg,#2b2f8f,#1b1e63);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.tk-score{flex:none;text-align:center;min-width:78px}
.tk-score small{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;display:block}
.tk-score div{font-size:18px;font-weight:800;color:var(--text)}
.tk-score .badge-live{font-size:10px}
.tk-game__pick{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-top:1px dashed var(--border)}
.tk-game__pick>div{min-width:0}
.tk-game__pick b{font-size:13px}
.tk-pick{font-size:12.5px;color:#374151}
.tk-game__pick small[data-sit]{font-size:11px;color:var(--muted)}
/* Acompanhar — Criar Aposta agrupado (jogo uma vez + palpites listados) */
.tk-combo-odd{padding:4px 12px 8px;text-align:right;font-size:12px;color:#e8901a;font-weight:700}
.tk-combo-group .tk-combo-picks .tk-cpick{border-left:3px solid #e8901a;margin:0 8px;padding-left:12px}
.tk-combo-group .tk-combo-picks .tk-cpick:first-child{border-top:1px dashed var(--border)}
.tk-odd{font-size:16px;font-weight:800;color:var(--primary);flex:none}

/* ---- Placar ao lado dos times na lista ao vivo ---- */
.game-row .teams .t .g-score{margin-left:auto;font-weight:800;color:var(--primary);font-size:14px;min-width:18px;text-align:right}

/* ---- PIN de cashout no menu do perfil do cambista ---- */
.usermenu__pin{padding:10px 14px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:1px}
.usermenu__pin span{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.usermenu__pin b{font-size:20px;font-weight:800;color:var(--primary);letter-spacing:.08em}
.usermenu__pin small{font-size:10.5px;color:var(--muted)}

/* ---- Logo do time no acompanhamento (fallback p/ inicial) ---- */
.tk-badge--img{background:#fff;border:1px solid var(--border);padding:0;overflow:hidden}
.tk-badge--img img{width:100%;height:100%;object-fit:contain;display:block}

/* ============================================================================
   TEMA ESCURO PROFISSIONAL (admin) — .shell.theme-cyber
   Padrão "comercial internacional" (slate neutro + acento azul-índigo, estilo
   Linear/Stripe/GitHub). Sobrescreve variáveis + elementos com cor fixa, com
   cuidado de contraste. Vale pra TODO o painel admin.
   ============================================================================ */
.theme-cyber{
  --primary:#4f7cff; --primary-600:#3f63e6; --primary-700:#3450c4; --accent:#6d8bff;
  --bg:#0d1220; --surface:#161c2c; --border:rgba(255,255,255,.08);
  --text:#e6e9f0; --muted:#98a2b3; --muted-2:#6b7484;
  --success:#34d399; --success-bg:rgba(52,211,153,.13); --danger:#f87171; --danger-bg:rgba(248,113,113,.13);
  --warning:#fbbf24; --warning-bg:rgba(251,191,36,.13); --info:#60a5fa; --info-bg:rgba(96,165,250,.13);
  --shadow:0 1px 3px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4); --shadow-lg:0 18px 44px rgba(0,0,0,.6);
  background:var(--bg);
  color:var(--text);   /* re-cascateia a cor do texto (senão os filhos herdam o claro do body e somem no escuro) */
}
.theme-cyber .main{background:var(--bg);min-height:100vh;color:var(--text)}
/* labels de formulário, checkboxes e botões base no escuro (eram cinza/claro fixos) */
.theme-cyber .field label{color:#aeb6c6}
.theme-cyber .checkrow{color:var(--text)}
.theme-cyber .btn{background:#222b3d;color:var(--text)}
.theme-cyber .btn--primary{background:var(--primary);color:#fff}
.theme-cyber .btn--primary:hover{filter:brightness(1.08)}
.theme-cyber .help,.theme-cyber .sub,.theme-cyber small{color:var(--muted)}
.theme-cyber .content{background:transparent}
/* topbar + sidebar — escuros e sóbrios (não coloridos) */
.theme-cyber .topbar{background:#131a28;border-bottom:1px solid var(--border);color:var(--text)}
.theme-cyber .topbar__title{color:var(--text)}
.theme-cyber .sidebar{background:#0f1422;border-right:1px solid var(--border)}
.theme-cyber .sidebar__brand{border-bottom:1px solid var(--border)}
.theme-cyber .navlink{color:#aeb6c6}
.theme-cyber .navlink .ico{color:#7e889c}
.theme-cyber .navlink:hover{background:rgba(255,255,255,.05);color:#fff}
.theme-cyber .navlink.active{background:rgba(79,124,255,.14);color:#fff;box-shadow:inset 2px 0 0 var(--primary)}
.theme-cyber .navlink.active .ico{color:var(--primary)}
.theme-cyber .navgroup__head{color:#aeb6c6}
.theme-cyber .navgroup__items .navlink{color:#9aa3b5}
/* inputs/selects/textarea (eram #fff) */
.theme-cyber .input,.theme-cyber .select,.theme-cyber textarea.input{background:#141a28;color:var(--text);border-color:var(--border)}
.theme-cyber .input::placeholder{color:#6b7484}
.theme-cyber .input:focus,.theme-cyber .select:focus,.theme-cyber textarea.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,124,255,.22)}
.theme-cyber select.select option{background:#161c2c;color:var(--text)}
/* tabelas (th era #fafbfe, td era #374151) */
.theme-cyber table.tbl th{background:#11182a;color:#aab3c5;border-color:var(--border)}
.theme-cyber table.tbl td{color:#d3d8e3;border-color:var(--border)}
.theme-cyber table.tbl tbody tr:hover{background:rgba(255,255,255,.04)}
.theme-cyber table.tbl tr:hover td{background:rgba(255,255,255,.04)}   /* corrige o hover que ficava branco (#fafbff) no escuro */
/* modais / dropdown do usuário / toast / pager (eram #fff) */
.theme-cyber .modal{background:#161c2c;color:var(--text)}
.theme-cyber .usermenu__pop{background:#161c2c;color:var(--text)}
.theme-cyber .usermenu__pop a,.theme-cyber .usermenu__pop button{color:var(--text)}
.theme-cyber .usermenu__pop a:hover,.theme-cyber .usermenu__pop button:hover{background:rgba(255,255,255,.05)}
.theme-cyber .toast{background:#161c2c;color:var(--text)}
.theme-cyber .pager button{background:#141a28;color:var(--text)}
/* botão ghost (texto fixo #4b5160) e cards */
.theme-cyber .btn--ghost{color:var(--text);border-color:var(--border)}
.theme-cyber .btn--ghost:hover{background:rgba(255,255,255,.05)}
.theme-cyber .card{box-shadow:0 1px 2px rgba(0,0,0,.4)}
.theme-cyber .kpi-card{background:var(--surface)}
.theme-cyber .page-title,.theme-cyber .page-eyebrow{color:var(--text)}
.theme-cyber .page-sub,.theme-cyber .section-label{color:var(--muted)}
/* DASHBOARD premium no escuro neutro (sobrescreve as --dash-*) */
.theme-cyber #dash-root{
  --dash-bg:#0d1220; --dash-card-bg:#161c2c; --dash-text:#e6e9f0; --dash-heading:#f3f5f9;
  --dash-muted:#98a2b3; --dash-muted-strong:#b8c0cf; --dash-border:rgba(255,255,255,.08);
  --dash-primary:#4f7cff; --dash-accent:#6d8bff; --dash-success:#34d399; --dash-danger:#f87171; --dash-warning:#fbbf24;
  --dash-pos:#34d399; --dash-neg:#f87171; --dash-entrada:#4f7cff; --dash-saida:#f87171; --dash-barra:#4f7cff; --dash-kpi-accent:#6d8bff;
  --dash-shadow:0 1px 3px rgba(0,0,0,.5); --dash-shadow-md:0 10px 30px rgba(0,0,0,.5);
}
/* botão de tema no topbar */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;cursor:pointer;transition:.15s;flex:0 0 auto}
.theme-toggle:hover{background:rgba(255,255,255,.2);transform:translateY(-1px)}
.shell.theme-cyber .theme-toggle{border-color:var(--border);background:rgba(79,124,255,.2);box-shadow:none}

/* ===== CRIAR APOSTA (Bet Builder) — estado de conflito na UI ===== */
#fx-markets.combo-on .market__row--locked{opacity:.35;pointer-events:none;cursor:not-allowed}     /* bloqueio total: opção incompatível */
#fx-markets.combo-on .market__row--reduce{opacity:.85}                                            /* correlação alta: permitido, sinaliza odd reduzida */
#fx-markets.combo-on .market__row--reduce .odd-badge{position:relative}
.reduce-label{display:block;font-size:9px;font-weight:700;color:#e8901a;letter-spacing:.02em;line-height:1.1;white-space:nowrap}
/* combo OFF → reverte tudo */
#fx-markets:not(.combo-on) .market__row--locked,#fx-markets:not(.combo-on) .market__row--reduce{opacity:1;pointer-events:auto;cursor:pointer}
#fx-markets:not(.combo-on) .reduce-label{display:none}

/* --- Mercados ao vivo (admin) --- */
.lm-sport-list{display:flex;flex-direction:column;gap:10px;max-width:520px}
.lm-sport-row{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;text-align:left;transition:.12s;font-size:15px}
.lm-sport-row:hover{border-color:var(--primary);box-shadow:var(--shadow)}
.lm-sport-row__label{flex:1;font-weight:700;color:var(--text)}
.lm-sport-row__meta{font-size:12px;color:var(--muted);font-weight:600}
.lm-sport-row__chev{color:var(--muted);font-size:12px;transform:rotate(-90deg)}
.lm-sport-head{background:#eef1fb;border:1px solid var(--border);border-radius:10px;padding:12px 16px;font-weight:800;font-size:15px;margin-bottom:12px;color:var(--primary)}
.lm-market-list{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.lm-market-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border);min-height:56px}
.lm-market-row:last-child{border-bottom:none}
.lm-market-row:nth-child(even){background:#fafbff}
.lm-market-row__text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.lm-market-row__id{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.02em;line-height:1.35;word-break:break-word}
.lm-market-row__name{font-size:14px;font-weight:700;color:var(--text);line-height:1.35;word-break:break-word}
.lm-toggle{position:relative;display:inline-flex;cursor:pointer;flex:none}
.lm-toggle input{position:absolute;opacity:0;width:0;height:0}
.lm-toggle__track{width:44px;height:24px;background:#cbd5e1;border-radius:999px;position:relative;transition:.15s}
.lm-toggle__track::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.15s}
.lm-toggle input:checked + .lm-toggle__track{background:var(--primary)}
.lm-toggle input:checked + .lm-toggle__track::after{left:23px}
.lm-toggle input:focus-visible + .lm-toggle__track{outline:2px solid var(--accent);outline-offset:2px}

/* ============================================================================
   TRANSMISSÃO AO VIVO (.ltv) — iframe do sportsbook Digitain (PlayFiver) numa
   moldura do scobets.net. Responsivo desktop/mobile. (pages/livetv.js)
   ========================================================================== */
.ltv{max-width:1100px;margin:0 auto;padding:6px 2px 24px}
.ltv__head{display:flex;align-items:center;justify-content:space-between;margin:2px 4px 12px;gap:10px}
.ltv__eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted,#8a93b2)}
.ltv__title{font-size:20px;font-weight:800;display:flex;align-items:center;gap:10px;margin:2px 0 0;color:var(--text,#eef2ff)}
.ltv__dot{width:9px;height:9px;border-radius:50%;background:#e11d48;animation:ltvpulse 1.6s infinite}
@keyframes ltvpulse{0%{box-shadow:0 0 0 0 rgba(225,29,72,.55)}70%{box-shadow:0 0 0 9px rgba(225,29,72,0)}100%{box-shadow:0 0 0 0 rgba(225,29,72,0)}}
.ltv__reload{border:1px solid var(--border,#2a2f45);background:transparent;color:inherit;width:38px;height:38px;border-radius:10px;font-size:17px;cursor:pointer;line-height:1;transition:background .15s}
.ltv__reload:hover{background:rgba(255,255,255,.06)}
.ltv__frame{position:relative;width:100%;height:calc(100dvh - 152px);min-height:420px;border-radius:14px;overflow:hidden;background:#05070f;box-shadow:0 12px 34px rgba(0,0,0,.4)}
.ltv__iframe{width:100%;height:100%;border:0;display:block}
.ltv__state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#aab2cc;text-align:center;padding:20px}
.ltv__state small{color:#7c85a8;opacity:.7;font-size:12px}
.ltv__state--err{color:#f2a8b6}
.ltv__retry{margin-top:6px}
.ltv__spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:#6b7cff;animation:ltvspin .9s linear infinite}
@keyframes ltvspin{to{transform:rotate(360deg)}}
@media(max-width:560px){.ltv{padding:4px 0 16px}.ltv__frame{height:calc(100dvh - 128px);min-height:360px;border-radius:10px}.ltv__title{font-size:17px}.ltv__head{margin:2px 8px 10px}}

/* -- Canais IPTV (aba "Canais de esporte" da transmissão ao vivo) -- */
.ltv__tabs{display:flex;gap:8px;margin:0 4px 12px}
.ltv__tab{border:1px solid var(--border,#2a2f45);background:transparent;color:var(--muted,#8a93b2);padding:8px 14px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}
.ltv__tab:hover{color:var(--text,#eef2ff);background:rgba(255,255,255,.05)}
.ltv__tab--on{background:var(--accent,#6b7cff);border-color:var(--accent,#6b7cff);color:#fff}
.ltv__player{position:relative;border-radius:14px;overflow:hidden;background:#000;margin:0 0 12px;box-shadow:0 12px 34px rgba(0,0,0,.4)}
.ltv__video{width:100%;aspect-ratio:16/9;max-height:62dvh;display:block;background:#000}
.ltv__perr{position:absolute;inset:0;bottom:38px;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;background:rgba(5,7,15,.85);color:#f2a8b6;font-size:14px;font-weight:600}
.ltv__nowbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:#0b0e1a;color:#dfe5f5;font-size:13px;font-weight:600}
.ltv__now{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ltv__close{border:1px solid rgba(255,255,255,.18);background:transparent;color:#aab2cc;border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer}
.ltv__close:hover{color:#fff;background:rgba(255,255,255,.08)}
.ltv__filters{display:flex;flex-direction:column;gap:8px;margin:0 4px 12px}
.ltv__search{width:100%;border:1px solid var(--border,#2a2f45);background:var(--surface,#12162a);color:var(--text,#eef2ff);border-radius:10px;padding:10px 12px;font-size:14px;outline:none}
.ltv__search:focus{border-color:var(--accent,#6b7cff)}
.ltv__chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.ltv__chip{flex:0 0 auto;border:1px solid var(--border,#2a2f45);background:transparent;color:var(--muted,#8a93b2);padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .15s}
.ltv__chip:hover{color:var(--text,#eef2ff)}
.ltv__chip--on{background:var(--accent,#6b7cff);border-color:var(--accent,#6b7cff);color:#fff}
.ltv__grid{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;min-height:220px}
.ltv__card{display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid var(--border,#2a2f45);background:var(--surface,#12162a);border-radius:12px;padding:14px 10px 10px;cursor:pointer;text-align:center;color:var(--text,#eef2ff);transition:transform .12s,border-color .12s}
.ltv__card:hover{transform:translateY(-2px);border-color:var(--accent,#6b7cff)}
.ltv__card--on{border-color:var(--accent,#6b7cff);box-shadow:0 0 0 2px var(--accent,#6b7cff) inset}
.ltv__card-logo{height:46px;display:flex;align-items:center;justify-content:center;font-size:26px}
.ltv__card-logo img{max-height:46px;max-width:110px;object-fit:contain}
.ltv__card-name{font-size:13px;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ltv__card-meta{font-size:11px;color:var(--muted,#8a93b2)}
.ltv__more{grid-column:1/-1;text-align:center;color:var(--muted,#8a93b2);font-size:13px;padding:10px}
.ltv__note{margin:14px 4px 0;font-size:11px;color:var(--muted,#8a93b2);opacity:.8}
@media(max-width:560px){.ltv__grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin:0 4px}.ltv__tabs{margin:0 8px 10px}.ltv__filters{margin:0 8px 10px}.ltv__player{border-radius:10px;margin:0 4px 10px}}

/* ==== CANAIS DE ESPORTE (.tvc) — página #/canais (IPTV Xtream via proxy) ==== */
@keyframes novblink{0%,100%{opacity:1}50%{opacity:.3}}
.tvc__nov{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 4px 12px;background:#e11d48;color:#fff;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;font-size:12px;padding:8px 14px;border-radius:10px;box-shadow:0 4px 16px rgba(225,29,72,.4);animation:novblink 1.1s ease-in-out infinite}
.nav-nov{display:inline-block;margin-left:6px;background:#e11d48;color:#fff;font-size:9px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;border-radius:6px;vertical-align:middle;animation:novblink 1.1s ease-in-out infinite}
.tvc__logo--cover{border-radius:8px;padding:6px}
.tvc__logo--cover img{max-height:40px}
.tvc{max-width:1180px;margin:0 auto;padding:6px 2px 24px}
.tvc__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:2px 4px 14px}
.tvc__head-left{display:flex;align-items:center;gap:12px;min-width:0}
.tvc__actions{display:flex;align-items:center;gap:10px;flex:1 1 auto;justify-content:flex-end;flex-wrap:wrap}
.tvc__back{border:1px solid var(--border,#2a2f45);background:transparent;color:var(--text,#eef2ff);border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.tvc__back:hover{background:rgba(255,255,255,.06);border-color:var(--accent,#6b7cff)}
.tvc__bet{border:0;background:#e11d48;color:#fff;border-radius:10px;padding:9px 20px;font-size:13px;font-weight:800;letter-spacing:.5px;cursor:pointer;white-space:nowrap;box-shadow:0 4px 14px rgba(225,29,72,.35);transition:filter .15s,transform .1s}
.tvc__bet:hover{filter:brightness(1.08)}
.tvc__bet:active{transform:translateY(1px)}
.tvc__eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted,#8a93b2)}
.tvc__title{font-size:20px;font-weight:800;display:flex;align-items:center;gap:10px;margin:2px 0 0;color:var(--text,#eef2ff)}
.tvc__dot{width:9px;height:9px;border-radius:50%;background:#e11d48;animation:ltvpulse 1.6s infinite}
.tvc__search{max-width:280px;flex:1 1 200px;border:1px solid var(--border,#2a2f45);background:var(--surface,#12162a);color:var(--text,#eef2ff);border-radius:10px;padding:9px 12px;font-size:14px;outline:none}
.tvc__search:focus{border-color:var(--accent,#6b7cff)}
.tvc__player{margin:0 4px 16px}
.tvc__video-wrap{position:relative;border-radius:14px;overflow:hidden;background:#05070f;box-shadow:0 12px 34px rgba(0,0,0,.4)}
.tvc__video{width:100%;aspect-ratio:16/9;max-height:64dvh;display:block;background:#000}
.tvc__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(5,7,15,.82)}
.tvc__now{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;background:#0b0e1a;border-radius:0 0 14px 14px;color:#dfe5f5;font-size:14px;font-weight:700}
.tvc__now-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tvc__close{border:1px solid rgba(255,255,255,.18);background:transparent;color:#aab2cc;border-radius:8px;padding:4px 11px;font-size:13px;cursor:pointer;line-height:1}
.tvc__close:hover{color:#fff;background:rgba(255,255,255,.08)}
.tvc__group{margin:0 4px 18px}
.tvc__group-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text,#eef2ff);margin:0 0 10px}
.tvc__count{font-size:11px;font-weight:700;color:var(--muted,#8a93b2);background:rgba(255,255,255,.06);border-radius:999px;padding:1px 8px}
.tvc__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.tvc__card{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid var(--border,#2a2f45);background:var(--surface,#12162a);border-radius:12px;padding:14px 10px 10px;cursor:pointer;text-align:center;color:var(--text,#eef2ff);transition:transform .12s,border-color .12s,box-shadow .12s}
.tvc__card:hover{transform:translateY(-2px);border-color:var(--accent,#6b7cff)}
.tvc__card.is-live{border-color:#e11d48;box-shadow:0 0 0 2px #e11d48 inset}
.tvc__logo{height:46px;display:flex;align-items:center;justify-content:center;font-size:26px}
.tvc__logo img{max-height:46px;max-width:118px;object-fit:contain}
.tvc__name{font-size:13px;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tvc__state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#aab2cc;text-align:center;padding:34px 20px}
.tvc__state--err{color:#f2a8b6}
.tvc__spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:#6b7cff;animation:ltvspin .9s linear infinite}
.tvc__empty{text-align:center;color:var(--muted,#8a93b2);padding:34px 20px;font-size:14px}
@media(max-width:560px){.tvc__grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.tvc__title{font-size:17px}.tvc__head{margin:2px 8px 12px}.tvc__group{margin:0 8px 16px}.tvc__player{margin:0 4px 12px}}
