:root{
  color-scheme: dark;
  --navy-900:#0B1728;
  --navy-800:#101F38;
  --navy-700:#152849;
  --navy-600:#1B3358;
  --navy-500:#21396A;
  --blue-400:#4A7CBE;
  --blue-200:#ADDBFF;
  --amber:#FF8A00;
  --amber-soft:#FFB854;
  --cream:#FFF6E8;
  --slate:#8FA3C4;
  --slate-dim:#5D7096;
  --danger:#E05B4B;
  --ok:#4FB286;

  --f-display:"Archivo Black","Arial Black",system-ui,sans-serif;
  --f-body:"Roboto","Helvetica Neue",Arial,sans-serif;
  --f-mono:"Roboto Mono",ui-monospace,Menlo,monospace;

  --r-sm:8px; --r-md:14px; --r-lg:22px;
  --shadow:0 24px 60px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
/* .tela e .lgpd definem display, e sem isto o atributo hidden perderia para eles */
[hidden]{display:none!important}
body{
  margin:0;
  font-family:var(--f-body);
  background:var(--navy-900);
  color:var(--cream);
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
}
#app{
  min-height:100vh;
  display:flex;
  justify-content:center;
  background:
    radial-gradient(900px 460px at 50% -8%, rgba(255,138,0,.20), transparent 62%),
    radial-gradient(700px 500px at 50% 108%, rgba(74,124,190,.20), transparent 60%),
    var(--navy-900);
  padding:0 16px 44px;
}
.stage{width:100%;max-width:430px;display:flex;flex-direction:column;gap:18px;padding-top:22px}

/* ---------- marca ---------- */
.brand{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand svg{height:30px;width:auto;display:block}
.brand svg path{fill:var(--cream)}
.eyebrow{
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue-200);font-weight:700;text-align:right;line-height:1.5;
}
.eyebrow b{display:block;color:var(--slate);font-weight:400;letter-spacing:.08em}

/* ---------- telas ---------- */
.tela{display:flex;flex-direction:column;gap:18px;animation:entra .45s cubic-bezier(.2,.8,.3,1) both}
@keyframes entra{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

h1{
  font-family:var(--f-display);
  font-size:clamp(26px,8vw,33px);   /* "Raspadinha Premiada" cabe em uma linha até 360px */
  line-height:1.02;margin:0;
  letter-spacing:-.015em;
  white-space:nowrap;
}
h1 em{font-style:normal;color:var(--amber)}
.lead{margin:0;color:var(--slate);font-size:15px;line-height:1.55}

/* ---------- faixa: brindes na hora e o sorteio no final ---------- */
.faixa{
  display:flex;flex-direction:column;gap:10px;
  padding:11px 12px;border-radius:var(--r-md);
  border:1px solid rgba(74,124,190,.32);
  background:linear-gradient(170deg,var(--navy-700),var(--navy-800));
}
.faixa-linha{display:flex;align-items:center;gap:10px}
.faixa-linha + .faixa-linha{border-top:1px solid rgba(74,124,190,.22);padding-top:10px}
.faixa p{margin:0;font-size:12.5px;line-height:1.4;color:var(--cream)}
.faixa p b{color:var(--amber-soft);font-weight:700}
.minis{display:flex;gap:5px;flex:0 0 auto}
.mini{
  width:38px;height:38px;border-radius:9px;
  background:linear-gradient(160deg,#FDFAF4,#DFE7F2);
  position:relative;overflow:hidden;
}
.mini img,.mini svg{
  position:absolute;inset:4px;
  width:calc(100% - 8px);height:calc(100% - 8px);
  object-fit:contain;display:block;
}

/* ---------- formulário ---------- */
form{display:flex;flex-direction:column;gap:10px}
.campo{display:flex;flex-direction:column;gap:5px}
.dupla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-200)}
input,select{
  font-family:var(--f-body);font-size:16px;color:var(--cream);
  background:var(--navy-800);
  border:1.5px solid rgba(74,124,190,.34);
  border-radius:var(--r-sm);
  padding:11px 12px;
  width:100%;
  appearance:none;
  transition:border-color .18s, box-shadow .18s;
}
select{
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ADDBFF' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;background-size:16px;
  padding-right:34px;
}
input::placeholder{color:var(--slate-dim)}
input:focus,select:focus,button:focus-visible,.linkinho:focus-visible{
  outline:none;border-color:var(--amber);
  box-shadow:0 0 0 3px rgba(255,138,0,.22);
}
button:focus-visible,.linkinho:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.campo.erro input,.campo.erro select{border-color:var(--danger)}
.msg-erro{margin:0;font-size:12px;color:var(--danger);min-height:0}
.campo.erro .msg-erro{min-height:16px}

