/* Padrão validado no laboratório em 24/10/2026. Site e painel do organizador.
   Admin e bar ficam fora: esta folha só é carregada pelo index do site.
   Medidas em px evitam variação causada pelo tamanho da raiz em rem. */
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) { --cliente-titulo: 20px; --cliente-secao: 14px; --cliente-texto: 13px; --cliente-controle: 40px; --cliente-raio: 10px; --cliente-espaco: 12px; --primary: #25e498; --primary-texto: #25e498; --primary-fg: #06130d; --primary-suave: color-mix(in srgb, var(--primary) 18%, transparent); --primary-hover: color-mix(in srgb, var(--primary) 88%, #000); --ring: #25e498; --radius: 10px; --radius-lg: 10px; --radius-xl: 10px; font-size: var(--cliente-texto); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view h1 { font-size: var(--cliente-titulo); line-height: 1.25; }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view h2 { font-size: var(--cliente-secao); line-height: 1.35; }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view h3 { font-size: var(--cliente-texto); line-height: 1.4; }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .capa h1 { font-size: 30px; line-height: 1.1; }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view p,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .bp-campo > label,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .cartao__nome,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .lote__nome,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .texto { font-size: var(--cliente-texto); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) .bp-btn { height: var(--cliente-controle); min-height: var(--cliente-controle); border-radius: var(--cliente-raio); font-size: var(--cliente-texto); padding-inline: 16px; }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .bp-input,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .bp-select { height: var(--cliente-controle); min-height: var(--cliente-controle); border-radius: var(--cliente-raio); font-size: var(--cliente-texto); padding-inline: 12px; }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view textarea.bp-input { height: auto; min-height: 112px; padding-block: 12px; }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .bp-card { border-radius: var(--cliente-raio); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .perfil__cartao,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .bloco,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .corpo > .bp-card,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .entrada > .cartao { padding: var(--cliente-espaco); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .perfil__campos,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .conteudo,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .corpo { gap: var(--cliente-espaco); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .perfil__pagina-titulo { margin: 0 0 var(--cliente-espaco); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .perfil__titulo { margin-bottom: var(--cliente-espaco); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .perfil__facial { margin-bottom: var(--cliente-espaco); padding-bottom: var(--cliente-espaco); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .perfil__facial .bp-btn,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .perfil__acao { height: var(--cliente-controle); min-height: var(--cliente-controle); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .mc-abas,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .cartao .abas { border-radius: var(--cliente-raio); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .mc-aba,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .cartao .abas [role="tab"] { min-height: var(--cliente-controle); border-radius: var(--cliente-raio); font-size: var(--cliente-texto); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .cartao__ir { min-height: var(--cliente-controle); border-radius: var(--cliente-raio); font-size: var(--cliente-texto); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) .bp-gaveta__item,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) .bp-gaveta__texto b { font-size: var(--cliente-texto); }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) .bp-gaveta__texto small { font-size: 11px; }

/* Manter 16px nos campos do celular evita o zoom do Safari ao focar. */
@media (max-width: 640px), (hover: none) and (pointer: coarse) {
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .bp-input,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) #bp-view .bp-select { font-size: 16px; }
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) textarea,
body[data-rota]:not([data-rota^="/plataforma"]):not([data-rota^="/admin"]):not([data-rota^="/bar"]) select { font-size: 16px; }
}


