/* ============================================================
   Cupons — Motor de Campanhas por Resultado (v6.6, ADR-0038/0039)
   Prefixo `cp-` (constituição, seção 8: nunca sobrescrever Bootstrap).

   Linguagem visual: o cupom destacável de papel. Picote, chamada grande,
   letra miúda visível. Botão cheio = fundo escuro + fonte leve (preferência
   registrada do dono). Mobile-first.
   ============================================================ */

:root {
    --cp-cor: #7C3AED;
    --cp-tinta: #111827;
    --cp-suave: #6B7280;
    --cp-linha: #E5E7EB;
    --cp-papel: #FFFFFF;
    --cp-fundo: #F7F7F9;
    --cp-ok: #059669;
    --cp-erro: #DC2626;
    --cp-alerta: #D97706;
    --cp-raio: 14px;
}

/* ─── Botões ───────────────────────────────────────────────── */

.cp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .7rem 1.25rem;
    border-radius: 10px;
    border: 1px solid transparent;
    font-size: .95rem;
    font-weight: 400;          /* letra leve — preferência do dono */
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: filter .15s ease, background-color .15s ease;
}

.cp-btn-cheio {
    background: #1F2937;       /* fundo escuro, contraste alto */
    color: #fff;
}

.cp-btn-cheio:hover { filter: brightness(1.25); color: #fff; }
.cp-btn-cheio:disabled { opacity: .5; cursor: not-allowed; }

.cp-btn-vazado {
    background: transparent;
    border-color: var(--cp-linha);
    color: var(--cp-tinta);
}

.cp-btn-vazado:hover { background: #F3F4F6; color: var(--cp-tinta); }

.cp-btn-texto { background: transparent; color: var(--cp-suave); }
.cp-btn-texto:hover { color: var(--cp-erro); }

.cp-btn-sm { padding: .45rem .8rem; font-size: .85rem; }
.cp-btn-grande { padding: 1rem 1.6rem; font-size: 1.05rem; }

/* ─── Hero do talão ────────────────────────────────────────── */

.cp-hero {
    background: linear-gradient(160deg, #1F1147 0%, #3B1D6E 60%, #4C1D95 100%);
    color: #fff;
    padding: 2.5rem 0 3rem;
}

.cp-hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: rgba(255, 255, 255, .14);
    padding: .35rem .8rem;
    border-radius: 999px;
    font-size: .8rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.cp-hero-titulo { font-size: 2rem; font-weight: 700; margin: .8rem 0 .5rem; }
.cp-hero-texto { color: rgba(255, 255, 255, .82); max-width: 44ch; margin: 0; }

.cp-hero-card {
    background: #fff;
    color: var(--cp-tinta);
    border-radius: var(--cp-raio);
    padding: 1.25rem;
}

.cp-hero-card-titulo { font-weight: 600; margin-bottom: .6rem; }

.cp-passos { margin: 0 0 1rem; padding-left: 1.1rem; color: var(--cp-suave); }
.cp-passos li { margin-bottom: .35rem; }
.cp-passos strong { color: var(--cp-tinta); }

/* ─── Seções e estados ─────────────────────────────────────── */

.cp-secao { padding: 2rem 0 3rem; background: var(--cp-fundo); }

.cp-selo-escopo {
    background: #FFF7ED;
    border: 1px solid #FED7AA;
    border-radius: 10px;
    padding: .7rem 1rem;
    font-size: .9rem;
    color: #7C2D12;
    margin-bottom: 1.25rem;
}

.cp-vazio {
    background: #fff;
    border: 1px dashed var(--cp-linha);
    border-radius: var(--cp-raio);
    padding: 2.5rem 1.5rem;
    text-align: center;
}

.cp-vazio i { font-size: 2.5rem; color: var(--cp-suave); display: block; margin-bottom: .75rem; }
.cp-vazio h1, .cp-vazio h2, .cp-vazio h3 { font-size: 1.25rem; margin-bottom: .5rem; }
.cp-vazio p { color: var(--cp-suave); max-width: 52ch; margin: 0 auto 1.25rem; }
.cp-vazio-painel { background: #fff; }

.cp-atribuicao {
    background: #ECFDF5;
    border: 1px solid #A7F3D0;
    border-radius: 10px;
    padding: .7rem 1rem;
    font-size: .9rem;
    color: #065F46;
    margin: 1.25rem 0 0;
}

.cp-atribuicao-trilho { margin-top: 0; }

/* ─── Picote (a memória do talão de papel) ─────────────────── */

.cp-picote {
    height: 3px;
    margin: .9rem 0;
    background-image: linear-gradient(90deg, var(--cp-linha) 0 12px, transparent 12px 24px);
    background-size: 24px 3px;
    background-repeat: repeat-x;
}

/* ─── Card de cupom ────────────────────────────────────────── */

.cp-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--cp-papel);
    border: 1px solid var(--cp-linha);
    border-top: 4px solid var(--cp-cor);
    border-radius: var(--cp-raio);
    padding: 1rem;
}

.cp-card-esgotada { opacity: .72; }

.cp-badge-relampago {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    background: #FEF3C7;
    color: #92400E;
    border-radius: 999px;
    padding: .15rem .55rem;
    font-size: .72rem;
    font-weight: 600;
}

.cp-card > .cp-badge-relampago { position: absolute; top: .75rem; right: .75rem; }

.cp-card-topo { display: flex; align-items: center; gap: .6rem; }
.cp-card-logo { width: 40px; height: 40px; object-fit: contain; border-radius: 8px; }
.cp-card-loja { font-weight: 600; font-size: .92rem; margin: 0; }
.cp-card-cidade { font-size: .78rem; color: var(--cp-suave); margin: 0; }

.cp-card-corpo { flex: 1; }
.cp-card-rotulo { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cp-suave); margin: 0; }
.cp-card-chamada { font-size: 1.7rem; font-weight: 800; color: var(--cp-cor); line-height: 1.1; margin: .15rem 0 .35rem; }
.cp-card-titulo { font-size: .95rem; margin: 0 0 .6rem; }

.cp-card-miudo { list-style: none; padding: 0; margin: 0; font-size: .78rem; color: var(--cp-suave); }
.cp-card-miudo li { margin-bottom: .2rem; }

.cp-card-rodape { margin-top: .9rem; display: flex; align-items: center; gap: .5rem; }
.cp-card-esgotado-selo { font-size: .8rem; color: var(--cp-alerta); font-weight: 600; flex: 1; }

.cp-paginacao { display: flex; gap: .75rem; justify-content: center; margin-top: 2rem; }

/* ─── Faixa do promotor ────────────────────────────────────── */

.cp-faixa-promotor { background: #111827; color: #fff; padding: 2.5rem 0; }
.cp-faixa-promotor h2 { font-size: 1.4rem; margin-bottom: .5rem; }
.cp-faixa-promotor p { color: rgba(255, 255, 255, .78); margin: 0; max-width: 62ch; }
.cp-faixa-promotor .cp-btn-cheio { background: #fff; color: #111827; }

/* ─── Página da oferta ─────────────────────────────────────── */

.cp-oferta { background: var(--cp-fundo); padding: 1.5rem 0 3rem; }
.cp-migalha { font-size: .85rem; color: var(--cp-suave); margin-bottom: 1rem; }
.cp-migalha a { color: var(--cp-suave); }
.cp-migalha span { margin: 0 .35rem; }

.cp-oferta-principal {
    background: #fff;
    border: 1px solid var(--cp-linha);
    border-top: 5px solid var(--cp-cor);
    border-radius: var(--cp-raio);
    padding: 1.5rem;
}

.cp-oferta-topo { display: flex; align-items: center; gap: .8rem; }
.cp-oferta-logo { width: 56px; height: 56px; object-fit: contain; border-radius: 10px; }
.cp-oferta-loja { font-weight: 600; font-size: 1.05rem; text-decoration: none; color: var(--cp-tinta); }
.cp-oferta-cidade { font-size: .85rem; color: var(--cp-suave); margin: .1rem 0 0; }

.cp-oferta-rotulo { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cp-suave); margin: 0; }
.cp-oferta-chamada { font-size: 3rem; font-weight: 800; color: var(--cp-cor); line-height: 1; margin: .2rem 0 .4rem; }
.cp-oferta-titulo { font-size: 1.2rem; font-weight: 600; margin: 0 0 1rem; }

.cp-oferta-relampago {
    background: #FEF3C7;
    color: #92400E;
    border-radius: 10px;
    padding: .55rem .85rem;
    font-size: .9rem;
    font-weight: 600;
}

.cp-oferta-meu, .cp-oferta-esgotada {
    border-radius: var(--cp-raio);
    padding: 1.25rem;
    margin-top: 1rem;
    text-align: center;
}

.cp-oferta-meu { background: #ECFDF5; border: 1px solid #A7F3D0; }
.cp-oferta-esgotada { background: #F9FAFB; border: 1px solid var(--cp-linha); }
.cp-oferta-meu-rotulo { font-size: .8rem; color: #065F46; margin: 0; }
.cp-oferta-meu-dica { font-size: .85rem; color: #065F46; }
.cp-oferta-esgotada-titulo { font-weight: 600; font-size: 1.05rem; margin-bottom: .35rem; }
.cp-oferta-esgotada p { color: var(--cp-suave); font-size: .9rem; max-width: 46ch; margin: 0 auto 1rem; }

.cp-codigo-grande {
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: .12em;
    margin: .35rem 0;
}

.cp-oferta-restam { text-align: center; font-size: .85rem; color: var(--cp-alerta); margin-top: .6rem; }
.cp-oferta-conta { text-align: center; font-size: .82rem; color: var(--cp-suave); margin-top: .6rem; }

/* ─── Trilho / blocos ──────────────────────────────────────── */

.cp-trilho { display: flex; flex-direction: column; gap: 1rem; position: sticky; top: 1rem; }

.cp-bloco {
    background: #fff;
    border: 1px solid var(--cp-linha);
    border-radius: var(--cp-raio);
    padding: 1.15rem;
    margin-bottom: 1rem;
}

.cp-bloco-titulo { font-size: 1rem; font-weight: 600; margin-bottom: .75rem; display: flex; align-items: center; gap: .5rem; }
.cp-bloco-nota { font-size: .82rem; color: var(--cp-suave); margin: .6rem 0 0; }
.cp-nota-forte { color: #92400E; background: #FFFBEB; border-radius: 8px; padding: .5rem .7rem; }
.cp-bloco-loja { font-weight: 600; margin: 0; }
.cp-bloco-endereco { font-size: .85rem; color: var(--cp-suave); }
.cp-bloco-acoes { display: flex; gap: .5rem; flex-wrap: wrap; }

.cp-condicoes { list-style: none; padding: 0; margin: 0; font-size: .85rem; color: var(--cp-suave); }
.cp-condicoes li { padding: .35rem 0; border-bottom: 1px solid var(--cp-linha); }
.cp-condicoes li:last-child { border-bottom: 0; }

/* ─── Carteira do cliente ──────────────────────────────────── */

.cp-conta-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.cp-conta-titulo { font-size: 1.5rem; font-weight: 700; margin: 0; }
.cp-conta-sub { color: var(--cp-suave); margin: .25rem 0 0; }
.cp-conta-secao { font-size: 1.15rem; font-weight: 600; margin: 2rem 0 1rem; }

.cp-carteira-item {
    background: #fff;
    border: 1px solid var(--cp-linha);
    border-left: 5px solid var(--cp-cor);
    border-radius: var(--cp-raio);
    padding: 1.1rem;
    height: 100%;
}

.cp-carteira-topo { display: flex; justify-content: space-between; gap: .75rem; }
.cp-carteira-loja { font-size: .8rem; color: var(--cp-suave); margin: 0; }
.cp-carteira-chamada { font-size: 1.6rem; font-weight: 800; color: var(--cp-cor); line-height: 1.1; margin: .1rem 0; }
.cp-carteira-titulo { font-size: .9rem; margin: 0; }
.cp-carteira-logo { width: 46px; height: 46px; object-fit: contain; border-radius: 8px; }

.cp-carteira-codigo { text-align: center; }
.cp-carteira-rotulo { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cp-suave); margin: 0; }

.cp-qr { display: flex; justify-content: center; margin: .6rem 0; }
.cp-qr img, .cp-qr canvas { max-width: 148px; height: auto; }
.cp-qr-grande { display: flex; justify-content: center; margin: 1rem 0; }
.cp-qr-grande img, .cp-qr-grande canvas { max-width: 220px; height: auto; }

.cp-carteira-rodape { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-top: .9rem; }
.cp-carteira-alerta { font-size: .82rem; color: var(--cp-erro); font-weight: 600; }
.cp-carteira-prazo { font-size: .8rem; color: var(--cp-suave); }

.cp-historico { background: #fff; border: 1px solid var(--cp-linha); border-radius: var(--cp-raio); }
.cp-historico-item { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--cp-linha); }
.cp-historico-item:last-child { border-bottom: 0; }
.cp-historico-titulo { font-weight: 600; font-size: .92rem; margin: 0; }
.cp-historico-sub { font-size: .82rem; color: var(--cp-suave); margin: 0; }
.cp-historico-status { font-size: .82rem; white-space: nowrap; }
.cp-status-usado { color: var(--cp-ok); }
.cp-status-expirado { color: var(--cp-suave); }

/* ─── Painel do anunciante ─────────────────────────────────── */

.cp-painel { padding: .5rem 0 2rem; }
.cp-painel-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.cp-painel-titulo { font-size: 1.5rem; font-weight: 700; margin: 0; }
.cp-painel-sub { color: var(--cp-suave); margin: .25rem 0 0; max-width: 60ch; }
.cp-painel-acoes { display: flex; gap: .5rem; flex-wrap: wrap; }

.cp-campanha {
    background: #fff;
    border: 1px solid var(--cp-linha);
    border-radius: var(--cp-raio);
    padding: 1.15rem;
    margin-bottom: 1rem;
}

.cp-campanha-encerrada { opacity: .65; }
.cp-campanha-topo { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.cp-campanha-chamada { font-size: 1.3rem; font-weight: 700; margin: 0; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.cp-campanha-titulo { color: var(--cp-suave); font-size: .9rem; margin: .15rem 0 0; }

.cp-status { text-transform: capitalize; font-size: .75rem; font-weight: 600; padding: .2rem .6rem; border-radius: 999px; background: #F3F4F6; color: var(--cp-suave); height: fit-content; white-space: nowrap; }
.cp-status-ativa, .cp-status-disponivel, .cp-status-pago { background: #ECFDF5; color: #065F46; }
.cp-status-pausada, .cp-status-solicitado { background: #FFFBEB; color: #92400E; }
.cp-status-encerrada, .cp-status-recusado, .cp-status-cancelado { background: #FEF2F2; color: #991B1B; }

/* Funil: emitidos → abertos → guardados → resgatados → novos */
.cp-funil { display: flex; gap: .5rem; flex-wrap: wrap; background: #F9FAFB; border-radius: 10px; padding: .75rem; }
.cp-funil-passo { flex: 1; min-width: 76px; text-align: center; }
.cp-funil-num { display: block; font-size: 1.2rem; font-weight: 700; }
.cp-funil-rot { display: block; font-size: .7rem; color: var(--cp-suave); text-transform: uppercase; letter-spacing: .04em; }
.cp-funil-destaque .cp-funil-num { color: var(--cp-ok); }

.cp-campanha-numeros { display: flex; gap: 1rem; flex-wrap: wrap; font-size: .85rem; color: var(--cp-suave); margin: .75rem 0; }
.cp-campanha-numeros strong { color: var(--cp-tinta); }

.cp-orcamento { margin: .75rem 0; }
.cp-orcamento-barra { height: 8px; background: #F3F4F6; border-radius: 999px; overflow: hidden; }
.cp-orcamento-preenchido { height: 100%; background: var(--cp-cor, #7C3AED); }
.cp-orcamento-texto { font-size: .78rem; color: var(--cp-suave); margin: .35rem 0 0; }

.cp-campanha-acoes { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; margin-top: .9rem; }

/* Carteira do anunciante */
.cp-saldo { font-size: 2rem; font-weight: 800; margin: 0; }
.cp-saldo-detalhe { list-style: none; padding: 0; margin: .75rem 0 0; font-size: .85rem; }
.cp-saldo-detalhe li { display: flex; justify-content: space-between; padding: .35rem 0; border-bottom: 1px solid var(--cp-linha); }
.cp-saldo-detalhe li:last-child { border-bottom: 0; }
.cp-saldo-detalhe span { color: var(--cp-suave); }

.cp-recarga { margin-top: 1rem; }
.cp-recarga-linha { display: flex; gap: .5rem; }
.cp-recarga-linha .cp-input { flex: 1; }
.cp-recarga-pix { margin-top: 1rem; text-align: center; }
.cp-recarga-emv-label { font-size: .78rem; color: var(--cp-suave); display: block; text-align: left; }
.cp-recarga-emv { width: 100%; font-family: ui-monospace, monospace; font-size: .72rem; border: 1px solid var(--cp-linha); border-radius: 8px; padding: .5rem; margin-bottom: .5rem; }
.cp-recarga-espera { font-size: .82rem; color: var(--cp-suave); margin-top: .5rem; }

.cp-retorno-numero { font-size: 1.8rem; font-weight: 800; color: var(--cp-ok); margin: 0; }

.cp-extrato { list-style: none; padding: 0; margin: 0; font-size: .85rem; }
.cp-extrato li { display: flex; justify-content: space-between; gap: .75rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid var(--cp-linha); }
.cp-extrato li:last-child { border-bottom: 0; }
.cp-extrato-desc { display: block; }
.cp-extrato-data { display: block; font-size: .74rem; color: var(--cp-suave); }
.cp-extrato-valor { font-weight: 600; white-space: nowrap; text-align: right; }
.cp-extrato-valor small { display: block; font-weight: 400; font-size: .68rem; text-transform: uppercase; }
.cp-positivo { color: var(--cp-ok); }
.cp-negativo { color: var(--cp-erro); }
.cp-credito-pendente { color: var(--cp-alerta); }
.cp-credito-liberado { color: var(--cp-ok); }
.cp-credito-pago { color: var(--cp-suave); }

/* ─── Formulários ──────────────────────────────────────────── */

.cp-label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .3rem; }
.cp-label-dica { font-weight: 400; color: var(--cp-suave); font-size: .78rem; }

.cp-input {
    width: 100%;
    padding: .6rem .75rem;
    border: 1px solid var(--cp-linha);
    border-radius: 9px;
    font-size: .95rem;
    background: #fff;
}

.cp-input:focus { outline: 2px solid var(--cp-cor); outline-offset: 1px; }
.cp-input-sm { padding: .4rem .55rem; font-size: .85rem; width: auto; }
.cp-input-cor { width: 100%; height: 42px; padding: .2rem; border: 1px solid var(--cp-linha); border-radius: 9px; }
.cp-ajuda { font-size: .78rem; color: var(--cp-suave); margin: .3rem 0 0; }
.cp-logo-atual { max-width: 120px; max-height: 60px; object-fit: contain; margin-top: .5rem; }

.cp-radios { display: flex; flex-direction: column; gap: .6rem; }
.cp-radio, .cp-check { display: flex; gap: .6rem; align-items: flex-start; padding: .7rem; border: 1px solid var(--cp-linha); border-radius: 10px; cursor: pointer; margin-bottom: .6rem; }
.cp-radio span, .cp-check span { font-size: .85rem; color: var(--cp-suave); }
.cp-radio strong, .cp-check strong { display: block; color: var(--cp-tinta); font-size: .92rem; }
.cp-radio input:checked ~ span strong { color: var(--cp-cor); }
.cp-check-compacto { padding: .5rem; margin-bottom: .5rem; }
.cp-check-compacto span { font-size: .78rem; }

.cp-calculadora { background: #F0FDF4; border: 1px solid #BBF7D0; border-radius: 10px; padding: .9rem; margin-top: 1rem; }
.cp-calculadora-titulo { font-weight: 600; font-size: .85rem; margin: 0 0 .4rem; }
.cp-calculadora-linha { font-size: .9rem; margin: 0; }
.cp-calculadora-resgates { font-size: .82rem; color: var(--cp-suave); margin: .35rem 0 0; }
.cp-calculadora-alerta { background: #FEF2F2; border-radius: 8px; padding: .5rem .7rem; color: #991B1B; font-size: .85rem; margin: .5rem 0 0; }

.cp-publicar { display: flex; flex-direction: column; gap: .5rem; margin-top: .75rem; }
.cp-copiar-linha { display: flex; gap: .5rem; }
.cp-copiar-linha .cp-input { flex: 1; }
.cp-form-inline { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }

/* ─── Balcão (a tela do caixa) ─────────────────────────────── */

.cp-balcao { max-width: 980px; margin: 0 auto; padding: 1rem; }
.cp-balcao-topo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.cp-balcao-titulo { font-size: 1.5rem; font-weight: 700; margin: 0; }
.cp-balcao-sub { color: var(--cp-suave); margin: 0; }

.cp-balcao-corpo { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }

.cp-balcao-label { display: block; font-size: 1rem; font-weight: 600; margin-bottom: .5rem; }

.cp-balcao-input {
    width: 100%;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-align: center;
    text-transform: uppercase;
    padding: 1rem;
    border: 2px solid var(--cp-linha);
    border-radius: 12px;
}

.cp-balcao-input:focus { outline: none; border-color: #1F2937; }
.cp-balcao-input-menor { width: 100%; font-size: 1.1rem; padding: .6rem .8rem; border: 1px solid var(--cp-linha); border-radius: 9px; }
.cp-balcao-opcional { margin: 1rem 0; }
.cp-balcao-opcional label { font-size: .9rem; font-weight: 600; display: block; margin-bottom: .3rem; }
.cp-balcao-opcional label span { font-weight: 400; color: var(--cp-suave); }
.cp-balcao-dica { font-size: .78rem; color: var(--cp-suave); margin: .3rem 0 0; }

.cp-balcao-ajuda { background: #F9FAFB; border-radius: var(--cp-raio); padding: 1.15rem; }
.cp-balcao-ajuda h2 { font-size: 1rem; font-weight: 600; margin-bottom: .6rem; }
.cp-balcao-ajuda ul { padding-left: 1.1rem; font-size: .88rem; color: var(--cp-suave); margin-bottom: .75rem; }
.cp-balcao-ajuda li { margin-bottom: .35rem; }
.cp-balcao-ajuda-nota { font-size: .82rem; color: var(--cp-suave); margin: 0; }

/* Resposta em tela cheia: o caixa precisa ter certeza sem ler frase pequena */
.cp-balcao-resultado {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: var(--cp-ok);
    color: #fff;
    text-align: center;
}

.cp-balcao-resultado.cp-negado { background: var(--cp-erro); }
.cp-balcao-resultado-caixa { max-width: 32rem; }
.cp-balcao-icone { font-size: 4.5rem; display: block; margin-bottom: .75rem; }
.cp-balcao-resultado-titulo { font-size: 1.6rem; font-weight: 700; margin-bottom: .25rem; }
.cp-balcao-resultado-desconto { font-size: 3rem; font-weight: 800; line-height: 1.05; margin-bottom: .5rem; }
.cp-balcao-resultado-detalhe { font-size: 1rem; opacity: .9; margin-bottom: 1.5rem; }
.cp-balcao-resultado .cp-btn-cheio { background: #fff; color: var(--cp-tinta); }

/* ─── Promotor ─────────────────────────────────────────────── */

.cp-metricas { margin-bottom: 1.5rem; }
.cp-metrica { background: #fff; border: 1px solid var(--cp-linha); border-radius: var(--cp-raio); padding: 1rem; height: 100%; }
.cp-metrica-num { font-size: 1.4rem; font-weight: 800; margin: 0; }
.cp-metrica-rot { font-size: .78rem; color: var(--cp-suave); margin: 0; }
.cp-metrica-alerta { border-color: #FED7AA; background: #FFFBEB; }

.cp-regras-caixa { background: #F9FAFB; border: 1px solid var(--cp-linha); border-radius: var(--cp-raio); padding: 1.15rem; margin-bottom: 1.5rem; }
.cp-regras-caixa h2 { font-size: 1rem; font-weight: 600; margin-bottom: .6rem; display: flex; align-items: center; gap: .5rem; }
.cp-regras-caixa ul { margin: 0; padding-left: 1.1rem; font-size: .88rem; color: var(--cp-suave); }
.cp-regras-caixa li { margin-bottom: .3rem; }

.cp-oportunidade { background: #fff; border: 1px solid var(--cp-linha); border-radius: var(--cp-raio); padding: 1.15rem; height: 100%; display: flex; flex-direction: column; }
.cp-oportunidade-lotada { opacity: .68; }
.cp-oportunidade-topo { display: flex; justify-content: space-between; gap: .75rem; }
.cp-oportunidade-loja { font-size: .8rem; color: var(--cp-suave); margin: 0; }
.cp-oportunidade-chamada { font-size: 1.4rem; font-weight: 700; margin: .1rem 0; }
.cp-oportunidade-titulo { font-size: .88rem; color: var(--cp-suave); margin: 0; }

.cp-oportunidade-ganho { display: flex; align-items: baseline; gap: .5rem; background: #ECFDF5; border-radius: 10px; padding: .7rem .9rem; margin: .9rem 0; }
.cp-oportunidade-valor { font-size: 1.6rem; font-weight: 800; color: #065F46; }
.cp-oportunidade-por { font-size: .82rem; color: #047857; }

.cp-oportunidade-dados { list-style: none; padding: 0; margin: 0 0 .9rem; font-size: .85rem; color: var(--cp-suave); }
.cp-oportunidade-dados li { display: flex; align-items: center; gap: .45rem; padding: .2rem 0; }
.cp-oportunidade-nota { font-size: .82rem; color: var(--cp-suave); margin: .5rem 0; }
.cp-oportunidade-acoes { margin-top: auto; }
.cp-oportunidade-lotada-selo { display: block; text-align: center; font-size: .85rem; color: var(--cp-alerta); padding: .6rem; background: #FFFBEB; border-radius: 9px; }

/* ─── Landing ──────────────────────────────────────────────── */

.cp-lp-hero { background: linear-gradient(160deg, #0F172A 0%, #1E1B4B 55%, #312E81 100%); color: #fff; padding: 3rem 0 3.5rem; }
.cp-lp-kicker { display: inline-block; background: rgba(255, 255, 255, .14); padding: .35rem .85rem; border-radius: 999px; font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; }
.cp-lp-titulo { font-size: 2.1rem; font-weight: 400; line-height: 1.25; margin: 1rem 0; }
.cp-lp-titulo strong { font-weight: 800; }
.cp-lp-texto { color: rgba(255, 255, 255, .82); max-width: 56ch; }
.cp-lp-verdades { margin: 1.5rem 0; }
.cp-lp-verdades p { display: flex; gap: .6rem; align-items: flex-start; font-size: .92rem; color: rgba(255, 255, 255, .9); margin-bottom: .5rem; }
.cp-lp-verdades i { margin-top: .15rem; }
.cp-lp-acoes { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; }
.cp-lp-hero .cp-btn-cheio { background: #fff; color: #0F172A; }
.cp-lp-hero .cp-btn-texto { color: rgba(255, 255, 255, .82); }

.cp-lp-conta { background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); border-radius: var(--cp-raio); padding: 1.25rem; }
.cp-lp-conta-titulo { font-weight: 600; margin-bottom: .75rem; }
.cp-lp-conta ul { list-style: none; padding: 0; margin: 0 0 .75rem; }
.cp-lp-conta li { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid rgba(255, 255, 255, .1); font-size: .9rem; }
.cp-lp-conta li:last-child { border-bottom: 0; }
.cp-lp-conta strong { font-size: 1.05rem; }
.cp-lp-conta-nota { font-size: .78rem; color: rgba(255, 255, 255, .62); margin: 0; }

.cp-lp-secao { padding: 3rem 0; }
.cp-lp-secao-escura { background: #111827; color: #fff; }
.cp-lp-secao-escura .cp-lp-texto { color: rgba(255, 255, 255, .78); }
.cp-lp-secao-titulo { font-size: 1.5rem; font-weight: 700; margin-bottom: 1.5rem; }

.cp-lp-passo { height: 100%; }
.cp-lp-passo-num { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 999px; background: #111827; color: #fff; font-weight: 700; margin-bottom: .6rem; }
.cp-lp-passo h3 { font-size: 1.05rem; font-weight: 600; margin-bottom: .35rem; }
.cp-lp-passo p { font-size: .88rem; color: var(--cp-suave); margin: 0; }

.cp-lp-comparativo { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.cp-lp-comparativo > div { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: var(--cp-raio); padding: 1rem; }
.cp-lp-comparativo-nosso { background: rgba(16, 185, 129, .12) !important; border-color: rgba(16, 185, 129, .35) !important; }
.cp-lp-comparativo-rot { font-weight: 600; margin-bottom: .5rem; }
.cp-lp-comparativo ul { margin: 0; padding-left: 1.1rem; font-size: .86rem; color: rgba(255, 255, 255, .78); }
.cp-lp-comparativo li { margin-bottom: .3rem; }

.cp-lp-oportunidade { background: #fff; border: 1px solid var(--cp-linha); border-radius: var(--cp-raio); padding: 1rem; height: 100%; }
.cp-lp-oportunidade-loja { font-size: .8rem; color: var(--cp-suave); margin: 0; }
.cp-lp-oportunidade-chamada { font-size: 1.35rem; font-weight: 700; margin: .1rem 0 .4rem; }
.cp-lp-oportunidade-ganho { font-size: .85rem; color: var(--cp-suave); margin: 0; }
.cp-lp-oportunidade-ganho strong { color: var(--cp-ok); }

.cp-lp-faq details { background: #fff; border: 1px solid var(--cp-linha); border-radius: 10px; padding: .9rem 1.1rem; margin-bottom: .6rem; }
.cp-lp-faq summary { font-weight: 600; cursor: pointer; font-size: .95rem; }
.cp-lp-faq p { font-size: .88rem; color: var(--cp-suave); margin: .6rem 0 0; }

.cp-lp-final { background: #F9FAFB; padding: 3rem 0; }
.cp-lp-final h2 { font-size: 1.6rem; font-weight: 700; margin-bottom: .5rem; }
.cp-lp-final p { color: var(--cp-suave); max-width: 52ch; margin: 0 auto 1.25rem; }
.cp-lp-final-nota { font-size: .82rem; margin-top: 1rem; }

/* ─── Tabelas do admin ─────────────────────────────────────── */

.cp-tabela { font-size: .88rem; }
.cp-tabela-sub { font-size: .78rem; color: var(--cp-suave); }
.cp-tabela-mono { font-family: ui-monospace, monospace; font-size: .82rem; }
.cp-badge-fila { background: var(--cp-erro); color: #fff; border-radius: 999px; padding: .1rem .5rem; font-size: .75rem; }

/* ─── Folha de impressão ───────────────────────────────────── */

.cp-folha-body { background: #F3F4F6; }
.cp-folha-barra { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1rem 1.5rem; background: #fff; border-bottom: 1px solid var(--cp-linha); }
.cp-folha-barra-acoes { display: flex; gap: .5rem; }
.cp-folha-aviso { max-width: 900px; margin: 1rem auto; padding: .8rem 1rem; background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 10px; font-size: .85rem; color: #92400E; }

.cp-folha { max-width: 900px; margin: 0 auto 2rem; display: grid; grid-template-columns: 1fr; gap: 0; }

.cp-cupom-papel {
    background: #fff;
    border: 1px dashed #9CA3AF;
    padding: .7rem .9rem;
    page-break-inside: avoid;
    break-inside: avoid;
}

.cp-cupom-papel-topo { display: flex; justify-content: space-between; align-items: center; gap: .5rem; border-bottom: 2px solid var(--cp-cor); padding-bottom: .35rem; }
.cp-cupom-papel-loja { font-weight: 700; font-size: .95rem; margin: 0; }
.cp-cupom-papel-cidade { font-size: .7rem; color: var(--cp-suave); margin: 0; }
.cp-cupom-papel-logo { max-width: 60px; max-height: 32px; object-fit: contain; }

.cp-cupom-papel-corpo { display: flex; gap: .75rem; align-items: center; padding: .5rem 0; }
.cp-cupom-papel-oferta { flex: 1; }
.cp-cupom-papel-rotulo { font-size: .6rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cp-suave); margin: 0; }
.cp-cupom-papel-chamada { font-size: 1.6rem; font-weight: 800; color: var(--cp-cor); line-height: 1; margin: 0 0 .15rem; }
.cp-cupom-papel-titulo { font-size: .8rem; margin: 0 0 .3rem; }
.cp-cupom-papel-miudo { list-style: none; padding: 0; margin: 0; font-size: .58rem; color: var(--cp-suave); line-height: 1.35; }

.cp-cupom-papel-qr { text-align: center; width: 92px; }
.cp-qr-papel img, .cp-qr-papel canvas { width: 82px; height: 82px; }
.cp-cupom-papel-instrucao { font-size: .55rem; color: var(--cp-suave); margin: .15rem 0 0; }
.cp-cupom-papel-codigo { font-family: ui-monospace, monospace; font-size: .72rem; font-weight: 700; letter-spacing: .06em; margin: 0; }

.cp-cupom-papel-rodape { display: flex; justify-content: space-between; font-size: .55rem; color: var(--cp-suave); border-top: 1px solid var(--cp-linha); padding-top: .25rem; }

@media print {
    .cp-folha-barra, .cp-folha-aviso { display: none !important; }
    .cp-folha-body { background: #fff; }
    .cp-folha { max-width: none; margin: 0; grid-template-columns: 1fr 1fr; }
    .cp-cupom-papel { border-color: #6B7280; }
    @page { size: A4; margin: 8mm; }
}

/* ─── Responsivo (mobile-first: daqui para cima) ───────────── */

@media (min-width: 576px) {
    .cp-folha { grid-template-columns: 1fr 1fr; }
    .cp-lp-comparativo { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 768px) {
    .cp-hero { padding: 3.5rem 0 4rem; }
    .cp-hero-titulo { font-size: 2.6rem; }
    .cp-oferta-chamada { font-size: 3.6rem; }
    .cp-lp-titulo { font-size: 2.8rem; }
    .cp-balcao-corpo { grid-template-columns: 1.4fr 1fr; }
    .cp-balcao-input { font-size: 2.8rem; }
}

/* ============================================================
   Talão do promotor — o mosaico de várias ofertas numa folha
   (v6.6, ADR-0038). O objeto da foto de referência: capa com a
   promessa somada + grade de cupons destacáveis.
   ============================================================ */

/* ── Tela de montagem ─────────────────────────────────────── */

.cp-talao-dica { font-size: .9rem; color: var(--cp-suave); margin-bottom: 1rem; }

.cp-talao-lista { display: flex; flex-direction: column; gap: .6rem; }

.cp-talao-item {
    display: flex; gap: .8rem; align-items: flex-start;
    background: #fff; border: 1px solid var(--cp-linha);
    border-radius: var(--cp-raio); padding: .9rem 1rem; cursor: pointer;
}
.cp-talao-item:has(input:checked) { border-color: var(--cp-cor); background: #FAF8FF; }
.cp-talao-corpo { display: flex; flex-direction: column; }
.cp-talao-loja { font-size: .8rem; color: var(--cp-suave); }
.cp-talao-chamada { font-size: 1.25rem; font-weight: 700; color: var(--cp-cor); line-height: 1.2; }
.cp-talao-desc { font-size: .9rem; }
.cp-talao-meta { font-size: .78rem; color: var(--cp-suave); margin-top: .2rem; }

.cp-talao-capa-rot { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cp-suave); margin: 0; }
.cp-talao-capa-valor { font-size: 2rem; font-weight: 800; color: var(--cp-ok); margin: .1rem 0; }

/* ── A folha impressa ─────────────────────────────────────── */

.cp-talao-folha {
    max-width: 900px;
    margin: 0 auto 2rem;
    background: #fff;
    page-break-after: always;
    break-after: page;
}
.cp-talao-folha:last-child { page-break-after: auto; break-after: auto; }

.cp-talao-cabecalho {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem;
    background: linear-gradient(155deg, #1F1147 0%, #3B1D6E 60%, #4C1D95 100%);
    color: #fff; padding: 1.1rem 1.3rem; border-bottom: 4px solid #FACC15;
}
.cp-talao-marca { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #C4B5FD; margin: 0; }
.cp-talao-promessa { font-family: Anton, Impact, sans-serif; font-size: 1.15rem; margin: .35rem 0 0; letter-spacing: .01em; }
.cp-talao-valor { font-family: Anton, Impact, sans-serif; font-size: 2.6rem; color: #FACC15; line-height: 1; margin: .1rem 0; }
.cp-talao-promessa-fim { font-family: Anton, Impact, sans-serif; font-size: 1.05rem; margin: 0; }
.cp-talao-instrucao { font-size: .7rem; color: #D8CDFF; margin: .45rem 0 0; max-width: 46ch; }

.cp-talao-selo-area { text-align: right; display: flex; flex-direction: column; gap: .35rem; align-items: flex-end; }
.cp-talao-selo {
    background: #FACC15; color: #31145A; font-weight: 700;
    font-size: .72rem; letter-spacing: .04em;
    padding: .3rem .7rem; border-radius: 99px; white-space: nowrap;
}
.cp-talao-folha-num { font-size: .66rem; color: #C4B5FD; }

.cp-talao-grade { display: grid; grid-template-columns: 1fr 1fr 1fr; }

.cp-talao-cupom {
    border-right: 1px dashed #9CA3AF;
    border-bottom: 1px dashed #9CA3AF;
    padding: .55rem .6rem .5rem;
    page-break-inside: avoid; break-inside: avoid;
    display: flex; flex-direction: column;
    min-height: 150px;
}
.cp-talao-cupom:nth-child(3n) { border-right: 0; }

.cp-talao-cupom-barra { height: 4px; background: var(--cp-cor); margin: -.55rem -.6rem .4rem; }
.cp-talao-cupom-loja { font-size: .72rem; font-weight: 700; margin: 0; line-height: 1.15; }
.cp-talao-cupom-rot { font-size: .52rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cp-suave); margin: 0; }
.cp-talao-cupom-chamada { font-family: Anton, Impact, sans-serif; font-size: 1.5rem; color: var(--cp-cor); line-height: 1; margin: 0 0 .1rem; }
.cp-talao-cupom-desc { font-size: .62rem; margin: 0 0 .3rem; line-height: 1.25; }

.cp-talao-cupom-base { display: flex; gap: .4rem; margin-top: auto; align-items: flex-end; }
.cp-talao-cupom-texto { flex: 1; min-width: 0; }
.cp-talao-cupom-miudo { font-size: .48rem; color: var(--cp-suave); line-height: 1.3; margin: 0; }
.cp-talao-cupom-end { font-size: .48rem; color: var(--cp-suave); margin: .15rem 0 0; }
.cp-talao-cupom-tel { font-size: .56rem; font-weight: 700; margin: 0; }

.cp-talao-cupom-qr { width: 62px; text-align: center; flex-shrink: 0; }
.cp-talao-cupom-qr .cp-qr-papel img,
.cp-talao-cupom-qr .cp-qr-papel canvas { width: 58px !important; height: 58px !important; }
.cp-talao-cupom-escaneie { font-size: .4rem; color: var(--cp-suave); margin: .1rem 0 0; letter-spacing: .04em; }
.cp-talao-cupom-codigo { font-family: ui-monospace, Consolas, monospace; font-size: .58rem; font-weight: 700; letter-spacing: .05em; margin: 0; }

.cp-talao-rodape {
    display: flex; justify-content: space-between; align-items: center;
    background: #111827; color: #9CA3AF; font-size: .6rem;
    padding: .5rem 1.3rem;
}
.cp-talao-rodape-marca { font-family: Anton, Impact, sans-serif; font-size: .85rem; color: #fff; }

@media print {
    .cp-talao-folha { max-width: none; margin: 0; }
    .cp-talao-cupom { border-color: #6B7280; }
}

/* Convite ao promotor dentro do card "Como funciona" do talão */
.cp-hero-card-link {
    display: flex; align-items: center; gap: .5rem;
    margin-top: .75rem; padding-top: .75rem;
    border-top: 1px solid var(--cp-linha);
    font-size: .85rem; color: var(--cp-cor); text-decoration: none;
}
.cp-hero-card-link:hover { text-decoration: underline; color: var(--cp-cor); }