.lgpd{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--slate);line-height:1.5;text-transform:none;letter-spacing:0;font-weight:400}
.lgpd input[type=checkbox]{
  appearance:auto;-webkit-appearance:checkbox;
  width:19px;height:19px;flex:0 0 19px;margin:1px 0 0;padding:0;
  border:none;background:none;border-radius:5px;
  accent-color:var(--amber);
}

.btn{
  font-family:var(--f-body);font-size:16px;font-weight:700;
  border:none;border-radius:var(--r-sm);
  padding:15px;cursor:pointer;
  background:linear-gradient(180deg,var(--amber-soft),var(--amber));
  color:#231000;
  box-shadow:0 8px 22px rgba(255,138,0,.28);
  transition:transform .12s, box-shadow .18s;
}
.btn:active{transform:translateY(1px);box-shadow:0 4px 14px rgba(255,138,0,.24)}
.btn.fantasma{
  background:transparent;color:var(--blue-200);
  border:1.5px solid rgba(74,124,190,.45);box-shadow:none;font-weight:500;
}

/* ---------- bilhete ---------- */
.saudacao{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.saudacao strong{font-family:var(--f-display);font-size:19px;font-weight:400}
.saudacao span{font-family:var(--f-mono);font-size:11px;color:var(--slate-dim);letter-spacing:.06em}

.bilhete{
  background:linear-gradient(168deg,#1D3556,var(--navy-700) 46%,#101F38);
  border:1px solid rgba(173,219,255,.2);
  border-radius:var(--r-lg);
  padding:16px 16px 18px;
  box-shadow:var(--shadow);
  position:relative;
}
.bilhete-topo{
  display:flex;justify-content:space-between;align-items:center;
  padding-bottom:13px;
}
.bilhete-topo .titulo{
  font-family:var(--f-display);font-size:13px;letter-spacing:.02em;color:var(--cream);
}
.bilhete-topo .regra{
  font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--amber-soft);
}
.picote{
  border-top:2px dashed rgba(173,219,255,.26);
  margin:0 -16px 16px;
}
.raspa-area{
  position:relative;
  border-radius:var(--r-md);
  overflow:hidden;
  aspect-ratio:1/1;
  background:var(--navy-900);
  touch-action:none;
}
.grade{
  position:absolute;inset:0;
  display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);
  gap:2px;background:rgba(74,124,190,.16);
}
.cel{
  background:linear-gradient(158deg,#FDFAF4,#DCE5F1);
  display:flex;align-items:center;justify-content:center;
  padding:11%;
  position:relative;
}
.cel img,.cel svg{
  position:absolute;inset:11%;
  width:78%;height:78%;
  object-fit:contain;display:block;
}
.cel.premiada{background:linear-gradient(158deg,#FFF6E6,#FFD9A3)}
.cel.premiada::after{
  content:"";position:absolute;inset:0;
  box-shadow:inset 0 0 0 2.5px var(--amber);
}
.cel.premiada img,.cel.premiada svg{filter:drop-shadow(0 3px 7px rgba(120,60,0,.3))}
#foil{position:absolute;inset:0;width:100%;height:100%;display:block;transition:opacity .45s ease}

.progresso{margin-top:14px;display:flex;align-items:center;gap:11px}
.barra{flex:1;height:6px;border-radius:99px;background:rgba(74,124,190,.24);overflow:hidden}
.barra i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue-400),var(--amber));transition:width .14s linear}
.progresso span{font-family:var(--f-mono);font-size:11px;color:var(--slate);min-width:74px;text-align:right}

