:root{--red:#e3121b;--red-dark:#b30a12;--navy:#0b1440;--gold:#f2b632;--blue:#2f6bff;--green:#1faa55;--ink:#141414}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Montserrat',Arial,Helvetica,sans-serif;color:#fff;line-height:1.5;min-height:100vh;
  background:radial-gradient(ellipse at 0% 90%,rgba(227,18,27,.32),transparent 40%),radial-gradient(ellipse at 100% 80%,rgba(47,107,255,.22),transparent 40%),linear-gradient(180deg,#0a0f2e,#070a1f 70%)}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:1000px;margin:0 auto;padding:0 20px}
.top{padding:16px 0}.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px}
.back{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;opacity:.85;min-height:44px}
.back:hover{opacity:1}
.brand{background:var(--red);font-weight:900;font-size:18px;padding:3px 9px;letter-spacing:-.4px}
h1.pg{font-size:clamp(22px,3.2vw,30px);font-weight:800;text-transform:uppercase;letter-spacing:.8px;text-align:center;margin:10px 0 6px}
.lead{text-align:center;font-size:14px;opacity:.8;max-width:520px;margin:0 auto 26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:10px;border:0;cursor:pointer;
  font:inherit;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;transition:filter .2s,background .2s}
.btn-red{background:linear-gradient(180deg,#ff2a33,#d80d17);color:#fff;box-shadow:0 8px 20px rgba(227,18,27,.35)}
.btn-red:hover{filter:brightness(1.08)}
.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.card{background:#fff;color:var(--ink);border-radius:14px;box-shadow:0 20px 44px rgba(0,0,0,.4);overflow:hidden}
.card-h{background:linear-gradient(90deg,var(--red-dark),var(--red));color:#fff;padding:14px 20px;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.5px}
.card-b{padding:20px}
label.f{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#5a5a68;margin:0 0 6px}
input.in,select.in{width:100%;min-height:48px;border:1.5px solid #d6d6de;border-radius:8px;padding:0 14px;font:inherit;font-size:15px;color:var(--ink);background:#fff}
input.in:focus,select.in:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px rgba(227,18,27,.15)}
.row{margin-bottom:14px}
.msg{border-radius:8px;padding:12px 14px;font-size:13.5px;margin-bottom:14px}
.msg.err{background:#fdecec;color:#9b1016;border:1px solid #f5c2c4}
.msg.ok{background:#eaf8ef;color:#136b36;border:1px solid #bfe7cd}
.msg.info{background:#eef2ff;color:#1c2f8a;border:1px solid #cfd8ff}
.small{font-size:12px;color:#6b6c7b}

/* ================= TICKET ================= */
.ticket{position:relative;width:100%;max-width:400px;margin:0 auto;border-radius:18px;overflow:hidden;color:#fff;font-family:'Montserrat',Arial,sans-serif;
  box-shadow:0 24px 50px rgba(0,0,0,.5)}
.t-premium{background:linear-gradient(165deg,#5a0810 0%,#2a0306 55%,#1a0205 100%);border:2px solid #ff3a3f}
.t-vip{background:linear-gradient(165deg,#12287a 0%,#08133d 55%,#060d2a 100%);border:2px solid #3f7bff}
.tk-top{position:relative;padding:22px 22px 16px;text-align:center;overflow:hidden}
.tk-top::before{content:"";position:absolute;inset:0;background:url(../images/mumbai-skyline.svg) center bottom/cover no-repeat;opacity:.28}
.tk-top>*{position:relative}
.tk-logo{width:190px;margin:0 auto}
.tk-theme{font-size:10px;letter-spacing:4px;text-transform:uppercase;opacity:.85;margin-top:8px}
.tk-tier{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:7px 16px;border-radius:999px;font-size:15px;font-weight:900;letter-spacing:1.5px;color:#1a1a1a;
  background:linear-gradient(180deg,#ffe58a,#f2b632 60%,#c8871a)}
.tk-tier svg{width:22px;height:18px}
.tk-body{padding:4px 22px 18px}
.tk-k{font-size:9.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;opacity:.65}
.tk-v{font-size:14px;font-weight:700;line-height:1.3;margin-top:2px}
.tk-name{font-size:21px;font-weight:900;text-transform:uppercase;line-height:1.15;margin-top:2px;word-break:break-word}
.tk-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-top:14px}
.tk-grid .full{grid-column:1/-1}
.tk-perf{position:relative;height:26px}
.tk-perf::before{content:"";position:absolute;left:18px;right:18px;top:50%;border-top:2px dashed rgba(255,255,255,.35)}
.tk-perf i{position:absolute;top:0;width:26px;height:26px;border-radius:50%;background:#070a1f}
.tk-perf i:first-child{left:-15px}.tk-perf i:last-child{right:-15px}
.tk-qr{padding:14px 22px 22px;text-align:center}
.tk-qrbox{display:inline-block;background:#fff;padding:12px;border-radius:12px}
.tk-qrbox canvas,.tk-qrbox img{display:block;width:170px;height:170px}
.tk-code{font-size:17px;font-weight:900;letter-spacing:2px;margin-top:10px}
.tk-note{font-size:11px;opacity:.75;margin-top:4px}
.tk-foot{background:rgba(0,0,0,.28);text-align:center;font-size:10.5px;padding:9px 12px;letter-spacing:.5px;opacity:.9}
.tk-stamp{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%) rotate(-14deg);z-index:5;padding:8px 18px;border:4px solid;border-radius:10px;
  font-size:24px;font-weight:900;letter-spacing:2px;white-space:nowrap;background:rgba(7,10,31,.55)}
.tk-stamp.cx{font-size:clamp(15px,4.5vw,20px)}
.tk-stamp.in{color:#4ade80;border-color:#4ade80}.tk-stamp.cx{color:#ff6b6b;border-color:#ff6b6b}
.tk-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:22px auto 10px;max-width:400px}
.tk-actions .btn{flex:1;min-width:150px}
@media print{
  body{background:#fff}
  .noprint{display:none!important}
  .ticket{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;margin-top:0}
  .tk-perf i{background:#fff}
}
