body{
  margin:0;
  min-height:100vh;
  background:linear-gradient(135deg,#050505,#2a240f);
  color:#fff;
  font-family:Arial, Helvetica, sans-serif;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.wallet-shell{
  width:min(480px, 100%);
}
.ticket-card{
  background:#fff;
  color:#111;
  border-radius:28px;
  overflow:hidden;
  border:4px solid #d6a51f;
  box-shadow:0 22px 70px rgba(0,0,0,.55);
}
.ticket-card.hold-ticket{
  border-color:#f57c00;
}
.brand-row{
  background:#111;
  color:#fff;
  padding:18px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  border-bottom:5px solid #d6a51f;
}
.brand{
  color:#d6a51f;
  font-weight:900;
  letter-spacing:1px;
  font-size:20px;
}
.venue{
  color:#ddd;
  font-weight:bold;
  margin-top:3px;
}
.badge{
  background:#d6a51f;
  color:#111;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  font-size:12px;
}
.event-name{
  padding:18px 18px 0;
  font-size:25px;
  font-weight:900;
}
.hold-warning{
  margin:14px 18px 0;
  background:#fff3cd;
  color:#111;
  border:1px solid #f57c00;
  border-radius:10px;
  padding:10px;
  font-weight:bold;
}
.seat-block{
  padding:18px;
}
.label{
  color:#666;
  text-transform:uppercase;
  font-size:12px;
  font-weight:900;
}
.seat{
  font-size:48px;
  font-weight:900;
  line-height:1;
  margin:4px 0;
}
.seat-details{
  font-weight:bold;
  color:#333;
}
.guest{
  padding:0 18px 12px;
}
.guest-name{
  font-size:22px;
  font-weight:900;
}
.qr-wrap{
  text-align:center;
  padding:10px 18px 18px;
}
.qr-wrap img{
  width:260px;
  height:260px;
  border:8px solid #f2f2f2;
  border-radius:14px;
}
.scan-note{
  margin-top:8px;
  font-weight:bold;
  color:#555;
}
.checked{
  margin:0 18px 16px;
  background:#d7f7df;
  border:1px solid #31a24c;
  border-radius:10px;
  padding:10px;
  font-weight:bold;
}
.wallet-actions{
  display:flex;
  gap:10px;
  padding:0 18px 18px;
}
.wallet-actions button{
  flex:1;
  background:#111;
  color:#d6a51f;
  border:0;
  border-radius:10px;
  padding:12px;
  font-weight:900;
  cursor:pointer;
}
.footer{
  background:#f3f3f3;
  color:#111;
  text-align:center;
  padding:12px;
  font-weight:900;
  border-top:1px dashed #aaa;
}
.pad{
  padding:24px;
}
.error-card{
  border-color:#c62828;
}
.muted{
  color:#777;
}
@media print{
  body{
    background:#fff;
    padding:0;
  }
  .ticket-card{
    box-shadow:none;
  }
  .no-print{
    display:none!important;
  }
}