/* ---------- resultado ---------- */
.resultado{
  background:linear-gradient(168deg,#1D3556,var(--navy-700) 50%,#101F38);
  border:1px solid rgba(173,219,255,.2);
  border-radius:var(--r-lg);
  padding:30px 22px 26px;
  text-align:center;
  box-shadow:var(--shadow);
  display:flex;flex-direction:column;align-items:center;gap:15px;
}
.resultado.ganhou{border-color:rgba(255,138,0,.5)}
.halo{
  width:152px;height:152px;border-radius:50%;
  position:relative;
  background:linear-gradient(160deg,#FFF6E6,#FFD9A3);
  box-shadow:0 0 0 8px rgba(255,138,0,.18), 0 14px 34px rgba(255,138,0,.24);
  animation:pulsa 2.6s ease-in-out infinite;
}
.resultado.perdeu .halo{
  background:linear-gradient(160deg,#FDFAF4,#DCE5F1);
  box-shadow:0 0 0 8px rgba(74,124,190,.14);
  animation:none;
}
@keyframes pulsa{0%,100%{transform:scale(1)}50%{transform:scale(1.055)}}
.halo img,.halo svg{position:absolute;inset:26px;width:calc(100% - 52px);height:calc(100% - 52px);object-fit:contain;display:block}
.resultado h2{font-family:var(--f-display);font-size:26px;margin:0;line-height:1.12;text-wrap:balance}
.resultado p{margin:0;color:var(--slate);font-size:14.5px;line-height:1.55;max-width:32ch}
.codigo{
  font-family:var(--f-mono);font-weight:500;font-size:27px;letter-spacing:.16em;
  color:var(--amber);
  background:rgba(255,138,0,.09);
  border:1.5px dashed rgba(255,138,0,.5);
  border-radius:var(--r-sm);
  padding:13px 20px;
}
.retirada{
  font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;
  color:var(--blue-200);
}
.aviso{font-size:12px;color:var(--slate-dim);font-family:var(--f-mono)}
.resultado .btn{width:100%}

/* ---------- rodapé ---------- */
footer{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding-top:6px;
  font-size:11px;color:var(--slate-dim);
}
.linkinho{
  background:none;border:none;padding:4px 0;cursor:pointer;
  font-family:var(--f-body);font-size:11px;color:var(--slate-dim);
  text-decoration:underline;text-underline-offset:3px;
}

/* ---------- painel do estande ---------- */
.painel-pagina{max-width:560px}
a.linkinho{color:var(--slate-dim)}
.linha select{width:auto;max-width:58%;padding:9px 34px 9px 11px;font-size:13.5px}
.bloco{padding:17px 0;border-bottom:1px solid rgba(74,124,190,.16)}
.bloco:last-child{border-bottom:none}
.bloco > h4{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-200);
  margin:0 0 12px;font-weight:700;
}
.linha{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0}
.linha > span{font-size:13.5px;color:var(--cream)}
.linha small{display:block;font-size:11px;color:var(--slate-dim);margin-top:2px;line-height:1.4}
.linha input[type=number]{width:96px}
.linha input[type=time]{width:124px;padding:8px 10px;font-size:14px;text-align:right;font-family:var(--f-mono)}
.linha input[type=date]{width:auto;padding:8px 10px;font-size:14px;font-family:var(--f-mono);color-scheme:dark}
.linha input[type=range]{width:150px;accent-color:var(--amber)}
.abas{display:flex;gap:7px}
.aba{
  flex:1;padding:10px;border-radius:var(--r-sm);cursor:pointer;font-size:13px;font-weight:700;
  background:var(--navy-700);border:1.5px solid transparent;color:var(--slate);
  font-family:var(--f-body);
}
.aba[aria-pressed=true]{border-color:var(--amber);color:var(--cream);background:var(--navy-600)}
.chave{
  width:46px;height:27px;border-radius:99px;border:none;cursor:pointer;flex:0 0 46px;
  background:rgba(74,124,190,.34);position:relative;transition:background .2s;
}
.chave::after{
  content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;
  background:var(--cream);transition:transform .2s;
}
.chave[aria-pressed=true]{background:var(--amber)}
.chave[aria-pressed=true]::after{transform:translateX(19px)}

.estoques{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:6px}
.est{
  background:var(--navy-700);border-radius:var(--r-md);padding:11px 10px;
  border:1px solid rgba(74,124,190,.24);text-align:center;
}
.est b{display:block;font-family:var(--f-mono);font-size:23px;color:var(--cream);font-variant-numeric:tabular-nums;line-height:1.15}
.est b i{font-style:normal;font-size:13px;color:var(--slate-dim)}
.est span{font-size:10.5px;color:var(--blue-200);letter-spacing:.05em;text-transform:uppercase;font-weight:700}
.est.vazio{border-color:rgba(224,91,75,.5)}
.est.vazio b{color:var(--danger)}
.est.baixo{border-color:rgba(255,138,0,.45)}

.placar{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.pl{background:var(--navy-700);border-radius:var(--r-sm);padding:10px 12px}
.pl b{display:block;font-family:var(--f-mono);font-size:19px;font-variant-numeric:tabular-nums}
.pl span{font-size:11px;color:var(--slate)}

.tabela{width:100%;overflow-x:auto;margin-top:6px}
table{border-collapse:collapse;width:100%;font-size:12px;min-width:420px}
th{
  text-align:left;font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--slate-dim);padding:7px 9px;border-bottom:1px solid rgba(74,124,190,.24);font-weight:700;
}
td{padding:8px 9px;border-bottom:1px solid rgba(74,124,190,.11);color:var(--cream);white-space:nowrap}
td.mono{font-family:var(--f-mono);color:var(--slate);font-variant-numeric:tabular-nums}
.vazio-msg{color:var(--slate-dim);font-size:12.5px;padding:14px 0;text-align:center}
.acoes{display:flex;gap:9px;margin-top:13px;flex-wrap:wrap}
.acoes .btn{flex:1;padding:12px;font-size:13.5px;min-width:130px}
textarea{
  width:100%;height:130px;margin-top:11px;font-family:var(--f-mono);font-size:11px;
  background:var(--navy-900);color:var(--slate);border:1px solid rgba(74,124,190,.3);
  border-radius:var(--r-sm);padding:10px;resize:vertical;
}
.dica{font-size:11.5px;color:var(--slate-dim);line-height:1.5;margin:9px 0 0}
.dica b{color:var(--blue-200);font-weight:500}
.dica.alerta,.dica.alerta b{color:var(--danger)}

#confete{position:fixed;inset:0;pointer-events:none;z-index:60;display:block}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* ---------- sorteio do Giovane ---------- */
.sorteio-tag{
  display:inline-block;vertical-align:middle;margin:0 6px 2px 0;
  font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#231000;background:linear-gradient(180deg,var(--amber-soft),var(--amber));
  border-radius:99px;padding:3px 8px;
}
.sorteio-thumb{flex:0 0 52px;width:52px;height:52px;object-fit:contain;display:block}
/* o kit do Giovane na página final: a composição do mockup, kit à esquerda
   e o Giovane à direita, sobre o azul do app. As duas fotos têm fundo
   transparente, então é só posicionar. */
.kit{
  width:100%;margin-top:4px;border-radius:var(--r-lg);overflow:hidden;text-align:left;
  background:linear-gradient(170deg,#1B3358,#0F1E36);
  border:1px solid rgba(255,138,0,.45);
  box-shadow:0 0 0 1px rgba(255,138,0,.12), 0 16px 40px rgba(0,0,0,.4);
}
.kit-foto{
  position:relative;aspect-ratio:5/4;overflow:hidden;
  background:
    radial-gradient(70% 55% at 28% 88%, rgba(74,124,190,.55), transparent 70%),
    radial-gradient(60% 60% at 75% 30%, rgba(255,138,0,.16), transparent 65%),
    linear-gradient(160deg,#182F55,#0B1728);
}
.kit-foto img{position:absolute;bottom:0;width:auto;display:block;pointer-events:none}
.kit-foto .kit-premio{left:1%;height:66%;bottom:6%}
.kit-foto .kit-giovani{right:-3%;height:104%;bottom:-4%}
.kit-tag{
  position:absolute;top:12px;left:12px;z-index:1;
  font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#231000;background:linear-gradient(180deg,var(--amber-soft),var(--amber));
  border-radius:99px;padding:5px 10px;
}
.kit-texto{padding:14px 16px 16px;display:flex;flex-direction:column;gap:7px}
.kit-texto h3{font-family:var(--f-display);font-size:18px;line-height:1.15;margin:0;color:var(--cream);text-wrap:balance}
.resultado .kit-texto p{margin:0;font-size:13px;line-height:1.5;color:var(--slate);max-width:none}
.resultado .kit-texto .kit-numero{font-family:var(--f-mono);font-size:12px;color:var(--amber-soft);letter-spacing:.04em}
.vencedor{
  background:linear-gradient(160deg,#FFF6E6,#FFD9A3);color:#231000;border-radius:var(--r-md);
  padding:14px 16px;margin-top:11px;
}
.vencedor small{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#7a4a00;font-weight:700}
.vencedor b{display:block;font-family:var(--f-display);font-size:20px;line-height:1.15;margin:4px 0 2px}
.vencedor span{display:block;font-size:13px}
.vencedor.anulado{opacity:.55}
.linha input[type=text]{width:100%}
