/* Cartão fidelidade do cliente (/fidelidade/) com a identidade e-link. Mobile-first.
   Carregado só nessa página (body.app-cliente), depois de style.css e painel.css:
   redefine as variáveis que os componentes comuns usam e acrescenta o visual novo. */

body.app-cliente{
  --el-marinho:#0B2D5B;
  --el-azul:#2563EB;
  --el-azul-escuro:#1E40AF;
  --el-turquesa:#06D6C7;
  --el-turquesa-forte:#0BA89D; /* carimbo preenchido: turquesa com contraste para a estrela branca */
  --el-fundo:#F5F8FF;
  --el-texto:#1E293B;
  --el-suave:#64748B;
  --el-borda:#E2E8F0;
  --el-azul-claro:#EAF1FF;
  --el-sucesso:#16A34A;
  --el-atencao:#F59E0B;
  --el-erro:#DC2626;
  --el-sombra:0 1px 2px rgba(15,23,42,.04),0 6px 20px rgba(15,23,42,.06);

  --tinta:var(--el-marinho);
  --acento:var(--el-azul);
  --acento-claro:var(--el-turquesa);
  --texto:var(--el-texto);
  --papel:var(--el-fundo);

  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:16px;
  background:var(--el-fundo);
  color:var(--el-texto);
  position:relative;
  overflow-x:hidden;
}
/* Elos da marca, bem discretos, no fundo */
body.app-cliente::before,body.app-cliente::after{content:"";position:fixed;z-index:-1;pointer-events:none;background:url("../img/e-link/simbolo.svg") no-repeat center/contain;opacity:.07}
body.app-cliente::before{width:360px;height:290px;top:-60px;right:-140px;transform:rotate(-12deg)}
body.app-cliente::after{width:420px;height:340px;bottom:-120px;left:-200px;transform:rotate(18deg)}

.app-cliente :focus-visible{outline:3px solid var(--el-azul);outline-offset:2px}
.app-cliente .ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.app-cliente h1,.app-cliente h2{color:var(--el-marinho);letter-spacing:-.01em}
.app-cliente .dica,.app-cliente .carregando{color:var(--el-suave)}

