:root{--navy:#0D2240;--navy-2:#0a1b33;--navy-panel:#13294b;--gold:#C9A961;--gold-2:#b8964d;--slate:#4B5563;--offwhite:#F8F7F4;--white:#fff;--radius:18px;--maxw:520px;--font-anton:"Anton",Impact,sans-serif;--font-oswald:"Oswald",system-ui,sans-serif;--font-inter:"Inter",system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-inter);background:var(--offwhite);color:var(--navy);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-anton);font-weight:400;letter-spacing:.5px;line-height:.98;text-transform:uppercase;margin:0}.landing{min-height:100dvh;display:flex;justify-content:center}.hero{width:100%;max-width:var(--maxw);background:linear-gradient(160deg,var(--navy),var(--navy-2));color:var(--white);padding:42px 26px 34px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.hero .logo{width:200px;max-width:64%;height:auto;margin-bottom:6px}.kicker{font-family:var(--font-oswald);font-size:14px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin:0;font-weight:600}.hero h1{font-size:60px;color:var(--white);margin:4px 0}.hero .sub{font-size:16px;line-height:1.5;color:#d7deea;max-width:34ch;margin:2px 0 10px}.vform{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:4px}.vform input{width:100%;padding:16px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:var(--white);font-size:17px;outline:none;font-family:var(--font-inter)}.vform input::placeholder{color:#9fb0c9}.vform input:focus{border-color:var(--gold);background:rgba(255,255,255,.1)}.vform button{margin-top:4px;padding:17px;border:0;border-radius:12px;cursor:pointer;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:var(--navy);font-family:var(--font-oswald);font-weight:700;font-size:19px;letter-spacing:.5px;text-transform:uppercase}.vform button:disabled{opacity:.65}.err{color:#ffd2d2;background:rgba(255,60,60,.14);padding:9px 12px;border-radius:8px;font-size:14px;margin:0}.consent{color:#8ea0ba;margin:6px 0 0}.consent,.fineprint{font-size:11px;line-height:1.45}.fineprint{color:#7b8aa3;margin-top:16px;max-width:42ch}.voucher{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:22px}.vcard{width:100%;max-width:420px;background:var(--white);border-radius:var(--radius);box-shadow:0 18px 50px rgba(13,34,64,.18);overflow:hidden;text-align:center;border:1px solid #ece8df;padding-bottom:20px}.vhead{background:var(--navy);padding:22px}.vhead .vlogo{width:160px;max-width:60%;height:auto;display:block;margin:0 auto}.vkicker{font-family:var(--font-oswald);color:var(--gold);text-transform:uppercase;letter-spacing:2px;font-size:12px;margin:16px 0 6px;font-weight:600}.voffer{font-size:30px;color:var(--navy);padding:0 22px;margin:6px 0 14px}.qr{width:232px;height:232px;margin:4px auto;display:block;border-radius:12px}.vcode{font-family:var(--font-oswald);font-size:32px;letter-spacing:4px;color:var(--navy);font-weight:700;margin:8px 0 2px}.vexp,.vname{color:var(--slate);font-size:14px;margin:4px 0}.vshow{background:var(--gold);color:var(--navy);font-family:var(--font-oswald);font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:12px;margin:14px 22px 0;border-radius:10px;font-size:15px}.vredeemform{margin:10px 22px 0}.vredeembtn{width:100%;padding:14px;border:0;border-radius:10px;cursor:pointer;background:var(--navy);color:#fff;font-family:var(--font-oswald);font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:16px}.vredeembtn:active{opacity:.85}.vstatus{margin:16px 22px;padding:18px;border-radius:12px;font-weight:700;font-family:var(--font-oswald);font-size:18px}.vstatus.redeemed{background:#eef6ee;color:#1f7a36}.vstatus.redeemed span{display:block;font-weight:400;color:#4b5563;font-size:13px;margin-top:4px}.vstatus.expired{background:#fbeeee;color:#a33}.vfine{font-size:11px;color:#8a93a3;padding:0 24px;margin:16px 0 4px;line-height:1.45}.staffwrap{min-height:100dvh;background:var(--navy);color:#e8edf5}.staffbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.staffbar .brand{font-family:var(--font-anton);letter-spacing:1px;font-size:20px;color:#fff}.staffbar .brand span{color:var(--gold)}.staffbar .links{display:flex;gap:16px;font-family:var(--font-oswald);text-transform:uppercase;font-size:13px;letter-spacing:1px}.staffbar a{color:#aebbd0;text-decoration:none}.staffbar a.active,.staffbar a:hover{color:var(--gold)}.staffmain{max-width:940px;margin:0 auto;padding:24px 18px 60px}.staffmain h1{color:#fff;font-size:30px;margin-bottom:18px}.slogin{width:100%;max-width:360px;margin:12vh auto 0;background:var(--navy-panel);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:32px 26px;text-align:center;display:flex;flex-direction:column;gap:14px}.slogin .vlogo{width:150px;margin:0 auto 4px}.slogin h1{color:#fff;font-size:26px}.redeem input,.slogin input{padding:15px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#fff;font-size:16px;font-family:var(--font-inter);outline:none}.redeem input:focus,.slogin input:focus{border-color:var(--gold)}.btn{padding:15px;border:0;border-radius:10px;cursor:pointer;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:var(--navy);font-family:var(--font-oswald);font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:17px}.cards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin:4px 0 24px}.card{background:var(--navy-panel);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:16px}.card .n{font-family:var(--font-anton);font-size:36px;color:#fff;line-height:1}.card .l{font-family:var(--font-oswald);text-transform:uppercase;letter-spacing:1px;font-size:12px;color:#9fb0c9;margin-top:6px}.card.gold .n{color:var(--gold)}@media (max-width:620px){.cards{grid-template-columns:repeat(2,1fr)}}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:12px;flex-wrap:wrap}.tablewrap{overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:14px}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:11px 13px;border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap}th{text-transform:uppercase;letter-spacing:.5px;font-size:12px;color:#9fb0c9;background:rgba(255,255,255,.03)}td .code,th{font-family:var(--font-oswald)}td .code{letter-spacing:1px;color:var(--gold)}.empty{padding:30px;text-align:center;color:#9fb0c9}.badge{font-family:var(--font-oswald);text-transform:uppercase;font-size:11px;letter-spacing:.5px;padding:3px 10px;border-radius:999px}.badge.issued{background:rgba(201,169,97,.16);color:var(--gold)}.badge.redeemed{background:rgba(46,160,90,.18);color:#5bd08a}.badge.expired{background:rgba(220,80,80,.16);color:#e98c8c}.linkbtn{color:var(--gold);text-decoration:none;font-family:var(--font-oswald);text-transform:uppercase;font-size:13px;letter-spacing:.5px;border:1px solid var(--gold);padding:9px 14px;border-radius:9px}.redeem{max-width:460px;margin:0 auto}.redeem form{display:flex;flex-direction:column;gap:12px;background:var(--navy-panel);border:1px solid rgba(255,255,255,.08);padding:20px;border-radius:14px}.redeem label{font-family:var(--font-oswald);text-transform:uppercase;font-size:12px;letter-spacing:1px;color:#9fb0c9}.redeem input.code{font-size:24px;letter-spacing:4px;text-align:center;text-transform:uppercase}.result{margin:0 0 18px;padding:20px;border-radius:14px;text-align:center;font-family:var(--font-oswald)}.result h2{font-family:var(--font-anton);font-size:30px;color:#fff;margin-bottom:6px}.result .meta{font-weight:400;color:#cdd6e4;font-size:14px;margin-top:4px}.result.ok{background:#10331f;border:1px solid #2e7d4f;color:#7ee2a6}.result.already{background:#3a2a10;border:1px solid #8a6d2e;color:#e9c478}.result.expired,.result.not_found{background:#3a1414;border:1px solid #8a3030;color:#f0a0a0}.vform input.otp{text-align:center;letter-spacing:10px;font-size:26px;font-weight:600}.resend{margin-top:16px;text-align:center}.resend .link{background:none;border:0;color:var(--gold);cursor:pointer;padding:6px;font-family:var(--font-oswald);text-transform:uppercase;letter-spacing:1px;font-size:13px}.resend .link:disabled{opacity:.6}.resend .ok{color:#7ee2a6;font-size:13px;margin-left:8px}.resend .err{background:none;color:#ffb3b3;padding:0;font-size:13px;display:block;margin-top:6px}.dangerzone{margin-top:36px;padding:18px;border:1px solid rgba(220,80,80,.4);border-radius:14px;background:rgba(220,80,80,.06)}.dangerzone h2{color:#e98c8c;font-size:20px;margin-bottom:6px}.dangerzone p{color:#c9b0b0;font-size:13px;margin:0 0 10px}.dzform{display:flex;gap:10px;flex-wrap:wrap}.dzform input{flex:1 1;min-width:180px;padding:11px 13px;border-radius:9px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#fff;font-family:var(--font-inter)}.dzbtn{padding:11px 16px;border:0;border-radius:9px;cursor:pointer;background:#8a3030;color:#fff;font-family:var(--font-oswald);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.dz-ok{color:#7ee2a6!important;font-weight:600}.dz-err{color:#f0a0a0!important}