/* passe.css — componente UNICO do passe (carteira digital), usado pelo site, pela validacao do parceiro e pelo admin (modal). Medidas para 350px (max 380px).
   Escura = --heading, destaque = --accent (marca; o site injeta, o admin define no escopo do modal); neutros e status do passe ficam aqui. */
:root{--passe-bg:#eeece6;--passe-card:#fbfaf7;--passe-rot:#5a6b62;--passe-tr:#d9d5ca;--passe-bd:#e4e1d9}
.passe-page{background:var(--passe-bg)}.passe-stage{background:var(--passe-bg);border-radius:28px;padding:32px 16px}
.passe{width:100%;max-width:380px;margin:0 auto;border-radius:24px;overflow:hidden;background:var(--passe-card);box-shadow:0 14px 32px rgba(10,36,32,.16);text-align:left;color:var(--heading,#111827);position:relative}
.passe-topo{height:64px;background:var(--heading,#111827);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px}
.passe-marca{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--accent,#64748b)}.passe-pata{flex:none}.passe-exemplo{position:relative}.passe-nomemarca{font:800 20px/1 var(--ft,'Plus Jakarta Sans','Helvetica Neue',Arial,sans-serif);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.passe-nomemarca span{color:var(--accent,#64748b);font-weight:500}
.passe-status{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font:800 11px/1 var(--fx,'Plus Jakarta Sans','Helvetica Neue',Arial,sans-serif);letter-spacing:1.5px;white-space:nowrap;flex:none;background:#dff3e5;color:#0f5a2a}.passe-status i{width:7px;height:7px;border-radius:50%;background:var(--ok,#157f3c)}
.passe-status.bad{background:#fbe3e0;color:#8a1c12}.passe-status.bad i{background:var(--bad,#b42318)}
.passe-foto{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:#e9f2e6;color:var(--accent,#64748b);display:flex;align-items:center;justify-content:center;-webkit-print-color-adjust:exact;print-color-adjust:exact}
/* foto INTEIRA: fundo = a mesma imagem cobrindo e desfocada; frente = a imagem com contain (nada cortado) */
.passe-foto-fundo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(18px) brightness(.85);transform:scale(1.15);display:block}.passe-foto-frente{position:relative;width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.passe-foto.vazio svg{width:72px;height:72px}.passe-aviso{margin:0;padding:10px 12px;border-radius:12px;background:#fff4e0;color:#7a4b00;font-weight:700;font-size:14px}
.pet-aviso{margin:0;padding:8px 10px;border-radius:10px;background:#fff4e0;color:#7a4b00;font-size:13px;font-weight:600}
.passe-selo{position:absolute;top:10px;right:10px;background:rgba(10,36,32,.72);color:#fff;font:800 10px/1 var(--fx,'Plus Jakarta Sans','Helvetica Neue',Arial,sans-serif);letter-spacing:1.5px;padding:6px 10px;border-radius:999px}
.passe-dados{padding:18px 20px 16px;display:flex;flex-direction:column;gap:14px}
.passe-rot{display:block;font:700 10px/1.2 var(--fx,'Plus Jakarta Sans','Helvetica Neue',Arial,sans-serif);letter-spacing:2px;color:var(--passe-rot)}
.passe-pet{display:block;font:800 32px/1.1 var(--ft,'Plus Jakarta Sans','Helvetica Neue',Arial,sans-serif);letter-spacing:-.5px;margin-top:4px;overflow-wrap:anywhere}.passe-pet.lg{font-size:26px}.passe-pet.xl{font-size:22px}
.passe-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0}.passe-grade>div{min-width:0}.passe-grade dt{margin:0}.passe-grade dd{margin:3px 0 0;font:600 15px/1.3 var(--fx,'Plus Jakarta Sans','Helvetica Neue',Arial,sans-serif);overflow-wrap:anywhere}
.passe-val{font-weight:800!important;color:#0f5a2a}.passe-val.bad{color:#8a1c12}
.passe-picote{position:relative;height:24px;background:repeating-linear-gradient(90deg,var(--passe-tr) 0 6px,transparent 6px 12px) 20px 11px/calc(100% - 40px) 2px no-repeat}
.passe-picote::before,.passe-picote::after{content:"";position:absolute;top:0;width:24px;height:24px;border-radius:50%;background:var(--passe-bg)}.passe-picote::before{left:-12px}.passe-picote::after{right:-12px}
.passe-rodape{padding:12px 20px 22px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.passe-qr{width:168px;height:168px;box-sizing:border-box;background:#fff;border:1px solid var(--passe-bd);border-radius:14px;padding:10px;display:flex;align-items:center;justify-content:center;color:var(--heading,#111827)}.passe-qr svg{width:100%;height:100%}
.passe-num{font:600 18px/1.2 "IBM Plex Mono",ui-monospace,Menlo,monospace;letter-spacing:2px;overflow-wrap:anywhere}.passe-dica{margin:0;font-size:12px;color:var(--passe-rot)}
.passe-acoes{margin:22px 0 0;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.passe-parceiro .passe-status{font-size:14px;padding:9px 16px;gap:8px}.passe-parceiro .passe-status i{width:9px;height:9px}
.passe-validacao{margin-top:14px}.passe-validacao .passe-stage{padding:20px 12px}

@media print{@page{size:A4 portrait;margin:15mm}
 :root{--passe-bg:#fff}body,html,.passe-page{background:#fff!important}
 .passe{width:9cm;max-width:9cm;margin:0 auto;box-shadow:none;border:1px solid #d9d5ca;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.passe *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .passe-picote::before,.passe-picote::after{background:#fff!important}.passe-qr{width:4cm;height:4cm}}
