/* ── Shared ─────────────────────────────────────────────────────────────── */
:root{--mc-purple:#7c22c4;--mc-purple-bright:#a24bff;--mc-dark:#100d1a;--mc-ink:#1a1a2e}

/* ── Printable ticket ───────────────────────────────────────────────────── */
.mc-ticket-wrap{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:28px 16px;box-sizing:border-box;font-family:'Outfit',Arial,sans-serif}
.mc-ticket{background:#fff;color:var(--mc-ink);max-width:420px;width:100%;border-radius:18px;padding:28px;box-shadow:0 18px 50px rgba(0,0,0,.45);text-align:center;overflow:hidden}
.mc-ticket__head{background:linear-gradient(135deg,#241238,var(--mc-purple));margin:-28px -28px 22px;padding:22px;display:flex;justify-content:center}
.mc-ticket__logo{width:170px;max-width:70%;height:auto}
.mc-ticket h1{font-family:'Bebas Neue','Outfit',sans-serif;font-size:2rem;letter-spacing:.03em;line-height:1.05;margin:0 0 8px;text-transform:uppercase}
.mc-ticket__meta{color:#666;font-size:.92rem;margin:0 0 18px}
.mc-ticket__guest{background:#f5f0fb;border:1px solid #eadff8;border-radius:12px;padding:16px;margin:0 0 20px;font-size:1.05rem}
.mc-ticket__guest strong{font-size:1.25rem}
.mc-ticket__qr{width:250px;height:250px;image-rendering:pixelated}
.mc-ticket__hint{color:#888;font-size:.85rem;margin:8px 0 18px;text-transform:uppercase;letter-spacing:.08em}
.mc-ticket__print{background:var(--mc-purple);color:#fff;border:0;border-radius:10px;padding:13px 28px;font-size:1rem;font-weight:600;cursor:pointer}
.mc-ticket__print:hover{background:var(--mc-purple-bright)}
.mc-ticket--invalid{color:#b00}
.mc-ticket--invalid .mc-ticket__head{background:#333}
@media print{
  html,body{background:#fff !important}
  .mc-ticket__print{display:none}
  body *{visibility:hidden}
  .mc-ticket-wrap,.mc-ticket-wrap *{visibility:visible}
  .mc-ticket-wrap{position:absolute;inset:0;min-height:0}
  .mc-ticket{box-shadow:none}
}

/* ── Scanner (standalone / PWA) ─────────────────────────────────────────── */
.mc-scan-wrap{max-width:520px;margin:0 auto;padding:env(safe-area-inset-top,16px) 16px 32px;color:#fff;font-family:'Outfit',Arial,sans-serif}
.mc-scan-head{display:flex;align-items:center;gap:14px;padding:18px 4px 10px}
.mc-scan-logo{width:150px;max-width:55%;height:auto}
.mc-scan-title{font-family:'Bebas Neue','Outfit',sans-serif;font-size:1.5rem;letter-spacing:.08em;text-transform:uppercase;color:#cfc3e6}

.mc-scan-login{background:#1a1425;border:1px solid #2c2340;border-radius:16px;padding:32px 24px;text-align:center;margin-top:12vh}
.mc-scan-login .mc-scan-logo{width:190px;max-width:70%;margin:0 auto 18px;display:block}
.mc-scan-login h1{font-family:'Bebas Neue','Outfit',sans-serif;letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px}
.mc-scan-login p{color:#a99cc4;margin:0 0 14px}
.mc-scan-login input{width:100%;box-sizing:border-box;padding:14px;border-radius:10px;border:0;margin:8px 0;font-size:1.05rem;text-align:center}
.mc-scan-login button,.mc-lookup button{background:var(--mc-purple);color:#fff;border:0;border-radius:10px;padding:13px 26px;font-size:1rem;font-weight:600;cursor:pointer}
.mc-scan-login button:hover{background:var(--mc-purple-bright)}

/* The hidden attribute must beat any author display rule below (a class that
   sets display:block silently overrides the browser default for [hidden] —
   that's why the empty session picker kept showing on sessionless events). */
[hidden]{display:none !important}
.mc-field{display:block;margin:6px 0 16px}
.mc-field span{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#9b8db8;margin-bottom:6px}
.mc-field select{width:100%;padding:14px;border-radius:12px;border:1px solid #3a2f52;background:#1a1425;color:#fff;font-size:1.05rem}

.mc-count{background:linear-gradient(135deg,#241238,var(--mc-purple));border-radius:14px;padding:18px;text-align:center;margin:0 0 16px}
.mc-count__big{display:block;font-family:'Bebas Neue','Outfit',sans-serif;font-size:2.6rem;line-height:1;letter-spacing:.02em}
.mc-count__sub{display:block;margin-top:6px;font-size:.85rem;color:#e6dcf7;opacity:.85}

.mc-cam-box{position:relative;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:3/4}
#mc-cam{width:100%;height:100%;object-fit:cover}
.mc-cam-reticle{position:absolute;inset:16%;border:3px solid rgba(255,255,255,.85);border-radius:16px;box-shadow:0 0 0 100vmax rgba(0,0,0,.25);pointer-events:none}

.mc-res{border-radius:14px;padding:22px;margin:16px 0;text-align:center;animation:mc-pop .18s ease}
@keyframes mc-pop{from{transform:scale(.96);opacity:.4}to{transform:scale(1);opacity:1}}
.mc-res h2{font-family:'Bebas Neue','Outfit',sans-serif;font-size:1.8rem;letter-spacing:.03em;margin:0 0 6px}
.mc-res p{margin:0}
.mc-res--ok{background:#12633a;color:#fff}
.mc-res--warn{background:#8a6d00;color:#fff}
.mc-res--bad{background:#7a1220;color:#fff}
.mc-res button{margin-top:14px;background:#fff;color:var(--mc-ink);border:0;border-radius:10px;padding:11px 20px;font-weight:600;cursor:pointer}

.mc-lookup{margin-top:18px}
.mc-lookup input{width:100%;box-sizing:border-box;padding:13px;border-radius:10px;border:1px solid #3a2f52;background:#1a1425;color:#fff;font-size:1rem}
#mc-search-results{list-style:none;padding:0;margin:8px 0}
#mc-search-results li{margin:6px 0}
#mc-search-results button{width:100%;text-align:left;background:#241a33;border:1px solid #352a4a}
.mc-err{color:#ffb3b3;font-weight:600}

/* Full-screen scan flash */
.mc-flash{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;opacity:0;pointer-events:none;transition:opacity .55s ease;font-family:'Bebas Neue','Outfit',sans-serif;padding:24px;box-sizing:border-box}
.mc-flash.show{opacity:1;transition:opacity .04s ease}
.mc-flash--ok{background:rgba(16,120,68,.97)}
.mc-flash--warn{background:rgba(150,116,0,.97)}
.mc-flash--bad{background:rgba(150,20,36,.97)}
.mc-flash__word{font-size:clamp(3rem,16vw,7rem);line-height:.95;letter-spacing:.03em}
.mc-flash__name{font-family:'Outfit',sans-serif;font-weight:600;font-size:clamp(1.2rem,6vw,2.2rem);margin-top:10px;opacity:.95}
.mc-flash__type{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.6rem,8vw,3rem);letter-spacing:.05em;margin-top:8px;padding:4px 18px;border:2px solid currentColor;border-radius:12px;opacity:.95}
/* "2 OF 4" — how far through a multi-ticket order the door is. */
.mc-flash__order{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.4rem,7vw,2.6rem);letter-spacing:.08em;margin-top:8px;opacity:.9}
.mc-res__order{font-weight:600;opacity:.9}