/* O painel é parte do 01-site. As telas internas do evento e seus diálogos
   recebem as mesmas medidas, mesmo quando a vista define estilos próprios.
   Não mudar o tamanho da raiz: gráficos e outras medidas em rem continuam
   usando a referência existente. Campos de toque mantêm os 16px anti-zoom. */
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) :is(.bp-pagina, #conteudo, .painel-aba, .colunas, .formulario-pagina, .formulario-colecao) {
  gap: var(--cliente-espaco);
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) :is(.bloco, .formulario-pagina .bp-card, .formulario-pergunta, .material-acoes) {
  padding: var(--cliente-espaco);
  border-radius: var(--cliente-raio);
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) :is(.bloco, .secao, .formulario-acoes, .ferramentas, .topo__acoes) {
  gap: var(--cliente-espaco);
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) :is(.bp-dialogo form, .bp-dialogo .corpo) {
  padding: var(--cliente-espaco);
  gap: var(--cliente-espaco);
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) :is(.bp-dialogo, .formulario-pagina dialog) {
  border-radius: var(--cliente-raio);
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) :is(.dica, .bp-dica, .secao__dica, .bp-campo > label, .lote-cartao__nome, .lote-cartao__vendas, .lote-cartao__detalhes > summary, .topo__meta) {
  font-size: var(--cliente-texto);
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) :is(.bp-btn--icone, .lote-menu > summary) {
  width: var(--cliente-controle);
  min-width: var(--cliente-controle);
  padding-inline: 0;
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) :is(.bp-menu__lista, .lote-menu__opcoes) {
  border-radius: var(--cliente-raio);
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) .lote-menu__opcoes button {
  min-height: var(--cliente-controle);
  font-size: var(--cliente-texto);
  border-radius: var(--cliente-raio);
}
/* O evento fixado e os grupos/filhos do menu ficam fora do #bp-view. */
body[data-rota^="/painel"] .bp-gaveta__item { min-height: var(--cliente-controle); }
body[data-rota^="/painel"] .bp-gaveta__fixado-texto b { font-size: var(--cliente-texto); }
body[data-rota^="/painel"] .bp-gaveta__fixado-texto small { font-size: 11px; }

/* Descrições e títulos de seção antigos trazem font-size inline nas vistas
   e no HTML gerado (histórico de importação, WhatsApp). A tipografia comum
   precisa vencer essa medida legada também quando o conteúdo chega da API. */
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) p { font-size: var(--cliente-texto) !important; }
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) h2 { font-size: var(--cliente-secao) !important; }

/* Vistas como Ingressos têm botões sob #conteudo ou #dlgLote; WhatsApp
   ainda traz medidas inline. A medida comum prevalece nos dois casos. */
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) .bp-btn {
  height: var(--cliente-controle) !important;
  min-height: var(--cliente-controle);
  padding-block: 0;
  font-size: var(--cliente-texto) !important;
  border-radius: var(--cliente-raio);
}

body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) .lote-menu > summary {
  height: var(--cliente-controle);
  min-height: var(--cliente-controle);
  border-radius: var(--cliente-raio);
}
body[data-rota^="/painel"] :is(#bp-view, body > .bp-dialogo) .lote-cartao { padding: var(--cliente-espaco); }

/* Combo/cupom e exportação criam diálogos diretamente no body, fora da
   vista. Precisam do mesmo padrão e do mesmo cuidado com o zoom no iPhone. */
body[data-rota^="/painel"] > .bp-dialogo { border-radius: var(--cliente-raio); }
body[data-rota^="/painel"] > .bp-dialogo :is(form, .corpo) {
  padding: var(--cliente-espaco) !important;
  gap: var(--cliente-espaco) !important;
}
body[data-rota^="/painel"] > .bp-dialogo :is(.bp-input, .bp-select) {
  height: var(--cliente-controle);
  min-height: var(--cliente-controle);
  font-size: var(--cliente-texto);
  border-radius: var(--cliente-raio);
  padding-inline: 12px;
}
body[data-rota^="/painel"] > .bp-dialogo textarea.bp-input {
  height: auto;
  min-height: 112px;
  padding-block: 12px;
}
body[data-rota^="/painel"] #promocoesPainel { padding: var(--cliente-espaco) !important; }
@media (max-width: 640px), (hover: none) and (pointer: coarse) {
  body[data-rota^="/painel"] > .bp-dialogo :is(.bp-input, .bp-select) { font-size: 16px; }
}

/* Estado do ingresso: botão compacto com fundo suave por visibilidade.
   Exceção aos 40px dos controles principais, solicitada para esta página. */
body[data-rota="/painel/evento-ingressos"] #bp-view .lote-estado {
  --lote-estado-fundo: var(--card);
  --lote-estado-borda: var(--border-forte);
  --lote-estado-texto: var(--fg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px !important;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--lote-estado-borda);
  border-radius: 10px;
  background: var(--lote-estado-fundo);
  color: var(--lote-estado-texto);
  font-size: 13px !important;
  line-height: 1.2;
  text-transform: none;
  white-space: nowrap;
}
body[data-rota="/painel/evento-ingressos"] #bp-view .lote-estado[data-estado="VISIVEL"] {
  --lote-estado-fundo: #effbf4;
  --lote-estado-borda: #cfead8;
  --lote-estado-texto: #23643a;
}
body[data-rota="/painel/evento-ingressos"] #bp-view .lote-estado[data-estado="OCULTO"] {
  --lote-estado-fundo: #fff1f2;
  --lote-estado-borda: #f4d3d6;
  --lote-estado-texto: #993b45;
}
body[data-rota="/painel/evento-ingressos"] #bp-view .lote-estado[data-estado="RESTRITO"] {
  --lote-estado-fundo: #eff6ff;
  --lote-estado-borda: #d1e1fa;
  --lote-estado-texto: #2c568d;
}
@media (hover: hover) and (pointer: fine) {
  body[data-rota="/painel/evento-ingressos"] #bp-view button.lote-estado:hover:not(:disabled) {
    background: color-mix(in srgb, var(--lote-estado-fundo) 92%, var(--lote-estado-texto));
    border-color: var(--lote-estado-texto);
  }
}

