:root{
  --navy:#141C3A; --navy2:#1D2547; --violet:#6D5DF0; --violet-d:#5748d6;
  --bg:#0E1330; --card:#1A2145; --text:#F2F3FA; --muted:#9AA0C3;
  --green:#3DDC84; --red:#FF5C6C; --gold:#F5B942;
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
body{margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--text);}
.wrap{max-width:640px; margin:0 auto; padding:16px 16px 64px;}
header.brand{text-align:center; padding:28px 0 10px;}
.wordmark{font-weight:900; font-size:44px; letter-spacing:6px; line-height:1;
  background:linear-gradient(135deg,#8f80ff,#6D5DF0 45%,#3d7bff);
  -webkit-background-clip:text; background-clip:text; color:transparent;}
.tagline{color:var(--muted); font-size:13px; letter-spacing:2px; margin-top:6px; text-transform:uppercase;}
.card{background:var(--card); border-radius:16px; padding:18px; margin:14px 0;
  border:1px solid rgba(109,93,240,.25);}
.card h2{margin:0 0 10px; font-size:20px;}
.card h3{margin:14px 0 8px; font-size:16px; color:var(--muted); text-transform:uppercase; letter-spacing:1px;}
label{display:block; font-size:14px; color:var(--muted); margin:12px 0 6px;}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],select{
  width:100%; padding:13px; font-size:16px; border-radius:10px; border:1px solid #333b66;
  background:var(--navy2); color:var(--text);}
input:focus,select:focus{outline:2px solid var(--violet); border-color:var(--violet);}
.btn{display:block; width:100%; padding:15px; font-size:17px; font-weight:800; border:0; border-radius:12px;
  background:linear-gradient(135deg,var(--violet),var(--violet-d)); color:#fff; cursor:pointer; margin-top:16px;}
.btn:active{transform:scale(.98);}
.btn.ghost{background:transparent; border:1px solid var(--violet); color:#cfc9ff;}
.btn.small{padding:10px; font-size:15px;}
.notice{background:rgba(245,185,66,.12); border:1px solid var(--gold); color:#ffe1a1;
  border-radius:12px; padding:12px 14px; font-size:14px; margin:14px 0; line-height:1.45;}
.notice strong{color:var(--gold);}
.checkrow{display:flex; gap:10px; align-items:flex-start; background:var(--navy2);
  border-radius:10px; padding:12px; margin-top:12px;}
.checkrow input{width:22px; height:22px; margin-top:2px; accent-color:var(--violet);}
.checkrow span{font-size:14px; line-height:1.4;}
table{width:100%; border-collapse:collapse; font-size:14px;}
th,td{text-align:left; padding:9px 8px; border-bottom:1px solid #2a3260;}
th{color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:1px;}
.money{font-variant-numeric:tabular-nums; font-weight:700;}
.bar-row{display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid #2a3260;}
.bar-row:last-child{border-bottom:0;}
.bar-name{font-weight:700; font-size:17px;}
.bar-sub{color:var(--muted); font-size:13px;}
.lead{font-size:22px; font-weight:800; color:var(--green);}
.pool{background:linear-gradient(135deg,#2a1f66,#141C3A); border:1px solid var(--violet);
  border-radius:16px; padding:20px; text-align:center; margin:16px 0;}
.pool .amt{font-size:40px; font-weight:900; color:var(--gold);}
.pool .lbl{color:var(--muted); font-size:13px; text-transform:uppercase; letter-spacing:2px;}
.qr{background:#fff; padding:14px; border-radius:14px; display:inline-block; margin:10px 0;}
.qr img{width:220px; height:220px; display:block;}
.code{font-family:ui-monospace,Menlo,monospace; font-size:26px; letter-spacing:4px; font-weight:800;
  background:var(--navy2); border:1px dashed var(--violet); border-radius:10px; padding:10px; text-align:center;}
.pill{display:inline-block; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:800;
  text-transform:uppercase; letter-spacing:1px;}
.pill.live{background:rgba(61,220,132,.15); color:var(--green); border:1px solid var(--green);}
.pill.done{background:rgba(154,160,195,.15); color:var(--muted); border:1px solid var(--muted);}
.pill.warn{background:rgba(245,185,66,.15); color:var(--gold); border:1px solid var(--gold);}
#scanner{width:100%; border-radius:14px; overflow:hidden; background:#000;}
.redeem-btns{display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; margin-top:14px;}
.redeem-btns .btn{margin-top:0; font-size:20px;}
nav.tabs{display:flex; gap:8px; justify-content:center; padding:10px 0 0; flex-wrap:wrap;}
nav.tabs a{color:var(--muted); text-decoration:none; font-size:13px; font-weight:700;
  padding:8px 14px; border-radius:999px; border:1px solid #333b66; text-transform:uppercase; letter-spacing:1px;}
nav.tabs a.on{color:#fff; border-color:var(--violet); background:rgba(109,93,240,.2);}
footer{text-align:center; color:var(--muted); font-size:12px; padding:24px 0;}
.err{background:rgba(255,92,108,.12); border:1px solid var(--red); color:#ffb3bb;
  padding:10px 14px; border-radius:10px; margin:10px 0;}
.ok{background:rgba(61,220,132,.12); border:1px solid var(--green); color:#b8f4d4;
  padding:10px 14px; border-radius:10px; margin:10px 0;}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.kv{display:flex; justify-content:space-between; padding:7px 0; font-size:15px; border-bottom:1px solid #2a3260;}
.kv:last-child{border-bottom:0;}
.kv .k{color:var(--muted);}