/* Botões comuns com raio e cores e-link (área de toque mínima de 44px) */
.app-cliente .botao{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:0;border-radius:12px;font:inherit;font-weight:600;font-size:1rem;cursor:pointer;background:var(--el-azul);color:#fff}
.app-cliente .botao:hover{background:var(--el-azul-escuro)}
.app-cliente .botao .ic{width:20px;height:20px}
.app-cliente .botao-sec{min-height:44px;border-radius:12px;border-color:var(--el-azul);color:var(--el-azul-escuro)}

/* ---------------------------------------------------------------
   Cabeçalho e largura
   --------------------------------------------------------------- */
.cl-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:600px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 16px 10px}
.cl-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.cl-marca{font-size:1.75rem;font-weight:700;color:var(--el-marinho);letter-spacing:-.03em;display:inline-flex;align-items:center}
.cl-traco{display:inline-block;width:.42em;height:.16em;background:var(--el-turquesa);margin:0 .05em;border-radius:1px;transform:translateY(.05em)}
.cl-sair{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;font:inherit;font-size:.9rem;font-weight:600;color:var(--el-suave);background:transparent;border:0;border-radius:12px;cursor:pointer}
.cl-sair:hover{background:#fff;color:var(--el-marinho)}
.cl-sair .ic{width:18px;height:18px}

.app-cliente .cl-conteudo{max-width:600px;margin:0 auto;padding:8px 16px max(40px,env(safe-area-inset-bottom))}

.cl-card,.app-cliente .cartao-acesso,.app-cliente .cartao-fidelidade,.app-cliente .premio{background:#fff;border:1px solid rgba(226,232,240,.8);border-radius:18px;box-shadow:var(--el-sombra)}

.cl-icone{width:56px;height:56px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--el-azul-claro);color:var(--el-azul)}
.cl-icone .ic{width:26px;height:26px}
.cl-icone-azul{background:var(--el-azul-claro);color:var(--el-azul)}
.cl-icone-turquesa,.tema-turquesa{background:#E3FAF7;color:#0E9F96}
.tema-azul{background:var(--el-azul-claro);color:var(--el-azul)}
.tema-laranja{background:#FFF1DE;color:#D97706}

/* Programa antes do login */
.app-cliente .programa-topo{padding:20px;text-align:left;margin-bottom:16px}
.app-cliente .programa-topo h1{font-size:1.5rem;margin:2px 0 6px}
.app-cliente .programa-loja{color:var(--el-suave);font-weight:500}

/* Entrada (e-mail, código, nome) */
.app-cliente .cartao-acesso{max-width:none;margin:0 0 16px;padding:24px}
.app-cliente .cartao-acesso .cl-icone{margin-bottom:12px}
.app-cliente .cartao-acesso h2{font-size:1.4rem;margin:0 0 6px}
.app-cliente .cartao-acesso form{gap:14px}
.app-cliente .cartao-acesso input{border-color:var(--el-borda);border-radius:12px;padding:13px 14px;font-size:1rem;min-height:48px}
.app-cliente .cartao-acesso input:focus-visible{outline:3px solid rgba(37,99,235,.25);border-color:var(--el-azul);outline-offset:0}
.app-cliente .cartao-acesso input[name=codigo]{font-size:1.4rem;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------------
   Aviso do resultado da leitura da placa
   --------------------------------------------------------------- */
.app-cliente .resultado-leitura{display:flex;align-items:center;gap:16px;text-align:left;padding:18px;border-radius:18px;margin-bottom:16px}
.app-cliente .resultado-leitura .cl-icone{width:52px;height:52px}
.app-cliente .resultado-titulo{font-size:1.15rem;font-weight:700;margin:0 0 4px;color:var(--el-marinho)}
.app-cliente .resultado-leitura p{margin:0;color:var(--el-texto);line-height:1.45}
.resultado-leitura.aviso{background:#FFF8E1}
.resultado-leitura.aviso .cl-icone{background:#FDE68A;color:#B45309}
.resultado-leitura.sucesso{background:#E6FAF6}
.resultado-leitura.sucesso .cl-icone{background:var(--el-turquesa-forte);color:#fff}
.resultado-leitura.premio{background:#FFF1DE}
.resultado-leitura.premio .cl-icone{background:var(--el-atencao);color:#fff}
.resultado-leitura.espera{background:var(--el-azul-claro)}
.resultado-leitura.espera .cl-icone{background:#fff;color:var(--el-azul)}
.resultado-leitura.erro{background:#FEF2F2}
.resultado-leitura.erro .cl-icone{background:#FECACA;color:#B91C1C}

/* ---------------------------------------------------------------
   Cartão de carimbos
   --------------------------------------------------------------- */
.app-cliente .cartao-fidelidade{padding:20px;text-align:center}
.app-cliente .cartao-fidelidade.principal{border:1px solid rgba(226,232,240,.8)}
.app-cliente .cartao-fidelidade.completo{background:#fff}
.cartao-fidelidade.pausado{opacity:.85}
.cartao-cabeca{display:flex;align-items:center;gap:14px;text-align:left;margin-bottom:18px}
.cartao-cabeca .cl-icone{width:60px;height:60px}
.app-cliente .cartao-loja{margin:0;color:var(--el-suave);font-size:.95rem;font-weight:500}
.app-cliente .cartao-fidelidade h2{margin:0;font-size:1.45rem;font-weight:700}

.app-cliente .carimbos{display:grid;grid-template-columns:repeat(var(--colunas,5),minmax(0,1fr));gap:12px;max-width:calc(var(--colunas,5) * 68px);margin:0 auto 16px}
.app-cliente .carimbo{aspect-ratio:1;border-radius:50%;border:2px dashed #B8C4D6;background:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;color:#8A99AD;font-size:1rem}
.app-cliente .carimbo.feito{border:0;background:var(--el-turquesa-forte);color:#fff;box-shadow:0 4px 10px rgba(11,168,157,.28)}
.app-cliente .carimbo.feito .ic{width:46%;height:46%;fill:currentColor;stroke-width:1.5}
.app-cliente .carimbo.novo{animation:carimbo-novo .55s ease-out both}
@keyframes carimbo-novo{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}

.cartao-progresso{margin:0;font-size:1.05rem;color:var(--el-texto)}
.cartao-progresso strong{color:var(--el-marinho);font-size:1.15rem}
.cartao-premio{margin:2px 0 0;color:var(--el-suave)}
.cartao-completo,.cartao-resgates,.cartao-pausado{display:flex;align-items:center;justify-content:center;gap:8px;text-align:left;margin:14px 0 0;padding:10px 14px;border-radius:12px;font-size:.92rem;line-height:1.4}
.cartao-completo{background:#FFF1DE;color:#92400E}
.cartao-completo .ic,.cartao-resgates .ic,.cartao-pausado .ic{width:20px;height:20px}
.cartao-resgates{background:var(--el-azul-claro);color:var(--el-azul-escuro);font-weight:500}
.cartao-pausado{background:#FEF2F2;color:#991B1B}

/* Instrução para ganhar carimbo */
.cl-instrucao{display:flex;align-items:center;gap:14px;background:var(--el-azul-claro);border-radius:16px;padding:16px 18px;margin:16px 0 0;color:var(--el-texto);text-align:left}
.cl-instrucao .ic{width:34px;height:34px;color:var(--el-marinho);stroke-width:1.6}
.cl-instrucao p{margin:0;font-size:.95rem;line-height:1.45}

/* ---------------------------------------------------------------
   Outros cartões e prêmios
   --------------------------------------------------------------- */
.app-cliente .outros-titulo{font-size:1.4rem;font-weight:700;margin:32px 0 12px}
.app-cliente .lista-cartoes{gap:14px}
.app-cliente .lista-cartoes .carimbos{max-width:calc(var(--colunas,5) * 56px);gap:10px}
.app-cliente .lista-cartoes .cartao-fidelidade h2{font-size:1.25rem}
.app-cliente .lista-cartoes .cartao-cabeca .cl-icone{width:52px;height:52px}
.cl-secao-texto{margin:-4px 0 14px;color:var(--el-suave);line-height:1.5}

.app-cliente .lista-premios{gap:14px}
.app-cliente .premio{border-left:5px solid var(--el-turquesa);padding:18px 20px}
.app-cliente .premio.premio-aguardando{border-left-color:var(--el-atencao)}
.app-cliente .premio.premio-entregue{border-left-color:var(--el-azul)}
.app-cliente .premio-nome{font-size:1.2rem;font-weight:700;color:var(--el-marinho);margin:0 0 4px}
.premio-onde{margin:0 0 10px;color:var(--el-suave);font-size:.92rem}
.app-cliente .premio-comprovante{margin:0 0 12px;font-size:1rem}
.app-cliente .premio-comprovante strong{font-family:inherit;letter-spacing:.06em;color:var(--el-marinho)}

/* Linha do tempo do prêmio */
.premio-linha{list-style:none;margin:0;padding:0}
.premio-linha li{position:relative;padding:0 0 14px 28px;font-size:.94rem;color:var(--el-texto);line-height:1.4}
.premio-linha li:last-child{padding-bottom:0}
.premio-linha li::before{content:"";position:absolute;left:3px;top:4px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #B8C4D6}
.premio-linha li:not(:last-child)::after{content:"";position:absolute;left:9px;top:20px;bottom:2px;border-left:2px dashed #CBD5E1}
.premio-linha li.pendente{color:var(--el-suave)}
.premio-linha li.feito::before{background:#93C5FD;border-color:#93C5FD}
.premio-linha li.confirmado::before{background:var(--el-turquesa-forte);border-color:var(--el-turquesa-forte)}
.premio-linha li strong{color:var(--el-marinho)}
.app-cliente .premio [data-confirmar]{width:100%;margin-top:16px}

/* Minha conta */
.app-cliente .conta{padding:16px 20px;margin-top:28px}
.app-cliente .conta summary{font-weight:600;color:var(--el-marinho);cursor:pointer;min-height:28px}
.app-cliente .vazio{border-radius:18px;border-color:var(--el-borda);background:#fff}

/* Telas maiores: mantém a cara de aplicativo, centralizado */
@media(min-width:720px){
  .app-cliente .cl-conteudo{padding-top:16px}
  .app-cliente .cartao-fidelidade,.app-cliente .cartao-acesso{padding:28px}
}
@media(max-width:360px){
  .app-cliente .carimbos{gap:8px}
  .cartao-cabeca .cl-icone{width:52px;height:52px}
}
@media(prefers-reduced-motion:reduce){.app-cliente .carimbo.novo{animation:none}}