/* Acesso direto ao link restrito, imediatamente antes do estado do lote. */
body[data-rota="/painel/evento-ingressos"] #bp-view .lote-estado-acoes {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
body[data-rota="/painel/evento-ingressos"] #bp-view .bp-btn.lote-copiar-link {
  height: 32px !important;
  min-height: 32px;
  width: 32px;
  min-width: 32px;
  padding: 0;
  border-radius: 10px;
  background: #eff6ff;
  border-color: #d1e1fa;
  color: #2c568d;
}
@media (hover: hover) and (pointer: fine) {
  body[data-rota="/painel/evento-ingressos"] #bp-view .bp-btn.lote-copiar-link:hover:not(:disabled) {
    background: #e1edff;
    border-color: #2c568d;
  }
}

/* O atalho de copiar ocupa só o ícone; os textos das duas ações principais
   continuam com espaço, antes e depois de publicar o evento. */
body[data-rota="/painel/evento"] #bp-view .topo__acoes > #btnCopiarLink {
  flex: 0 0 40px;
  width: 40px;
  min-width: 40px;
  padding: 0;
}
@media (max-width: 860px) {
  body[data-rota="/painel/evento"] #bp-view .topo__acoes {
    gap: 6px;
    flex-wrap: nowrap;
    align-items: stretch;
  }
  body[data-rota="/painel/evento"] #bp-view .topo__acoes > .bp-btn:not(.bp-btn--icone) {
    padding-inline: 6px;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    line-height: 1.2;
  }
  body[data-rota="/painel/evento"] #bp-view .topo__acoes > .bp-menu {
    flex: 0 0 40px;
    width: 40px;
  }
}
@media (max-width: 360px) {
  body[data-rota="/painel/evento"] #bp-view .topo__acoes:has(#btnCopiarLink) > .bp-btn:not(.bp-btn--icone) svg {
    display: none;
  }
}

/* A busca de Meus eventos reserva espaço para a lupa mesmo com o padding
   comum dos campos. Só o placeholder diminui; o texto digitado mantém o
   piso de 16px no celular para não disparar o zoom do Safari. */
body[data-rota="/painel"] #bp-view #fBusca {
  padding-inline-start: 40px;
  padding-inline-end: 12px;
}
body[data-rota="/painel"] #bp-view #fBusca::placeholder {
  font-size: 13px;
  opacity: 1;
}
body[data-rota="/painel"] #bp-view .busca > svg {
  left: 12px;
  width: 16px;
  height: 16px;
}
