/* Ingressos — desenho partilhado entre o portal, o painel e a impressão */
.bilhete{--b-fundo:#120c07;--b-fundo2:#3a2410;--b-texto:#f6ead2;--b-dest:#f5b400;--b-img:none;--b-img-op:.35;
  position:relative;display:flex;color:var(--b-texto);font-family:'Jost',system-ui,sans-serif;border-radius:18px;overflow:hidden;
  background:linear-gradient(150deg,var(--b-fundo),var(--b-fundo2));box-shadow:0 30px 60px -30px rgba(0,0,0,.9),0 0 0 1px color-mix(in srgb,var(--b-dest) 45%,transparent);
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
.bilhete *{box-sizing:border-box}
.b-corpo{position:relative;flex:1;display:grid;padding:22px;min-width:0;isolation:isolate}
.b-img{position:absolute;inset:0;z-index:-1;background:var(--b-img) center/cover no-repeat;opacity:var(--b-img-op)}
.b-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,color-mix(in srgb,var(--b-fundo) 85%,transparent))}
.b-faixa{position:absolute;left:0;right:0;top:0;height:10px;z-index:-1;opacity:.9;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10'%3E%3Cpath d='M0 10L5 0l5 10z' fill='%23f5b400'/%3E%3Cpath d='M10 0l5 10L20 0z' fill='%23b4532a'/%3E%3C/svg%3E") repeat-x left/20px 10px}
.b-topo{display:flex;align-items:center;justify-content:space-between;gap:10px}
.b-logo{height:52px;width:auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}
.b-num{font:400 1.25rem 'Bebas Neue',sans-serif;letter-spacing:.1em;color:var(--b-dest)}
.b-ed{display:block;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--b-dest);opacity:.9}
.b-titulo{font:700 1.7rem/1.05 'Cinzel',Georgia,serif;margin:6px 0 2px;color:var(--b-dest);letter-spacing:.02em}
.b-sub{display:block;font:italic 500 1.05rem 'Cormorant Garamond',Georgia,serif;opacity:.9;min-height:.5em}
.bilhete dl{margin:12px 0 0;display:grid;gap:6px}
.bilhete dl div{display:grid;grid-template-columns:62px 1fr;gap:8px;align-items:baseline}
.bilhete dt{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;opacity:.65}
.bilhete dd{margin:0;font-size:.86rem;font-weight:500;line-height:1.3}
.b-qr{display:flex;flex-direction:column;align-items:center;gap:6px}
.b-qr .qr{background:#fff;padding:8px;border-radius:10px;line-height:0;box-shadow:0 0 0 2px var(--b-dest)}
.b-qr .qr svg{display:block;width:100%;height:auto}
.b-qr code{font:400 1rem 'Bebas Neue',monospace;letter-spacing:.2em;color:var(--b-texto)}
.b-rodape{margin:0;font-size:.62rem;line-height:1.4;opacity:.7;text-align:center}
.b-selo{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%) rotate(-14deg);padding:10px 22px;border:3px solid;border-radius:10px;font:700 1.4rem 'Cinzel',serif;text-transform:uppercase;letter-spacing:.08em;background:rgba(0,0,0,.55);white-space:nowrap}
.b-selo.b-usado{color:#f5b400}.b-selo.b-anulado{color:#e0664a}.b-selo.b-reservado{color:#e6a43a}

/* Retrato — ingresso digital (telemóvel) */
.b-retrato{width:360px;max-width:100%}
.b-retrato .b-corpo{grid-template-rows:auto auto 1fr auto;gap:14px;padding-top:28px}
.b-retrato .b-qr .qr{width:190px}

/* Paisagem — ingresso físico (200 × 70 mm) com canhoto */
.b-paisagem{width:760px;max-width:100%;aspect-ratio:200/70}
.b-paisagem .b-corpo{grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;column-gap:22px;row-gap:6px;padding:20px 22px 12px}
.b-paisagem .b-topo{grid-column:1}
.b-paisagem .b-info{grid-column:1;grid-row:2;align-self:center}
.b-paisagem .b-qr{grid-column:2;grid-row:1/4;align-self:center}
.b-paisagem .b-qr .qr{width:150px}
.b-paisagem .b-rodape{grid-column:1;text-align:left}
.b-paisagem .b-logo{height:44px}
.b-paisagem dl{grid-template-columns:1fr 1fr;column-gap:16px}
.b-canhoto{width:150px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px;border-left:2px dashed color-mix(in srgb,var(--b-texto) 40%,transparent);text-align:center;background:rgba(0,0,0,.18)}
.b-canhoto span{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.b-canhoto b{font:400 1.8rem 'Bebas Neue',sans-serif;color:var(--b-dest)}
.b-canhoto code{font-size:.7rem;letter-spacing:.12em}
.b-canhoto i{font-style:normal;font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;opacity:.5;writing-mode:horizontal-tb}
.b-canhoto[hidden]{display:none}

@media print{
  .bilhete{box-shadow:none;border:.3mm solid #999;break-inside:avoid}
  .b-paisagem{width:200mm;height:70mm;aspect-ratio:auto}
  .b-retrato{width:90mm}
}
.bilhete [hidden]{display:none!important}
