/* Visual 2.0 (17/10, Higor: «tá tudo muito amador... que bagulho feio»).
   Camada por cima do CSS antigo: troca a base (cores, fonte, cantos, botões) e arruma
   o layout do computador. Nada de função depende daqui: tirar este arquivo volta ao visual antigo.
   Regras: vermelho = marca e ação principal; azul só em botão que abre o Telegram;
   texto em caixa normal (nada de letra de terminal em maiúscula); cartões com canto arredondado. */

:root{
  --felt-0:#09090C; --felt-1:#0D0D11; --surface:#121217; --raised:#17171E; --raised-2:#1E1E27;
  --line:rgba(255,255,255,.085); --line-soft:rgba(255,255,255,.055);
  --text:#F4F4F6; --muted:#A6A6B2; --dim:#74747F;
  --gold:#EF2D45; --jade:#2FD07F; --amber:#F5C518; --red:#EF2D45; --orange:#EF2D45;
  --display:"Inter","Helvetica Neue",Arial,sans-serif;
  --body:"Inter","Helvetica Neue",Arial,sans-serif;
  --mono:"Inter","Helvetica Neue",Arial,sans-serif;
  --r:16px; --r-sm:12px; --r-xs:10px;
  --card:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 60%),var(--surface);
  --shadow:0 1px 0 rgba(255,255,255,.04) inset,0 10px 30px -12px rgba(0,0,0,.6);
  --brand-grad:linear-gradient(180deg,#F5455B,#DD1F38);
}
body{font-size:15px;line-height:1.55;letter-spacing:-.006em;font-feature-settings:"cv11","ss01";
  background:radial-gradient(1200px 600px at 70% -200px,rgba(239,45,69,.07),transparent 70%),var(--felt-0);
  background-attachment:fixed}
h1,h2,h3,h4{letter-spacing:-.022em;font-stretch:100%!important}
h1,.binfo b,.promo .pt b{font-stretch:100%}
b,strong{font-weight:600}
::selection{background:rgba(239,45,69,.35)}
/* números alinhados em toda parte (antes era a fonte mono que fazia isso) */
.xp-chip,.mi .mp,.pr .pc,.mov .mn,.lvsaldo b,.lvfoot,.rung .amt,.kpi .v,.prow .cv,.control input,.pricebox .pv,
.srtnum b,.sxnum b,.ckracha b,.akpi b,.ldnum{font-variant-numeric:tabular-nums}

/* ---------- rótulos: sem letra de terminal ---------- */
.eyebrow,.chip,.panel-head h2,.seg button,.toast,.afield > span,.field label,.kpi .k,.prow .ck,.row-title h2,
.ckeye,.sxeye,.lvtxt small,.lvsaldo small,.bienv .btit small,.promo .pgo,.botcard .cap .n,.botcard .go,
.pricebox .pl,.fichas .lb,.rung .vname,.prow .rn,.seemore,.roles button,.bd-mtit,.vidlbl,.rsptxt small,
.lvupcard small,.fbm .fbr small,.demobar,.asub,.admbadge,.sinimg,.rlsub,.rlres small,.sxres small,.fsfichas small,
.brand-sub,.protobar strong,.langsw button,.bd-art .vidlbl,.btn{text-transform:none;letter-spacing:0}
.eyebrow{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:6px}
.brand-sub{font-size:11.5px;font-weight:500;color:var(--dim)}

/* ---------- botões ---------- */
.btn{min-height:46px;padding:11px 18px;border-radius:var(--r-sm);font-family:var(--body);font-weight:600;font-size:14.5px;
  transition:background .15s,transform .1s,box-shadow .15s,border-color .15s,filter .15s}
body .btn:not(.ghost):not(.danger),body .bienv .bplay{background:var(--brand-grad);color:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 8px 22px -10px rgba(239,45,69,.7)}
body .btn:not(.ghost):not(.danger):hover{background:var(--brand-grad);filter:brightness(1.08)}
body .btn.tg:not(.ghost):not(.danger){background:linear-gradient(180deg,#34AEE6,#1E93CC);
  box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 8px 22px -10px rgba(34,158,217,.7)}
.btn.ghost{border-color:var(--line);background:rgba(255,255,255,.03)}
.btn.ghost:hover{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.06)}
.btn.danger{border-radius:var(--r-sm)}
.btn.big{min-height:52px;font-size:15.5px}
.btn[disabled]{filter:grayscale(.4)}
.pr .pb{border-radius:10px;font-size:13px}

/* ---------- chips: pílulas ---------- */
.chip{border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:600;font-family:var(--body)}

