:root{--maroon:#6b0f1a;--gold:#e8c158;--gold-deep:#b8860b;--orange:#ff7a1a;--cream:#fff8ec;--ink:#3b0a14;
 box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px);height:100%}
body{margin:0;min-height:100%;color:var(--ink);font-family:'Poppins',system-ui,sans-serif;
 background:linear-gradient(160deg,rgba(30,6,8,.55),rgba(50,12,10,.6)),url('bg.jpg');
 background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}
h1,.title{font-family:'Playfair Display',serif}
.wrap{max-width:32rem;margin:0 auto;padding:2rem 1rem}
.center{text-align:center}
.center-flex{display:flex;justify-content:center}
.qr-box-small canvas, .qr-box-small img{width:130px;height:130px;image-rendering:auto}
.qr-box-med canvas, .qr-box-med img{width:220px;height:220px;image-rendering:auto}
.logo{height:110px;width:auto;margin:0 auto;display:block;filter:drop-shadow(0 4px 10px rgba(107,15,26,.25))}
.title{font-size:1.9rem;font-weight:700;margin-top:.5rem;color:#ffffff;text-shadow:0 2px 8px rgba(0,0,0,.35)}
.sub{font-size:.9rem;color:#9a6a2a;margin:0}
.divider{height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:.5rem auto 1rem;width:60%}
.card{position:relative;background:rgba(255,253,247,.94);border-radius:20px;box-shadow:0 14px 36px rgba(59,10,10,.35);border:1px solid #eecf8b;overflow:hidden;padding:1.5rem;margin-bottom:1rem}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--maroon),var(--gold),var(--orange))}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.card-title{font-size:.8rem;font-weight:700;color:var(--maroon);margin:0 0 .5rem}
.hint{font-size:.75rem;color:#a97c3f}
.row-between{display:flex;justify-content:space-between}
.btn{display:block;text-decoration:none;text-align:center;width:100%;background:linear-gradient(135deg,var(--maroon),var(--orange));color:#fff;font-weight:600;border-radius:999px;padding:.85rem 1.3rem;border:none;cursor:pointer;font-size:1rem;box-shadow:0 6px 18px rgba(107,15,26,.3)}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-deep))}
input{width:100%;padding:.75rem .95rem;border:1.5px solid #ecd8a0;border-radius:12px;background:#fffdf8;outline:none;font-size:.95rem;margin-bottom:1rem}
input:focus{border-color:var(--orange)}
label{font-size:.78rem;font-weight:600;color:#8a4a12;display:block;margin-bottom:.25rem}
.badge{display:inline-block;padding:.2rem .8rem;border-radius:999px;font-size:.72rem;font-weight:700;color:#fff}
.badge.ok{background:#16a34a}.badge.pending{background:#fbbf24}
.err{color:#991b1b;background:#fef2f2;padding:.6rem .9rem;border-radius:10px;font-size:.85rem;margin-bottom:1rem}
.ok-text{color:#166534;font-weight:700;text-align:center}
.slogan{font-style:italic;color:#555;font-size:.9rem;margin:.5rem 0 0}
.details{text-align:left;margin-top:1.2rem;font-size:.9rem;border-top:1px solid #eee;padding-top:1rem}
.valid-box{margin-top:1rem;padding:.7rem;border-radius:10px;font-size:.75rem}
.valid-box.ok{background:#f0fdf4;color:#166534}
.valid-box.bad{background:#fef2f2;color:#991b1b}
.link-muted{color:#a97c3f;font-size:.8rem;text-decoration:none}
.link-strong{color:var(--maroon);font-weight:700;font-size:.9rem;text-decoration:none}
.space-y > *{margin-bottom:.8rem}
.block{display:block}
.table-wrap{overflow-x:auto}
.tbl{width:100%;font-size:.75rem;border-collapse:collapse}
.tbl th,.tbl td{padding:.4rem;text-align:left;border-bottom:1px solid #eee}
.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.8rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}
#reader{border-radius:14px;overflow:hidden}
