/**
 * Bilhete de Bairro — editorial popular contemporâneo.
 * Marfim acolhedor, azul-marinho preciso e coral de ação; pontilhados como talões destacáveis.
 */
:root { --primaria: #e94b3c; --marinho: #14223a; --marfim: #f7f1e6; --amarelo: #efb53d; --turquesa: #2a9d9f; --texto: #1f2d3d; --borda: #dbcdb9; --suave: #efe5d5; --erro: #a82d24; --sucesso: #166649; }
* { box-sizing: border-box; }
html { background: var(--marfim); }
body { margin: 0; color: var(--texto); background: radial-gradient(circle at 88% 7%, rgba(239,181,61,.22), transparent 23rem), var(--marfim); font-family: Manrope, system-ui, sans-serif; font-size: 16px; line-height: 1.5; }
a { color: var(--marinho); }
button, input, select, textarea { font: inherit; }
.site-header { max-width: 1160px; margin: 0 auto; padding: 26px 24px 0; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.marca { color: var(--marinho); text-decoration: none; font-weight: 800; letter-spacing: -.02em; display: inline-flex; align-items: center; gap: 11px; }
.marca__simbolo { width: 42px; height: 42px; display: grid; place-items: center; color: white; font-family: Georgia, serif; background: var(--primaria); border-radius: 12px 12px 5px 12px; box-shadow: 5px 5px 0 var(--amarelo); }
.marca__logo { width: 42px; height: 42px; object-fit: contain; }
.tag { color: var(--marinho); background: #fff9ee; border: 1px solid var(--borda); border-radius: 999px; padding: 6px 11px; font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pagina-publica { min-height: calc(100vh - 90px); max-width: 1160px; padding: 42px 24px 48px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(330px, .96fr); gap: clamp(32px, 8vw, 110px); align-items: center; }
.intro { padding: 20px 0; }
.selo { color: var(--primaria); display: inline-flex; gap: 8px; align-items: center; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 800; }
.selo::before { content: ''; display: block; width: 29px; height: 3px; background: var(--primaria); }
h1, h2 { font-family: "DM Serif Display", Georgia, serif; color: var(--marinho); letter-spacing: -.045em; line-height: .98; }
h1 { font-size: clamp(3.3rem, 7vw, 6.4rem); max-width: 720px; margin: 14px 0 23px; }
h1 em { font-style: normal; color: var(--primaria); }
.intro__texto { max-width: 560px; font-size: 1.08rem; color: #435168; }
.lista-beneficios { list-style: none; padding: 0; margin: 31px 0 0; display: flex; gap: 10px; flex-wrap: wrap; }
.lista-beneficios li { color: var(--marinho); background: rgba(255,255,255,.53); border: 1px solid var(--borda); padding: 7px 10px; font-size: .83rem; font-weight: 700; }
.lista-beneficios li::before { content: '✦'; color: var(--primaria); margin-right: 7px; }
.formulario { position: relative; background: #fffdf9; border: 1px solid var(--borda); padding: clamp(23px, 4vw, 38px); box-shadow: 12px 12px 0 var(--marinho); }
.formulario::before, .formulario::after { content: ''; position: absolute; left: -1px; right: -1px; height: 8px; background: radial-gradient(circle at 5px -1px, transparent 5px, var(--marfim) 5.5px) 0 0 / 10px 10px repeat-x; }
.formulario::before { top: -1px; } .formulario::after { bottom: -1px; transform: rotate(180deg); }
.formulario h2 { margin: 0 0 6px; font-size: 2.2rem; }
.formulario__subtitulo { margin: 0 0 26px; color: #5f6878; font-size: .93rem; }
.campo { display: grid; gap: 6px; margin-bottom: 17px; }
.campo label { color: var(--marinho); font-size: .83rem; font-weight: 800; letter-spacing: .025em; }
.requerido { color: var(--primaria); }
.campo input, .campo textarea, .campo select { color: var(--texto); background: #fff; border: 1px solid #cfc3b4; border-radius: 4px; padding: 12px 13px; outline: none; transition: border-color .18s ease, box-shadow .18s ease; }
.campo input:focus, .campo textarea:focus, .campo select:focus { border-color: var(--primaria); box-shadow: 0 0 0 3px rgba(233,75,60,.13); }
.campo textarea { min-height: 94px; resize: vertical; }
.consentimento { display: flex; align-items: start; gap: 10px; font-size: .8rem; color: #536073; margin: 3px 0 20px; }
.consentimento input { accent-color: var(--primaria); margin-top: 3px; width: 16px; height: 16px; }
.botao { display: inline-flex; width: 100%; justify-content: center; align-items: center; min-height: 49px; color: #fff; background: var(--primaria); border: 0; border-radius: 4px; padding: 11px 18px; font-weight: 800; cursor: pointer; box-shadow: 4px 4px 0 var(--marinho); transition: transform .16s cubic-bezier(.23,1,.32,1), box-shadow .16s cubic-bezier(.23,1,.32,1); }
.botao:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--marinho); }.botao:active { transform: scale(.97); box-shadow: 2px 2px 0 var(--marinho); }
.ajuda { font-size: .76rem; color: #647084; margin: 20px 0 0; text-align: center; }
.alerta { margin: 0 0 18px; padding: 11px 12px; border-left: 4px solid var(--erro); background: #fff0ed; color: #712118; font-size: .88rem; }.alerta--sucesso { border-color: var(--sucesso); background: #e9f8f1; color: #12543c; }
.honeypot { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; left: -9999px !important; }
.site-footer { max-width: 1160px; margin: 0 auto; padding: 0 24px 28px; display: flex; justify-content: space-between; gap: 15px; color: #657083; font-size: .75rem; }.site-footer a { color: inherit; }
.pagina-texto { max-width: 780px; margin: 35px auto 60px; padding: 0 24px; }.pagina-texto h1 { font-size: clamp(2.6rem, 6vw, 4.4rem); }.pagina-texto h2 { margin-top: 35px; font-size: 1.8rem; }.pagina-texto p { color: #455166; }
.agradecimento { max-width: 630px; margin: 9vh auto; padding: 42px; text-align: left; background: #fffdf9; border: 1px solid var(--borda); box-shadow: 12px 12px 0 var(--amarelo); }.agradecimento .marca__simbolo { margin-bottom: 27px; }
@media (max-width: 800px) { .site-header { padding-top: 18px; }.tag { display: none; }.pagina-publica { grid-template-columns: 1fr; padding-top: 25px; gap: 21px; }.intro { padding-top: 0; } h1 { font-size: clamp(3.1rem, 15vw, 5.4rem); }.formulario { box-shadow: 7px 7px 0 var(--marinho); }.site-footer { flex-direction: column; } .agradecimento { margin: 28px 20px; padding: 28px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }

/* Bilhete de Bairro — Painel: mesa de controle editorial, faixas operacionais e densidade legível. */
.admin-body { background: #f4efe6; }.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 254px minmax(0, 1fr); }.admin-sidebar { background: var(--marinho); color: #f9f1e4; min-height: 100vh; padding: 26px 17px 20px; display: flex; flex-direction: column; }.admin-sidebar .marca { color: #fff7ec; padding: 0 8px; }.admin-sidebar .marca__simbolo { width: 36px; height: 36px; box-shadow: 4px 4px 0 var(--amarelo); }.admin-nav { margin-top: 44px; display: grid; gap: 4px; }.admin-nav a { color: #cbd3e0; text-decoration: none; padding: 10px 12px; border-left: 3px solid transparent; font-size: .88rem; font-weight: 700; transition: background .16s ease, color .16s ease; }.admin-nav a:hover, .admin-nav a.ativo { background: rgba(255,255,255,.08); border-left-color: var(--amarelo); color: #fff; }.admin-sidebar__rodape { margin-top: auto; border-top: 1px solid rgba(255,255,255,.15); padding: 18px 8px 3px; display: grid; gap: 4px; font-size: .77rem; color: #bdc8d8; }.admin-sidebar__rodape strong { color: white; }.admin-sidebar__rodape a { color: #ffe1a2; margin-top: 7px; }.admin-sidebar__rodape small { margin-top: 13px; color: #8fa0b7; }.admin-conteudo { padding: 39px clamp(22px, 4vw, 59px) 55px; max-width: 1540px; width: 100%; }.admin-topo { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 33px; }.admin-topo h1 { font-size: clamp(2.7rem, 4.8vw, 4.6rem); margin: 8px 0 0; }.admin-topo__meta { border-left: 3px solid var(--primaria); padding: 5px 0 5px 12px; color: #6d7789; font-size: .78rem; text-align: right; }.admin-topo__meta strong { color: var(--marinho); }.metricas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin-bottom: 29px; }.metrica { background: #fffdf9; padding: 20px; border-top: 5px solid var(--marinho); }.metrica:nth-child(2) { border-color: var(--primaria); }.metrica:nth-child(3) { border-color: var(--amarelo); }.metrica:nth-child(4) { border-color: var(--turquesa); }.metrica span { display: block; color: #677287; font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }.metrica strong { display: block; color: var(--marinho); font-family: "DM Serif Display", Georgia, serif; font-size: 2.7rem; line-height: 1; margin-top: 10px; }.admin-grade { display: grid; grid-template-columns: 1.3fr .7fr; gap: 21px; }.painel { background: #fffdf9; border: 1px solid var(--borda); padding: clamp(18px, 2vw, 27px); }.painel h2 { margin: 0 0 17px; font-size: 1.6rem; }.painel__topo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 19px; }.painel__topo h2 { margin: 0; }.link-acao { color: var(--primaria); font-size: .83rem; font-weight: 800; }.filtros { display: flex; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }.filtros input, .filtros select { flex: 1 1 220px; min-height: 42px; padding: 9px 11px; border: 1px solid var(--borda); background: white; }.botao--secundario { color: var(--marinho); background: #fffdf9; border: 1px solid var(--marinho); box-shadow: none; width: auto; min-height: 40px; }.botao--perigo { background: var(--erro); }.botao--amarelo { color: var(--marinho); background: var(--amarelo); }.acoes { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }.acoes .botao { width: auto; min-height: 40px; font-size: .84rem; box-shadow: 3px 3px 0 var(--marinho); }.tabela-wrap { overflow-x: auto; }.tabela { width: 100%; border-collapse: collapse; font-size: .84rem; }.tabela th { color: #617084; background: #f5efe3; padding: 10px; text-align: left; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }.tabela td { padding: 12px 10px; border-bottom: 1px solid #eee5d8; vertical-align: middle; }.tabela tr:last-child td { border-bottom: 0; }.tabela a { font-weight: 800; }.status { display: inline-block; border-radius: 999px; padding: 4px 8px; font-size: .68rem; font-weight: 800; background: #e7edf5; color: #364a67; }.status--ganhou, .status--enviado { background: #e7f6ee; color: #126044; }.status--pendente { background: #fff0c9; color: #765200; }.status--erro { background: #fae1dd; color: #8b2b22; }.form-admin { max-width: 780px; }.form-admin .campo input, .form-admin .campo textarea, .form-admin .campo select { width: 100%; }.form-linha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }.form-linha--tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }.caixa-ajuda { background: #f8edd6; border-left: 4px solid var(--amarelo); padding: 13px; color: #5c4720; font-size: .84rem; margin-bottom: 18px; }.paginacao { display: flex; justify-content: end; gap: 8px; margin-top: 18px; font-size: .83rem; }.paginacao a { color: var(--marinho); border: 1px solid var(--borda); padding: 5px 8px; text-decoration: none; }.admin-login { max-width: 450px; min-height: 100vh; display: grid; place-items: center; margin: 0 auto; padding: 22px; }.admin-login .formulario { width: 100%; box-shadow: 9px 9px 0 var(--amarelo); }.senha-wrap { position: relative; }.senha-wrap input { width: 100%; padding-right: 48px; }.ver-senha { color: var(--marinho); background: transparent; border: 0; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); padding: 8px 10px; font-size: .76rem; font-weight: 800; cursor: pointer; }.divisor { border: 0; border-top: 1px solid var(--borda); margin: 28px 0; }.item-lista { display: flex; justify-content: space-between; gap: 18px; padding: 14px 0; border-bottom: 1px solid #eee5d8; }.item-lista:last-child { border-bottom: 0; }.item-lista p { margin: 5px 0 0; color: #657083; font-size: .83rem; }.chip { display: inline-flex; background: #f1eadf; color: #465165; padding: 4px 7px; font-size: .68rem; font-weight: 800; }.logo-preview { width: 120px; height: 120px; border: 1px dashed var(--borda); object-fit: contain; background: #fff; padding: 10px; }.inline-form { display: inline; }.admin-vazio { color: #647084; font-size: .9rem; padding: 17px 0; }
@media (max-width: 980px) { .admin-shell { grid-template-columns: 1fr; }.admin-sidebar { min-height: auto; padding: 16px; }.admin-nav { margin-top: 18px; display: flex; overflow-x: auto; }.admin-nav a { white-space: nowrap; }.admin-sidebar__rodape { display: none; }.metricas { grid-template-columns: repeat(2, 1fr); }.admin-grade { grid-template-columns: 1fr; }.admin-conteudo { padding: 25px 18px 40px; }.admin-topo__meta { display: none; } }.form-linha { grid-template-columns: 1fr; }.form-linha--tres { grid-template-columns: 1fr; }

/* Bilhete de Bairro — Sorteios: blocos compactos, sequência clara e energia de evento ao vivo. */
.sorteios-grade { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:21px; align-items:start; }.painel--criacao { padding:0; overflow:hidden; }.painel--criacao > .painel__topo { padding:28px clamp(21px,3vw,34px) 0; }.painel--criacao .painel__topo h2 { max-width:470px; font-size:clamp(1.8rem,3vw,2.5rem); }.sorteio-formulario { max-width:none; }.sorteio-secao { padding:28px clamp(21px,3vw,34px); border-top:1px solid #eee5d8; }.sorteio-secao__cabecalho { display:flex; gap:14px; align-items:flex-start; margin-bottom:23px; }.sorteio-secao__numero { width:31px; height:31px; display:grid; place-items:center; flex:none; color:#fff; background:var(--marinho); font-size:.72rem; font-weight:800; }.sorteio-secao h3, .historico-sorteio h3 { color:var(--marinho); font-family:"DM Serif Display",Georgia,serif; font-size:1.45rem; letter-spacing:-.025em; line-height:1; margin:0; }.sorteio-secao__cabecalho p { color:#687487; font-size:.82rem; margin:6px 0 0; }.sorteio-toggle { display:grid; grid-template-columns:auto 1fr; gap:11px; align-items:start; padding:14px 15px; color:var(--marinho); background:#f8edd6; border-left:3px solid var(--amarelo); cursor:pointer; }.sorteio-toggle input { position:absolute; opacity:0; }.sorteio-toggle__controle { width:19px; height:19px; border:2px solid var(--marinho); background:#fffdf9; margin-top:2px; display:grid; place-items:center; }.sorteio-toggle input:checked + .sorteio-toggle__controle { background:var(--primaria); border-color:var(--primaria); }.sorteio-toggle input:checked + .sorteio-toggle__controle::after { content:'✓'; color:#fff; font-size:.75rem; font-weight:800; }.sorteio-toggle strong { display:block; font-size:.85rem; }.sorteio-toggle small { display:block; color:#657083; font-size:.76rem; line-height:1.45; margin-top:3px; }.premios-editor { background:linear-gradient(110deg,#fffdf9 0%,#fcf8f1 100%); }.premios-editor__cabecalho { margin-bottom:18px; }.premios-lista { display:grid; gap:12px; }.premio-editor { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 118px; gap:13px; align-items:end; background:#fff; border:1px solid var(--borda); padding:17px; box-shadow:4px 4px 0 rgba(20,34,58,.07); }.premio-editor::before { content:''; position:absolute; inset:0 auto 0 0; width:4px; background:var(--primaria); }.premio-editor__topo { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; border-bottom:1px dashed #dfd2c1; padding-bottom:10px; }.premio-editor__indice { color:var(--marinho); font-size:.74rem; text-transform:uppercase; letter-spacing:.09em; font-weight:800; }.premio-editor__indice b { color:var(--primaria); }.premio-editor .campo { margin-bottom:0; }.premio-editor__quantidade input { max-width:118px; }.botao-icone { display:grid; place-items:center; width:30px; height:30px; padding:0; color:#8d342b; background:#fff1ed; border:1px solid #edc0b9; border-radius:0; font-size:1.35rem; line-height:1; cursor:pointer; transition:transform .16s cubic-bezier(.23,1,.32,1),background .16s ease; }.botao-icone:hover:not(:disabled) { color:#fff; background:var(--erro); transform:rotate(5deg); }.botao-icone:disabled { opacity:.38; cursor:not-allowed; }.botao-adicionar-premio { display:inline-flex; align-items:center; gap:8px; margin-top:15px; padding:9px 0; color:var(--primaria); background:transparent; border:0; font-size:.85rem; font-weight:800; cursor:pointer; }.botao-adicionar-premio span { display:grid; place-items:center; width:21px; height:21px; color:#fff; background:var(--primaria); border-radius:50%; font-size:1.05rem; line-height:1; }.sorteio-formulario__rodape { display:flex; justify-content:space-between; align-items:center; gap:22px; padding:22px clamp(21px,3vw,34px) 30px; background:var(--marinho); }.sorteio-formulario__rodape p { max-width:390px; margin:0; color:#c9d2e0; font-size:.77rem; }.sorteio-formulario__rodape .botao { width:auto; min-width:180px; box-shadow:4px 4px 0 var(--amarelo); }.painel--historico { position:sticky; top:22px; }.painel--historico .painel__topo h2 { margin-top:8px; font-size:2.05rem; }.historico-sorteios { display:grid; gap:11px; }.historico-sorteio { padding:16px; background:#fff; border:1px solid #e6dac9; }.historico-sorteio__status { display:flex; justify-content:space-between; gap:12px; align-items:center; color:#748095; font-size:.72rem; margin-bottom:14px; }.historico-sorteio h3 { font-size:1.28rem; }.historico-sorteio dl { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:17px 0 12px; }.historico-sorteio dl div { padding-left:9px; border-left:2px solid var(--amarelo); }.historico-sorteio dt { color:#778296; font-size:.65rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.historico-sorteio dd { color:var(--marinho); font-family:"DM Serif Display",Georgia,serif; font-size:1.45rem; line-height:1; margin:3px 0 0; }.historico-sorteio > p { margin:0 0 15px; color:#667287; font-size:.74rem; }.historico-sorteio__abrir { display:flex; justify-content:space-between; color:var(--primaria); font-size:.8rem; font-weight:800; text-decoration:none; }.historico-sorteio__abrir span { font-size:1.05rem; transition:transform .16s cubic-bezier(.23,1,.32,1); }.historico-sorteio__abrir:hover span { transform:translateX(3px); }.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:1100px) { .sorteios-grade { grid-template-columns:1fr; }.painel--historico { position:static; }.historico-sorteios { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .premio-editor { grid-template-columns:1fr; gap:14px; }.premio-editor__topo { grid-column:1; }.premio-editor__quantidade input { max-width:none; }.sorteio-formulario__rodape { display:grid; }.sorteio-formulario__rodape .botao { width:100%; }.historico-sorteios { grid-template-columns:1fr; }.sorteio-secao__cabecalho { gap:10px; }.sorteio-secao { padding:24px 18px; } }

/* Bilhete de Bairro — Palco: uma máquina de sorteio sóbria, focada e legível em telão. */
.sorteio-execucao { margin-top:-4px; }.sorteio-execucao__cabecalho { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:15px; }.voltar-sorteios { color:var(--marinho); font-size:.8rem; font-weight:800; text-decoration:none; }.voltar-sorteios span { color:var(--primaria); font-size:1.1rem; margin-right:5px; }.sorteio-execucao__status { display:flex; align-items:center; gap:10px; color:#738095; font-size:.75rem; }.sorteio-palco { position:relative; overflow:hidden; min-height:640px; color:#fff; background:radial-gradient(circle at 12% 12%,rgba(239,181,61,.24),transparent 18rem),radial-gradient(circle at 86% 83%,rgba(42,157,159,.18),transparent 24rem),var(--marinho); padding:clamp(21px,4vw,55px); box-shadow:12px 12px 0 var(--amarelo); }.sorteio-palco::before { content:''; position:absolute; inset:12px; pointer-events:none; border:1px solid rgba(255,255,255,.15); }.sorteio-palco__topo { position:relative; z-index:1; display:flex; justify-content:space-between; gap:16px; align-items:start; }.sorteio-palco .selo { color:#ffd882; }.sorteio-palco .selo::before { background:var(--amarelo); }.sorteio-palco__topo p { margin:5px 0 0; color:#c4cfdf; font-size:.82rem; }.tela-cheia { display:inline-flex; align-items:center; gap:8px; color:#f8f0e3; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.22); padding:8px 10px; font-size:.73rem; font-weight:800; cursor:pointer; }.tela-cheia span:first-child { font-size:1.1rem; }.sorteio-premio-atual { position:relative; z-index:1; display:grid; grid-template-columns:auto 1fr auto; gap:15px; align-items:center; max-width:900px; margin:clamp(42px,8vh,89px) auto 28px; }.sorteio-premio-atual__marca { display:grid; place-items:center; width:45px; height:45px; color:var(--marinho); background:var(--amarelo); font-size:1.25rem; transform:rotate(-7deg); }.sorteio-premio-atual > div > span { display:block; color:#a8b8ce; font-size:.68rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }.sorteio-premio-atual h2 { color:#fff9ef; font-size:clamp(2rem,4vw,3.9rem); margin:4px 0; }.sorteio-premio-atual p { max-width:500px; margin:0; color:#c3cede; font-size:.85rem; }.sorteio-premio-atual dl { display:flex; gap:24px; margin:0; }.sorteio-premio-atual dt { color:#90a2ba; font-size:.63rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.sorteio-premio-atual dd { margin:4px 0 0; color:#fff; font-family:"DM Serif Display",Georgia,serif; font-size:1.3rem; }.roleta { position:relative; z-index:1; display:grid; place-items:center; min-height:220px; max-width:900px; margin:0 auto; text-align:center; overflow:hidden; }.roleta::before,.roleta::after { content:''; position:absolute; z-index:1; left:0; right:0; height:72px; pointer-events:none; }.roleta::before { top:0; background:linear-gradient(var(--marinho),transparent); }.roleta::after { bottom:0; background:linear-gradient(transparent,var(--marinho)); }.roleta__nome { position:relative; z-index:2; color:#fff9ef; font-family:"DM Serif Display",Georgia,serif; font-size:clamp(2.3rem,6vw,6rem); letter-spacing:-.05em; line-height:.95; max-width:900px; padding:0 18px; text-wrap:balance; transition:transform .11s linear,filter .11s linear,opacity .11s linear; }.is-rodando .roleta__nome { transform:translateY(-4px) scale(.98); filter:blur(.6px); opacity:.9; }.roleta__nome.is-vencedor { color:#ffd882; text-shadow:0 0 28px rgba(239,181,61,.26); animation:vencedorEntrada .72s cubic-bezier(.23,1,.32,1) both; }.roleta__ruido { position:absolute; z-index:0; width:100%; color:#6e829f; font-family:"DM Serif Display",Georgia,serif; font-size:clamp(1.4rem,3vw,2.8rem); letter-spacing:-.035em; opacity:.64; transition:transform .1s linear,filter .1s linear; }.roleta__ruido--acima { top:23px; transform:translateY(-8px); filter:blur(2px); }.roleta__ruido--abaixo { bottom:23px; transform:translateY(8px); filter:blur(2px); }.is-rodando .roleta__ruido--acima { animation:rolarAcima .11s linear infinite alternate; }.is-rodando .roleta__ruido--abaixo { animation:rolarAbaixo .11s linear infinite alternate; }.roleta__linha { position:absolute; z-index:3; left:10%; right:10%; height:1px; background:rgba(255,216,130,.62); }.sorteio-acao { position:relative; z-index:1; display:grid; place-items:center; gap:15px; margin:20px auto 0; text-align:center; }.sorteio-acao p { max-width:530px; margin:0; color:#b8c5d7; font-size:.76rem; }.botao--sortear { width:auto; min-width:255px; min-height:58px; color:var(--marinho); background:var(--amarelo); box-shadow:5px 5px 0 rgba(255,255,255,.68); font-size:1.02rem; text-transform:uppercase; letter-spacing:.06em; }.botao--sortear span { margin-right:7px; }.botao--sortear:disabled { opacity:.7; cursor:wait; transform:none; }.sorteio-acao__mensagem { min-height:20px; color:#ffd882; font-size:.79rem; font-weight:700; }.sorteio-revelacao { position:absolute; z-index:5; inset:0; display:grid; align-content:center; justify-items:center; padding:28px; text-align:center; background:radial-gradient(circle at center,rgba(233,75,60,.26),transparent 22rem),rgba(20,34,58,.96); animation:revelacaoFundo .36s ease-out both; }.sorteio-revelacao__selo { color:var(--marinho); background:var(--amarelo); padding:6px 10px; font-size:.7rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }.sorteio-revelacao h2 { color:#fff9ef; font-size:clamp(3.4rem,10vw,8rem); max-width:980px; margin:20px 0 10px; animation:vencedorEntrada .72s cubic-bezier(.23,1,.32,1) .09s both; }.sorteio-revelacao p { color:#d8e0eb; margin:0; font-size:1rem; }.sorteio-revelacao__parabens { color:#ffd882 !important; font-family:"DM Serif Display",Georgia,serif; font-size:1.8rem !important; margin-top:14px !important; }.botao--continuar { position:relative; z-index:2; width:auto; min-width:220px; margin-top:30px; }.confetes { position:absolute; z-index:1; inset:0; overflow:hidden; pointer-events:none; }.confetes i { position:absolute; top:-18px; left:var(--x); width:8px; height:15px; background:var(--amarelo); animation:confete 1.5s cubic-bezier(.14,.71,.46,1) var(--atraso) both; transform:rotate(var(--giro)); }.confetes i:nth-child(3n) { background:var(--primaria); }.confetes i:nth-child(4n) { background:var(--turquesa); }.sorteio-encerrado { position:relative; overflow:hidden; padding:clamp(32px,7vw,76px); text-align:center; color:#fff; background:var(--marinho); box-shadow:10px 10px 0 var(--amarelo); }.sorteio-encerrado__marca { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 25px; color:var(--marinho); background:var(--amarelo); font-size:1.5rem; }.sorteio-encerrado h2 { color:#fff9ef; font-size:clamp(2.3rem,5vw,4.6rem); max-width:700px; margin:12px auto; }.sorteio-encerrado p { max-width:500px; margin:0 auto 28px; color:#c5d0df; }.sorteio-encerrado .acoes { justify-content:center; }.resultados-sorteio { margin-top:34px; padding:clamp(20px,3vw,34px); background:#fffdf9; border:1px solid var(--borda); }.resultados-sorteio .painel__topo h2 { margin-top:8px; font-size:2.1rem; }.resultados-sorteio__grade { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.resultado-cartao { position:relative; display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:start; min-height:122px; padding:16px; overflow:hidden; background:#fff; border:1px solid #e7dbca; }.resultado-cartao__ordem { display:grid; place-items:center; width:33px; height:33px; color:var(--marinho); background:var(--amarelo); font-family:"DM Serif Display",Georgia,serif; font-size:1rem; }.resultado-cartao p { margin:0; color:#6d7889; font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.resultado-cartao h3 { color:var(--marinho); font-family:"DM Serif Display",Georgia,serif; font-size:1.55rem; letter-spacing:-.025em; line-height:1; margin:7px 0; }.resultado-cartao div > span { color:#768297; font-size:.7rem; }.resultado-cartao__marca { color:#f3ddae; font-size:1.1rem; }.sorteio-palco:fullscreen { width:100%; min-height:100vh; padding:clamp(32px,6vw,92px); }.sorteio-palco:fullscreen .sorteio-premio-atual { margin-top:clamp(70px,12vh,140px); }.sorteio-palco:fullscreen .roleta { min-height:clamp(260px,35vh,430px); }.sorteio-palco:fullscreen .roleta__nome { font-size:clamp(4rem,10vw,11rem); }.sorteio-palco:fullscreen .sorteio-premio-atual h2 { font-size:clamp(3rem,6vw,6rem); }
@keyframes rolarAcima { from { transform:translateY(-6px); } to { transform:translateY(-17px); } } @keyframes rolarAbaixo { from { transform:translateY(6px); } to { transform:translateY(17px); } } @keyframes vencedorEntrada { from { opacity:0; transform:translateY(18px) scale(.96); } to { opacity:1; transform:translateY(0) scale(1); } } @keyframes revelacaoFundo { from { opacity:0; } to { opacity:1; } } @keyframes confete { 0% { transform:translate3d(0,0,0) rotate(var(--giro)); opacity:0; } 10% { opacity:1; } 100% { transform:translate3d(0,105vh,0) rotate(calc(var(--giro) + 360deg)); opacity:0; } }
@media (max-width:760px) { .sorteio-execucao__cabecalho { align-items:flex-start; flex-direction:column; }.sorteio-execucao__status { justify-content:space-between; width:100%; }.sorteio-palco { min-height:590px; padding:22px; box-shadow:6px 6px 0 var(--amarelo); }.sorteio-palco__topo { align-items:center; }.tela-cheia span:last-child { display:none; }.sorteio-premio-atual { grid-template-columns:auto 1fr; margin:48px 0 22px; }.sorteio-premio-atual dl { grid-column:1/-1; gap:21px; margin-top:4px; }.roleta { min-height:210px; }.roleta__nome { font-size:clamp(2.4rem,11vw,4.1rem); }.roleta__ruido { font-size:1.55rem; }.botao--sortear { width:100%; }.resultados-sorteio__grade { grid-template-columns:1fr; }.sorteio-revelacao h2 { font-size:clamp(3rem,15vw,5rem); } }

/* Bilhete de Bairro — Inscrição assistida: marca presente e ação principal na primeira dobra móvel. */
.formulario__marca-mobile { display:none; }
@media (max-width:800px) { .pagina-inscricao { min-height:100svh; background:radial-gradient(circle at 85% 0,rgba(239,181,61,.2),transparent 15rem),var(--marfim); }.pagina-inscricao .site-header { display:none; }.pagina-inscricao .pagina-publica { display:block; max-width:600px; min-height:0; padding:12px 16px 18px; }.pagina-inscricao .intro { display:none; }.pagina-inscricao .formulario { padding:17px 18px 16px; box-shadow:6px 6px 0 var(--marinho); }.pagina-inscricao .formulario__marca-mobile { display:flex; align-items:center; gap:12px; margin:0 0 15px; color:var(--marinho); text-decoration:none; }.pagina-inscricao .formulario__marca-mobile img, .pagina-inscricao .formulario__marca-mobile > span { width:58px; height:58px; flex:none; object-fit:contain; }.pagina-inscricao .formulario__marca-mobile > span { display:grid; place-items:center; color:#fff; background:var(--primaria); border-radius:12px 12px 5px 12px; box-shadow:5px 5px 0 var(--amarelo); font-family:Georgia,serif; font-size:1.3rem; }.pagina-inscricao .formulario__marca-mobile strong { min-width:0; overflow:hidden; color:var(--marinho); font-size:1rem; font-weight:800; letter-spacing:-.02em; text-overflow:ellipsis; white-space:nowrap; }.pagina-inscricao .formulario h2 { margin-bottom:4px; font-size:clamp(1.85rem,8vw,2.25rem); }.pagina-inscricao .formulario__subtitulo { margin-bottom:16px; font-size:.82rem; }.pagina-inscricao .campo { gap:5px; margin-bottom:10px; }.pagina-inscricao .campo label { font-size:.78rem; }.pagina-inscricao .campo input, .pagina-inscricao .campo textarea, .pagina-inscricao .campo select { min-height:42px; padding:9px 11px; }.pagina-inscricao .campo textarea { min-height:64px; }.pagina-inscricao .botao { min-height:47px; }.pagina-inscricao .ajuda { margin:12px 0 0; font-size:.71rem; }.pagina-inscricao .site-footer { max-width:600px; padding:0 18px 18px; font-size:.67rem; }.pagina-inscricao .site-footer span:first-child { display:none; } }
@media (max-width:800px) and (max-height:720px) { .pagina-inscricao .pagina-publica { padding-top:8px; }.pagina-inscricao .formulario { padding:14px 16px 13px; }.pagina-inscricao .formulario__marca-mobile { margin-bottom:10px; }.pagina-inscricao .formulario__marca-mobile img, .pagina-inscricao .formulario__marca-mobile > span { width:48px; height:48px; }.pagina-inscricao .formulario h2 { font-size:1.72rem; }.pagina-inscricao .formulario__subtitulo { margin-bottom:11px; }.pagina-inscricao .campo { margin-bottom:8px; }.pagina-inscricao .campo input, .pagina-inscricao .campo textarea, .pagina-inscricao .campo select { min-height:39px; padding:7px 10px; }.pagina-inscricao .botao { min-height:43px; }.pagina-inscricao .ajuda { margin-top:9px; }.pagina-inscricao .site-footer { padding-bottom:12px; } }

/* A revelação só pode ocupar o palco após o JavaScript remover o atributo hidden. */
.sorteio-revelacao[hidden] { display:none !important; }

/* Bilhete de Bairro — Contato de ganhadores: cards acionáveis, dados completos e foco operacional. */
.resultados-sorteio__ajuda { margin:-7px 0 18px; color:#718095; font-size:.78rem; }.resultado-cartao--clicavel { width:100%; color:inherit; text-align:left; cursor:pointer; font:inherit; transition:transform .16s cubic-bezier(.23,1,.32,1),box-shadow .16s cubic-bezier(.23,1,.32,1),border-color .16s ease; }.resultado-cartao--clicavel:hover { border-color:var(--primaria); box-shadow:5px 5px 0 rgba(20,34,58,.12); transform:translate(-2px,-2px); }.resultado-cartao--clicavel:focus-visible { outline:3px solid rgba(233,75,60,.38); outline-offset:3px; }.resultado-cartao__conteudo { display:grid; gap:5px; }.resultado-cartao__conteudo > span { color:#6d7889; font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.resultado-cartao__conteudo strong { color:var(--marinho); font-family:"DM Serif Display",Georgia,serif; font-size:1.55rem; letter-spacing:-.025em; line-height:1; }.resultado-cartao__conteudo small { color:#768297; font-size:.7rem; }.resultado-cartao--clicavel .resultado-cartao__marca { color:var(--primaria); font-size:1.2rem; transition:transform .16s cubic-bezier(.23,1,.32,1); }.resultado-cartao--clicavel:hover .resultado-cartao__marca { transform:translate(2px,-2px); }.modal-ganhador { width:min(570px,calc(100vw - 32px)); max-height:min(760px,calc(100vh - 32px)); padding:0; color:var(--texto); background:#fffdf9; border:1px solid var(--borda); box-shadow:12px 12px 0 var(--marinho); }.modal-ganhador::backdrop { background:rgba(20,34,58,.7); backdrop-filter:blur(3px); }.modal-ganhador__cabecalho { display:flex; justify-content:space-between; gap:20px; padding:27px 28px 22px; border-bottom:1px solid #eadfce; }.modal-ganhador__cabecalho h2 { max-width:430px; margin:8px 0 0; font-size:clamp(2rem,6vw,3.4rem); }.botao-fechar-modal { display:grid; place-items:center; width:34px; height:34px; flex:none; padding:0; color:var(--marinho); background:#f3eadc; border:0; font-size:1.6rem; line-height:1; cursor:pointer; }.modal-ganhador__premio { display:flex; gap:14px; align-items:center; padding:19px 28px; background:#f8edd6; }.modal-ganhador__premio > div { display:grid; gap:4px; }.modal-ganhador__premio span:not(.resultado-cartao__ordem) { color:#715928; font-size:.69rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.modal-ganhador__premio strong { color:var(--marinho); font-family:"DM Serif Display",Georgia,serif; font-size:1.55rem; line-height:1; }.modal-ganhador__premio small { color:#705f45; font-size:.75rem; }.modal-ganhador__contato,.modal-ganhador__extras { padding:24px 28px 0; }.modal-ganhador h3 { margin:0 0 12px; color:var(--marinho); font-size:.73rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.modal-ganhador__whatsapp,.modal-ganhador__email { display:flex; align-items:center; gap:12px; padding:13px; color:var(--marinho); background:#fff; border:1px solid #dfd2c1; text-decoration:none; }.modal-ganhador__whatsapp { border-left:4px solid var(--turquesa); }.modal-ganhador__email { display:grid; gap:3px; margin-top:9px; border-left:4px solid var(--amarelo); }.modal-ganhador__whatsapp > span:first-child { display:grid; place-items:center; width:27px; height:27px; color:#fff; background:var(--turquesa); border-radius:50%; font-size:.95rem; }.modal-ganhador__whatsapp > span:nth-child(2) { display:grid; gap:2px; flex:1; }.modal-ganhador__contato small { color:#697689; font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.modal-ganhador__contato strong { overflow-wrap:anywhere; font-size:.9rem; }.modal-ganhador__extras dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:0; }.modal-ganhador__extras dl div { padding:10px; background:#f6f0e5; }.modal-ganhador__extras dt { color:#728096; font-size:.65rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.modal-ganhador__extras dd { margin:4px 0 0; overflow-wrap:anywhere; color:var(--marinho); font-size:.82rem; font-weight:700; }.modal-ganhador__rodape { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:24px; padding:18px 28px; border-top:1px solid #eadfce; color:#718095; font-size:.74rem; }.modal-ganhador__rodape strong { color:var(--marinho); }.modal-ganhador__rodape .botao { width:auto; min-height:39px; }.modal-ganhador[open] { animation:modalGanhadorEntrada .22s cubic-bezier(.23,1,.32,1) both; } @keyframes modalGanhadorEntrada { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } } @media (max-width:620px) { .modal-ganhador__cabecalho,.modal-ganhador__premio,.modal-ganhador__contato,.modal-ganhador__extras,.modal-ganhador__rodape { padding-left:19px; padding-right:19px; }.modal-ganhador__extras dl { grid-template-columns:1fr; }.modal-ganhador__rodape { align-items:flex-start; flex-direction:column; }.modal-ganhador__rodape .botao { width:100%; } }
.historico-sorteio__acoes { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:16px; }.historico-sorteio__acoes form { margin:0; }.historico-sorteio__editar,.historico-sorteio__excluir { color:#697689; background:transparent; border:0; padding:0; font:inherit; font-size:.76rem; font-weight:800; text-decoration:underline; cursor:pointer; }.historico-sorteio__editar:hover { color:var(--marinho); }.historico-sorteio__excluir { color:var(--erro); }.historico-sorteio__bloqueado { color:#8b7a60; font-size:.69rem; font-weight:700; }.premios-editor--bloqueado { background:#f6f0e5; }.premios-editor--bloqueado .premio-editor { box-shadow:none; opacity:.84; }.painel--edicao-sorteio { max-width:940px; }

/* Bilhete de Bairro — Identidade de palco: a marca do evento acompanha o sorteio e a revelação. */
.sorteio-palco__identidade { display:flex; align-items:center; gap:13px; min-width:0; }.sorteio-palco__logo { width:54px; height:54px; flex:none; object-fit:contain; padding:5px; background:rgba(255,255,255,.94); border:1px solid rgba(255,255,255,.36); box-shadow:4px 4px 0 rgba(239,181,61,.8); }.sorteio-revelacao__logo { position:relative; z-index:2; width:68px; height:68px; margin-bottom:20px; object-fit:contain; padding:6px; background:rgba(255,255,255,.96); box-shadow:5px 5px 0 var(--amarelo); }.sorteio-palco:fullscreen .sorteio-palco__logo { width:76px; height:76px; padding:7px; }.sorteio-palco:fullscreen .sorteio-revelacao__logo { width:95px; height:95px; margin-bottom:28px; } @media (max-width:760px) { .sorteio-palco__logo { width:42px; height:42px; padding:4px; box-shadow:3px 3px 0 rgba(239,181,61,.8); }.sorteio-revelacao__logo { width:54px; height:54px; margin-bottom:14px; } }
