:root{--bk:#0b0b0b;--bk2:#141210;--bk3:#1c1914;--gd:#8fae7c;--gd2:#e8a065;--wh:#fff;--tx:#e9e4da;--mu:#a59d8f;--ok:#4cc38a;--bad:#e5686b}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,sans-serif;background:radial-gradient(1200px 600px at 50% -200px,#2a2214 0,var(--bk) 60%) fixed,var(--bk);color:var(--tx);line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}
img{max-width:100%;display:block}a{color:var(--gd2)}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;color:var(--wh);line-height:1.15}
.top{display:flex;align-items:center;gap:.6rem;padding:.8rem 1.1rem;border-bottom:1px solid rgba(122,154,106,.15);background:rgba(11,11,11,.7);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}
.top a.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;margin-right:auto}
.top img{width:40px;height:40px;border-radius:50%}
.top .brand-t{font-family:"Playfair Display";color:#fff;font-weight:700;font-size:1.05rem}
.top .tag{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gd);font-weight:700}
.wrap{max-width:560px;margin:0 auto;padding:1.4rem 1.1rem 4rem}
.wrap.wide{max-width:1100px}
.eyebrow{color:var(--gd);text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:700;margin-bottom:.4rem}
.center{text-align:center}
h1{font-size:clamp(1.9rem,7vw,2.6rem);margin-bottom:.6rem}
h2{font-size:1.4rem;margin:1.6rem 0 .8rem}
.lead{color:var(--mu);margin-bottom:1.2rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.9rem 1.4rem;border-radius:999px;font-weight:700;text-decoration:none;border:0;cursor:pointer;font-size:1rem;transition:.2s;font-family:inherit}
.btn.gold{background:linear-gradient(135deg,var(--gd2),var(--gd));color:#1a1206;box-shadow:0 8px 24px rgba(122,154,106,.3)}
.btn.gold:active{transform:scale(.98)}
.btn.ghost{border:1.5px solid rgba(122,154,106,.6);color:var(--gd2);background:transparent}
.btn.dark{background:#26221b;color:#fff;border:1px solid #3a3326}
.btn.ok{background:var(--ok);color:#06200f}
.btn.bad{background:transparent;border:1.5px solid var(--bad);color:var(--bad)}
.btn.full{width:100%}.btn.sm{padding:.5rem .9rem;font-size:.85rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.panel{background:linear-gradient(180deg,var(--bk3),var(--bk2));border:1px solid rgba(122,154,106,.22);border-radius:18px;padding:1.3rem}
form label{display:block;font-size:.85rem;color:var(--mu);margin:.9rem 0 .3rem;font-weight:600}
input,select,textarea{width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid #3a3326;background:#0f0e0c;color:#fff;font-size:1rem;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gd);border-color:transparent}
.row{display:flex;gap:.7rem}.row>*{flex:1}
.check{display:flex;gap:.7rem;align-items:flex-start;margin:1.1rem 0;font-size:.88rem;color:var(--tx)}
.check input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--gd);margin-top:.1rem}
.small{font-size:.78rem;color:var(--mu)}
.msg{margin:.9rem 0;padding:.8rem 1rem;border-radius:12px;font-size:.92rem;display:none}
.msg.show{display:block}.msg.err{background:rgba(229,104,107,.12);border:1px solid rgba(229,104,107,.5);color:#ffc9ca}
.msg.ok{background:rgba(76,195,138,.12);border:1px solid rgba(76,195,138,.5);color:#bff3d9}
.perks{display:grid;gap:.7rem;margin:1.2rem 0}
.perk{display:flex;gap:.8rem;align-items:center;background:#16130f;border:1px solid #2c261c;border-radius:14px;padding:.8rem 1rem}
.perk .ic{font-size:1.6rem}.perk b{color:#fff;display:block;font-size:.95rem}.perk span{font-size:.85rem;color:var(--mu)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* tarjeta */
.mcard{position:relative;border-radius:22px;padding:1.3rem;background:linear-gradient(145deg,#231c10 0%,#0e0c09 55%,#1d170d 100%);border:1px solid rgba(232,160,101,.45);box-shadow:0 20px 50px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.06);overflow:hidden}
.mcard:before{content:"";position:absolute;inset:-40% -20% auto auto;width:260px;height:260px;background:radial-gradient(circle,rgba(232,160,101,.18),transparent 70%)}
.mc-h{display:flex;align-items:center;gap:.8rem}.mc-h img{width:54px;height:54px;border-radius:50%;border:1.5px solid var(--gd)}
.mc-h .t{font-family:"Playfair Display";font-size:1.25rem;color:#fff;font-weight:900;line-height:1.1}.mc-h .s{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gd)}
.mc-n{margin-left:auto;text-align:right}.mc-n small{display:block;font-size:.62rem;letter-spacing:.15em;color:var(--mu);text-transform:uppercase}.mc-n b{font-family:"Playfair Display";font-size:1.5rem;color:var(--gd2)}
.mc-name{font-size:1.3rem;color:#fff;font-weight:700;margin:1rem 0 .2rem}
.stamps{display:grid;grid-template-columns:repeat(5,1fr);gap:.55rem;margin:1rem 0}
.stamp{aspect-ratio:1;border-radius:50%;border:1.5px dashed rgba(122,154,106,.45);display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:rgba(122,154,106,.35);font-weight:700}
.stamp.on{border:0;background:radial-gradient(circle at 35% 30%,var(--gd2),var(--gd) 60%,#9c7426);color:#1a1206;box-shadow:0 4px 14px rgba(122,154,106,.4)}
.stamp.last{border-style:solid;border-color:var(--gd2)}
.prog{font-size:.88rem;color:var(--tx)}.prog b{color:var(--gd2)}
.qrbox{background:#fff;border-radius:14px;padding:10px;width:180px;margin:1rem auto .4rem}.qrbox img,.qrbox svg{width:100%;height:auto}
.coupon{display:flex;gap:.8rem;align-items:center;border:1.5px dashed var(--gd);border-radius:14px;padding:.85rem 1rem;margin:.6rem 0;background:rgba(122,154,106,.07)}
.coupon .ic{font-size:1.6rem}.coupon b{color:#fff;display:block}.coupon span{font-size:.82rem;color:var(--mu)}
.coupon.used{opacity:.45;border-color:#555}.coupon.used b{text-decoration:line-through}
.badge{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;background:var(--gd);color:#1a1206;margin-left:auto;white-space:nowrap}
.badge.gray{background:#3a3326;color:#cfc6b6}.badge.ok{background:var(--ok);color:#06200f}
.hint{margin-top:1rem;background:#16130f;border:1px solid #2c261c;border-radius:14px;padding:1rem;font-size:.88rem}
.hint b{color:var(--gd2)}
/* staff/admin */
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-top:1rem}
.pinpad button{padding:1.1rem;font-size:1.4rem;border-radius:14px;background:#1c1914;color:#fff;border:1px solid #3a3326;font-weight:700;cursor:pointer}
.pindots{display:flex;gap:.6rem;justify-content:center;margin:1rem 0}.pindots i{width:14px;height:14px;border-radius:50%;border:2px solid var(--gd)}.pindots i.on{background:var(--gd)}
#video{width:100%;border-radius:16px;background:#000;aspect-ratio:1;object-fit:cover}
.scanwrap{position:relative}.scanwrap:after{content:"";position:absolute;inset:18%;border:3px solid rgba(232,160,101,.85);border-radius:18px;pointer-events:none;box-shadow:0 0 0 9999px rgba(0,0,0,.25)}
.actions{display:grid;gap:.6rem;margin-top:1rem}
.mem-h{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:.7rem;margin:1rem 0}
.stat{background:#16130f;border:1px solid #2c261c;border-radius:14px;padding:.9rem}.stat b{display:block;font-size:1.6rem;color:var(--gd2);font-family:"Playfair Display"}.stat span{font-size:.78rem;color:var(--mu)}
.tbl{width:100%;border-collapse:collapse;font-size:.86rem}.tbl th,.tbl td{padding:.55rem .5rem;border-bottom:1px solid #2a2418;text-align:left;vertical-align:top}
.tbl th{color:var(--gd);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.tbl tr.off td{opacity:.5}
.tblwrap{overflow-x:auto;border:1px solid #2c261c;border-radius:14px;background:#100e0b}
.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:1rem 0}.tabs button{padding:.55rem 1rem;border-radius:999px;border:1px solid #3a3326;background:#16130f;color:var(--tx);font-weight:600;cursor:pointer;font-family:inherit}
.tabs button.on{background:var(--gd);color:#1a1206;border-color:var(--gd)}
.toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%) translateY(150%);background:#1f1b14;border:1px solid var(--gd);color:#fff;padding:.8rem 1.2rem;border-radius:999px;transition:.3s;z-index:99;font-weight:600;max-width:92vw;text-align:center}
.toast.show{transform:translateX(-50%) translateY(0)}
.hide{display:none!important}
.foot{text-align:center;color:var(--mu);font-size:.78rem;padding:2rem 1rem}
.hero-club{border-radius:20px;overflow:hidden;position:relative;margin-bottom:1.2rem}
.hero-club img{width:100%;height:190px;object-fit:cover;filter:brightness(.55)}
.hero-club div{position:absolute;inset:auto 0 0 0;padding:1rem 1.2rem;background:linear-gradient(transparent,rgba(0,0,0,.85))}
@media(min-width:800px){.cols{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start}}

.amt{background:#16130f;border:1px solid #2c261c;border-radius:14px;padding:1rem}
.amt-in{display:flex;align-items:center;gap:.4rem;background:#0f0e0c;border:1px solid #3a3326;border-radius:12px;padding-left:1rem}
.amt-in span{font-size:1.5rem;color:var(--gd2);font-weight:700}.amt-in input{border:0;background:transparent;font-size:1.6rem;font-weight:700;padding:.7rem .5rem}
.amt-in input:focus{outline:none}.amt-in:focus-within{outline:2px solid var(--gd)}
.amt-prev{margin-top:.5rem;font-size:.92rem;color:var(--mu);font-weight:600}.amt-prev.ok{color:var(--ok)}.amt-prev.bad{color:var(--bad)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:4vh 1rem;overflow:auto}
.modal .panel{max-width:620px;width:100%}
.hist{list-style:none;margin-top:.6rem;max-height:320px;overflow:auto}.hist li{padding:.5rem 0;border-bottom:1px solid #2a2418;font-size:.88rem;display:flex;gap:.6rem}.hist li time{color:var(--mu);white-space:nowrap;min-width:7.5rem}
iframe.prev{width:100%;height:640px;border:1px solid #2c261c;border-radius:14px;background:#0b0b0b}

.cam-ph{border:2px dashed rgba(122,154,106,.45);border-radius:16px;padding:2rem 1rem;text-align:center;background:#100e0b}
.cam-ph .cam-ic{font-size:3rem;line-height:1}.cam-ph p{margin-top:.5rem}
.btn.big{padding:1.15rem 1.4rem;font-size:1.15rem}
.scan-st{position:absolute;left:50%;bottom:.8rem;transform:translateX(-50%);background:rgba(0,0,0,.65);color:#fff;font-size:.82rem;padding:.35rem .8rem;border-radius:999px;white-space:nowrap;z-index:2}
.inapp{background:rgba(229,104,107,.1);border:1px solid rgba(229,104,107,.5);border-radius:14px;padding:.9rem 1rem;margin-bottom:1rem;font-size:.9rem}
label.btn{cursor:pointer}

.staff-access{display:inline-block;margin-top:.85rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mu);text-decoration:none;opacity:.7;border-bottom:1px solid transparent}.staff-access:hover{color:var(--gd2);opacity:1;border-bottom-color:rgba(122,154,106,.4)}
.walletbox{margin-top:1.2rem;text-align:center}
.gw-btn{display:inline-flex;align-items:center;gap:.6rem;background:#000;color:#fff;border:1px solid #5f6368;border-radius:999px;padding:.75rem 1.3rem;font:600 .95rem Inter;cursor:pointer}
.gw-btn svg{width:24px;height:24px}.gw-btn.off,.gw-btn:disabled{opacity:.5;cursor:not-allowed}
.walletbox .small{margin-top:.5rem}
.hint.review{border-color:rgba(122,154,106,.45);background:rgba(122,154,106,.08)}
.hint.bday{border-color:rgba(255,94,126,.45);background:rgba(255,94,126,.08)}
.mcard{background:linear-gradient(160deg,#2a2214,#141210 55%,#1c1914)!important;border-color:rgba(122,154,106,.35)!important}
