:root{
  --btnText:#2a1a00; --glow:#2a2f6b; --prizeBg:#3a2b00; --prizeLine:#6b5300;
  --bg:#0f1226; --bg2:#171b36; --card:#1e2346; --line:#2c3366;
  --text:#f3f4ff; --muted:#a3a8d6; --gold:#ffc83d; --gold2:#ff9f1c;
  --hit:#ffc83d; --hitText:#1a1400; --ok:#2ed47a; --danger:#ff5d73; --blue:#5b7cff;
  --B:#ff5d73; --I:#ff9f1c; --N:#2ed47a; --G:#3ab7ff; --O:#b07cff;
  --r:14px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:"Poppins",system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
body{min-height:100vh;background:radial-gradient(1200px 500px at 50% -200px,var(--glow) 0%,var(--bg) 70%) var(--bg)}
a{color:var(--gold)}
button,input,select,textarea{font:inherit}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px 48px}
header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;max-width:1100px;margin:0 auto}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);min-width:0}
.logo .balls{display:flex;gap:2px}
.logo .balls span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;color:#fff;font-size:13px;font-weight:900;box-shadow:inset 0 -3px 5px #0005}
.logo .balls span:nth-child(1){background:var(--B)}.logo .balls span:nth-child(2){background:var(--I)}.logo .balls span:nth-child(3){background:var(--N)}.logo .balls span:nth-child(4){background:var(--G)}.logo .balls span:nth-child(5){background:var(--O)}
.logo .brand{font-weight:900;font-size:18px;line-height:1.05;letter-spacing:.2px}
.logo .brand em{font-style:normal;display:block;background:linear-gradient(90deg,var(--gold),var(--gold2));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:15px}
.logo .brand small{display:block;font-size:11px;font-weight:600;color:var(--muted)}
@media(max-width:420px){.logo .balls span{width:18px;height:18px;font-size:10px}.logo .brand{font-size:15px}.logo .brand em{font-size:13px}}
.foot{text-align:center;margin-top:28px;display:grid;gap:8px;font-size:13px}
.foot a{font-weight:700;font-size:15px}
.userbox{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.btn{border:0;border-radius:12px;padding:12px 18px;font-weight:700;cursor:pointer;background:linear-gradient(180deg,var(--gold),var(--gold2));color:var(--btnText);transition:transform .08s,filter .2s}
.btn:active{transform:scale(.97)}.btn:disabled{filter:grayscale(1);opacity:.6;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.small{padding:7px 12px;font-size:13px;border-radius:9px}
.btn.green{background:var(--ok);color:#002a14}.btn.red{background:var(--danger);color:#fff}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-top:16px}
.panel h2{margin:0 0 12px;font-size:18px}
.muted{color:var(--muted)}.center{text-align:center}
.grid2{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:900px){.grid2{grid-template-columns:1.4fr 1fr}}

/* palco: vídeo fixo */
.stage{position:sticky;top:0;z-index:20;background:var(--bg);padding:8px 0 10px;margin:0 -16px;padding-left:16px;padding-right:16px;box-shadow:0 10px 20px -12px #000}
.video{position:relative;aspect-ratio:16/9;max-height:42vh;margin:0 auto;border-radius:var(--r);overflow:hidden;background:#000;border:1px solid var(--line)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.video .video-trava{position:absolute;inset:0;z-index:2;background:transparent;cursor:default;-webkit-tap-highlight-color:transparent;touch-action:pan-y}
.video .novideo{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:14px;text-align:center;padding:16px}
.infobar{display:flex;align-items:center;gap:12px;margin-top:10px}
.ball{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-weight:900;line-height:1;color:#fff;background:radial-gradient(circle at 30% 30%,#fff6 0,#0000 40%),var(--blue);box-shadow:inset 0 -6px 12px #0006,0 6px 16px #0008}
.ball small{display:block;font-size:12px;opacity:.9}.ball b{font-size:24px}
.ball.pop{animation:pop .6s ease}
@keyframes pop{0%{transform:scale(.3) rotate(-90deg)}70%{transform:scale(1.15)}100%{transform:scale(1)}}
.prize{flex:1;min-width:0;background:linear-gradient(90deg,var(--prizeBg),var(--card));border:1px solid var(--prizeLine);border-radius:12px;padding:8px 12px}
.prize .lbl{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gold)}
.prize .val{font-weight:800;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chips{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:4px}
.chip{background:var(--bg2);border:1px solid var(--line);padding:2px 8px;border-radius:99px}
.chip.live{color:#fff;background:var(--danger);border-color:var(--danger)}
.chip.open{color:#002a14;background:var(--ok);border-color:var(--ok)}

/* painel 1-75 */
.board{display:grid;grid-template-columns:28px repeat(15,1fr);gap:3px}
.board .L{display:grid;place-items:center;font-weight:900;border-radius:6px;color:#fff;font-size:14px}
.board .n{aspect-ratio:1;display:grid;place-items:center;border-radius:6px;background:var(--bg2);color:#5d6399;font-size:clamp(9px,2.6vw,14px);font-weight:700;transition:all .3s}
.board .n.on{background:var(--hit);color:var(--hitText);box-shadow:0 0 0 1px #fff3}
.board .n.last{animation:glow 1.2s ease-in-out infinite alternate}
@keyframes glow{from{box-shadow:0 0 0 2px #fff}to{box-shadow:0 0 14px 3px var(--gold)}}
.lastfew{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;font-size:13px}
.lastfew span{background:var(--bg2);border:1px solid var(--line);border-radius:99px;padding:2px 9px}

/* formulários */
.tabs{display:flex;gap:6px;margin-bottom:12px}
.tabs button{flex:1;padding:10px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font-weight:600}
.tabs button.on{background:var(--bg2);color:var(--text);border-color:var(--gold)}
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}
input,textarea{width:100%;padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text);outline:none}
input:focus,textarea:focus{border-color:var(--gold)}
.err{color:var(--danger);font-size:14px;min-height:20px;margin-top:8px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* compra */
.stepper{display:flex;align-items:center;gap:8px}
.stepper button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font-size:22px;cursor:pointer}
.stepper input{width:80px;text-align:center;font-size:20px;font-weight:800}
.quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.quick button{padding:6px 12px;border-radius:99px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}
.total{font-size:22px;font-weight:800;color:var(--gold)}
.pix{display:grid;gap:10px;justify-items:center;text-align:center}
.pix img{width:220px;height:220px;background:#fff;border-radius:12px;padding:8px}
.pix textarea{font-size:12px;height:70px;resize:none}

/* cartelas */
.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.bcard{background:#fff;color:#1a1d3a;border-radius:14px;padding:8px;box-shadow:0 8px 24px #0007;position:relative}
.bcard .hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;font-weight:700}
.bcard .mode{display:flex;border:1px solid #d8dbef;border-radius:99px;overflow:hidden}
.bcard .mode button{border:0;background:transparent;padding:4px 10px;font-size:12px;cursor:pointer;color:#555b88;font-weight:600}
.bcard .mode button.on{background:#1a1d3a;color:#fff}
.bcard .g{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
.bcard .hd{flex-wrap:wrap;gap:4px}
.bcard .h{display:grid;place-items:center;color:#fff;font-weight:900;border-radius:6px;padding:4px 0}
.bcard .c{aspect-ratio:1;display:grid;place-items:center;border-radius:6px;background:#eef0fb;font-weight:800;font-size:clamp(12px,3.6vw,18px);cursor:default;user-select:none;position:relative;transition:background .2s}
.bcard.manual .c.can{cursor:pointer;outline:2px dashed var(--gold2);outline-offset:-3px}
.bcard .c.mk{background:var(--gold);color:var(--hitText)}
.bcard .c.mk::after{content:"";position:absolute;inset:18%;border-radius:50%;border:3px solid #e2462088}
.bcard .c.free{background:#1a1d3a;color:var(--gold);font-size:11px}
.bcard .ft{margin-top:6px;font-size:12px;color:#555b88;display:flex;justify-content:space-between}
.bcard.close{box-shadow:0 0 0 3px var(--gold2),0 8px 24px #0007}
.bcard.win{box-shadow:0 0 0 4px var(--ok),0 0 30px var(--ok)}
.bcard.win::before{content:"BINGO!";position:absolute;top:-12px;right:-8px;background:var(--ok);color:#002a14;font-weight:900;padding:3px 10px;border-radius:99px;transform:rotate(8deg);z-index:2}
.H0{background:var(--B)}.H1{background:var(--I)}.H2{background:var(--N)}.H3{background:var(--G)}.H4{background:var(--O)}

/* overlay vencedor */
.overlay{position:fixed;inset:0;background:#000c;z-index:100;display:none;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.overlay.show{display:grid}
.overlay .box{background:var(--card);border:2px solid var(--gold);border-radius:20px;padding:28px;text-align:center;max-width:420px;animation:pop .6s}
.overlay h1{font-size:44px;margin:0;color:var(--gold)}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--card);border:1px solid var(--gold);padding:12px 18px;border-radius:12px;z-index:300;display:none;max-width:90vw;text-align:center}
.toast.show{display:block;animation:pop .4s}
.winners{display:grid;gap:6px}
.winners div{background:#0d3b24;border:1px solid var(--ok);padding:8px 12px;border-radius:10px}
.hidden{display:none!important}

/* admin */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.stat{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px}
.stat b{display:block;font-size:22px}.stat span{font-size:12px;color:var(--muted)}
.drawbtn{font-size:22px;padding:18px;width:100%}
.alert-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.alert-sum>div{border-radius:12px;padding:10px;text-align:center;border:1px solid var(--line);background:var(--bg2)}
.alert-sum b{font-size:26px;display:block}
.alert-sum .a3 b{color:var(--gold)}.alert-sum .a2 b{color:var(--gold2)}.alert-sum .a1 b{color:var(--danger)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}
.tag{display:inline-block;padding:1px 8px;border-radius:99px;font-weight:800;font-size:12px}
.tag.f1{background:var(--danger);color:#fff}.tag.f2{background:var(--gold2);color:#2a1a00}.tag.f3{background:var(--gold);color:#2a1a00}
.nums span{display:inline-block;background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:0 6px;margin:1px;font-size:12px}
.scroll{max-height:420px;overflow:auto}
.switch{display:flex;align-items:center;gap:8px;cursor:pointer}
.switch input{width:auto}
.bcard{min-width:0}.bcard .g>*{min-width:0}
.bcard .c.free{font-size:clamp(7px,2vw,11px)}
.bcard .c.mk::after{border-width:2px}

/* abas do admin */
.navtabs{display:flex;gap:6px;margin-top:4px;padding-top:8px;overflow-x:auto}
.navtabs button{flex:1;min-width:110px;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-weight:700;cursor:pointer;position:relative}
.navtabs button.on{color:var(--btnText);background:linear-gradient(180deg,var(--gold),var(--gold2));border-color:transparent}
.navtabs .badge{position:absolute;top:-6px;right:-4px;background:var(--danger);color:#fff;border-radius:99px;font-size:11px;padding:1px 7px}
.filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.filtros label{margin:0 0 4px}.filtros input{width:auto}
.filtros .quick{margin:0}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tablewrap table{min-width:560px}
td.num,th.num{text-align:right;white-space:nowrap}
.dl{display:flex;flex-wrap:wrap;gap:8px}
.dl a{text-decoration:none}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:700}
.pill.ok{background:#0d3b24;color:var(--ok)}.pill.off{background:#3b0d16;color:var(--danger)}.pill.pend{background:#3a2b00;color:var(--gold)}
.formgrid{display:grid;gap:0 12px;grid-template-columns:1fr}
@media(min-width:640px){.formgrid{grid-template-columns:1fr 1fr}}
.copy{display:flex;gap:6px}.copy input{font-size:13px}
.hero{text-align:center;padding:24px 8px 8px}
.hero h1{margin:0;font-size:28px}.hero p{color:var(--muted);margin:8px 0 0}
.steps3{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:16px}
.steps3 div{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:14px}
.steps3 b{display:block;color:var(--gold);font-size:22px}
.check{display:flex;gap:8px;align-items:flex-start;margin-top:12px;font-size:14px;color:var(--muted)}.check input{width:auto;margin-top:3px}

/* comemoração do vencedor */
#confete{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:120;display:none}
.overlay{z-index:110;background:radial-gradient(circle at 50% 40%,#3a2b00cc,#000d 70%)}
.winbox{position:relative;overflow:hidden;border-width:3px;box-shadow:0 0 0 6px #ffc83d33,0 0 60px #ffc83d88}
.winbox::before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 0deg,#ffc83d22,transparent 20%,#ffc83d22 40%,transparent 60%,#ffc83d22 80%,transparent);animation:giro 8s linear infinite;z-index:-1}
@keyframes giro{to{transform:rotate(360deg)}}
.winbox .trofeu{font-size:72px;animation:pula 1s ease-in-out infinite alternate}
@keyframes pula{from{transform:translateY(0) scale(1)}to{transform:translateY(-10px) scale(1.08)}}
.winbox h1{font-size:40px;margin:4px 0 0;background:linear-gradient(90deg,#ffe27a,#ffc83d,#ff9f1c,#ffc83d,#ffe27a);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:brilho 2s linear infinite}
@keyframes brilho{to{background-position:200% center}}
.winbox .ganhou{margin:2px 0 10px;font-size:26px;color:#fff}
.premiobox{background:#0d3b24;border:1px solid var(--ok);border-radius:12px;padding:10px;margin:12px 0}
.premiobox span{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ok)}
.premiobox b{font-size:20px}
@media (prefers-reduced-motion: reduce){.winbox::before,.winbox .trofeu,.winbox h1{animation:none}}

/* aparência */
.cores{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.cor{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px}
.cor label{margin:0 0 6px}
.cor .pick{display:flex;gap:8px;align-items:center}
.cor input[type=color]{width:48px;height:40px;padding:2px;border-radius:8px;cursor:pointer;flex:none}
.cor input[type=text]{font-family:monospace;text-transform:lowercase}
.presets{display:flex;flex-wrap:wrap;gap:8px}
.preset{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;font-weight:600}
.preset i{display:flex;border-radius:99px;overflow:hidden;border:1px solid #0003}
.preset i b{width:14px;height:22px}
.previa{border-radius:14px;padding:14px;border:1px solid var(--line);background:var(--bg)}

/* logo da empresa */
.logo .mLogo{height:44px;max-width:120px;object-fit:contain;border-radius:8px;flex:none}
@media(max-width:420px){.logo .mLogo{height:36px;max-width:90px}}
.logo.com-logo .balls{display:none}
.logoprev{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.logoprev .box{width:120px;height:80px;border-radius:12px;border:1px dashed var(--line);display:grid;place-items:center;background:var(--bg2);overflow:hidden}
.logoprev .box img{max-width:100%;max-height:100%;object-fit:contain}

/* agenda */
.agenda{display:grid;gap:12px}
.evento{display:grid;grid-template-columns:auto 1fr;gap:14px;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:12px}
.evento .dt{width:68px;text-align:center;border-radius:12px;background:linear-gradient(180deg,var(--gold),var(--gold2));color:var(--btnText);padding:8px 4px;align-self:start}
.evento .dt b{display:block;font-size:26px;line-height:1}.evento .dt span{display:block;font-size:12px;font-weight:700;text-transform:uppercase}
.evento .dt small{display:block;font-size:13px;font-weight:800;margin-top:4px}
.evento h3{margin:0;font-size:16px}
.evento .pr{color:var(--gold);font-weight:700;margin:2px 0}
.evento .cd{font-size:13px;color:var(--muted)}
.evento .acoes{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.horas{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.horas button{padding:6px 12px;border-radius:99px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;font-weight:600;font-size:13px}
.horas button.on{background:var(--ok);border-color:var(--ok);color:#002a14}
.evento.hoje{border-color:var(--gold)}
/* ajustes de encaixe no celular */
.board{grid-template-columns:24px repeat(15,minmax(0,1fr))}
.board .n{min-width:0}
@media(max-width:480px){.board{gap:2px}.board .L{font-size:12px}.board .n{border-radius:4px}}
.logoprev .box{display:flex;align-items:center;justify-content:center;padding:6px}
.logoprev .box img{width:100%;height:100%;object-fit:contain}

/* banners */
.banners{position:relative;margin-top:8px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--card)}
.banners .trilho{display:grid}
.banners .slide{grid-area:1/1;opacity:0;transition:opacity .6s ease;pointer-events:none}
.banners .slide.on{opacity:1;pointer-events:auto}
.banners img{display:block;width:100%;height:auto;max-height:340px;object-fit:cover}
.banners .pontos{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:6px}
.banners .pontos button{width:8px;height:8px;border-radius:99px;border:0;background:#fff8;cursor:pointer;padding:0;transition:width .3s}
.banners .pontos button.on{width:22px;background:#fff}
.banners .seta{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:0;background:#0007;color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center}
.banners .seta.esq{left:8px}.banners .seta.dir{right:8px}
@media(max-width:600px){.banners .seta{display:none}}
#bannerPop{z-index:105}
.popbanner{position:relative;width:min(520px,92vw);animation:pop .4s}
.popbanner img{display:block;width:100%;max-height:80vh;object-fit:contain;border-radius:16px;box-shadow:0 20px 60px #000c}
.popbanner .fechar{position:absolute;top:-12px;right:-12px;width:38px;height:38px;border-radius:50%;border:2px solid #fff;background:#000c;color:#fff;font-size:18px;cursor:pointer;z-index:2}
.popbanner .cta{display:block;margin-top:10px;text-align:center;text-decoration:none}
/* admin banners */
.blist{display:grid;gap:10px;margin-top:12px}
.bitem{display:grid;grid-template-columns:140px 1fr;gap:12px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px;align-items:start}
.bitem img{width:140px;height:80px;object-fit:cover;border-radius:8px;background:#000}
.bitem.off{opacity:.55}
@media(max-width:520px){.bitem{grid-template-columns:1fr}.bitem img{width:100%;height:auto}}

/* fale conosco */
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:90;display:flex;align-items:center;gap:8px;border:0;border-radius:99px;padding:12px 16px;font-size:20px;font-weight:800;cursor:pointer;color:var(--btnText);background:linear-gradient(180deg,var(--gold),var(--gold2));box-shadow:0 8px 24px #0009}
.fab span{font-size:14px}
@media(max-width:520px){.fab{padding:12px;}.fab span{display:none}}
.fcbox{position:relative;text-align:left;width:min(520px,94vw);max-height:90vh;overflow:auto;animation:pop .35s}
.fcbox .fechar{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer}
.fccanais{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:6px}
.canal{display:block;text-decoration:none;color:var(--text);background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.canal b{display:block;font-size:14px}.canal span{font-size:12px;color:var(--muted);word-break:break-all}
.canal.wa{border-color:#25d366;background:#0d3b24}.canal.wa b{color:#25d366}
.canal.ig b{color:#e1306c}
.canal.fb b{color:#1877f2}.canal.tk b{color:#25f4ee}
.fcou{grid-column:1/-1;font-size:13px;margin-top:4px}
.sel,select{width:100%;padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text)}
/* admin mensagens */
.msg{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px}
.msg.nova{border-color:var(--gold)}
.msg .txt{white-space:pre-wrap;margin:8px 0;font-size:15px}
.msg .resp{background:var(--card);border-left:3px solid var(--ok);padding:8px 10px;border-radius:8px;font-size:13px;white-space:pre-wrap}
.overlay .fcbox{text-align:left}
.quick button.on{background:var(--gold);color:var(--btnText);border-color:transparent}
/* topo e abas no celular */
header.top .userbox{flex:none}
.logo .brand{min-width:0;overflow:hidden;text-overflow:ellipsis}
@media(max-width:560px){
  .navtabs{flex-wrap:wrap;overflow:visible}
  .navtabs button{flex:1 1 30%;min-width:0;padding:10px 6px;font-size:13px}
  .logo .brand small{display:none}
}
@media(max-width:360px){.logo:not(.com-logo) .balls{display:none}}

/* app instalado: respeita o entalhe do iPhone */
header.top{padding-top:max(12px,env(safe-area-inset-top))}
/* barra e janela de instalação */
.instbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:95;display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--gold);border-radius:16px;padding:10px 12px;box-shadow:0 12px 30px #000a;animation:sobe .4s ease;max-width:520px;margin:0 auto}
@keyframes sobe{from{transform:translateY(120%)}to{transform:none}}
.instbar img{border-radius:10px;flex:none}
.instbar .t{flex:1;min-width:0;line-height:1.2}.instbar .t b{display:block}.instbar .t span{font-size:12px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.instbar .x{border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;padding:4px}
.overlay .instbox{position:relative;text-align:center;width:min(440px,92vw)}
.instbox .fechar{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer}
.passos{text-align:left;margin:0;padding:0;list-style:none;counter-reset:p;display:grid;gap:10px}
.passos li{counter-increment:p;display:flex;gap:10px;align-items:flex-start;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:15px}
.passos li::before{content:counter(p);flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:linear-gradient(180deg,var(--gold),var(--gold2));color:var(--btnText)}
body:has(.instbar:not(.hidden)) .fab{bottom:calc(90px + env(safe-area-inset-bottom))}
/* área fixa compacta ao rolar (celular): o vídeo continua visível, mas menor */
.stage .video,.stage .ball,.stage .prize{transition:none}
@media(max-width:899px){
  .stage.compacto{padding-top:6px;padding-bottom:6px}
  .stage.compacto .video{max-height:none;height:15vh;width:calc(15vh * 16 / 9);max-width:100%}
  .stage.compacto .infobar{margin-top:6px;gap:8px}
  .stage.compacto .ball{width:44px;height:44px}
  .stage.compacto .ball b{font-size:17px}.stage.compacto .ball small{font-size:10px}
  .stage.compacto .prize{padding:5px 10px}
  .stage.compacto .prize .lbl{display:none}
  .stage.compacto .prize .val{font-size:14px}
  .stage.compacto .chips{display:none}
}

/* liberação manual */
.libres{display:grid;gap:6px;margin-top:8px}
.libres button{text-align:left;border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:10px;padding:8px 10px;cursor:pointer}
.libres button:hover{border-color:var(--gold)}
.libres small,.libsel small{display:block;color:var(--muted);font-size:12px}
.libsel{background:var(--bg2);border:1px solid var(--gold);border-radius:12px;padding:10px 12px;margin-top:10px}

/* galeria de ganhadores */
.galeria{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,46%);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;-webkit-overflow-scrolling:touch}
@media(min-width:700px){.galeria{grid-auto-columns:minmax(200px,23%)}}
.gcard{scroll-snap-align:start;background:var(--bg2);border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;text-align:left;padding:0;color:var(--text)}
.gcard img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:#000}
.gcard .info{padding:8px 10px}
.gcard b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcard .pr{color:var(--gold);font-weight:700;font-size:13px;margin:2px 0}
.gcard small{color:var(--muted);font-size:11px}
.fotobox{position:relative;width:min(460px,92vw);background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;animation:pop .35s}
.fotobox img{display:block;width:100%;max-height:62vh;object-fit:cover}
.fotobox .info{padding:14px 16px}
.fotobox .fechar{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:2px solid #fff;background:#000a;color:#fff;cursor:pointer;z-index:2}
.fotobox blockquote{margin:10px 0 0;padding:8px 12px;border-left:3px solid var(--gold);background:var(--bg2);border-radius:8px;font-style:italic}
/* admin galeria */
.glist{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-top:12px}
.gadm{background:var(--bg2);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.gadm.off{opacity:.5}
.gadm img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.gadm .info{padding:8px;font-size:13px}
.recentes{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.recentes button{border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:99px;padding:5px 10px;font-size:12px;cursor:pointer}

/* campos obrigatórios */
input.invalido{border-color:var(--danger)!important;background:color-mix(in srgb,var(--danger) 8%,var(--bg2))}
.campo-erro{color:var(--danger);font-size:13px;margin-top:4px;display:flex;gap:6px;align-items:flex-start}
.campo-erro::before{content:"⚠";}

/* placar fixo: última bola + bolas sorteadas, sempre visível embaixo da transmissão */
.placar{display:grid;grid-template-columns:auto auto 1fr;gap:8px;margin-top:8px;align-items:stretch}
.placar>div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px 10px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.placar span{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);white-space:nowrap}
.placar b{font-size:22px;font-weight:900;line-height:1.1}
.placar .pl-ultima b{color:#fff;border-radius:8px;padding:0 8px;margin-top:2px;align-self:flex-start;background:var(--blue)}
.placar .pl-ultima b:not([class]){background:transparent;color:var(--muted);padding:0}
.placar .pl-qtd b small{font-size:13px;color:var(--muted);font-weight:700}
.placar .pl-qtd i{font-style:normal;color:var(--gold)}
.placar #plAnt{display:flex;gap:4px;margin-top:3px;flex-wrap:nowrap;overflow:hidden}
.placar #plAnt em{font-style:normal;font-weight:800;font-size:13px;color:#fff;border-radius:99px;min-width:28px;height:24px;display:grid;place-items:center;padding:0 6px;opacity:.9}
.L0{background:var(--B)!important}.L1{background:var(--I)!important}.L2{background:var(--N)!important}.L3{background:var(--G)!important}.L4{background:var(--O)!important}
.placar.flash .pl-ultima{animation:destaque 1.2s ease}
@keyframes destaque{0%{box-shadow:0 0 0 0 var(--gold);transform:scale(1.04)}100%{box-shadow:0 0 0 12px transparent;transform:none}}
@media(max-width:420px){.placar{grid-template-columns:auto auto 1fr;gap:6px}.placar>div{padding:5px 8px}.placar b{font-size:19px}.placar span{font-size:9px}}
/* no modo compacto (rolando até as cartelas) o placar continua, e a bola grande sai para não repetir */
@media(max-width:899px){.stage.compacto .placar{margin-top:6px}.stage.compacto .infobar .ball{display:none}}
.placar{grid-template-columns:auto auto minmax(0,1fr)}
.placar .pl-ant{overflow:hidden}
@media(max-width:420px){.placar{grid-template-columns:auto auto minmax(0,1fr)}}

/* quina */
.quinainfo{font-size:12px;color:var(--gold);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stage.compacto .quinainfo{display:none}
.bcard .c.ln{background:linear-gradient(180deg,#ffe27a,#ff9f1c);box-shadow:inset 0 0 0 2px #e24620}
.bcard.quina{box-shadow:0 0 0 3px var(--gold),0 0 18px var(--gold)}
.bcard .ft{gap:6px;align-items:center}
.bcard .qtag{background:var(--gold);color:#2a1a00;font-weight:900;border-radius:99px;padding:1px 8px}
.bcard .qfalta{color:#b8860b;font-weight:700}
.premiobox small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.winners .wq{background:#3a2b00;border-color:var(--gold)}

.quinacfg{margin-top:12px;padding:10px 12px;border:1px solid var(--gold);border-radius:12px;background:color-mix(in srgb,var(--gold) 6%,var(--bg2))}
.winners .wq{border:1px solid var(--gold);border-radius:10px;padding:8px 12px}

/* giro da sorte */
.giroinfo{color:#7fd6ff}
.winners .wg{border:1px solid #3ab7ff;border-radius:10px;padding:8px 12px;background:#0b2b44}
#giroModal{z-index:115}
.girobox{background:var(--card);border:2px solid var(--gold);border-radius:20px;padding:18px;text-align:center;width:min(420px,94vw);animation:pop .4s}
.girobox h2{margin:0;font-size:24px}
.girobox p{margin:4px 0 10px;font-size:13px}
.roda{position:relative;width:min(300px,78vw);aspect-ratio:1;margin:0 auto}
.roda svg{width:100%;height:100%;display:block;filter:drop-shadow(0 8px 20px #000a)}
.seta-giro{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-top:30px solid #fff;z-index:2;filter:drop-shadow(0 2px 3px #0008)}
.centro-giro{position:absolute;inset:0;margin:auto;width:52px;height:52px;border-radius:50%;background:var(--card);border:3px solid #fff;display:grid;place-items:center;font-size:24px}
.giro-res{min-height:70px;margin-top:12px}
.giro-res b{font-size:24px;display:block;color:var(--gold);animation:pop .5s}
.giro-res .pr{font-weight:700}
.girocfg{margin-top:12px;padding:10px 12px;border:1px solid #3ab7ff;border-radius:12px;background:color-mix(in srgb,#3ab7ff 6%,var(--bg2))}

/* histórico de ganhadores */
.hrodada{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:12px;background:var(--bg2)}
.hcab{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--card);border-bottom:1px solid var(--line)}
.hcab span{color:var(--muted);font-size:13px}
.hitem{display:flex;gap:10px;padding:10px 12px;border-top:1px solid var(--line)}
.hitem:first-of-type{border-top:0}
.hic{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:var(--card)}
.t-bingo .hic{background:#3a2b00}.t-quina .hic{background:#2e2a00}.t-giro .hic{background:#0b2b44}
.htx{min-width:0}.htx b{font-size:15px}
.hpr{font-size:14px;margin:2px 0}.hpr b{color:var(--gold)}
.ultimos-g{display:grid;gap:6px;margin-top:10px}
.ultimos-g div{display:flex;gap:8px;align-items:center;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:14px}
.ultimos-g small{color:var(--muted);margin-left:auto;white-space:nowrap}

.ultimos-g div{align-items:flex-start}
.ultimos-g .ic{font-size:18px;line-height:1.2}
.ultimos-g small{display:block;margin-left:0;white-space:normal;font-size:12px}

/* aba WhatsApp */
.waOpcoes{display:grid;gap:10px}
.waOp{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:center;border:1px solid var(--line);background:var(--bg2);border-radius:14px;padding:12px;cursor:pointer;margin:0;color:var(--text);font-size:15px}
.waOp input{width:auto;margin:0}
.waOp small{grid-column:2/-1;color:var(--muted);font-size:13px;line-height:1.4}
.waOp.on{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}
.waOp[data-p="zapi"].on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.waStatus{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.waStatus .stat b{font-size:17px}
.q-GREEN{color:var(--ok)}.q-YELLOW{color:var(--gold)}.q-RED{color:var(--danger)}.q-UNKNOWN{color:var(--muted)}
.waAjuda{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;font-size:14px}
.waAjuda summary{cursor:pointer;font-weight:700}
.waAjuda ol{margin:8px 0 0;padding-left:20px;display:grid;gap:6px;color:var(--muted)}
.waAjuda b{color:var(--text)}
.waWebhook{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.wamod{border:1px solid var(--line);border-radius:12px;background:var(--bg2);padding:10px 12px;margin-bottom:8px}
.wamod .topo{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.wamod .txt{font-size:13px;color:var(--muted);margin:6px 0 0;background:var(--card);border-radius:8px;padding:8px 10px;white-space:pre-wrap}
.wamod .txt i{color:var(--gold);font-style:normal;font-weight:700}
.wamod .nm{display:flex;gap:6px;align-items:center;margin-top:6px;font-size:12px}
.wamod .nm input{padding:6px 8px;font-size:12px;max-width:220px}
.aviso-risco{background:color-mix(in srgb,var(--gold) 12%,var(--bg2));border:1px solid var(--gold);border-radius:10px;padding:8px 12px;font-size:13px}
.dicas{margin:0;padding-left:18px;display:grid;gap:8px;font-size:14px;color:var(--muted)}
.dicas b{color:var(--text)}

/* relatórios financeiros */
.custocfg{margin-top:12px;padding:10px 12px;border:1px solid var(--ok);border-radius:12px;background:color-mix(in srgb,var(--ok) 6%,var(--bg2))}
.tlucro tfoot td{border-top:2px solid var(--line);background:var(--bg2)}
.tlucro tr.semcusto td{background:color-mix(in srgb,var(--gold) 7%,transparent)}
.destaque-lucro{border-color:var(--ok)!important}
.loc{padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.loc:last-child{border-bottom:0}
.barra{height:8px;border-radius:99px;background:var(--bg2);margin:5px 0 3px;overflow:hidden}
.barra i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold),var(--gold2))}
@media(max-width:899px){#tabRelatorios .grid2{grid-template-columns:1fr!important}}
/* redes sociais */
.redes{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:10px 0 2px;padding:8px 12px;border-radius:var(--r);background:var(--card);border:1px solid var(--line)}
.redes>span{font-size:13px;font-weight:700;color:var(--muted)}
#redesIcones{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.rede{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;box-shadow:0 4px 12px #0006;transition:transform .15s}
.rede:hover,.rede:active{transform:translateY(-2px) scale(1.06)}
.rede svg{width:22px;height:22px}
.r-instagram{background:linear-gradient(45deg,#f9a03f,#e1306c 55%,#8a3ab9)}
.r-facebook{background:#1877f2}
.r-kwai{background:#ff7a00}.r-x{background:#000;border:1px solid #fff3}.r-threads{background:#101010;border:1px solid #fff3}.r-telegram{background:#29a9eb}.r-linkedin{background:#0a66c2}
.r-tiktok{background:#111;box-shadow:inset 2px 0 0 #25f4ee,inset -2px 0 0 #fe2c55}
.r-youtube{background:#ff0000;border-radius:12px}
.r-youtube svg{width:26px;height:26px}
/* ---------- créditos ---------- */
.credlinha{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--ok) 14%,transparent);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent)}
.credlinha b{color:var(--ok)}
.extrabox{margin-top:12px;padding:10px 12px;border-radius:12px;border:1px dashed var(--line)}
.extrabox .quick{margin-top:6px}
.creditocard{display:grid;gap:2px;padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--ok) 28%,var(--card)),var(--card));border:1px solid color-mix(in srgb,var(--ok) 40%,transparent)}
.creditocard span{font-size:13px;color:var(--muted)}
.creditocard b{font-size:30px;font-weight:900;color:var(--ok);line-height:1.15}
.dados{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:8px;margin-top:12px}
.dados div{display:grid;padding:8px 10px;border-radius:10px;background:var(--bg2);min-width:0}
.dados span{font-size:12px}.dados b{overflow-wrap:anywhere;font-weight:600}
.extrato{display:grid;gap:6px;margin-top:8px}
.extrato .mov{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;background:var(--bg2)}
.extrato .pos{color:var(--ok)}.extrato .neg{color:var(--danger)}
details>summary{cursor:pointer;font-weight:600}
.chip-cred{font-size:13px;font-weight:700;text-decoration:none;padding:4px 10px;border-radius:99px;background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok);white-space:nowrap}
.extrato .mov b.pos,.extrato .mov b.neg{white-space:nowrap}
.extrato .mov>div:last-child{flex:none}
@media(max-width:480px){#userbox:has(.chip-cred)>span:first-child{display:none}}
/* ---------- premiação adiada ---------- */
.balanco{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.balanco>div{display:grid;padding:10px;border-radius:12px;background:var(--bg2);min-width:0}
.balanco span{font-size:12px;color:var(--muted)}.balanco b{font-size:20px;font-weight:900}.balanco small{font-size:11px;overflow-wrap:anywhere}
.balanco .ok b{color:var(--ok)}.balanco .neg b{color:var(--danger)}
@media(max-width:520px){.balanco{grid-template-columns:1fr}}
.tag.ok{background:var(--ok);color:#06210f}.tag.neg{background:var(--danger);color:#fff}
.adiada-adm{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent)}
.adiado{display:flex;gap:12px;align-items:flex-start;margin:12px 0;padding:14px 16px;border-radius:var(--r);border:2px solid var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--card))}
.adiado .ic{font-size:30px;line-height:1}
.adiado h3{margin:0 0 2px;font-size:18px;color:var(--gold)}
.adiado p{margin:2px 0;font-size:14px}
/* ---------- cartelas limitadas ---------- */
.lotacao{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:var(--bg2);border:1px solid var(--line)}
.lotacao-txt{font-size:14px;margin-bottom:6px}
.lotacao .barra{height:10px;border-radius:99px;background:var(--line);overflow:hidden}
.lotacao .barra i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--ok),var(--gold));transition:width .4s}
.lotacao.cheia{border-color:var(--danger)}.lotacao.cheia .barra i{background:var(--danger)}.lotacao.cheia b{color:var(--danger)}
.chip.esgotado{background:var(--danger);color:#fff;font-weight:800}
.chip.resta{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold);font-weight:700}
.limcfg{margin-top:12px;padding:10px 12px;border-radius:12px;border:1px dashed var(--line)}
/* ---------- botões do vídeo ao vivo ---------- */
.vbar{display:flex;justify-content:space-between;align-items:center;gap:8px;max-width:calc(42vh * 16 / 9);margin:6px auto 0}
.vbar .vbtn{border:1px solid var(--line);cursor:pointer;font:inherit;font-weight:700;font-size:13px;color:var(--text);background:var(--card);padding:5px 12px;border-radius:99px}
.vbar .vsom{background:var(--gold);color:var(--btnText);border-color:transparent}
.vbar .vsom.pulsar{animation:pulsoSom 2s ease-in-out infinite}
.vbar .vsom.desligado{background:var(--card);color:var(--muted);border-color:var(--line)}
.vbar .vatualizar{margin-left:auto;font-size:12px;padding:4px 10px;opacity:.9}
.vbar .vatualizar.girando{animation:piscaBtn .8s ease}
@keyframes piscaBtn{50%{opacity:.4}}
@keyframes pulsoSom{0%,100%{box-shadow:0 0 0 0 rgba(255,200,61,.6)}50%{box-shadow:0 0 0 7px rgba(255,200,61,0)}}
.stage.compacto .vbar{display:none}
@media (prefers-reduced-motion:reduce){.vbar .vsom.pulsar{animation:none}}

/* ---------- Giro da Sorte (novo: total de participantes + nomes passando) ---------- */
.girobox{max-height:94vh;overflow:auto}
.giro-topo{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.giro-num{font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px;background:var(--bg2);color:var(--muted)}
.giro-premio{font-weight:800;font-size:17px;margin:4px 0 10px;color:var(--gold)}
.giro-conta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.giro-conta>div{background:var(--bg2);border-radius:12px;padding:8px}
.giro-conta b{display:block;font-size:26px;font-weight:900;color:var(--text);line-height:1.1}
.giro-conta span{font-size:12px;color:var(--muted)}
.giro-todos{font-size:12.5px;color:var(--muted);margin:8px 0 6px}
.giro-voce{font-size:14px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--ok) 16%,transparent);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent);margin-bottom:8px}
.giro-voce.fora{background:var(--bg2);border-color:var(--line);color:var(--muted)}
.giro-tambor{position:relative;margin-top:6px;padding:10px 8px 12px;border-radius:16px;background:linear-gradient(180deg,var(--bg2),color-mix(in srgb,var(--gold) 8%,var(--bg2)));border:2px solid var(--gold);overflow:hidden}
.giro-status{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.giro-nomes{display:grid;gap:2px;min-height:118px;align-content:center}
.giro-nomes .ant,.giro-nomes .prox{font-size:14px;color:var(--muted);opacity:.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;filter:blur(.4px)}
.giro-nomes .atual{font-size:26px;font-weight:900;color:var(--text);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}
.giro-nomes .atual small{display:block;font-size:12px;font-weight:600;color:var(--muted)}
.giro-nomes .atual.voce{color:var(--ok)}
.giro-cartela{font-family:ui-monospace,Consolas,monospace;font-size:15px;font-weight:700;color:var(--gold);min-height:20px;margin-top:4px}
.giro-tambor.parou{border-color:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 25%,transparent)}
.giro-tambor.parou .atual{color:var(--gold);animation:pop .5s;font-size:28px}
.giro-res{min-height:0;margin-top:10px}
.giro-acoes{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:10px}
.giro-listabox{margin-top:10px;text-align:left}
.giro-lista{display:grid;gap:4px;max-height:38vh;overflow:auto}
.giro-lista>div{display:grid;grid-template-columns:1fr auto;gap:0 8px;padding:6px 8px;border-radius:8px;background:var(--bg2);font-size:13px}
.giro-lista>div small{grid-column:1;color:var(--muted);font-size:11px}
.giro-lista>div em{grid-column:2;grid-row:1 / span 2;align-self:center;font-style:normal;color:var(--muted);font-size:12px}
.giro-lista>div.eu{outline:2px solid var(--ok)}
/* ---------- verificar cartela / imprimir ---------- */
.verif{padding:14px;border-radius:14px;border:2px solid}
.verif.sim{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--card))}
.verif.nao{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--card))}
.verif p{margin:6px 0}.verif .ganhou{color:var(--gold);font-weight:800}
.vgrade{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:10px;max-width:320px}
.vgrade .L{display:grid;place-items:center;height:32px;border-radius:8px;color:#fff;font-weight:900}
.vgrade .L.H0{background:var(--B)}.vgrade .L.H1{background:var(--I)}.vgrade .L.H2{background:var(--N)}.vgrade .L.H3{background:var(--G)}.vgrade .L.H4{background:var(--O)}
.vgrade .n{display:grid;place-items:center;height:38px;border-radius:8px;background:var(--bg2);font-weight:800;font-size:16px}
.vgrade .n.on{background:var(--hit);color:var(--hitText)}
a.btn{text-decoration:none}
/* ---------- histórico de sorteios ---------- */
.hist-item{display:block;text-decoration:none;color:var(--text);margin-bottom:10px}
.hist-item:hover{border-color:var(--gold)}
.hist-ver{color:var(--gold);font-weight:700;font-size:13px;margin-top:6px}
.hbolas{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:5px}
.hb{display:grid;justify-items:center;padding:6px 4px;border-radius:10px;background:var(--bg2);font-size:11px;color:var(--muted)}
.hb b{font-size:14px;color:#fff;padding:2px 8px;border-radius:99px;margin:2px 0}
.hb b.L0{background:var(--B)}.hb b.L1{background:var(--I)}.hb b.L2{background:var(--N)}.hb b.L3{background:var(--G)}.hb b.L4{background:var(--O)}
.hauditoria{margin-top:12px;padding:10px 12px;border-radius:12px;border:1px dashed var(--gold);font-size:13px;display:grid;gap:4px}
.hvs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.hv{padding:12px;border-radius:12px;background:var(--bg2)}
.vgrade .n.linha{outline:3px solid var(--ok);outline-offset:-3px}
.hv .vgrade .n{background:var(--card)}.hv .vgrade .n.on{background:var(--hit)}
/* ---------- forma de pagamento ---------- */
.formapag{margin-top:12px}
.fp-titulo{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:6px}
.fp-opcoes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fp{display:grid;gap:2px;text-align:left;padding:10px 12px;border-radius:12px;border:2px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;font:inherit}
.fp b{font-size:15px}.fp small{font-size:12px;color:var(--muted)}
.fp.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--bg2))}
.fp[data-forma=creditos].on{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,var(--bg2))}
.fp-dica{font-size:12.5px;color:var(--muted);margin-top:6px;min-height:0}
#comprar.green{background:linear-gradient(180deg,var(--ok),color-mix(in srgb,var(--ok) 75%,#000));color:#06210f}
#comprar:disabled{opacity:.6;cursor:not-allowed}
.giro-motivo{font-size:13px;margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--bg2)}
.giro-motivo .btn{margin:4px 0}
#giroBox.giro-off #giroEleg,#giroBox.giro-off .row:has(#girarAgora){opacity:.5}

/* sorteio manual x automático */
.seg{display:flex;gap:4px;background:rgba(127,127,127,.12);padding:4px;border-radius:12px}
.seg-btn{flex:1;border:0;background:transparent;color:inherit;padding:10px 8px;border-radius:9px;font-weight:700;cursor:pointer;font-size:.95rem}
.seg-btn.on{background:linear-gradient(90deg,var(--gold),var(--gold2));color:var(--btnText);box-shadow:0 2px 8px rgba(0,0,0,.15)}
.auto-box{margin-top:10px;padding:12px;border:1px dashed rgba(127,127,127,.35);border-radius:12px}
.auto-box select{width:100%;margin-top:4px}
.auto-status{margin:8px 0 4px;min-height:1.4em}
.auto-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--ok);animation:autoPisca 1s infinite}
@keyframes autoPisca{50%{opacity:.25}}
.countdown-auto{font-size:.85rem;opacity:.85;margin-top:4px}

/* números sorteados congelados no topo (junto com o vídeo); cartelas e o resto rolam por baixo */
.board-fixo{margin:8px auto 0;max-width:640px}
#vencRodada:has(#winnersBox.hidden){display:none}
.stage.compacto .placar{display:none}
@media(max-width:899px){.stage.compacto .infobar .ball{display:grid}}
.stage.compacto .board-fixo{margin-top:6px}
@media(min-width:900px){
  .stage.compacto{padding-top:6px;padding-bottom:8px}
  .stage.compacto .video{max-height:none;height:18vh;width:calc(18vh * 16 / 9);max-width:100%}
  .stage.compacto .infobar{margin-top:6px}
  .stage.compacto .ball{width:48px;height:48px}
  .stage.compacto .ball b{font-size:18px}
  .stage.compacto .board-fixo{max-width:560px}
}
/* telas baixas (celular deitado): o painel não pode ocupar a tela toda */
@media(max-height:560px){.stage.compacto .board-fixo{max-width:min(640px,calc((100vh - 120px) * 3.2))}}

/* cadastro rápido + completar dados (opcional) */
.completar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;border-radius:12px;background:var(--bg2);border:1px dashed var(--line)}
.completar small{font-size:12px}
.perfil-form .duas{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.perfil-form .duas.d3{grid-template-columns:1fr 110px}
.perfil-form select{width:100%}
@media(max-width:480px){.perfil-form .duas{grid-template-columns:1fr}.perfil-form .duas.d3{grid-template-columns:1fr 100px}}
#mdEditar summary{cursor:pointer;font-weight:600}

/* números grandes: uma linha só, e a letra diminui até caber (ver common.js) */
.stat,.alert-sum>div,.placar>div,.creditocard,.balanco>div,.giro-conta>div{min-width:0}
.stat b,.alert-sum b,.placar b,.creditocard b,.balanco b,.giro-conta b,.total,.steps3 b{white-space:nowrap;overflow:hidden;max-width:100%}
.quinainfo{white-space:normal}
/* ao pular para "Meus dados", não ficar escondido embaixo da parte congelada do topo */
#meusDados,#buyBox{scroll-margin-top:310px}
@media(min-width:900px){#meusDados,#buyBox{scroll-margin-top:450px}}

/* ===== vídeo do YouTube: mesma largura do banner e SEM encolher ao rolar a página ===== */
.stage .video,.stage.compacto .video{width:100%;max-width:100%;height:auto;max-height:none;aspect-ratio:16/9;margin:0 auto}
.stage .vbar{max-width:none}
/* celular deitado (tela baixa): o vídeo não pode ocupar a tela inteira */
@media(max-width:899px) and (max-height:520px){.stage .video,.stage.compacto .video{width:auto;height:46vh}}
/* computador: vídeo grande à esquerda e, ao lado, bola, prêmio e o painel de números — tudo do mesmo tamanho, rolando ou não */
@media(min-width:900px){
  .stage,.stage.compacto{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-template-rows:auto auto 1fr auto;column-gap:16px;align-items:start;padding-top:8px;padding-bottom:10px}
  .stage>.video,.stage.compacto>.video{grid-column:1;grid-row:1/4;width:min(100%,calc(58vh * 16 / 9));margin:0}
  .stage>.vbar{grid-column:1;grid-row:4;margin:6px 0 0}
  .stage>.infobar,.stage.compacto>.infobar{grid-column:2;grid-row:1;margin-top:0}
  .stage>.placar{grid-column:2;grid-row:2}
  .stage>.board-fixo,.stage.compacto>.board-fixo{grid-column:2;grid-row:3;align-self:start;max-width:none;margin-top:8px}
  .stage.compacto .ball{width:64px;height:64px}.stage.compacto .ball b{font-size:24px}
}

/* esqueci minha senha */
.esqueci h3{font-size:18px}
.esq-aviso{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;margin:6px 0 4px}
.esq-codigo{font-size:26px;letter-spacing:10px;text-align:center;font-weight:800}

/* aba Administrativo: equipe e permissões */
.sem-perm{display:none!important}
.aviso-cadastro{margin:10px 0;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--gold) 15%,var(--card));border:1px solid var(--gold);font-size:14px}
.equipe-lista{display:grid;gap:10px;margin-top:10px}
.membro{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--bg2)}
.membro.dono{border-color:var(--gold)}
.membro.inativo{opacity:.65}
.membro .m-topo{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.membro details{margin-top:8px}.membro summary{cursor:pointer;font-weight:600;font-size:14px}
.perm-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:6px}
.perm-item{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer;font-size:13px}
.perm-item input{width:18px;height:18px;margin-top:2px;flex:none}
.perm-item small{display:block;color:var(--muted);font-size:12px;line-height:1.3}
.perm-item:has(input:checked){border-color:var(--gold)}
.mbox .fechar{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer}

/* carrinho de cartelas */
.subtotal{font-size:18px;font-weight:800}
.carrinho{margin-top:14px;border:1px dashed var(--line);border-radius:14px;padding:12px;background:var(--bg2)}
.carrinho.cheio{border-style:solid;border-color:color-mix(in srgb,var(--gold) 60%,var(--line))}
.carrinho.pulsar{animation:carPulsa .7s ease}
@keyframes carPulsa{40%{transform:scale(1.02);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 35%,transparent)}}
.car-topo{display:flex;justify-content:space-between;align-items:center}
.car-topo h3{margin:0;font-size:17px}
.linkbtn{border:0;background:none;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px}
.car-vazio{margin:10px 0 2px;font-size:13px}
.car-item{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:10px;align-items:center;margin:10px 0;padding:10px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.car-ic{font-size:24px}
.car-desc{min-width:0}.car-desc small{display:block;color:var(--muted);font-size:12px}
.car-qtd{display:flex;align-items:center;gap:6px}
.car-qtd button{width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font-size:18px;cursor:pointer}
.car-qtd span{min-width:22px;text-align:center;font-weight:800}
.car-valor{white-space:nowrap}
.car-tirar{border:0;background:none;cursor:pointer;font-size:18px;padding:4px}
.car-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.car-total span{font-weight:700}
.chip-car{margin-left:6px}
@media(max-width:420px){.car-item{grid-template-columns:auto 1fr auto;grid-template-areas:"ic desc tirar" "qtd qtd valor"}.car-ic{grid-area:ic}.car-desc{grid-area:desc}.car-tirar{grid-area:tirar}.car-qtd{grid-area:qtd}.car-valor{grid-area:valor;text-align:right}}
.ficha-btn{margin-left:6px;padding:3px 10px;font-size:12px;text-decoration:none;vertical-align:middle}
.meta-auto{margin:8px 0;padding:8px 10px;border-radius:10px;font-size:13px;border:1px solid var(--line)}
.meta-auto.ok{border-color:color-mix(in srgb,var(--ok) 60%,transparent);background:color-mix(in srgb,var(--ok) 10%,transparent)}
.meta-auto.neg{border-color:color-mix(in srgb,var(--danger) 60%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent)}
.auto-extra{margin-top:8px}.auto-extra summary{cursor:pointer;font-weight:600;font-size:14px}
.auto-extra input[type=datetime-local],.auto-extra input[type=number]{width:100%;margin-top:4px}

/* entrar / criar conta: tela cheia por cima de tudo (prioridade para o cadastro) */
.auth-fechar{display:none}
#authBox.auth-modal{position:fixed;inset:0;z-index:150;margin:0;border-radius:0;border:0;max-width:none;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  background:var(--bg);padding:max(12px,env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom));animation:authSobe .22s ease}
#authBox.auth-modal>*{max-width:480px;margin-left:auto;margin-right:auto}
#authBox.auth-modal .auth-fechar{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:99px;padding:8px 14px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;margin-bottom:6px;position:sticky;top:0;z-index:2}
#authBox.auth-modal h2{margin-top:6px}
body.sem-rolagem{overflow:hidden}
body.sem-rolagem .fab,body.sem-rolagem .instbar{display:none!important}
@keyframes authSobe{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}
#pendentes tr.avisou td{background:color-mix(in srgb,var(--ok) 10%,transparent)}
.pix-manual{margin:10px 0;padding:10px 12px;border-radius:12px;background:var(--bg2);border:1px solid var(--line);font-size:14px}
.ok-aviso{margin-top:8px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--ok) 15%,transparent);border:1px solid color-mix(in srgb,var(--ok) 50%,transparent);font-size:13px}
.cpfbox{margin-top:8px}

/* recebimentos */
.pag-opcoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:8px;margin:10px 0}
.pag-op{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg2);cursor:pointer}
.pag-op input{grid-row:1/3;width:18px;height:18px}.pag-op small{color:var(--muted);font-size:12px}
.pag-op.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,var(--bg2))}
.pag-det{margin-top:8px;padding:12px;border:1px dashed var(--line);border-radius:12px}
.pag-det h3{margin:0 0 6px}
.passos-pag{margin:0 0 8px;padding-left:20px;font-size:13px;color:var(--muted)}
.pix-teste{display:flex;gap:12px;align-items:flex-start;margin-top:10px;flex-wrap:wrap}
.pix-teste img{width:170px;height:170px;background:#fff;border-radius:10px;padding:6px}
.pix-teste textarea{width:100%;min-height:70px;font-size:11px}
.pix-teste>div{flex:1;min-width:200px}
/* botão da locução (só aparece no sorteio automático) */
.locbtn{flex:none;align-self:center;display:grid;place-items:center;gap:1px;width:58px;height:54px;border-radius:14px;border:1px solid #fff3;background:#ffffff14;color:#fff;font-size:22px;line-height:1;cursor:pointer}
.locbtn small{font-size:10px;font-weight:700;opacity:.85}
.locbtn.off{opacity:.6;background:#0003}
.stage.compacto .locbtn{width:44px;height:40px;font-size:18px}.stage.compacto .locbtn small{display:none}
/* botão "Baixar app" no topo + assistente de instalação */
.top .baixar-app{flex:none;margin-left:auto;margin-right:8px;background:linear-gradient(180deg,var(--gold),#e7a500);color:#1a1300;border:0;font-weight:800;white-space:nowrap;animation:brilho 2.4s ease-in-out infinite}
@keyframes brilho{0%,100%{box-shadow:0 0 0 0 #ffc83d00}50%{box-shadow:0 0 0 6px #ffc83d33}}
@media (max-width:420px){.top .baixar-app{padding:7px 10px;font-size:13px;margin-right:4px}}
@media (max-width:340px){.top .baixar-app span{display:none}}
body:has(#instModal.show) .instbar{display:none!important}
.instbox .passos{text-align:left}
.instbox .ico-share{vertical-align:-4px;color:#2d9be0}
.inst-qr{display:block;margin:4px auto 0;background:#fff;padding:8px;border-radius:14px}
.inst-seta{position:fixed;z-index:120;display:flex;flex-direction:column;align-items:center;gap:2px;color:#fff;font-weight:800;font-size:14px;pointer-events:auto;text-shadow:0 2px 6px #000}
.inst-seta span{background:#2d9be0;padding:6px 10px;border-radius:12px;display:flex;align-items:center;gap:4px;box-shadow:0 6px 18px #0008}
.inst-seta span .ico-share{color:#fff}
.inst-seta b{font-size:34px;line-height:1;color:#2d9be0}
.inst-seta.baixo{left:50%;bottom:calc(6px + env(safe-area-inset-bottom));transform:translateX(-50%);animation:pulaB 1s ease-in-out infinite}
.inst-seta.cima,.inst-seta.cimaDir{top:calc(4px + env(safe-area-inset-top));right:10px;flex-direction:column-reverse;animation:pulaC 1s ease-in-out infinite}
.inst-seta.cima b,.inst-seta.cimaDir b{transform:rotate(180deg)}
@keyframes pulaB{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
@keyframes pulaC{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
/* logado no celular: o botão vira só o ícone 📲 para o nome do site continuar aparecendo */
@media (max-width:480px){.top:has(.userbox:not(:empty)) .baixar-app span{display:none}.top:has(.userbox:not(:empty)) .baixar-app{font-size:18px;padding:5px 9px}}
/* link de nova senha do cliente (painel) */
.rs-box{margin-top:10px;display:grid;gap:8px}
.rs-box .ok-aviso{margin:0}
/* entrar com digital / Face ID */
.btn-digital{width:100%;margin-top:8px}
.digital-box{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
.digital-lista{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.digital-lista li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
/* bloquear cadastros (painel) */
.bq-novos{display:grid;gap:6px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px}
.bq-lista{display:grid;gap:6px;margin-top:6px}
.bq-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}
.bq-item small{display:block;color:var(--muted);font-size:12px}
.bq-item.bloq{border-color:color-mix(in srgb,#e8475f 55%,transparent)}
.bq-item .bq-motivo{color:#ff8a9a}
.btn.perigo{background:#c0262d;color:#fff;border-color:#c0262d}
/* bingo programado (jogador) */
.programado{margin:12px 0;padding:14px 16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--gold) 60%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 14%,var(--card)),var(--card))}
.prog-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.prog-topo h3{margin:0 0 4px;font-size:17px}.prog-topo p{margin:0;font-size:13px;color:var(--muted)}
.prog-conta{flex:none;font-weight:900;font-size:22px;color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap}
.prog-cota{margin-top:10px}
.prog-cota-txt{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}
.prog-barra{height:10px;border-radius:99px;background:#0004;overflow:hidden}
.prog-barra i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold),#ff9f1c);transition:width .6s}
.prog-cota.ok .prog-barra i{background:linear-gradient(90deg,#20a865,#2fd47f)}
.prog-cota small{display:block;margin-top:4px;color:var(--muted);font-size:12px}
.prog-acoes{margin-top:10px}.prog-acoes .btn{width:100%}.prog-acoes .btn small{font-weight:600;opacity:.85}
@media(max-width:420px){.prog-topo{flex-direction:column}.prog-conta{font-size:20px}}
/* cadastro completo */
.top .criar-conta-topo{flex:none;margin-right:8px;white-space:nowrap;background:var(--card);color:var(--text);border:1px solid var(--gold)}
@media (max-width:420px){.top .criar-conta-topo{padding:7px 10px;font-size:13px;margin-right:4px}}
@media (max-width:360px){.top .criar-conta-topo span,.top .baixar-app span{display:none}}
.cad-2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
@media (max-width:380px){.cad-2{grid-template-columns:1fr}}
.cad-end{margin:4px 0 6px;padding:2px 12px 10px;border:1px dashed var(--line);border-radius:12px}
label.check.invalido{color:#ff8a9a}
.cad-ok{text-align:center;padding:30px 4px}
.cad-ok-ic{font-size:64px;line-height:1;animation:pop .6s ease}
.cad-ok h2{margin:12px 0 6px}
.cad-ok p{margin:0 0 18px}
/* topo no celular sem login: "Baixar app" vira só o ícone para caber o nome do site e o "Criar conta" */
@media (max-width:480px){.top:has(#criarContaTopo:not(.hidden)) .baixar-app span{display:none}.top:has(#criarContaTopo:not(.hidden)) .baixar-app{font-size:18px;padding:5px 9px;margin-right:6px}}
/* painel do afiliado: resumo das comissões */
.af-resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px}
.af-card{padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--bg2);display:grid;gap:2px}
.af-card span{font-size:13px;color:var(--muted)}.af-card b{font-size:24px}.af-card small{font-size:12px;color:var(--muted)}
.af-card.ok{border-color:color-mix(in srgb,var(--ok) 55%,transparent)}.af-card.ok b{color:var(--ok)}
.af-card.pend{border-color:color-mix(in srgb,var(--gold) 55%,transparent)}.af-card.pend b{color:var(--gold)}
/* tabelas viram cartões no celular (painel do afiliado) */
@media (max-width:560px){
  table.tab-cel thead{display:none}
  table.tab-cel,table.tab-cel tbody,table.tab-cel tr,table.tab-cel td{display:block;width:100%;min-width:0!important}
  table.tab-cel tr{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin-bottom:8px;background:var(--bg2)}
  table.tab-cel td{display:flex;justify-content:space-between;align-items:center;gap:10px;border:0!important;padding:4px 0!important;text-align:right}
  table.tab-cel td::before{content:attr(data-l);color:var(--muted);font-size:12px;text-align:left}
}
/* cadastro: cada campo fica dentro da sua coluna (o campo de data do celular era mais largo e invadia o CPF) */
.cad-2>div{min-width:0}
.cad-2 input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#formCadastro input[type=date]{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;box-sizing:border-box;text-align:left}
#formCadastro input[type=date]::-webkit-date-and-time-value{text-align:left}
@media (max-width:480px){.cad-2.cad-data{grid-template-columns:1fr}}
/* ranking de afiliados: pódio com troféus */
.podio{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:8px;margin:8px 0 4px}
.podio-col{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;min-width:0}
.podio-col .trofeu{filter:drop-shadow(0 4px 8px #0007);animation:pop .6s ease}
.podio-nome{font-size:14px;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podio-l1{font-size:13px;font-weight:700;color:var(--gold)}
.podio-l2{font-size:11px;color:var(--muted)}
.podio-degrau{width:100%;margin-top:6px;border-radius:12px 12px 4px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;color:#1a1300}
.podio-degrau span{font-size:20px;line-height:1}.podio-degrau small{font-size:11px;font-weight:700;opacity:.8}
.p1 .podio-degrau{height:86px;background:linear-gradient(180deg,#ffd84d,#e0a800)}
.p2 .podio-degrau{height:62px;background:linear-gradient(180deg,#eef1f5,#9aa5b4)}
.p3 .podio-degrau{height:46px;background:linear-gradient(180deg,#f3b47a,#b0652a)}
.podio-col.eu .podio-nome{color:var(--gold)}
.rank-lista{display:grid;gap:6px;margin-top:10px}
.rank-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
.rank-item .pos{font-weight:900;font-size:18px;text-align:center;color:var(--muted)}
.rank-item small{display:block;color:var(--muted);font-size:12px}
.rank-item .val{text-align:right;font-weight:800}
.rank-eu{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent);text-align:center;font-size:14px}
.rank-filtro{display:flex;gap:6px;flex-wrap:wrap}
.rank-filtro button.on{border-color:var(--gold);color:var(--gold)}
.ag-venda{margin-top:8px;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--gold) 50%,transparent);background:color-mix(in srgb,var(--gold) 8%,transparent)}
/* bingos automáticos (painel) */
.grade-passo{margin:14px 0 6px;font-size:15px}
.grade-perg{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.grade-perg label{font-size:12px;margin:0;min-width:0}.grade-perg input{width:100%;min-width:0;box-sizing:border-box}
.grade-lista{display:grid;gap:6px;margin-bottom:8px;max-height:520px;overflow:auto}
.grade-linha{display:grid;grid-template-columns:30px 1fr 1fr auto;grid-template-areas:"n h h x" ". p c c" ". q g g" ". m m m";gap:8px;align-items:end;padding:6px 10px;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
.grade-linha label{font-size:12px;margin:0;min-width:0}.grade-linha input{width:100%;min-width:0;box-sizing:border-box}
.grade-linha .gl-n{font-weight:900;color:var(--gold);align-self:center}
.grade-linha .gl-meta{align-self:center;white-space:nowrap}
.sem-quina .gl-q,.sem-giro .gl-g{display:none}
.grade-quina{margin-top:10px;padding:8px 10px;border:1px dashed var(--line);border-radius:12px}
#gradeLista{container-type:inline-size}
.grade-linha .gl-n{grid-area:n}.grade-linha label:has([data-hora]){grid-area:h}.grade-linha label:has([data-c=preco]){grid-area:p}.grade-linha label:has([data-c=custo]){grid-area:c}.grade-linha .gl-q{grid-area:q}.grade-linha .gl-g{grid-area:g}.grade-linha .gl-meta{grid-area:m;white-space:normal}.grade-linha .gl-x{grid-area:x}
.grade-acomp:empty{display:none}
.ga-card{padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold) 8%,transparent);font-size:14px;margin-bottom:8px}
.ga-card.ok{border-color:color-mix(in srgb,var(--ok) 60%,transparent);background:color-mix(in srgb,var(--ok) 10%,transparent)}
/* barra de progresso de vendas: topo fixo e área de compra */
.cota-mini{margin-top:6px}
.cota-mini .cm-txt{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:3px}
.cota-mini .cm-txt b{color:var(--gold)}
.cota-mini .prog-barra{height:8px}
.stage.compacto .cota-mini .cm-txt span{display:none}
.cota-compra{margin:0 0 12px}
/* comissão escalonada (painel) */
.af-faixas{display:grid;gap:6px;margin-top:8px}
.af-faixas.desligada{opacity:.55}
.af-faixa{display:grid;grid-template-columns:auto 1fr 1fr auto;gap:8px;align-items:end;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}
.af-faixa label{font-size:12px;margin:0;min-width:0}.af-faixa input{width:100%;min-width:0;box-sizing:border-box}
.grade-linha input[data-hora]{background:transparent;border-color:transparent;font-weight:700;pointer-events:none}
.gh-lista{display:grid;gap:4px}
.gh-item{display:grid;grid-template-columns:110px 1fr auto;gap:8px;padding:6px 10px;border-radius:8px;background:rgba(127,127,127,.08);font-size:13px;align-items:center}
.gh-item.realizado{opacity:.55}
.gh-item.vendendo,.gh-item.rolando{outline:2px solid #22c55e}
@media (max-width:520px){.gh-item{grid-template-columns:1fr auto}.gh-item span:nth-child(2){grid-column:1/-1;order:3}}

.sem-quina.sem-giro .grade-linha{grid-template-areas:"n h h x" ". p c c" ". m m m"}
/* ⚖️ balanço do sorteio */
.bal-topo{margin-bottom:8px}
.bal-cards{margin:8px 0 12px}
.bal-cards .stat span+b+span{display:block;margin-top:2px}
.bal-lucro.pos b{color:#22c55e}.bal-lucro.neg b{color:#ef4444}
.bal-tab{width:100%;border-collapse:collapse;font-size:14px}
.bal-tab td{padding:8px 6px;border-bottom:1px solid var(--line)}
.bal-tab .bal-v{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.bal-tab .bal-ent .bal-v{color:#22c55e;font-weight:700}
.bal-tab .bal-sub td{font-weight:700}
.bal-tab .bal-tot td{font-weight:900;font-size:16px;border-bottom:0}
.bal-tab .bal-tot.pos .bal-v{color:#22c55e}.bal-tab .bal-tot.neg .bal-v{color:#ef4444}
@media print{body.imprimir-balanco *{visibility:hidden}body.imprimir-balanco #balSorteioBox,body.imprimir-balanco #balSorteioBox *{visibility:visible}body.imprimir-balanco #balSorteioBox{position:absolute;left:0;top:0;width:100%}body.imprimir-balanco #balSorteioBox select,body.imprimir-balanco #balImprimir{display:none}}
/* 🎁 bônus de boas-vindas */
.cad-bonus{margin:10px 0;padding:10px 12px;border-radius:12px;background:linear-gradient(135deg,rgba(250,204,21,.18),rgba(34,197,94,.14));border:1px solid rgba(250,204,21,.5);font-weight:700;text-align:center}
.cad-bonus-ok{display:block;margin-top:10px;padding:10px;border-radius:12px;background:rgba(34,197,94,.14);border:1px solid rgba(34,197,94,.5);color:var(--text)}
/* 🤝 convite para ser afiliado */
.af-convite{display:flex;flex-direction:column;gap:6px;margin:12px 0;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--bg2);font-size:14px}
.af-convite.ok{background:linear-gradient(135deg,rgba(250,204,21,.18),rgba(34,197,94,.14));border-color:rgba(250,204,21,.5)}
.af-convite .btn{align-self:flex-start}
.af-requisito{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:rgba(250,204,21,.12);border:1px solid rgba(250,204,21,.45);font-size:14px}
/* ⏭️ próximo bingo automático */
.proximo-bingo{display:flex;align-items:center;gap:12px;margin:10px 0;padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--bg2)}
.proximo-bingo.destaque{background:linear-gradient(135deg,rgba(59,130,246,.2),rgba(250,204,21,.14));border-color:rgba(250,204,21,.5)}
.proximo-bingo .pb-ic{font-size:28px}
.proximo-bingo .pb-txt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.proximo-bingo .pb-txt span{font-size:14px}.proximo-bingo .pb-txt small{color:var(--muted);font-size:12px}
.proximo-bingo .pb-conta{font-weight:900;font-size:20px;font-variant-numeric:tabular-nums;white-space:nowrap}
.proximo-bingo{flex-wrap:wrap}
.proximo-bingo .pb-garantir{flex-basis:100%;display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px dashed var(--line)}
.proximo-bingo .pb-linha{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}
.proximo-bingo .pb-qtd{display:flex;align-items:center;gap:6px}.proximo-bingo .pb-qtd b{min-width:24px;text-align:center;font-size:18px}
.proximo-bingo .pb-ok{font-size:14px;padding:8px 10px;border-radius:10px;background:rgba(34,197,94,.14);border:1px solid rgba(34,197,94,.45)}
/* 🎱 Bolas do globo + seta para as cartelas */
.globo{display:flex;flex-direction:column;gap:4px}
.globo-tit{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:0 2px}
.globo-tit span{font-weight:900;font-size:15px;letter-spacing:.3px;color:var(--gold)}
.globo-tit small{font-size:12px;color:var(--muted)}
.globo-seta{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px;padding:6px 10px;border:1px dashed color-mix(in srgb,var(--gold) 55%,transparent);border-radius:999px;background:color-mix(in srgb,var(--gold) 10%,transparent);color:var(--text);font-size:13px;font-weight:700;cursor:pointer}
.globo-seta .gs-ic{display:inline-block;animation:globoSeta 1.2s ease-in-out infinite}
@keyframes globoSeta{50%{transform:translateY(4px)}}
@media (prefers-reduced-motion:reduce){.globo-seta .gs-ic{animation:none}}
.stage.compacto .globo-seta{display:none}
.stage.compacto .globo-tit small{display:none}
#cartelasBox{scroll-margin-top:410px}
@media(min-width:900px){#cartelasBox{scroll-margin-top:450px}}
/* 🚫 cancelar bingo programado */
.prog-cancelar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold) 10%,var(--card))}
.prog-cancelar .pc-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.prog-cancelar .pc-txt span{font-size:13px;color:var(--muted)}
/* 💳 tela de pagamento por cima de tudo (ao colocar no carrinho) */
body.sem-rolar{overflow:hidden}
.pagar-ov{z-index:300}
.pagar-ov .pv-box{position:relative;width:min(440px,94vw);max-width:none;padding:22px 18px;text-align:left}
.pagar-ov .pv-x{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--muted);font-size:20px;cursor:pointer}
.pagar-ov .pv-ic{font-size:40px;text-align:center;line-height:1}
.pagar-ov h2{text-align:center;margin:6px 0 10px}
.pagar-ov .pv-resumo{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--bg2);border:1px solid var(--line)}
.pagar-ov .pv-resumo b{font-size:24px;color:var(--gold)}
.pagar-ov .pv-perg{font-weight:800;margin:14px 0 8px}
.pagar-ov .pv-op{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin-bottom:10px;padding:14px;border-radius:16px;border:2px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;font:inherit}
.pagar-ov .pv-op b{display:block;font-size:17px}.pagar-ov .pv-op small{color:var(--muted);font-size:13px}
.pagar-ov .pv-op-ic{font-size:28px}
.pagar-ov .pv-op.pix{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,var(--bg2))}
.pagar-ov .pv-op.cred{border-color:color-mix(in srgb,#22c55e 70%,transparent);background:color-mix(in srgb,#22c55e 12%,var(--bg2))}
.pagar-ov .pv-op.off{opacity:.55;cursor:not-allowed;border-color:var(--line);background:var(--bg2)}
.pagar-ov .pv-op:not(.off):hover{transform:translateY(-1px)}
/* passo a passo da compra */
@keyframes destacarQtd{0%,100%{box-shadow:0 0 0 0 transparent}30%{box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 70%,transparent)}}
#buyForm.destacar{animation:destacarQtd 1.2s ease-in-out 2;border-radius:14px}
#buyForm{scroll-margin-top:330px}#buyBox{scroll-margin-top:440px}
@media(min-width:900px){#buyForm{scroll-margin-top:460px}}
.cta-comprar{margin-top:8px;width:100%}
.stage.compacto .cta-comprar{display:none}
.pagar-ov .pv-qr{display:block;width:min(240px,70vw);margin:12px auto;background:#fff;padding:8px;border-radius:12px}
.pagar-ov .pv-cod{width:100%;min-height:62px;font-size:12px;margin:4px 0 6px;box-sizing:border-box}
.pagar-ov .pv-aguarde{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:var(--muted)}
.pagar-ov .pv-spin{width:16px;height:16px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--gold);animation:pvGira 1s linear infinite;flex:none}
@keyframes pvGira{to{transform:rotate(360deg)}}
.pagar-ov .pv-man{margin-top:10px;font-size:14px}
.pagar-ov .pv-ok-txt{margin-top:8px;font-size:13px;color:#22c55e}
.pagar-ov .pv-box.verde{border-color:#22c55e;background:linear-gradient(160deg,color-mix(in srgb,#22c55e 30%,var(--card)),var(--card))}
.pagar-ov .pv-sucesso{text-align:center}.pagar-ov .pv-sucesso .pv-ic{font-size:64px}.pagar-ov .pv-sucesso h2{color:#22c55e}

/* rolagem suave e sem trancos */
html{scroll-behavior:smooth;overflow-anchor:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* 📅 agenda limpa: só o próximo bingo + "Consulte os próximos bingos" */
.ag-mais{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:10px;padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold) 10%,var(--bg2));color:var(--text);font:inherit;font-weight:700;cursor:pointer;text-align:left}
.ag-mais b{color:var(--gold);white-space:nowrap;font-size:13px}
.ag-ov{z-index:250;place-items:start center;overflow-y:auto}
.ag-ov .ag-ov-box{width:min(560px,96vw);max-width:none;text-align:left;padding:16px;margin:24px 0;animation:none}
.ag-ov-topo{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:-16px;background:var(--card);padding:4px 0 8px;z-index:1}
.ag-ov-topo h2{margin:0}
.ag-ov-x{background:none;border:0;color:var(--muted);font-size:22px;cursor:pointer}
.ag-ov-lista{display:flex;flex-direction:column;gap:10px}
.evento.seq{opacity:.95}
/* 🔎 consultar bingo pelo número */
.consulta-bingo{margin-top:14px;padding:14px;border-radius:14px;border:2px solid color-mix(in srgb,var(--gold) 60%,transparent);background:color-mix(in srgb,var(--gold) 9%,var(--card))}
.consulta-bingo .cb-tit{font-weight:900;font-size:17px}
.consulta-bingo .cb-sub{font-size:13px;color:var(--muted);margin:2px 0 10px}
.consulta-bingo .cb-linha{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.consulta-bingo .cb-n{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.consulta-bingo .cb-n input{width:160px;font-size:20px;font-weight:800;padding:10px 12px}
/* 📐 logo: espaço de 3 por 1 (600 × 200 px é o tamanho ideal); "só a logo" ocupa todo o espaço do topo */
.logo .mLogo{height:48px;width:auto;max-width:150px;object-fit:contain;object-position:left center;border-radius:0}
.logo.so-logo .brand{display:none}
.logo.so-logo .mLogo{height:56px;max-width:min(240px,55vw)}
@media(max-width:420px){.logo .mLogo{height:38px;max-width:114px}.logo.so-logo .mLogo{height:46px;max-width:min(190px,52vw)}}
.logo-ideal{margin:6px 0 10px;padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--gold) 50%,transparent);background:color-mix(in srgb,var(--gold) 8%,var(--bg2))}
.logo-ideal .li-tit{font-weight:900;margin-bottom:6px}
.logo-ideal .li-medida{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.logo-ideal .li-medida b{font-size:22px;color:var(--gold)}
.logo-ideal .li-medida span{font-size:13px;color:var(--muted)}
.logo-ideal ul{margin:8px 0 0;padding-left:0;list-style:none;display:grid;gap:4px;font-size:13px}
.logoprev .box{width:180px;height:60px}
.logo-topo-prev{margin-top:10px;display:grid;gap:6px}
.logo-topo-prev .ltp{display:flex;flex-direction:column;gap:8px;max-width:100%;overflow:hidden}
.ltp-tela{display:flex;align-items:center;justify-content:space-between;gap:8px;max-width:100%;padding:8px 12px;border-radius:12px;background:var(--bg);border:1px solid var(--line);box-sizing:border-box}
.ltp-tela .ltp-btn{padding:6px 12px;border-radius:10px;border:1px solid var(--line);font-size:13px;font-weight:700;flex:none}
/* 🛒 "Adicionar ao carrinho" em destaque: verde chamativo com contorno piscando */
#addCarrinho{position:relative;background:linear-gradient(180deg,#34e07a,#16a34a);color:#06240f;border:2px solid #86efac;font-weight:900;font-size:18px;padding:15px 16px;border-radius:16px;box-shadow:0 0 0 0 rgba(34,197,94,.75);animation:carrinhoPisca 1.6s ease-in-out infinite;text-shadow:0 1px 0 rgba(255,255,255,.35)}
#addCarrinho:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}
#addCarrinho:active:not(:disabled){transform:translateY(1px)}
#addCarrinho:disabled{animation:none;background:var(--bg2);color:var(--muted);border-color:var(--line);box-shadow:none;text-shadow:none}
@keyframes carrinhoPisca{
  0%{box-shadow:0 0 0 0 rgba(34,197,94,.75);border-color:#86efac}
  50%{box-shadow:0 0 0 9px rgba(34,197,94,0);border-color:#facc15}
  100%{box-shadow:0 0 0 0 rgba(34,197,94,0);border-color:#86efac}
}
@media (prefers-reduced-motion:reduce){#addCarrinho{animation:none;box-shadow:0 0 0 3px rgba(250,204,21,.6)}}
/* carrinho PRETO no botão verde (texto e desenho do carrinho) */
#addCarrinho{color:#000;text-shadow:none;display:flex;align-items:center;justify-content:center;gap:10px}
#addCarrinho .ic-car{width:26px;height:26px;fill:#000;flex:none}
#addCarrinho:disabled .ic-car{fill:var(--muted)}

/* 🟦 logo QUADRADA ao lado do nome (não cobre o nome do bingo). Imagem retangular: mostra o centro dela no quadrado.
   Com "Mostrar só a logo" (sem o nome), a logo volta a ser larga e ocupa o espaço todo. */
.logo.com-logo:not(.so-logo) .mLogo{width:48px;height:48px;max-width:none;object-fit:cover;object-position:center;border-radius:12px;background:var(--bg2)}
@media(max-width:420px){.logo.com-logo:not(.so-logo) .mLogo{width:42px;height:42px;border-radius:10px}}
/* carrinho aparece com destaque quando entra a primeira cartela */
@keyframes carrinhoAparece{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
#carrinhoBox.aparecer{animation:carrinhoAparece .35s ease-out}
/* 🏆 ganhadores e pagamento dos prêmios */
#formPremios{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
#formPremios .cb-n{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
#formPremios .cb-n input{width:150px;font-size:18px;font-weight:800;padding:10px 12px}
.prem-ok b{color:#22c55e}.prem-pend b{color:#f59e0b}
.prem-lista{display:grid;gap:10px;margin-top:12px}
.prem-item{padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--bg2);display:grid;gap:6px}
.prem-item.pend{border-left:5px solid #f59e0b}.prem-item.pago{border-left:5px solid #22c55e}
.prem-item .pi-topo{display:flex;justify-content:space-between;align-items:center;gap:8px}
.prem-item .pi-nome{font-weight:800;font-size:16px}
.prem-item .pi-dados{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted)}
.prem-item .pi-dados a{color:var(--gold);font-weight:700}
.prem-item .pi-valor{display:flex;justify-content:space-between;align-items:center;gap:8px}
.prem-item .pi-valor b{font-size:20px;color:var(--gold)}
.pill.pend{background:rgba(245,158,11,.18);color:#f59e0b}
/* painel do administrador no celular: o topo não sobrepõe a logo com os botões */
@media(max-width:560px){
  body[data-sem-instalar] .top{flex-wrap:wrap;gap:8px}
  body[data-sem-instalar] .top .logo{flex:none}
  body[data-sem-instalar] .top .logo .balls span{width:20px;height:20px;font-size:11px}
  body[data-sem-instalar] .top .userbox{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-left:auto}
}
/* ⏱️ contagem regressiva antes do bingo automático */
.contagem-ov{position:fixed;inset:0;z-index:400;display:none;place-items:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);background:radial-gradient(circle at center,rgba(0,0,0,.55),rgba(0,0,0,.85));backdrop-filter:blur(2px)}
.contagem-ov.show{display:grid}
.contagem-ov .ct-box{text-align:center;color:#fff;padding:20px}
.contagem-ov .ct-tit{font-size:clamp(20px,5vw,32px);font-weight:900;color:var(--gold);text-shadow:0 2px 12px rgba(0,0,0,.6)}
.contagem-ov .ct-num{font-size:clamp(140px,40vw,260px);font-weight:900;line-height:1;margin:10px 0;background:linear-gradient(180deg,#fff,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;animation:ctPulo .9s ease-out}
.contagem-ov .ct-valendo{font-size:clamp(48px,14vw,110px);font-weight:900;color:#22c55e;animation:ctPulo .6s ease-out;text-shadow:0 4px 24px rgba(34,197,94,.6)}
.contagem-ov .ct-sub{font-size:16px;opacity:.85}
@keyframes ctPulo{0%{transform:scale(1.8);opacity:0}40%{opacity:1}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.contagem-ov .ct-num,.contagem-ov .ct-valendo{animation:none}}

/* ⭐ linha premiada da quina: risco fino e fixo atravessando a linha/coluna */
.bcard .c.qh::before,.bcard .c.qv::before,.mini-cartela .qh::before,.mini-cartela .qv::before{content:"";position:absolute;inset:-2px;pointer-events:none;z-index:3}
.bcard .c.qh::before,.mini-cartela .qh::before{background:linear-gradient(180deg,transparent calc(50% - 1px),#c8102e calc(50% - 1px),#c8102e calc(50% + 1px),transparent calc(50% + 1px))}
.bcard .c.qv::before,.mini-cartela .qv::before{background:linear-gradient(90deg,transparent calc(50% - 1px),#c8102e calc(50% - 1px),#c8102e calc(50% + 1px),transparent calc(50% + 1px))}
.bcard .c.qh.qv::before,.mini-cartela .qh.qv::before{background:linear-gradient(180deg,transparent calc(50% - 1px),#c8102e calc(50% - 1px),#c8102e calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(90deg,transparent calc(50% - 1px),#c8102e calc(50% - 1px),#c8102e calc(50% + 1px),transparent calc(50% + 1px))}
/* cartela pequena no relatório de ganhadores */
.mini-cartela{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;width:190px;max-width:100%;margin:8px 0 4px;padding:4px;background:#fff;border-radius:8px}
.mini-cartela>div{position:relative;display:grid;place-items:center;aspect-ratio:1;font-size:12px;font-weight:800;border-radius:4px;color:#1a1d3a;background:#eef0fb}
.mini-cartela .mc-h{aspect-ratio:auto;padding:2px 0;color:#fff;font-size:11px}
.mini-cartela .mc-h.H0{background:var(--B)}.mini-cartela .mc-h.H1{background:var(--I)}.mini-cartela .mc-h.H2{background:var(--N)}.mini-cartela .mc-h.H3{background:var(--G)}.mini-cartela .mc-h.H4{background:var(--O)}
.mini-cartela .mk{background:var(--gold);color:#1a1d3a}
.mini-cartela .free{background:#1a1d3a;color:var(--gold)}


/* 💠 chave Pix do ganhador */
.pix-premio-ov{z-index:310}
.pp-lista{display:grid;gap:6px;margin:4px 0 10px}
.pp-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--bg2);border:1px solid var(--line)}
.pp-item span{font-size:13px;color:var(--muted)}.pp-item b{color:var(--gold);font-size:17px}.pp-item small{color:var(--text);font-weight:600}
.pp-txt{margin:6px 0 8px}
.pp-tipos{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.pp-tipos label{display:block;cursor:pointer}.pp-tipos input{position:absolute;opacity:0;pointer-events:none}
.pp-tipos span{display:block;text-align:center;padding:9px 6px;border-radius:12px;border:2px solid var(--line);background:var(--bg2);font-weight:700;font-size:14px}
.pp-tipos input:checked+span{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,var(--bg2))}
#ppChave{width:100%;font-size:18px;padding:12px;margin-bottom:6px}
.pp-chave{margin:8px auto 12px;padding:10px 12px;border-radius:12px;background:#0002;font-weight:800;word-break:break-all;text-align:center}
.pp-premio-item{margin:6px auto 4px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1c1300;font-weight:900;font-size:1.25rem;text-align:center;box-shadow:0 6px 18px #f59e0b55}
.wa-btn{background:#25d366;color:#06281a;display:block;text-align:center;text-decoration:none}
/* admin: chave pix no relatório */
.pi-pix{margin-top:6px;padding:8px 10px;border-radius:10px;font-size:14px;background:color-mix(in srgb,var(--green,#2ed47a) 14%,transparent);border:1px solid color-mix(in srgb,var(--green,#2ed47a) 40%,transparent);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pi-pix b{word-break:break-all}.pi-pix.falta{background:#ff9f1c1a;border-color:#ff9f1c66}

/* ✏️ organizar o painel */
.organizando section[data-painel]{position:relative;outline:2px dashed var(--gold);outline-offset:3px;padding-top:46px}
.organizando section[data-painel] > :not(.org-barra){pointer-events:none;user-select:none;opacity:.55}
.org-barra{position:absolute;top:6px;right:6px;left:6px;z-index:30;display:flex;gap:6px;align-items:center;justify-content:flex-end;padding:4px;border-radius:12px;background:color-mix(in srgb,var(--gold) 18%,var(--bg2))}
.org-barra button{min-width:40px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-size:17px;cursor:pointer}
.org-barra button:disabled{opacity:.3;cursor:default}
.org-alca{margin-right:auto;font-size:22px;line-height:1;padding:4px 10px;cursor:grab;color:var(--gold);user-select:none}
.org-arrastando{opacity:.4}
.org-movido{animation:orgPisca .7s}
@keyframes orgPisca{0%{box-shadow:0 0 0 0 var(--gold)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--gold) 50%,transparent)}100%{box-shadow:none}}
.org-rodape{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:400;width:min(760px,calc(100vw - 24px));display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:16px;background:var(--card);border:2px solid var(--gold);box-shadow:0 10px 30px #000a;font-size:14px}
.org-rodape.hidden{display:none}
.org-acoes{display:flex;gap:6px;flex-wrap:wrap}
.organizando{padding-bottom:110px}
/* painel no celular: com o botão ✏️ Organizar, os botões do topo quebram linha em vez de sair da tela */
@media(max-width:560px){
  header.top:has([data-org]){flex-wrap:wrap;gap:8px}
  header.top .userbox:has([data-org]){flex:1 1 100%;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:100%}
  .org-rodape{bottom:8px;padding:8px 10px;gap:6px;font-size:12px}
  .org-rodape > span{flex:1 1 100%}
  .org-rodape .btn.small{padding:6px 10px;font-size:13px}
}

/* tela do prêmio: nunca maior que o celular + botão ✕ redondo sempre visível */
.pix-premio-ov{align-items:center;padding:12px}
.pix-premio-ov .pp-box{max-height:calc(100dvh - 24px);max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-top:14px}
.pp-x{position:sticky;top:0;float:right;margin:-4px -4px 0 0;z-index:5;width:40px;height:40px;border-radius:50%;border:2px solid var(--line);background:var(--bg2);color:var(--text);font-size:20px;font-weight:900;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px #0008}
.pp-x:active{transform:scale(.94)}
.pp-meus{width:100%;margin:4px 0 12px}

/* 📊 aba Relatórios em botões: um botão por relatório, abre um de cada vez */
#tabRelatorios.rel-modo section[data-painel]:not(.rel-aberto){display:none}
#tabRelatorios.rel-modo .grid2{display:block}
.organizando #tabRelatorios.rel-modo section[data-painel]:not(.sem-perm){display:block}
.organizando #tabRelatorios .rel-menu,.organizando #tabRelatorios .rel-voltar{display:none}
.rel-topo{margin-bottom:14px}
.rel-periodo{padding:12px 14px;margin-bottom:12px}
.rel-periodo-tit{font-weight:800;margin-bottom:6px}
.rel-periodo .filtros{margin:0}
.rel-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.rel-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:96px;padding:12px 8px;border-radius:16px;border:2px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-weight:700;font-size:14px;line-height:1.2;text-align:center;cursor:pointer;transition:transform .12s,border-color .12s,background .12s}
.rel-btn:hover{border-color:var(--gold)}
.rel-btn:active{transform:scale(.97)}
.rel-btn.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,var(--card));box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 25%,transparent)}
.rel-ic{font-size:28px;line-height:1}
.rel-voltar{margin:-4px 0 10px}
section.rel-aberto{animation:relAbre .25s ease}
@keyframes relAbre{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:560px){.rel-menu{grid-template-columns:repeat(2,1fr)}.rel-btn{min-height:84px;font-size:13px}}
.rel-periodo .filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.rel-periodo .filtros > div:not(.quick){flex:1 1 140px;min-width:0}
.rel-periodo .filtros input[type=date]{width:100%}
.rel-periodo .filtros .quick{flex:1 1 100%}
.redes-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 14px}
.redes-form label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:14px}
.redes-form input{width:100%}

/* 🏆 caixa do prêmio retangular, na largura toda (bola à esquerda, prêmio no meio, 🔊 à direita; quina, giro, avisos e comprar embaixo) */
.stage .infobar{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"ball lbl loc" "ball val loc" "cota cota cota" "quina quina quina" "giro giro giro" "chips chips chips" "cta cta cta";
  column-gap:10px;row-gap:2px;align-items:center;margin-top:8px;padding:10px 12px;border-radius:14px;background:linear-gradient(90deg,var(--prizeBg),var(--card));border:1px solid var(--prizeLine)}
.infobar .prize{display:contents}
.infobar .ball{grid-area:ball;width:52px;height:52px}
.infobar .ball b{font-size:20px}
.infobar .locbtn{grid-area:loc;width:44px;height:44px;font-size:18px;border-radius:12px}
.infobar .locbtn small{display:none}
.prize .lbl{grid-area:lbl;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:end}
.prize .val{grid-area:val;font-size:18px;align-self:start}
.prize .cota-mini{grid-area:cota;margin-top:6px}
#quinaInfo{grid-area:quina;margin-top:6px}
#giroInfoTopo{grid-area:giro}
.prize .quinainfo{white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;font-size:12.5px}
.prize .chips{grid-area:chips;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-top:6px}
.prize .chips::-webkit-scrollbar{display:none}
.prize .chips>*{flex:none;white-space:nowrap;padding:2px 9px!important;font-size:11.5px!important}
.prize .cta-comprar{grid-area:cta;margin-top:8px;padding:8px 10px;font-size:15px}
.stage.compacto .infobar{padding:6px 10px;row-gap:0}
.stage.compacto .infobar .ball{width:44px;height:44px}
.stage.compacto .infobar .ball b{font-size:17px}

/* 🤝 aviso de prêmio dividido */
.pp-div-item{gap:6px}
.pp-div-conta{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}
.pp-div-conta span{color:var(--muted)}
.pp-div-conta b{color:var(--text);font-size:15px}
.pp-div-conta.sua{margin-top:2px;padding-top:6px;border-top:1px dashed var(--line)}
.pp-div-conta.sua span{color:var(--text);font-weight:700}
.pp-div-conta.sua b{color:var(--gold);font-size:20px}

/* 🔔 aviso de sorteio no celular */
.push-box{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);font-size:14px}
.push-box.hidden{display:none}
.push-box span{flex:1 1 220px}
.push-box .push-ligar{animation:pushPisca 1.6s ease-in-out infinite}
@keyframes pushPisca{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 60%,transparent)}50%{box-shadow:0 0 0 6px transparent}}
/* botão de notificações na barrinha do vídeo: vermelho piscando → verde quando ativo */
.vbar{flex-wrap:wrap}
.vbtn.vpush{border-color:transparent;color:#fff;font-size:13px;white-space:nowrap}
.vbtn.vpush[hidden]{display:none}
.vbtn.vpush.ativar{background:#e11d2a;animation:vpushPisca 1.1s ease-in-out infinite}
.vbtn.vpush.ativo{background:#16a34a;animation:none}
.vbtn.vpush.bloqueado{background:var(--card);color:var(--muted);border-color:var(--line)}
.vbtn.vpush:disabled{opacity:.6}
@keyframes vpushPisca{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(225,29,42,.7)}50%{opacity:.55;box-shadow:0 0 0 7px rgba(225,29,42,0)}}
@media (prefers-reduced-motion:reduce){.vbtn.vpush.ativar{animation:none}}

/* atalhos de quantidade que somam + botão zerar */
.quick .qtd-zerar{background:transparent;border-style:dashed;color:var(--muted)}
.quick .qtd-zerar.hidden{display:none}
.pp-div-conta.sua span{flex:1;line-height:1.3}
.pp-div-conta b{text-align:right;white-space:nowrap}
/* agenda: como vender as cartelas */
.ag-modos{display:grid;gap:6px;margin-top:4px}
.ag-modo{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border-radius:12px;border:1px solid var(--line,#ffffff22);background:#ffffff08;cursor:pointer;font-weight:400}
.ag-modo input{margin-top:3px;flex:0 0 auto;width:auto}
.ag-modo span{display:flex;flex-direction:column;gap:2px}
.ag-modo small{color:var(--muted,#aab);font-size:12px;line-height:1.35}
.ag-modo:has(input:checked){border-color:var(--gold,#fbbf24);background:#fbbf2414}
.ag-modo:has(input:disabled){opacity:.45;cursor:not-allowed}
/* 📅 venda antecipada na agenda do site */
.ag-ant{margin-top:8px;padding:10px;border-radius:12px;border:1px dashed var(--gold,#fbbf24);background:#fbbf240d}
.ag-ant-topo{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.ag-ant-linha{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.ag-ant-linha .btn{flex:1;min-width:130px}
.ant-cartelas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-height:60vh;overflow:auto}
.ant-cartela{background:#ffffff0a;border-radius:10px;padding:6px}
.ant-num{font-weight:800;font-size:13px;margin-bottom:4px;text-align:center}
.ag-ant .pb-qtd{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.ag-ant .pb-qtd .btn{width:38px;min-width:38px;flex:0 0 38px;padding:6px 0;font-size:18px;line-height:1}
.ag-ant .pb-qtd b{min-width:28px;text-align:center;font-size:18px}
.ag-ant .ag-ant-linha>span{font-size:15px}
/* 📲 página "Baixe o app" */
.baixar-hero{text-align:center;padding:18px 4px 8px}
.baixar-icone{width:112px;height:112px;border-radius:26px;box-shadow:0 10px 30px #0008;display:block;margin:0 auto 12px}
.baixar-hero h1{margin:0 0 6px;font-size:1.6rem;line-height:1.25}
.baixar-btn{display:block;width:100%;max-width:360px;margin:14px auto 0;font-size:1.15rem;padding:16px 18px;border-radius:16px;text-decoration:none;text-align:center}
.baixar-ok{font-weight:800;margin-top:10px}
.baixar-vant{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.baixar-vant>div{display:flex;flex-direction:column;gap:2px;font-size:14px}
.baixar-vant span{font-size:24px}
.baixar-vant small{color:var(--muted);font-size:12px;line-height:1.35}
@media (max-width:420px){.baixar-vant{grid-template-columns:1fr}}
/* 📅 relatório do bingo programado */
.ant-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}
.ant-meta{margin-top:10px;padding:10px;border-radius:12px;background:#ffffff08}
.ant-evo{display:flex;flex-direction:column;gap:6px}
.ant-dia{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:8px;font-size:13px}
.ant-dia i{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--gold),var(--gold2,#f59e0b))}
.ant-dia small{grid-column:2 / 4;color:var(--muted);font-size:11px;margin-top:-4px}
/* 🔔 compras aguardando liberação */
.pend-lista{display:flex;flex-direction:column;gap:8px}
.pend-item{border:1px solid var(--line,#ffffff1a);border-radius:12px;padding:10px;display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}
.pend-item.avisou{border-color:#22c55e;background:#22c55e12}
.pend-topo{grid-column:1/3;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pend-st{font-size:12px;padding:2px 8px;border-radius:99px;background:#ffffff14;white-space:nowrap}
.pend-st.ok{background:#22c55e;color:#04210f;font-weight:700}
.pend-st.neg{background:#ef444433;color:#fca5a5}
.pend-info{display:flex;flex-direction:column;gap:2px;font-size:13px}
@media (max-width:520px){.pend-item{grid-template-columns:1fr}.pend-topo{grid-column:1}.pend-item .btn{width:100%}}
.vendas-rec{margin-top:10px}.vendas-rec summary{cursor:pointer;font-weight:700;font-size:14px}
.pend-item.ant{border-color:var(--gold,#fbbf24)}
/* celular: os 3 botões numa linha só (Som | Ativar notificações | Atualizar), igual ao modelo */
@media (max-width:480px){
  .vbar{flex-wrap:nowrap;gap:5px}
  .vbar .vbtn{font-size:11.5px;padding:6px 9px;letter-spacing:-.1px;white-space:nowrap;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .vbar .vatualizar{padding:5px 8px;font-size:11.5px}
}
@media (max-width:360px){.vbar .vatualizar .vtxt{display:none}}
/* 🖼️ banner do bingo agendado (1500×500, 3 por 1) */
.evento .ag-banner{grid-column:1/-1;display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:var(--card)}
.evento .ev-baixo{grid-column:1/-1;min-width:0}
.evento .ev-baixo>.ag-ant,.evento .ev-baixo>.ag-venda{margin-top:0}
.ag-ban-box{border:1px dashed var(--line);border-radius:12px;padding:8px}
.ag-ban-prev{aspect-ratio:3/1;border-radius:10px;overflow:hidden;background:var(--bg2);display:grid;place-items:center;text-align:center;font-size:12px;color:var(--muted)}
.ag-ban-prev img{width:100%;height:100%;object-fit:cover;display:block}
.ag-ban-box small{display:block;margin-top:6px;font-size:11px;line-height:1.35}
.ag-ban-mini{display:block;width:100%;aspect-ratio:3/1;object-fit:cover;border-radius:8px;margin-bottom:6px}
/* 🚨 bingo travado / cancelado por falha */
.trav-ov{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(127,10,18,.92);backdrop-filter:blur(3px)}
.trav-ov.show{display:flex}
.trav-box{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:var(--card);border:3px solid #ef4444;border-radius:20px;padding:22px 18px;text-align:center;box-shadow:0 20px 60px #0008;animation:travPulso 1.4s ease-in-out infinite}
.trav-ic{font-size:54px;line-height:1}
.trav-box h2{margin:6px 0;color:#f87171;font-size:28px;letter-spacing:1px}
.trav-sub{margin:0 0 12px}
.trav-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.trav-nums div{background:var(--bg2);border-radius:12px;padding:10px 4px}
.trav-nums b{display:block;font-size:20px;color:var(--gold)}.trav-nums span{font-size:11px;color:var(--muted)}
.trav-lista{text-align:left;font-size:14px;padding-left:4px;list-style:none;margin:10px 0 14px}
.trav-lista li{margin:6px 0}
.trav-ok{width:100%;font-size:17px}
@keyframes travPulso{0%,100%{box-shadow:0 0 0 0 #ef444499}50%{box-shadow:0 0 0 14px #ef444400}}
@media (prefers-reduced-motion:reduce){.trav-box{animation:none}}
.trav-cel{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 0 0;padding:10px 12px;border-radius:12px;border:1px solid #ef444466;background:#ef44440f}
.trav-cel>div{flex:1 1 240px}.trav-cel small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.falha-ov{z-index:9998}
.falha-box{text-align:center;max-width:420px}
.falha-ic{font-size:48px;line-height:1}
.falha-box h2{margin:6px 0 8px;color:#f87171}
.falha-valor{margin:12px 0;padding:12px;border-radius:14px;background:color-mix(in srgb,#22c55e 14%,transparent);border:1px solid #22c55e66}
.falha-valor span{display:block;font-size:13px}.falha-valor b{display:block;font-size:30px;color:#4ade80}.falha-valor small{color:var(--muted)}
/* 💰 margem para liberar os bingos automáticos */
.margem-box{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}
.margem-linha{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.margem-linha label{width:150px;margin:0}
.margem-linha input{font-size:20px;font-weight:800;text-align:center}
.margem-ex{margin-top:8px;font-size:13px;padding:8px 10px;border-radius:10px;background:var(--bg2)}
.margem-agora{margin-top:6px;font-size:13px;color:var(--muted)}
/* 💾 cópias de segurança */
.copias-box h3{margin:16px 0 4px;font-size:15px}
.copias-status{padding:10px 12px;border-radius:12px;font-size:13px;display:grid;gap:4px}
.copias-status.ok{background:color-mix(in srgb,#22c55e 12%,transparent);border:1px solid #22c55e55}
.copias-status.alerta{background:color-mix(in srgb,#f59e0b 14%,transparent);border:1px solid #f59e0b77}
.copias-lista{display:grid;gap:6px;max-height:320px;overflow:auto}
.copia-item{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;background:var(--bg2);border:1px solid var(--line)}
.copia-item small{display:block;color:var(--muted);font-size:12px}
.copia-item.antes-de-restaurar{border-style:dashed}
.copia-lembrete{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,#f59e0b 16%,var(--card));border:1px solid #f59e0b88;font-size:14px}
.copia-lembrete.hidden{display:none}
/* 🍎 iPhone: botão da locução pisca até o jogador tocar (o toque libera a voz) */
.locbtn.pulsar{animation:locPisca 1.1s ease-in-out infinite;background:var(--gold);color:var(--btnText);border-color:transparent}
@keyframes locPisca{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 70%,transparent)}50%{box-shadow:0 0 0 8px transparent}}
@media (prefers-reduced-motion:reduce){.locbtn.pulsar{animation:none}}
/* 🔒 painel congelado (padrão) / 🔓 solto (o jogador escolhe) */
.painel-trava{margin-left:auto;border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-size:11px;font-weight:800;padding:3px 9px;border-radius:99px;cursor:pointer;white-space:nowrap;align-self:center}
.painel-trava.solto{background:var(--gold);color:var(--btnText);border-color:transparent}
body.painel-solto .stage{position:relative;top:auto;box-shadow:none}
body.painel-solto #stageEspaco{height:0!important}
.stage.compacto .painel-trava{display:none}
/* 📲 instalador do Android */
.inst-espera{min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px;border-radius:12px;background:var(--bg2);font-size:14px;text-align:center}
.inst-giro{width:18px;height:18px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--gold);animation:instGira .8s linear infinite}
@keyframes instGira{to{transform:rotate(360deg)}}
.inst-agora{width:100%;font-size:18px;padding:14px}

/* ===================== Plataforma de campanhas (cupons, comerciantes) ===================== */
.small{font-size:13px}
.pill.live{background:var(--danger);color:#fff}
.cupom-chegou{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:14px;border-radius:var(--r);background:color-mix(in srgb,var(--gold) 14%,var(--card));border:1px solid var(--gold)}
.cupom-chegou.ok{background:color-mix(in srgb,var(--ok) 14%,var(--card));border-color:var(--ok)}
.cupom-chegou.erro{background:color-mix(in srgb,var(--danger) 12%,var(--card));border-color:var(--danger)}
.cupom-chegou h3,.cupom-ok h3{margin:0 0 4px;font-size:17px}
.cupom-chegou p,.cupom-ok p{margin:0 0 8px;font-size:14px;line-height:1.45}
.cc-ic{font-size:30px;line-height:1}
.cupom-ok{display:flex;gap:12px;align-items:flex-start;margin-top:10px;padding:12px;border-radius:12px;background:color-mix(in srgb,var(--ok) 12%,var(--bg2));border:1px solid var(--ok)}
.cupom-chegou .cupom-ok{margin:0;padding:0;border:0;background:none}
.cupom-form{display:flex;gap:8px;flex-wrap:wrap}
.cupom-form input{flex:1;min-width:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:20px;letter-spacing:2px;text-transform:uppercase;text-align:center}
.cupom-form .btn{flex:0 0 auto}
.camp-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px;margin-top:8px}
.camp-card{display:grid;gap:6px;padding:12px;border-radius:12px;background:var(--bg2);border:1px solid var(--line);min-width:0}
.camp-card.ao-vivo{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger) inset}
.camp-topo{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.camp-topo b{font-size:16px;overflow-wrap:anywhere}
.camp-premios{display:flex;flex-wrap:wrap;gap:6px;font-size:13px}
.camp-premios span{background:var(--card);border:1px solid var(--line);border-radius:99px;padding:3px 10px;overflow-wrap:anywhere}
.camp-meu{font-size:13px}
.camp-ganhou{margin-top:4px;color:var(--gold);font-weight:800}
.camp-tag{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:-2px 0 4px}
.bcard.espera .g .c{opacity:.75}
.regulamento{font-size:14px;line-height:1.6;white-space:normal;overflow-wrap:anywhere;max-height:none}
/* tabelas e cartões das áreas do comerciante e do administrador */
.tab-lista{width:100%;border-collapse:collapse;font-size:13px}
.tab-lista th,.tab-lista td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.tab-lista th{color:var(--muted);font-weight:600;white-space:nowrap}
.tab-lista td.num,.tab-lista th.num{text-align:right;white-space:nowrap}
.codigo{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px;white-space:nowrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:8px;margin-top:10px}
.kpi{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
.kpi b{display:block;font-size:22px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpi span{font-size:12px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:0 12px}
.acoes{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.item-lista{display:grid;gap:8px;margin-top:8px}
.item{padding:12px;border-radius:12px;background:var(--bg2);border:1px solid var(--line);min-width:0}
.item-topo{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.item-topo b{font-size:15px;overflow-wrap:anywhere}
.item .info{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted);margin-top:4px}
.item .info b{color:var(--text);font-weight:600}
.item.destaque{border-color:var(--gold)}
.pixbox{display:grid;gap:8px;justify-items:center;text-align:center;padding:12px;border-radius:12px;background:var(--bg2);border:1px solid var(--line);margin-top:10px}
.pixbox img{width:min(240px,100%);background:#fff;border-radius:10px;padding:6px}
.pixbox textarea{width:100%;font-size:12px;min-height:70px}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.navtabs.com{margin-top:10px}
.aviso-provisorio{font-size:12px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--gold) 12%,transparent);border:1px dashed var(--gold);margin-top:8px}
.btn-cupom{width:100%;font-size:20px;font-weight:900;letter-spacing:.5px;padding:14px 18px;margin-top:4px}
/* 📷 leitor de QR Code (câmera) */
.qr-tela{position:fixed;inset:0;z-index:300;background:#000e;display:flex;flex-direction:column;align-items:center;gap:10px;padding:max(12px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow:auto}
.qr-topo{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:520px;color:#fff;font-size:16px}
.qr-fechar{border:0;background:#fff2;color:#fff;font-size:20px;width:40px;height:40px;border-radius:50%;cursor:pointer}
.qr-visor{position:relative;width:100%;max-width:520px;aspect-ratio:3/4;max-height:62vh;border-radius:16px;overflow:hidden;background:#111}
.qr-visor video{width:100%;height:100%;object-fit:cover;display:block}
.qr-mira{position:absolute;inset:18% 14%;border:3px solid var(--ok);border-radius:14px;box-shadow:0 0 0 999px #0006}
.qr-msg{color:#fff;text-align:center;margin:0;max-width:520px;font-size:14px}
.qr-digitar{width:100%;max-width:520px;display:grid;gap:6px;color:#ddd;font-size:13px}
.qr-form{display:flex;gap:8px}.qr-form input{flex:1;min-width:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px;letter-spacing:2px;text-align:center;text-transform:uppercase}
.com-tit{display:flex;align-items:center;gap:8px;min-width:0}
.logo-mini{width:34px;height:34px;object-fit:contain;border-radius:8px;background:#fff;flex:0 0 auto}
.logo-mini.vazio{display:grid;place-items:center;font-size:9px;color:var(--muted);background:var(--bg2);border:1px dashed var(--line);text-align:center;line-height:1}
.logo-prev{width:72px;height:72px;border-radius:12px;background:#fff;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line)}
.logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
/* 🎟️ cupom digital do cliente (modelo do cliente). Celular: empilhado; telas largas: horizontal como o modelo */
.cdig-wrap{container-type:inline-size;margin:10px auto 0;width:100%;max-width:820px}
.cdig{position:relative;overflow:hidden;background:#fff;color:#1f2a33;border-radius:14px;padding:14px;display:grid;gap:12px;box-shadow:0 2px 12px #0004}
.cdig b{color:#1f2a33}
.cdig.sorteado{box-shadow:0 0 0 3px var(--gold),0 6px 24px #0006;padding-top:40px}
.cd-selo{position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,var(--gold),var(--gold2));color:#2a1a00;font-weight:900;text-align:center;padding:7px;font-size:14px;letter-spacing:.5px;z-index:2}
.cd-deco{position:absolute;border-radius:50%;background:#f2c48d;left:-24px;z-index:0}
.cd-deco.d1{width:34px;height:34px;top:46%}.cd-deco.d2{width:46px;height:46px;top:62%}
.cd-raios{position:absolute;top:6px;right:8px;width:34px;height:26px;z-index:0;background:repeating-linear-gradient(-30deg,transparent 0 5px,#f2c48d 5px 7px);opacity:.8;border-radius:4px}
.cd-arco{position:absolute;right:-28px;bottom:-30px;width:60px;height:120px;border:2px solid #6b7f95;border-radius:50%;z-index:0;opacity:.7}
.cd-esq,.cd-dir{position:relative;z-index:1;min-width:0}
.cd-topo{display:grid;grid-template-columns:52px 1fr 52px;gap:10px;align-items:center}
.cd-logo{width:52px;height:52px;background:#1d2150;color:#fff;display:grid;place-items:center;text-align:center;font-size:9px;font-weight:700;line-height:1.15;padding:3px;overflow:hidden}
.cd-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.cd-logo:has(img){background:#fff;border:1px solid #d6dbe1}
.cd-meio{min-width:0;font-size:13px;display:grid;gap:2px}
.cd-l1{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;font-size:14px}
.cd-l2,.cd-l3{overflow-wrap:anywhere}.cd-l3{font-size:12px;color:#445}
.cd-tab{display:grid;grid-template-columns:1fr 1fr;border:1.5px solid #56697c;margin-top:12px}
.cd-cel{padding:6px 8px;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;font-size:13px}
.cd-cel span{font-size:12px;color:#445}.cd-cel b{overflow-wrap:anywhere;font-weight:600}
.cd-cel.c1{border-right:1.5px solid #56697c;border-bottom:1.5px solid #56697c}.cd-cel.c2{border-bottom:1.5px solid #56697c}
.cd-cel.c3{grid-column:1/-1}
.cd-cid{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:13px;flex-wrap:wrap}
.cd-chamada{text-align:center;font-size:13px;margin-top:10px;line-height:1.45}
.cd-corte{border-top:2px dashed #222;margin:0 -4px}
.cd-dir{display:grid;justify-items:center;gap:6px;text-align:center}
.cd-aponte{font-size:14px}
.cd-qr{width:min(200px,60%);aspect-ratio:1}.cd-qr svg{width:100%;height:100%;display:block}
.cd-cod small{display:block;font-size:11px;color:#556}.cd-cod b{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px;letter-spacing:1px}
@container (min-width: 620px){
  .cdig{grid-template-columns:1fr 2px 30%;gap:2.2cqw;padding:2.8cqw 3cqw;align-items:center}
  .cdig.sorteado{padding-top:calc(2.8cqw + 30px)}
  .cd-corte{border-top:0;border-left:2px dashed #222;margin:0}
  .cd-topo{grid-template-columns:8cqw 1fr 8cqw;gap:2cqw}
  .cd-logo{width:8cqw;height:7.5cqw;font-size:1.25cqw}
  .cd-meio{font-size:1.75cqw}.cd-l1{font-size:2.1cqw}.cd-l3{font-size:1.5cqw}
  .cd-tab{margin-top:2.4cqw}.cd-cel{font-size:1.9cqw;padding:.6cqw 1cqw;min-height:6.6cqw}.cd-cel span{font-size:1.6cqw}.cd-cid{font-size:1.9cqw}
  .cd-chamada{font-size:1.95cqw;margin-top:1.4cqw}
  .cd-aponte{font-size:2.1cqw}.cd-qr{width:21cqw}.cd-cod small{font-size:1.4cqw}.cd-cod b{font-size:2.2cqw}
}
.meus-cupons{display:grid;gap:12px}
#winCupom .cdig-wrap{margin:10px 0}
#winCupom{max-height:55vh;overflow:auto;text-align:left}
/* cupom digital logo abaixo da mensagem "Cupom cadastrado!" (ocupa a linha toda) */
.cupom-chegou{flex-wrap:wrap}.cupom-chegou>.cdig-wrap{flex:1 1 100%}
#cupomResultado>.cdig-wrap{margin-top:10px}
/* tela de prêmio com o cupom sorteado: rola se não couber */
#winOverlay .winbox{max-height:calc(100dvh - 24px);overflow-y:auto}
#winCupom .cdig-wrap{text-align:left}

.pill.gold{background:linear-gradient(90deg,var(--gold),var(--gold2));color:#2a1a00}
/* ⭐ campanha da tela inicial + cadastrar cupom (logo abaixo do vídeo e do painel) */
.inicio-cupom{border:2px solid color-mix(in srgb,var(--gold) 55%,transparent)}
.dest-topo{display:flex;justify-content:space-between;align-items:center;gap:8px}
.dest-tag{font-size:12px;font-weight:800;letter-spacing:.5px;color:var(--gold);text-transform:uppercase}
.dest-nome{margin:4px 0 0;font-size:22px}
.dest-premio{display:flex;flex-direction:column;margin:6px 0 8px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--gold) 14%,var(--card));border:1px solid color-mix(in srgb,var(--gold) 45%,transparent)}
.dest-premio span{font-size:12px;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.dest-premio b{font-size:20px}
.dest-links{margin:6px 0 12px}
.inicio-cupom #cupomCamera{margin-top:4px}

/* 🖼️ banner da campanha (cliente, vitrine do comerciante e painel) */
.camp-banner{display:block;margin:-2px 0 10px;border-radius:12px;overflow:hidden;background:#0003}
.camp-banner img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;margin:0 auto}
.sub-tit{margin:14px 0 4px;font-size:15px;color:var(--gold)}
.banner-camp{display:grid;gap:8px}
.banner-prev{border:1px dashed color-mix(in srgb,var(--gold) 50%,transparent);border-radius:12px;overflow:hidden;min-height:90px;display:grid;place-items:center;background:#0002}
.banner-prev.vazio{color:var(--muted);font-size:13px}
.banner-prev img{display:block;width:100%;max-height:260px;object-fit:contain}
.camp-banner-mini{display:block;width:100%;max-width:420px;max-height:140px;object-fit:contain;border-radius:10px;margin:6px 0}
.ped-itens{margin:6px 0;padding-left:18px;font-size:14px}.ped-itens li{margin:2px 0}
/* 🛒 vitrine e carrinho do comerciante */
.vitrine{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.vit-card{border:1px solid var(--line,#ffffff1f);border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--card) 92%,#fff 8%);display:flex;flex-direction:column}
.vit-banner{display:block;width:100%;aspect-ratio:3/1;object-fit:contain;background:#0003}
.vit-banner.vazio{display:grid;place-items:center;font-weight:800;color:var(--gold);padding:10px;text-align:center}
.vit-corpo{padding:12px;display:grid;gap:6px}
.vit-preco{display:flex;justify-content:space-between;align-items:baseline;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--gold) 12%,transparent)}
.vit-preco span{font-size:13px;color:var(--muted)}.vit-preco b{font-size:20px;color:var(--gold)}
.vit-add{display:grid;gap:6px}.vit-add input{text-align:center;font-size:18px;font-weight:700}
.vit-add .quick{display:flex;gap:6px}.vit-add .quick button{flex:1}
.car-item{display:grid;grid-template-columns:1fr 110px 100px auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,#ffffff1f)}
.car-item.ruim{background:color-mix(in srgb,var(--danger) 10%,transparent);border-radius:8px;padding:10px 8px}
.car-nome{display:flex;flex-direction:column;min-width:0}.car-nome b{overflow-wrap:anywhere}
.car-item input{text-align:center;font-weight:700}
.car-sub{text-align:right}
@media (max-width:560px){.car-item{grid-template-columns:1fr 90px auto}.car-sub{grid-column:1/3;text-align:left}}
/* 🎡 lista de giros no painel de Sorteio (um por linha, com o botão GIRAR de cada um) */
.giros-painel{display:grid;gap:8px;margin-top:10px}
.giro-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line,#ffffff1f);border-radius:12px;background:#ffffff08}
.giro-item.st-aguardando{border-color:color-mix(in srgb,var(--ok) 60%,transparent)}
.giro-item.st-em_execucao{border-color:var(--gold);box-shadow:0 0 0 2px #ffc83d44}
.giro-item.st-concluido{opacity:.95}.giro-item.st-cancelado{opacity:.55}
.gi-num{font-weight:900;color:var(--gold);text-align:center;min-width:56px;display:grid;gap:4px;justify-items:center;font-size:14px}
.gi-num img{width:44px;height:44px;object-fit:cover;border-radius:8px}
.gi-corpo{min-width:0;display:grid;gap:2px}.gi-corpo b{overflow-wrap:anywhere}
.gi-res{margin-top:4px;padding:6px 8px;border-radius:8px;background:#ffffff0a;font-size:13px}
.gi-anul{font-size:12px;color:var(--muted);margin-top:4px}
.gi-acoes .btn{white-space:nowrap}
.giro-auto{margin:8px 0}
@media (max-width:700px){.giro-item{grid-template-columns:auto 1fr}.gi-acoes{grid-column:1/-1}.gi-acoes .btn{width:100%}}
/* 🎡 configuração dos giros na campanha */
.giro-cfg{border:1px dashed color-mix(in srgb,var(--gold) 45%,transparent);border-radius:12px;padding:10px 12px}
.gc-giros{display:grid;gap:10px;margin-top:10px}
.gc-bloco{border:1px solid var(--line,#ffffff1f);border-radius:12px;padding:10px;background:#ffffff06}
.gc-bloco.feito{border-color:color-mix(in srgb,var(--ok) 50%,transparent)}
.gc-tit{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.gc-img{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.gc-img img{width:56px;height:56px;object-fit:cover;border-radius:8px}
.gc-total{margin-top:8px}

/* 🎁 Cupom Premiado Instantâneo */
.inst-box .inst-tit{font-size:30px}
.inst-box .premiobox img{display:block;max-width:160px;max-height:120px;object-fit:contain;margin:0 auto 6px;border-radius:10px;background:#fff}
.inst-instr{white-space:pre-line;text-align:left;background:#ffffff0d;border-radius:10px;padding:8px 10px;margin:6px 0}
.inst-res{margin:10px 0;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid var(--line,#ffffff1f)}
.inst-res.ok{background:color-mix(in srgb,var(--gold) 16%,var(--card));border-color:var(--gold)}
.inst-item{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;background:color-mix(in srgb,var(--gold) 10%,transparent);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);margin:6px 0}
.inst-item img{width:52px;height:52px;object-fit:cover;border-radius:8px;background:#fff}.inst-ic{font-size:34px}
.inst-camp{margin:6px 0;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--gold) 12%,transparent);font-size:14px}
.cd-selo.inst{background:linear-gradient(90deg,#ff7a59,var(--gold))}

/* 📸 leitura do QR por foto (iPhone sem https, câmera negada) */
.qr-tela .qr-foto{display:block;margin:6px auto 10px;max-width:420px;width:calc(100% - 32px);text-align:center;cursor:pointer}
.qr-tela.sem-video .qr-visor{display:none}
.qr-tela.sem-video .qr-foto{font-size:18px;padding:16px;margin-top:20px}

.video{position:relative}
.video-erro{position:absolute;inset:0;z-index:3;display:grid;place-content:center;gap:8px;text-align:center;padding:16px;background:#000d;color:#fff;font-size:14px}

.logo-orient{font-size:13px;padding:8px 10px;border-radius:10px;background:#ffffff0a;border:1px solid var(--line,#ffffff1f)}
.logo-nova{display:flex;gap:12px;align-items:center;margin-top:10px;padding:10px;border-radius:12px;border:1px dashed var(--gold)}
.logo-prev.grande{width:120px;height:120px}

/* 📸 tela final do Instagram (modelo enviado pelo cliente: cartão branco, loja + Pimba Prêmios) */
#socialOverlay{overflow-y:auto}
.soc-card{background:#fff;color:#1e1a3a;border-radius:26px;max-width:460px;width:100%;padding:26px 18px 16px;text-align:center;box-shadow:0 20px 60px #0008;animation:pop .5s;margin:auto}
.soc-card h2{font-size:clamp(24px,7vw,32px);font-weight:900;color:#3b1a8f;margin:6px 0 2px;line-height:1.1}
.soc-sub{margin:4px 0 16px;font-size:17px;color:#1e1a3a}
.soc-ok{display:flex;align-items:center;justify-content:center;gap:8px}
.soc-check{width:62px;height:62px;border-radius:50%;background:linear-gradient(160deg,#2fd36a,#14a64b);color:#fff;font-size:34px;font-weight:900;display:grid;place-items:center;box-shadow:0 6px 14px #14a64b55}
.soc-raio{width:16px;height:5px;border-radius:3px;background:#ffc22e}.soc-raio.r1{transform:rotate(30deg)}.soc-raio.r2{transform:rotate(-20deg)}.soc-raio.r3{transform:rotate(20deg)}.soc-raio.r4{transform:rotate(-30deg)}
.soc-loja{display:flex;gap:14px;align-items:center;text-align:left;background:#eef0fb;border-radius:18px;padding:14px;margin-bottom:12px}
.soc-logo{flex:0 0 96px;width:96px;height:96px;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;box-shadow:0 2px 10px #0001;border-right:0}
.soc-logo img{width:84%;height:84%;object-fit:contain}
.soc-loja-txt{min-width:0;display:grid;gap:6px;border-left:1px solid #c9cdea;padding-left:12px}
.soc-logo.hidden+.soc-loja-txt{border-left:0;padding-left:0}
.soc-pill{justify-self:start;background:#6a2ee8;color:#fff;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;letter-spacing:.4px}
.soc-loja-txt b{font-size:20px;font-weight:900;color:#141033;overflow-wrap:anywhere;line-height:1.15}
.soc-loja-txt p,.soc-pimba p{margin:0;font-size:14px;color:#4b4866;line-height:1.35}
.soc-btn{display:flex;align-items:center;justify-content:center;gap:10px;color:#fff !important;text-decoration:none;font-weight:900;font-size:15px;letter-spacing:.3px;padding:12px 16px;border-radius:999px;margin-top:4px}
.soc-btn.ig{background:linear-gradient(90deg,#c13584,#e1306c 45%,#fd5949 80%,#f77737)}
.soc-btn.roxo{background:#4b1d9b}
.soc-btn .ig-ic{width:26px;height:26px;flex:0 0 auto}.soc-ext{font-size:18px;opacity:.9}
.soc-pimba{background:#f2eefc;border-radius:18px;padding:16px 14px;display:grid;gap:6px;justify-items:center}
.soc-ig-grande{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}
.soc-ig-grande .ig-ic{width:38px;height:38px}
.soc-pimba h3{margin:4px 0 0;font-size:16px;color:#3b1a8f}
.soc-pimba-nome{font-size:24px;font-weight:900;color:#3b1a8f}
.soc-pimba .soc-btn{width:100%;max-width:340px}
.soc-fechar{margin-top:12px;background:none;border:0;color:#6a2ee8;font-weight:700;text-decoration:underline;cursor:pointer;font-size:14px}
@media (max-width:420px){.soc-loja{flex-direction:column;text-align:center}.soc-loja-txt{border-left:0;padding-left:0;justify-items:center}.soc-pill{justify-self:center}.soc-btn{font-size:14px}}

/* 🖨️ escolha do formato de impressão */
.formatos{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.formato{display:grid;gap:4px;justify-items:center;text-align:center;padding:16px;border-radius:14px;border:2px solid var(--line,#ffffff2a);background:#ffffff08;color:inherit;cursor:pointer;font:inherit}
.formato:hover,.formato:focus-visible{border-color:var(--gold)}
.formato .f-ic{font-size:38px}.formato b{font-size:17px}.formato small{color:var(--muted);font-size:13px}
/* 💰 Financeiro */
.aviso-box{background:#ffffff0d;border:1px solid #ffffff22;border-radius:12px;padding:10px 12px;margin:6px 0 12px}
.faixas .faixa{gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0}
.faixas .faixa label{display:flex;gap:6px;align-items:center;margin:0}
.lote-kpis{margin:8px 0}
.senha-ov .senha-box{text-align:center;max-width:420px;width:min(420px,92vw)}
.senha-ov .senha-txt{text-align:left;line-height:1.45}
.desc-linha{display:flex;justify-content:space-between;gap:8px}
.desc-linha.verde{color:var(--ok)}
/* 📊 Relatórios (componente compartilhado) */
.rel-tab th.ordenavel{cursor:pointer;user-select:none;white-space:nowrap}
.rel-tab .num{text-align:right;white-space:nowrap}
.rel-tab tfoot td{border-top:2px solid var(--line)}
.rel-filtros{margin:8px 0}
.rel-btn.on{border-color:var(--gold);background:#ffffff10}
.rel-filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rel-filtros>input,.rel-filtros>select{width:auto;min-width:150px;flex:0 1 auto;margin:0}
.rel-filtros .cc-per{display:flex;gap:6px;align-items:center;margin:0}
.rel-filtros .cc-per input{width:auto;margin:0}
@media (max-width:600px){.rel-filtros>input,.rel-filtros>select{flex:1 1 100%}}
.auth-cupom{background:linear-gradient(135deg,#ffd16620,#7c3aed22);border:2px solid var(--gold);border-radius:14px;padding:10px 12px;margin:0 0 12px;font-size:14px;line-height:1.45}
/* 🎟️ Meus Cupons recolhível */
.recolhivel .rec-cab{all:unset;box-sizing:border-box;display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;padding:4px 0}
.recolhivel .rec-cab:focus-visible{outline:2px solid var(--gold);border-radius:8px}
.recolhivel .rec-tit{font-size:20px;font-weight:800}
.recolhivel .rec-n{color:var(--muted);font-weight:600;font-size:16px}
.recolhivel .rec-seta{font-size:22px;transition:transform .2s;color:var(--gold)}
.recolhivel.aberto .rec-seta{transform:rotate(180deg)}
.logo-prev-box{max-width:460px;width:min(460px,94vw)}
.logo-prev.claro{background:#fff}.logo-prev.escuro{background:#111827}
.logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
/* 🖨️ escolha do formato de impressão */
.overlay .impr-box{position:relative;text-align:left;max-width:760px;width:min(760px,96vw);max-height:94vh;overflow:auto}
.impr-x{position:absolute;top:10px;right:10px;background:none;border:0;color:var(--muted);font-size:18px;cursor:pointer}
.impr-prev iframe{width:100%;height:60vh;border:1px solid var(--line);border-radius:10px;background:#fff}
.impr-prev iframe.estreito{max-width:360px;display:block;margin:0 auto}
.impr-cel{padding:16px;border:1px dashed var(--line);border-radius:12px;text-align:center;margin-top:8px}
.impr-status{margin-bottom:8px}
/* 🍀 cupom não premiado no instantâneo */
.overlay .nao-prem-box{max-width:440px;width:min(440px,92vw);text-align:center}
.nao-prem-box .np-ic{font-size:54px;line-height:1}
.nao-prem-box h2{margin:8px 0;font-size:22px;line-height:1.25}
.nao-prem-box .np-btn{width:100%;font-size:18px;margin-top:8px}
.soc-outras{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px}
.soc-outras:empty{display:none}
.soc-rede{display:inline-flex;gap:6px;align-items:center;padding:8px 12px;border-radius:999px;background:#ffffff14;border:1px solid #ffffff2a;color:inherit;text-decoration:none;font-weight:700;font-size:14px}
/* 📺 painel de sorteio oculto pela administração */
.stage.painel-oculto .placar,.stage.painel-oculto #globoBox,.stage.painel-oculto .ball,.stage.painel-oculto .prize .lbl,.stage.painel-oculto #premio,.stage.painel-oculto #chips,.stage.painel-oculto .quinainfo,.stage.painel-oculto #locBtn{display:none!important}
.painel-aviso{margin:0 0 10px;padding:12px 14px;border-radius:14px;border:1px dashed var(--gold);background:#ffd16614;text-align:center;line-height:1.45}
.painel-vis .aviso-suspenso{color:#ffb020;margin:6px 0}
.cupom-chegou.ja-cad h3{color:#ff6b6b;letter-spacing:.2px}
/* 🏆 legibilidade das telas de ganhadores (cliente e painel): fundos derivados do cartão + texto com contraste, no tema claro e no escuro */
:root{--okText:#3be08a;--goldText:#ffc83d;--dangerText:#ff8095;--winH1:linear-gradient(90deg,#ffe27a,#ffc83d,#ff9f1c,#ffc83d,#ffe27a)}
.winners div{background:color-mix(in srgb,var(--ok) 14%,var(--card));color:var(--text);border:1px solid var(--ok)}
.winners div b{color:var(--text)}
.winners .wq{background:color-mix(in srgb,var(--gold) 16%,var(--card));border-color:var(--gold)}
.winners .wg{background:color-mix(in srgb,#3ab7ff 14%,var(--card));border-color:#3ab7ff}
.winners a{color:var(--okText);font-weight:700}
.winbox{color:var(--text)}
.winbox h1{background-image:var(--winH1)}
.winbox .ganhou{color:var(--text)}
.premiobox{background:color-mix(in srgb,var(--ok) 14%,var(--card));color:var(--text)}
.premiobox span{color:var(--okText);font-weight:800}
.premiobox b{color:var(--text)}
.premiobox small{color:var(--text);opacity:.85}
.pill.ok{background:color-mix(in srgb,var(--ok) 18%,var(--card));color:var(--okText)}
.pill.off{background:color-mix(in srgb,var(--danger) 16%,var(--card));color:var(--dangerText)}
.pill.pend{background:color-mix(in srgb,var(--gold) 18%,var(--card));color:var(--goldText)}
.btn.green{background:var(--ok);color:#002a14;border-color:color-mix(in srgb,var(--ok) 70%,#000)}
.btn.green:focus-visible,.btn:focus-visible{outline:3px solid var(--text);outline-offset:2px}
.cupom-ok h3{color:var(--okText)}
.inst-res.ok{color:var(--text)}
.win-divisao{margin:8px 0 4px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--gold) 14%,var(--card));border:1px solid var(--gold);color:var(--text);font-size:15px;line-height:1.45}
.win-divisao b{color:var(--text)}
.audio-ativar{align-self:center;flex:none;background:var(--gold);color:var(--btnText);font-weight:900;font-size:15px;padding:10px 14px;border-radius:12px;animation:pulsa 1.4s ease-in-out infinite}
@keyframes pulsa{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.overlay .aviso-cupom-box{max-width:440px;width:min(440px,92vw);text-align:center}
.aviso-cupom-box .ac-ic{font-size:52px;line-height:1}
.aviso-cupom-box h2{margin:10px 0 8px;font-size:20px;line-height:1.3;color:var(--dangerText)}
.aviso-cupom-box p{margin:0 0 14px;color:var(--text)}
.premiacao-box{border:2px solid var(--gold)}
.premiacao-box.concluida{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--card))}
.premiacao-box.concluida h2{color:var(--okText)}
.premiacao-box .btn{width:100%;font-size:16px;padding:14px}