/* ---------- cartões ---------- */
.ckcard,.lvcard,.promo,.bienv,.botrow,.sxcard,.sxres,.rspcard,.fbo,.fbm,.fbrev,.sup,.nmform,.lvupcard,.fbcard,.login,
.note,.upload,.fba,.srt,.srlbox,.nmok,.vmplayer,.imgprev,.bd-art{border-radius:var(--r)}
.ckcard,.lvcard,.promo,.sxres,.fbo,.fbrev,.sup,.fbm,.botrow{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
.note{border-radius:var(--r-sm)}
.bienv{overflow:hidden;border-color:var(--line)}
.bienv .bplay{border-radius:999px;width:62px;height:62px}
.bd-art .play span{border-radius:999px}
.vmclose,.lclose{border-radius:var(--r-xs)}
.lvupcard,.fbcard{border-radius:20px;box-shadow:0 30px 80px -20px rgba(0,0,0,.8)}
.toast{border-radius:999px;font-family:var(--body);font-weight:600;font-size:13.5px;padding:12px 18px;
  background:#F4F4F6;color:#111}
.toast svg path{stroke:#111}

/* ---------- campos ---------- */
.afield input,.afield textarea,.afield select,.control,.fbcard textarea,.fba textarea,.idadd input,.rsarow select,.rsarow input{
  border-radius:var(--r-xs);background:#0B0B0F;border-color:var(--line)}
.afield > span,.field label{font-size:13px;font-weight:500;color:var(--muted)}
.afield input:focus,.afield textarea:focus,.afield select:focus,.control:focus-within{border-color:rgba(239,45,69,.6);
  box-shadow:0 0 0 3px rgba(239,45,69,.15)}
.check .bx{border-radius:7px}
.upload{border-radius:var(--r-sm)}

/* ---------- barra do topo e menu de baixo (celular) ---------- */
.appbar{background:rgba(9,9,12,.82);border-bottom-color:var(--line-soft)}
.brand-mark{border-radius:9px}
.avatar{border-radius:999px;background:var(--raised-2)}
.xp-chip{border-radius:999px;font-family:var(--body);font-size:13px;background:rgba(239,45,69,.08)}
.tabbar{background:rgba(11,11,14,.9);border-top-color:var(--line-soft)}
.tabbar button{font-weight:500}
.tabbar button[aria-current="true"]::before{width:22px;height:3px;border-radius:0 0 3px 3px}

/* ---------- cabeçalhos de página ---------- */
.page-head h1{font-weight:700}
.hello h1{font-size:28px}
.row-title h2{font-size:17px;font-weight:650;color:var(--text);letter-spacing:-.01em}
.panel-head h2{font-size:17px;font-weight:650;color:var(--text);letter-spacing:-.01em}

/* ---------- sala do membro: painéis viram cartões ---------- */
.section:not(.adm) .pad > .panel,.section:not(.adm) > .panel{background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:18px 18px 8px;margin-top:14px;box-shadow:var(--shadow)}
.section:not(.adm) .pad > .panel:first-child{padding-top:18px}
.seg{border-bottom:none;gap:6px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;
  width:max-content;max-width:calc(100% - 2 * var(--gut))}
.seg button{border:none;border-radius:999px;padding:8px 14px;font-family:var(--body);font-size:13.5px;font-weight:500}
.seg button[aria-current="true"]{background:var(--raised-2);color:var(--text);border:none}

/* ---------- produtos: grade de cartões ---------- */
.botlist{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.botrow{padding:0;overflow:hidden;transition:transform .18s,border-color .18s,box-shadow .18s}
.botrow:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.16)}
.botrow.activo{border-color:rgba(47,208,127,.35)}
.botrow .bthumb{border-radius:0;background:#000}
.botrow .bthumb img{transition:transform .35s}
.botrow:hover .bthumb img{transform:scale(1.04)}
.botrow .binfo{padding:12px 14px 14px}
.botrow .binfo b{font-size:15px;font-weight:650}
.promo{padding:12px 14px}
.promo img,.casalogo{border-radius:12px}
.promo .pgo{font-size:13.5px;font-weight:600}

/* ---------- check-in ---------- */
.ckd{border-radius:10px;font-family:var(--body);font-weight:600}
.cktop{align-items:center}
.ckeye{font-size:14px;font-weight:600;color:var(--text)}
.ckcard.hecho .ckeye{color:var(--jade)}

/* ---------- Club ---------- */
.lvcard{padding:18px}
.lvtxt small{font-size:12.5px;font-weight:500}
.lvsaldo small{font-size:12px}
.lvsaldo b{font-size:26px;font-weight:700}
.lvbar{height:10px;border-radius:99px}
.lvbar i{border-radius:99px;background:linear-gradient(90deg,#DD1F38,#F5455B)}
.lvfoot{font-size:12.5px}
.mi .mh{padding:14px 2px}
.mi .mp{font-size:14px;font-weight:700;padding:4px 10px;border-radius:999px;color:var(--text);background:var(--raised-2)}
.mi.hecha .mp{color:var(--jade);background:rgba(47,208,127,.12)}
.mi:last-child,.pr:last-child,.mov:last-child{border-bottom:none}
.mimas{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:6px 0 10px;padding:11px;
  border-radius:var(--r-sm);border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);font-weight:600;font-size:14px}
.mimas:hover{background:rgba(255,255,255,.06)}
.prz{border-radius:12px}
.pr .pc{font-weight:700;color:var(--text)}
.cupon{border-radius:8px}
.rspcard{border-radius:var(--r)}
.rspart{border-radius:14px}

/* ---------- sorteio ao vivo / feedback ---------- */
.sxcard{border-radius:var(--r);overflow:hidden}
.sxeye{font-size:12.5px;font-weight:600}
.sxyo{border-radius:var(--r-sm)}
.fbo .fbi,.fbm .fbr{border-radius:10px}
.fbcats button,.fbfil button,.fbtags span{border-radius:999px}
.stp .sn{border-radius:8px;font-family:var(--body);font-weight:700}
.bon .bi,.sup .si,.lockbox .lockic,.acct .av{border-radius:12px}
.bon{border-bottom-color:var(--line-soft)}
.redes a{border-radius:var(--r-sm);background:rgba(255,255,255,.03)}

/* ---------- login ---------- */
.overlay{background:radial-gradient(800px 500px at 50% 0,rgba(239,45,69,.12),transparent 70%),rgba(6,6,9,.97)}
.login{background:var(--card);box-shadow:0 30px 80px -20px rgba(0,0,0,.8)}
.roles button{border-radius:var(--r-sm)}

/* ---------- faixa do «ver como» / demo ---------- */
.demobar{font-family:var(--body);font-size:13.5px;font-weight:600}
.demobar .btn{border-radius:10px}

/* ================= COMPUTADOR ================= */
@media (min-width:1000px){
  .side{background:rgba(13,13,17,.85);border-right-color:var(--line-soft);padding:22px 14px}
  .nav-label{font-family:var(--body);font-size:11.5px;letter-spacing:.06em;font-weight:600}
  .nav-group button{border-radius:var(--r-xs);font-size:14.5px;padding:10px 12px}
  .nav-group button[aria-current="true"]{background:rgba(239,45,69,.12);box-shadow:none;color:#fff}
  .nav-group button[aria-current="true"] svg{color:var(--gold)}
  .who{border-top-color:var(--line-soft)}
  /* conteúdo centrado e mais largo (antes ficava grudado à esquerda com metade da tela vazia) */
  .main{max-width:1180px;width:100%;margin:0 auto}
  .botlist{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
  .hello h1{font-size:34px}


  /* Club: nível + check-in + raspadinha lado a lado; missões e prêmios lado a lado */
  .section[data-sec="club"].on{padding-top:18px}
  .section[data-sec="club"] > .pad:first-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-items:start}
  .section[data-sec="club"] > .pad:first-child > .lvcard{grid-column:1 / -1}
  .section[data-sec="club"] > .pad:first-child > #extraClub{grid-column:1 / -1}
  .section[data-sec="club"] > .pad:first-child > #extraClub:empty,
  .section[data-sec="club"] > .pad:first-child > #checkinClub:empty,
  .section[data-sec="club"] > .pad:first-child > #clRaspa:empty{display:none}
  .section[data-sec="club"] #clRaspa .rspcard{margin:14px 0 0}

  /* admin: o menu da sala vira só ícones (antes eram dois menus laterais lado a lado) */
  body.em-adm .shell{grid-template-columns:72px 1fr}
  body.em-adm .side{padding:18px 10px;align-items:center}
  body.em-adm .side .brand > div:not(.brand-mark),body.em-adm .side .nav-label,
  body.em-adm .side .who > :not(.avatar),body.em-adm .side .who .xp-chip{display:none}
  body.em-adm .side .brand{padding:0!important}
  body.em-adm .side .nav-group{width:100%}
  body.em-adm .side .nav-group button{font-size:0;justify-content:center;padding:12px 0;gap:0}
  body.em-adm .side .nav-group button svg{width:20px;height:20px}
  body.em-adm .side .who{justify-content:center;padding:10px 0 0}
  body.em-adm .main{max-width:none}
}
@media (min-width:1000px) and (max-width:1180px){
}
.mi.mi-extra{display:none}
.mi .mh{color:var(--text)}
.mi .mh b{color:var(--text)}
.mi .mh span{color:var(--dim)}
/* admin: listas longas mais compactas (28 missões cabiam em 3 telas) */
.adm .admrow{padding:8px 12px}
.adm .misrow{margin-bottom:4px}
.adm .admrow .at b{font-size:13.5px}
.adm .admrow .at span{font-size:12px}

/* ---------- Paleta única (17/10, Higor: «muitas cores varando») ----------
   Cada cor quer dizer uma coisa só, e tem um tom só:
   vermelho = marca e ação · verde = feito/ativo · amarelo = nível e recompensa · azul = só Telegram.
   Número, preço e etiqueta de tipo não são alerta: ficam em cinza/branco. */
.botrow.activo{border-color:var(--line)}
.rspcard{background:linear-gradient(135deg,color-mix(in srgb,var(--rc) 10%,transparent),transparent 55%),var(--card)}
.sxcard{border-color:rgba(239,45,69,.45);background:linear-gradient(135deg,rgba(239,45,69,.10),transparent 55%),var(--card)}
.sxeye{color:var(--gold)}
.promo .pgo{color:var(--text)}
.promo .pgo.tg{color:#3BB6EC}
.adm .ldav,.adm .eqav{background:var(--raised-2)}

/* ---------- ícones no lugar de emoji + logo do Telegram (17/10) ---------- */
svg.ic{display:inline-block;vertical-align:-2px;flex:none}
.tglogo{display:inline-block;flex:none}
.btn.tg .tglogo{margin-right:2px}
.promo .pgo.tg{display:inline-flex;align-items:center;gap:7px}
.sup .si{background:none;border:none;width:auto;height:auto}

/* ================= TCHAN (17/10) =================
   1 início «minha área» · 2 animação · 3 esqueleto ao carregar · 4 prêmios em vitrine
   6 selo «En vivo» · 7 ícone por missão · 8 entrada com painel de arte */

/* ---------- 3) esqueleto: blocos cinzas pulsando no formato do conteúdo ---------- */
.sk{display:block;border-radius:8px;background:linear-gradient(90deg,rgba(255,255,255,.04) 0%,rgba(255,255,255,.09) 40%,rgba(255,255,255,.04) 80%);
  background-size:220% 100%;animation:skOnda 1.3s ease-in-out infinite}
@keyframes skOnda{0%{background-position:120% 0}100%{background-position:-120% 0}}
.sk-l{height:13px;width:62%}
.sk-s{height:10px;width:38%;margin-top:8px}
.sk-ic{width:40px;height:40px;border-radius:12px;flex:none}
.sk-img{aspect-ratio:1/1;width:100%;border-radius:12px;margin-bottom:12px}
.sk-bar{height:34px;width:100%;margin:14px 0}
.sk-btn{height:44px;width:100%;border-radius:12px}
.sk-chip{width:46px;height:14px;border-radius:99px}
.sk-row{display:flex;align-items:center;gap:13px;padding:15px 0;border-bottom:1px solid var(--line-soft)}
.sk-row > span,.sk-col{flex:1;min-width:0;display:block}
.sk-card,.sk-box{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:12px}
.sk-box{padding:16px}
.pzgrid > .sk-card .sk-img{aspect-ratio:16/10}
@media (prefers-reduced-motion:reduce){.sk{animation:none}}

/* ---------- 2) animação ---------- */
.ckd.pop{animation:ckPop .7s cubic-bezier(.2,1.6,.4,1)}
@keyframes ckPop{0%{transform:scale(.6)}55%{transform:scale(1.18)}100%{transform:scale(1)}}
.pzbar i,.lvbar i{transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){.ckd.pop{animation:none}.pzbar i,.hl-bar i{transition:none}}

/* ---------- 7) ícone por missão ---------- */
.mi .mh .mic{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:11px;
  background:var(--raised-2);color:var(--muted);border:1px solid var(--line-soft)}
.mi .mh .mic svg{width:18px;height:18px}
.mi.hecha .mh .mic{background:rgba(47,208,127,.12);color:var(--jade);border-color:rgba(47,208,127,.25)}
.mi.open .mh .mic{background:rgba(239,45,69,.12);color:var(--gold);border-color:rgba(239,45,69,.3)}

/* ---------- 4) prêmios em vitrine ---------- */
.pzgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:6px 0 4px}
.pz{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;
  background:var(--raised);transition:transform .18s,border-color .18s}
.pz:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.16)}
.pzart{position:relative;aspect-ratio:16/10;background:#000;overflow:hidden}
.pzart img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.pz:hover .pzart img{transform:scale(1.04)}
.pzph{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);
  background:radial-gradient(circle at 50% 40%,rgba(239,45,69,.18),transparent 65%),var(--raised-2)}
.pzph svg{width:34px;height:34px}
.pzemo{font-size:38px;line-height:1}
.pztag{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:99px;font-size:11px;font-weight:600;
  background:rgba(0,0,0,.6);backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(255,255,255,.14)}
.pzb{display:flex;flex-direction:column;gap:6px;padding:11px 12px 12px;flex:1}
.pzb > b{font-size:14px;font-weight:650;line-height:1.3;color:var(--text)}
.pzb > p{font-size:12px;color:var(--dim);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pzbar{height:5px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:auto}
.pzbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#DD1F38,#F5455B)}
.pzfalta{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.pzfalta svg.ic{width:12px;height:12px}
.pzfalta.ok{color:var(--jade)}
.pzact:empty{display:none}
.pzact .btn{width:100%;min-height:38px;padding:8px 12px;font-size:13.5px}
.pzact .chip{align-self:flex-start}
.pz .cupon{align-self:flex-start}
/* ainda não liberou: preto e branco; ganha cor quando libera */
.pz.off .pzart img,.pz.off .pzph{filter:grayscale(1) brightness(.6)}
.pz.off .pzb > b{color:var(--muted)}
.pz.ativo{border-color:rgba(47,208,127,.35)}
@media (min-width:1000px) and (max-width:1180px){.pzgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- 6) selo «En vivo» ---------- */
.vivo-pill{display:none;align-items:center;gap:7px;padding:6px 11px;border-radius:99px;font-size:12.5px;font-weight:700;
  color:#fff;background:rgba(239,45,69,.16);border:1px solid rgba(239,45,69,.5);white-space:nowrap}
.vivo-pill i{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(239,45,69,.7);animation:vivoPulso 1.4s infinite}
@keyframes vivoPulso{0%{box-shadow:0 0 0 0 rgba(239,45,69,.7)}70%{box-shadow:0 0 0 9px rgba(239,45,69,0)}100%{box-shadow:0 0 0 0 rgba(239,45,69,0)}}
body.envivo .vivo-pill{display:inline-flex}
.side .vivo-pill{margin:4px 6px 0;justify-content:center}
body.em-adm .side .vivo-pill{display:none}
.tabbar [data-go="bots"],.nav-group [data-go="bots"]{position:relative}
body.envivo .tabbar [data-go="bots"]::after,body.envivo .nav-group [data-go="bots"]::after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;
  background:var(--gold);animation:vivoPulso 1.4s infinite}
body.envivo .tabbar [data-go="bots"]::after{top:9px;left:calc(50% + 9px)}
body.envivo .nav-group [data-go="bots"]::after{top:50%;right:12px;margin-top:-4px}
@media (prefers-reduced-motion:reduce){.vivo-pill i,body.envivo [data-go="bots"]::after{animation:none}}

/* ---------- 8) entrada ---------- */
.overlay{background:radial-gradient(900px 600px at 15% 10%,rgba(239,45,69,.16),transparent 65%),
  radial-gradient(700px 500px at 100% 100%,rgba(239,45,69,.08),transparent 60%),var(--felt-0)}
.login .brand-mark{background:none!important}
.login .field label{font-family:var(--body)!important;font-size:13px!important;letter-spacing:0!important;text-transform:none!important;
  color:var(--muted)!important;font-weight:500!important}
.login .control{border-radius:var(--r-xs)}
.lart{display:none}
@media (min-width:1000px){
  .overlay.on{grid-template-columns:minmax(0,520px) minmax(0,420px);justify-content:center;align-items:center;gap:72px;padding:48px}
  .lart{display:block}
  .overlay .login .brand{display:none}
  .la-in{display:flex;flex-direction:column;align-items:flex-start}
  .la-robot{width:150px;height:auto;object-fit:contain;animation:laFlut 5s ease-in-out infinite}
  @keyframes laFlut{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
  .la-word{height:34px;width:auto;margin:22px 0 10px}
  .lart h1{font-size:40px;line-height:1.08;font-weight:800;letter-spacing:-.025em;margin:4px 0 26px}
  .la-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
  .la-lista li{display:flex;align-items:center;gap:14px}
  .la-lista b{display:block;font-size:15.5px;font-weight:650}
  .la-lista small{display:block;font-size:13.5px;color:var(--muted)}
  .la-ic{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:12px;background:rgba(239,45,69,.12);color:var(--gold);border:1px solid rgba(239,45,69,.25)}
  .la-ic svg{width:20px;height:20px}
  .la-logos{display:flex;gap:10px;margin-top:34px}
  .la-logos img{width:64px;height:64px;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:#000}
  @media (prefers-reduced-motion:reduce){.la-robot{animation:none}}
}
/* imagens da marca têm fundo preto: «lighten» some com o quadrado em fundo escuro */
/* logo e robô vêm em JPG com fundo preto puro: «lighten» some com o quadrado no fundo escuro.
   Sem filter/sombra na própria imagem (o brilho criava uma caixa em volta). */
.brand-mark img,.wordmark,.la-robot,.la-word{mix-blend-mode:lighten}
.brand-mark{background:none!important}
.login .brand-mark img{filter:none}
.lart .la-in{position:relative}
/* brilho centrado no robô (110×85 no PC: centro em 55,42) */
.lart .la-in::before{content:"";position:absolute;left:calc(55px - 95px);top:calc(42px - 95px);width:190px;height:190px;border-radius:50%;
  pointer-events:none;background:radial-gradient(closest-side,rgba(59,130,246,.30),rgba(59,130,246,.08) 60%,transparent);z-index:-1}
@media (max-width:999px){
  body.envivo .appbar .brand-sub{display:none}
  .appbar .vivo-pill{padding:5px 9px;font-size:12px}
}

/* ================= INÍCIO ORGANIZADO (17/10, Higor: «muita info, nada com nada») =================
   Ordem: saudação → banner do vídeo (com Telegram e casa) → faixa «hoje» (3 blocos iguais) → produtos. */
.hoje{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.hoje-c{display:block;width:100%;min-width:0;text-align:left;border:1px solid var(--line);border-radius:var(--r);background:var(--card);
  padding:0;color:inherit;transition:border-color .18s,transform .18s}
.hoje-c[hidden]{display:none}
.hoje-c:hover{border-color:rgba(255,255,255,.16)}
.hoje-c .sk-row{padding:14px;border:none}
.hc{display:flex;align-items:center;gap:12px;width:100%;min-height:72px;padding:14px;text-align:left;color:inherit}
.hc > svg{width:16px;height:16px;flex:none;color:var(--dim)}
.hc-ic{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:12px;background:rgba(239,45,69,.12);color:var(--gold)}
.hc-ic svg{width:19px;height:19px}
.hc-ic.ok{background:rgba(47,208,127,.14);color:var(--jade)}
.hc .lvmed{width:40px;height:40px;font-size:14px;box-shadow:none}
.hc-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.hc-tx small{font-size:12px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-tx b{font-size:15px;font-weight:650;color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hc .hl-bar{display:block;height:5px;margin-top:6px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.hc .hl-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#DD1F38,#F5455B);transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.hc.pop .hc-ic{animation:ckPop .7s cubic-bezier(.2,1.6,.4,1)}
/* o fundo do «faça o check-in» fica no CARTÃO (no botão ele não cobria a altura toda e
   aparecia um cartão dentro do outro — print do Higor em prod, 17/10) */
.hoje-c{display:flex;overflow:hidden}
.hoje-c > .hc,.hoje-c > .sk-row{flex:1;align-self:stretch}
.hoje-ck:has(.hc[data-checkin]){background:linear-gradient(90deg,rgba(239,45,69,.10),transparent 70%),var(--card)}
.hoje-ck:has(.hc[data-checkin]){border-color:rgba(239,45,69,.4)}
@media (min-width:700px){
  .hoje{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hoje:has(> .hoje-c[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* celular: a faixa vira um cartão só, com as três linhas separadas (três caixas empilhadas pesavam) */
@media (max-width:699px){
  .hoje{gap:0;border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden}
  .hoje-c{border:none;border-radius:0;background:none}
  .hoje-c + .hoje-c:not([hidden]){border-top:1px solid var(--line-soft)}
  .hoje-ck:has(.hc[data-checkin]){border-color:var(--line-soft)}
  .hc{min-height:64px;padding:12px 14px}
}
@media (min-width:1000px){
  .section[data-sec="bots"].on{padding:0 var(--gut)}
  .section[data-sec="bots"].on > *{padding-left:0;padding-right:0}
  .section[data-sec="bots"] > .row-title{margin-top:30px}
  .section[data-sec="bots"] .hoje{margin-top:4px}
}

/* ---------- banner de boas-vindas (vídeo é a prioridade; vídeo e texto no MESMO cartão, mesma altura) ---------- */
.bvh{border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden;box-shadow:var(--shadow)}
.bvh-v .bienv{margin:0!important;border:none;border-radius:0}
.bvh-v .bienv .btit{display:none}
.bvh-v .bienv::after{background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.35))}
.bvh-t{padding:16px 18px 18px}
.bvh-t .eyebrow{color:var(--gold);font-weight:600}
.bvh-t h2{font-size:21px;font-weight:800;letter-spacing:-.015em;margin:4px 0 6px}
.bvh-t p{font-size:14px;color:var(--muted);line-height:1.5}
#bvHero + .pad .hoje,#bvHero:not([hidden]) ~ .pad .hoje{margin-top:14px}
@media (min-width:1000px){
  .bvh{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
  .bvh-t{display:flex;flex-direction:column;justify-content:center;padding:28px 32px}
  .bvh-t h2{font-size:28px}
}

/* links do vídeo (Telegram + casa) dentro do banner, compactos */
.bvh-links{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.bvh-links > div:empty{display:none}
.bvh-links .promo{margin:0;padding:10px 12px;gap:12px;border-radius:var(--r-sm);background:rgba(255,255,255,.03)}
.bvh-links .promo:hover{border-color:rgba(255,255,255,.18)}
.bvh-links .promo img,.bvh-links .casalogo{width:40px;height:40px;flex:none;font-size:11px}
.bvh-links .promo .pt b{font-size:14px}
.bvh-links .promo .pt span{display:none}   /* título + botão bastam; a descrição saía cortada com «...» */
#bvHero.sem-video .bvh{display:block}
#bvHero.sem-video .bvh-v{display:none}

/* ================= CLUBE ORGANIZADO (17/10, Higor: «alinhar check-in e raspadinha, organizar, histórico varado, imagem cortada») =================
   Nível → check-in | raspadinha (mesma estrutura e altura) → Prêmios (largura toda) → Missões (2 colunas no PC) → Histórico compacto. */
/* cabeçalho comum: ícone · título/subtítulo · número à direita */
.cl-h{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cl-ic{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:12px;background:rgba(239,45,69,.12);color:var(--gold)}
.cl-ic svg{width:20px;height:20px}
.cl-ic.ok{background:rgba(47,208,127,.14);color:var(--jade)}
.cl-tt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cl-tt b{font-size:16px;font-weight:700;color:var(--text)}
.cl-tt small{font-size:12.5px;color:var(--dim)}
.cl-num{text-align:right;flex:none}
.cl-num b{display:block;font-size:24px;font-weight:800;line-height:1;color:var(--text)}
.cl-num small{display:block;font-size:11.5px;color:var(--dim);margin-top:3px}
.cl-pie{margin-top:auto;padding-top:14px}
/* check-in */
.ckcard,.rspcard{display:flex;flex-direction:column;margin:14px 0 0;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.ckcard.hecho{border-color:var(--line)}
.cktira{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0}
.ckd{display:flex;flex-direction:column;align-items:center;gap:5px;height:auto;border:none;background:none;color:var(--dim)}
.ckd i{width:100%;max-width:40px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;font-style:normal;font-size:12.5px;font-weight:600;
  border:1px solid var(--line);background:rgba(255,255,255,.02);color:var(--muted)}
.ckd i svg{width:16px;height:16px}
.ckd small{font-size:11px;color:var(--dim);line-height:1}
.ckd.on i{background:rgba(47,208,127,.16);border-color:rgba(47,208,127,.5);color:var(--jade)}
.ckd.hoy i{border-color:var(--gold);color:var(--text);box-shadow:0 0 0 3px rgba(239,45,69,.15)}
.ckd.on.hoy i{border-color:var(--jade);color:var(--jade);box-shadow:0 0 0 3px rgba(47,208,127,.15)}
.ckd.hoy small{color:var(--text);font-weight:600}
.ckd.on,.ckd.hoy,.ckd.on.hoy{background:none;border:none}
.ckd.pop i{animation:ckPop .7s cubic-bezier(.2,1.6,.4,1)}
.ckmsg{font-size:13.5px;color:var(--muted)}
.ckprox{font-size:12.5px;color:var(--dim);margin-top:6px}
/* raspadinha: mesma casca; amarelo só no «?» e no subtítulo */
.rspcard{display:flex;background:var(--card);border-color:var(--line)}
.rspcard .rspart{width:44px;height:44px;border-radius:12px;font-size:20px;flex:none}
.rspcard .cl-tt small{color:var(--rc)}
.rspcard .rsptxt p{font-size:13.5px;color:var(--muted)}
.rspcard .rspps{margin-top:10px}
.rspcta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rspcta small{flex:1 1 160px}
/* prêmios: imagem INTEIRA (formatos diferentes), fundo desfocado da própria imagem */
.pzart{aspect-ratio:1/1}
.pzart .pzbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(18px) brightness(.55);transform:scale(1.15)}
.pzart .pzimg{position:relative;width:100%;height:100%;object-fit:contain}
.pz:hover .pzart .pzbg{transform:scale(1.15)}
.pzemo{font-size:52px}
.pzph svg{width:44px;height:44px}
/* missões e histórico */
.movs .mov{padding:11px 0}
@media (min-width:1000px){
  .section[data-sec="club"] > .pad:first-child{align-items:stretch}
  .section[data-sec="club"] > .pad:first-child > #checkinClub,.section[data-sec="club"] > .pad:first-child > #clRaspa{display:flex;flex-direction:column}
  .section[data-sec="club"] > .pad:first-child > #checkinClub > .ckcard,
  .section[data-sec="club"] > .pad:first-child > #clRaspa > .rspcard{flex:1;margin-top:14px}
  .section[data-sec="club"] > .pad:nth-child(2){display:flex;flex-direction:column;gap:16px;padding-top:2px}
  .section[data-sec="club"] > .pad:nth-child(2) > .panel{margin-top:0}
  .pzgrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
  .cl-mis .mis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
  .cl-mis .mis > .mi{border-bottom:1px solid var(--line-soft)}
  .cl-mis .mis > .mimas{grid-column:1 / -1;margin-top:14px}
  .movs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px}
  .movs .mov + .mov{border-top:none}
  .movs .mov{border-bottom:1px solid var(--line-soft)}
}
@media (min-width:1000px) and (max-width:1180px){.movs{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- «Salir» à vista (17/10) ---------- */
.side-salir{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:var(--r-xs);color:var(--dim);font-size:13.5px;font-weight:500}
.side-salir:hover{background:rgba(255,255,255,.04);color:var(--text)}
body.em-adm .side .side-salir{justify-content:center;padding:10px 0}
body.em-adm .side .side-salir span{display:none}
.acct{align-items:center}
.acct > div:nth-child(2){flex:1;min-width:0}
.acct-salir{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 14px;font-size:13.5px}
.rspcard{align-items:stretch;text-align:left}
.rspcard .cl-h{width:100%}
.rspcta{justify-content:flex-start}

/* ================= ENTRADA 2 (17/10, Higor: «da um upgrade nisso») ================= */
/* formulário: campos com ícone, olhinho, links discretos */
.login{padding:30px 28px 26px;border-radius:20px;position:relative;overflow:hidden}
.login::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.login h2{font-size:24px;letter-spacing:-.02em}
.login .sub{margin-bottom:22px}
.acc-f{margin-bottom:14px}
.acc-f label{display:block;margin-bottom:7px;font-size:13px;font-weight:500;color:var(--muted)}
.acc-c{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 12px;border-radius:12px;background:var(--felt-0);border:1px solid var(--line);
  transition:border-color .18s,box-shadow .18s}
.acc-c:focus-within{border-color:rgba(239,45,69,.6);box-shadow:0 0 0 4px rgba(239,45,69,.12)}
.acc-c input{flex:1;min-width:0;height:48px;background:none;border:none;outline:none;color:var(--text);font-family:var(--body);font-size:15px}
.acc-ic{width:18px;height:18px;flex:none;color:var(--dim)}
.acc-ic svg{width:18px;height:18px;display:block}
.acc-c:focus-within .acc-ic{color:var(--gold)}
.acc-ojo{flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:var(--dim)}
.acc-ojo:hover,.acc-ojo.on{color:var(--text);background:rgba(255,255,255,.05)}
.acc-ojo svg.ic{width:17px;height:17px}
.acc-olv{display:flex;justify-content:flex-end;margin:-6px 0 16px}
.acc-olv .acclink,.login .acclinks .acclink{font-size:13px;font-weight:500;color:var(--muted);text-decoration:none;border:none;background:none}
.acc-olv .acclink:hover,.login .acclinks .acclink:hover{color:var(--text)}
.login .btn.wide{min-height:50px;font-size:15.5px;border-radius:12px}
.acc-sep{display:flex;align-items:center;gap:12px;margin:20px 0 12px;font-size:12.5px;color:var(--dim)}
.acc-sep::before,.acc-sep::after{content:"";flex:1;height:1px;background:var(--line-soft)}
.login .btn.ghost.wide{margin-top:0;background:rgba(255,255,255,.03);border:1px solid var(--line);color:var(--text)}
.login .btn.ghost.wide:hover{background:rgba(255,255,255,.06)}
.login .acchint{font-size:12px;color:var(--dim);text-align:center;margin-top:10px;line-height:1.45}
.login .whopnote{display:none}
.login .acclinks{display:flex;justify-content:center;gap:18px;margin-top:14px}
/* painel da esquerda */
@media (min-width:1000px){
  .overlay.on{grid-template-columns:minmax(0,540px) minmax(0,430px);gap:88px}
  .la-robot{width:110px}
  .la-word{height:28px;margin:14px 0 18px}
  .lart h1{font-size:50px;line-height:1.02;letter-spacing:-.035em;margin:0 0 14px}
  .lart h1 span{background:linear-gradient(90deg,#FF5A6E,#EF2D45 60%,#B5122A);-webkit-background-clip:text;background-clip:text;color:transparent}
  .la-sub{font-size:16.5px;color:var(--muted);max-width:440px;margin-bottom:26px;line-height:1.5}
  .la-lista{gap:12px}
  .la-lista li{gap:12px}
  .la-ic{width:24px;height:24px;border-radius:50%;background:rgba(239,45,69,.14);border:none}
  .la-ic svg{width:14px;height:14px}
  .la-lista b{font-size:15px}
  .la-lista small{font-size:13.5px}
  /* produtos em leque */
  .la-logos{display:flex;margin-top:36px;padding-left:8px}
  .la-logos img{width:104px;height:104px;border-radius:20px;border:1px solid rgba(255,255,255,.12);margin-left:-18px;
    box-shadow:0 18px 40px -10px rgba(0,0,0,.8);transition:transform .25s}
  .la-logos img:first-child{margin-left:0}
  /* leque regular: inclinação crescente e um arco suave */
  .la-logos img:nth-child(1){transform:rotate(-8deg) translateY(10px)}
  .la-logos img:nth-child(2){transform:rotate(-4deg) translateY(2px)}
  .la-logos img:nth-child(3){transform:rotate(0)}
  .la-logos img:nth-child(4){transform:rotate(4deg) translateY(2px)}
  .la-logos img:nth-child(5){transform:rotate(8deg) translateY(10px)}
  .la-logos img:hover{transform:translateY(-8px) rotate(0);z-index:2}
}

/* ---------- ícones SEM azulejo colorido (17/10, Higor: «ícone com fundo de cor opaca fica horrível») ----------
   Só o traço, na cor do significado; a caixa continua do mesmo tamanho pra nada sair do alinhamento. */
.hc-ic,.hc-ic.ok,.cl-ic,.cl-ic.ok,.la-ic,.hg-ic,.mi .mh .mic,.mi.hecha .mh .mic,.mi.open .mh .mic,.fbo .fbi,.fbo.op .fbi{
  background:none!important;border:none!important;box-shadow:none!important}
.hc-ic svg,.cl-ic svg{width:24px;height:24px}
.hc-ic.ok,.cl-ic.ok{color:var(--jade)}
.mi .mh .mic{width:28px;color:var(--dim)}
.mi .mh .mic svg{width:20px;height:20px}
.mi.hecha .mh .mic{color:var(--jade)}
.mi.open .mh .mic{color:var(--gold)}
.la-ic{width:18px;height:18px;color:var(--gold)}
.la-ic svg{width:18px;height:18px}
.fbo .fbi{width:auto;height:auto;justify-content:start;font-size:22px}

/* ================= BANCA (17/10, Higor: «muito crua, confusa, ruim visualmente») ================= */
.section[data-sec="banca"] .page-head p{font-size:14px;color:var(--muted);margin-top:6px}
.section[data-sec="banca"] .seg{margin-bottom:6px}
/* campo do bankroll */
.bk-in{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 16px;border-radius:14px;background:var(--felt-0);border:1px solid var(--line);
  transition:border-color .18s,box-shadow .18s}
.bk-in:focus-within{border-color:rgba(239,45,69,.6);box-shadow:0 0 0 4px rgba(239,45,69,.12)}
.bk-in .pre{font-size:20px;font-weight:600;color:var(--dim)}
.bk-in input{flex:1;min-width:0;height:54px;background:none;border:none;outline:none;color:var(--text);font-family:var(--body);
  font-size:32px;font-weight:800;letter-spacing:-.02em;-moz-appearance:textfield}
.bk-in input::-webkit-outer-spin-button,.bk-in input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bk-in select{flex:none;height:40px;padding:0 30px 0 12px;border-radius:10px;border:1px solid var(--line);background:var(--raised-2);
  color:var(--text);font-family:var(--body);font-weight:600;font-size:14px;cursor:pointer;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23A6A6B2' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center}
.bk-aviso{margin-top:14px;border-radius:var(--r-sm)}
/* objetivo */
.bk-obj .tool-inputs{gap:12px}
.bk-obj .risk{padding:6px 12px;border-radius:99px;background:rgba(255,255,255,.04);border:1px solid var(--line);font-size:13px}
.bk-obj .kpis{gap:10px;margin:4px 0 14px}
.bk-obj .kpi{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--raised);padding:14px}
.bk-obj .kpi .k{font-family:var(--body);font-size:12px;letter-spacing:0;text-transform:none;color:var(--dim);font-weight:500}
.bk-obj .kpi .v{font-family:var(--body);font-size:20px;font-weight:800;letter-spacing:-.01em}
.bk-obj .prow{padding:12px 0}
.bk-obj .prow .rn{font-family:var(--body);text-transform:none;letter-spacing:0;font-size:14px}
.bk-obj .prow .ck{font-family:var(--body);text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--dim);font-weight:500}
.bk-obj .prow .cv{font-family:var(--body);font-size:14.5px;font-variant-numeric:tabular-nums}
.bk-obj .prow .pbar .t{border-radius:99px}
.bk-obj .prow .pbar .t i{border-radius:99px}
.bk-obj .seemore{border-radius:var(--r-sm)}
@media (min-width:1000px){
  .bk-obj .kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
  .bk-obj .prow{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center;gap:20px}
  .bk-obj .prow .ptop{margin:0}
  .bk-obj .prow .cells{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* conselhos: três cartões */
.bk-consejos{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.bk-consejos .panel{margin:0;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.bk-consejos .rc-n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;margin-bottom:10px;
  font-size:13px;font-weight:700;color:var(--gold);border:1.5px solid rgba(239,45,69,.5)}
.bk-consejos .reco ul{gap:10px;font-size:14px;line-height:1.45}
@media (min-width:1000px){.bk-consejos{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bk-consejos .panel{padding:20px}
.bk-obj .prow .cv.hi{color:var(--text);font-weight:800}

/* ================= BANCA v2 (17/10, Higor: «ficou meio zoadinho») =================
   Um cartão: valor → degraus (barras subindo) → detalhe da vida tocada → regra numa linha. */
.bk2{border:1px solid var(--line);border-radius:var(--r);background:radial-gradient(700px 260px at 0 0,rgba(239,45,69,.10),transparent 70%),var(--card);
  padding:18px;margin-top:6px;box-shadow:var(--shadow)}
.bk2-top{display:flex;flex-direction:column;gap:12px}
.bk2-lbl label{display:block;font-size:15px;font-weight:700;color:var(--text)}
.bk2-lbl small{display:block;font-size:12.5px;color:var(--dim);margin-top:3px}
.bk2-chart{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;margin-top:22px;align-items:end}
.vb{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;min-width:0;color:inherit;cursor:pointer}
.vb-amt{font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.vb-col{position:relative;width:100%;height:150px;display:flex;align-items:flex-end;border-radius:12px;background:rgba(255,255,255,.03);overflow:hidden}
.vb-col i{display:block;width:100%;border-radius:10px 10px 0 0;background:linear-gradient(180deg,#F5455B,#B5122A);opacity:calc(.25 + var(--int) * .45);
  transition:height .5s cubic-bezier(.2,.8,.2,1),opacity .2s}
.vb-n{font-size:12.5px;font-weight:600;color:var(--muted)}
.vb-pct{font-size:11.5px;color:var(--dim);margin-top:-4px}
.vb:hover .vb-col i{opacity:calc(.45 + var(--int) * .45)}
.vb.sel .vb-col{box-shadow:inset 0 0 0 1.5px rgba(239,45,69,.7)}
.vb.sel .vb-col i{opacity:1}
.vb.sel .vb-amt,.vb.sel .vb-n{color:var(--text)}
.bk2-det{display:flex;flex-direction:column;gap:4px;margin-top:16px;padding:14px 16px;border-radius:var(--r-sm);background:rgba(255,255,255,.03);border:1px solid var(--line-soft)}
.bk2-dn{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bk2-dn small{font-size:12.5px;color:var(--dim)}
.bk2-dn b{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums}
.bk2-det p{font-size:13.5px;color:var(--muted)}
.bk2-regla{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}
.bk2-regla span{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.bk2-regla i{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:50%;font-style:normal;font-size:11.5px;font-weight:700;
  color:var(--gold);border:1.5px solid rgba(239,45,69,.5)}
@media (max-width:420px){.vb-col{height:120px}.vb-amt{font-size:11.5px}.bk2-chart{gap:6px}.vb-n{font-size:11.5px}}
@media (min-width:700px){
  .bk2{padding:22px 24px}
  .bk2-top{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}
  .bk2-top .bk-in{width:min(420px,55%)}
  .vb-col{height:190px}
  .vb-amt{font-size:15px}
}

/* ================= CELULAR (17/10) ================= */
/* barra de baixo flutuante: arredondada, acima da borda, translúcida com desfoque */
@media (max-width:999px){
  :root{--tabh:58px}
  .tabbar{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:0 4px;border-radius:22px;
    border:1px solid rgba(255,255,255,.10);background:rgba(20,20,26,.58);
    -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);
    box-shadow:0 14px 34px -10px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.05)}
  .tabbar button{height:var(--tabh);z-index:0}
  .tabbar button[aria-current="true"]::before{top:6px;width:52px;height:46px;border-radius:15px;background:rgba(239,45,69,.14);z-index:-1}
  /* o conteúdo termina ACIMA da barra em toda aba */
  .main{padding-bottom:calc(var(--tabh) + 12px + 32px + env(safe-area-inset-bottom))}
  .toast{bottom:calc(var(--tabh) + 28px + env(safe-area-inset-bottom))}
  .adm .save-bar{bottom:calc(var(--tabh) + 14px + env(safe-area-inset-bottom))}
  body.envivo .tabbar [data-go="bots"]::after{top:8px}
}
/* logo clicável */
.appbar .brand,.side .brand{cursor:pointer}
/* faixa «hoje»: os três ícones no mesmo círculo de contorno fino (a medalha do mesmo tamanho) */
.hc .hc-ic,.hc .lvmed{width:42px;height:42px;flex:none;border-radius:50%}
.hc .hc-ic{border:1px solid var(--line)!important}
.hc .hc-ic.ok{border-color:rgba(47,208,127,.4)!important}
.hc .hc-ic svg{width:20px;height:20px}
.cl-h .cl-ic{border-radius:50%;border:1px solid var(--line)!important}
.cl-h .cl-ic.ok{border-color:rgba(47,208,127,.4)!important}
.cl-h .cl-ic svg{width:20px;height:20px}
/* prêmios: 2 colunas no celular (1 coluna deixava cada imagem do tamanho da tela) */
@media (max-width:699px){.pzgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pzb{padding:10px}.pzb > b{font-size:13px}.pzemo{font-size:40px}}
/* admin › leads no celular: etiquetas em linha própria, sem cortar */
@media (max-width:560px){
  .adm .ldl{grid-template-columns:38px minmax(0,1fr) auto;grid-template-areas:"av n fx" "av lv lv" "av ul ul";row-gap:6px}
  .adm .ldl .ldlv{grid-area:lv;justify-self:start}
  .adm .ldl .ldul{grid-area:ul;justify-self:start;max-width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 10px}
  .adm .ldul .chip{max-width:100%;white-space:normal}
}
/* degraus sem «tubo» de fundo: só as barras sobre uma linha de base */
.vb-col{background:none;border-radius:0;border-bottom:1px solid var(--line);overflow:visible}
.vb-col i{border-radius:10px 10px 3px 3px}
.vb.sel .vb-col{box-shadow:none}
.vb.sel .vb-col i{box-shadow:0 0 0 2px rgba(239,45,69,.35),0 10px 30px -8px rgba(239,45,69,.6)}
.vb.sel .vb-n{color:var(--gold)}

/* ---------- fichas: ficha de cassino de verdade no lugar da bolinha (17/10, Higor: «bolinha sem graça») ---------- */
:root{--ficha:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cdefs%3E%3ClinearGradient id=%22g%22 x1=%220%22 y1=%220%22 x2=%220%22 y2=%221%22%3E%3Cstop offset=%220%22 stop-color=%22%23FF5A6E%22/%3E%3Cstop offset=%221%22 stop-color=%22%23C8132D%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2211.3%22 fill=%22url(%23g)%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229.4%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222.7%22 stroke-dasharray=%222.5 4.88%22 transform=%22rotate(-11 12 12)%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%226.3%22 fill=%22%23B0102A%22 stroke=%22%23fff%22 stroke-opacity=%22.55%22 stroke-width=%221%22/%3E%3Cpath d=%22M12 8.6l1 2.4 2.4 1-2.4 1-1 2.4-1-2.4-2.4-1 2.4-1z%22 fill=%22%23fff%22/%3E%3C/svg%3E")}
.fmk{width:20px;height:20px;border:none;border-radius:50%;background:var(--ficha) center/contain no-repeat;
  filter:drop-shadow(0 2px 4px rgba(239,45,69,.35))}
.xp-chip{gap:7px;padding:4px 11px 4px 5px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.05);color:var(--text);
  font-weight:700;font-size:13.5px;font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color .18s,background .18s}
.xp-chip:hover{border-color:rgba(239,45,69,.45);background:rgba(239,45,69,.08)}
.xp-chip .xpn{color:var(--text)}
/* ganhou fichas: a ficha dá um giro enquanto o número sobe */
.xp-chip:has(.cntpulse) .fmk{animation:fichaGiro .9s cubic-bezier(.2,.8,.2,1)}
@keyframes fichaGiro{0%{transform:rotateY(0)}60%{transform:rotateY(540deg) scale(1.15)}100%{transform:rotateY(720deg)}}
@media (prefers-reduced-motion:reduce){.xp-chip:has(.cntpulse) .fmk{animation:none}}
/* o mesmo desenho onde o app fala de fichas com ícone */
svg.ic.ficha-ic{display:none}
.ficha-i{display:inline-block;width:15px;height:15px;vertical-align:-3px;border-radius:50%;background:var(--ficha) center/contain no-repeat}
.rspps span.ficha-i,span.ficha-i{padding:0;border:none;border-radius:50%;background:var(--ficha) center/contain no-repeat}
.rspps span:has(> .ficha-i){display:inline-flex;align-items:center;gap:6px}

/* ================= ADMIN › E-MAILS (17/10) ================= */
.adm .mlw{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.adm .mllist{display:flex;flex-direction:column;gap:8px}
.adm .mlit{display:flex;align-items:flex-start;gap:12px;width:100%;padding:13px 14px;text-align:left;color:inherit;
  border:1px solid var(--a-line);border-radius:12px;background:var(--a-card);transition:border-color .18s,background .18s}
.adm .mlit:hover{border-color:var(--a-line-2)}
.adm .mlit.on{border-color:rgba(239,45,69,.55);background:linear-gradient(90deg,rgba(239,45,69,.08),transparent 70%),var(--a-card)}
.adm .mlic{flex:none;color:var(--dim);margin-top:1px}
.adm .mlit.on .mlic{color:var(--gold)}
.adm .mltx b{display:block;font-size:14px;font-weight:650;color:var(--text)}
.adm .mltx small{display:block;font-size:12.5px;color:var(--dim);line-height:1.4;margin-top:2px}
.adm .mlprev{border:1px solid var(--a-line);border-radius:14px;background:var(--a-card);padding:14px;min-width:0}
.adm .mlhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.adm .mlhead small{display:block;font-size:12px;color:var(--dim)}
.adm .mlhead b{display:block;font-size:15px;font-weight:700;color:var(--text)}
.adm .mlhead .btn{flex:none}
.adm .mlframe{display:block;width:100%;min-height:560px;border:0;border-radius:12px;background:#0B0B0F}
.adm .mlnota{font-size:12.5px;color:var(--dim);margin:0 0 10px}
.adm .mlprev .mlnota:last-child{margin:10px 0 0}
@media (min-width:1000px){.adm .mlw{grid-template-columns:320px minmax(0,1fr);align-items:start}.adm .mllist{position:sticky;top:16px}}

/* ---------- tela de atualização (vigia de versão, 17/10) ---------- */
.upd{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;
  background:radial-gradient(600px 400px at 50% 30%,rgba(239,45,69,.18),transparent 70%),rgba(6,6,9,.88);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:updIn .3s ease}
@keyframes updIn{from{opacity:0}to{opacity:1}}
.upd-box{width:min(380px,100%);text-align:center;padding:28px 24px 24px;border-radius:22px;border:1px solid var(--line);
  background:var(--card);box-shadow:0 30px 80px -20px rgba(0,0,0,.85)}
.upd-ic{width:56px;height:56px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;color:var(--gold);border:1px solid rgba(239,45,69,.45)}
.upd-ic svg{width:26px;height:26px}
.upd-box small{display:block;font-size:12.5px;font-weight:600;color:var(--gold);margin-bottom:4px}
.upd-box h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:0 0 8px}
.upd-box p{font-size:14.5px;color:var(--muted);line-height:1.5;margin:0 0 20px}
.upd-box button{width:100%;min-height:50px;border-radius:14px;font-size:16px;font-weight:700;color:#fff;background:var(--brand-grad);
  box-shadow:0 12px 26px -10px rgba(239,45,69,.7)}

/* ===== ENTRADA › «não achei a compra» (18/10): e-mail buscado, correção do domínio, o que fazer ===== */
.acc-nc{margin-top:16px;text-align:left;border:1px solid rgba(239,45,69,.35);background:rgba(239,45,69,.06);border-radius:14px;padding:14px 14px 12px}
.acc-nc-h{display:flex;gap:10px;align-items:flex-start}
.acc-nc-ic{flex:none;width:22px;height:22px;border-radius:50%;border:1.6px solid var(--gold);color:var(--gold);font:700 13px/19px Inter,system-ui,sans-serif;text-align:center;margin-top:1px}
.acc-nc-h b{display:block;font-size:14px;line-height:1.35;color:var(--text)}
.acc-nc-mail{display:block;margin-top:3px;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.acc-nc-sug{display:grid;justify-items:start;gap:9px;margin-top:12px;padding:11px 12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--line);font-size:13px;color:var(--text);line-height:1.4}
.acc-nc-sug b{color:var(--text);overflow-wrap:anywhere}
.login .acc-nc-sug .btn{width:auto;flex:none;padding:8px 16px;font-size:13px;min-height:0;margin:0;box-shadow:none}
.acc-nc-pasos{margin:12px 0 0;padding:0 0 0 18px;display:grid;gap:6px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.acc-nc-pasos li::marker{color:var(--dim);font-weight:600}
.acc-nc-pasos a{color:var(--gold);font-weight:600;text-decoration:underline;text-underline-offset:3px}
