:root{--ink:#170c21;--velvet:#26143a;--plum:#3a2056;--gold:#e8c880;--gold2:#b98a3c;--blush:#f6e4d6;--rose:#e0487f;--ok:#7fd6a4;--muted:#c9b3d6;color-scheme:dark;font-family:Figtree,system-ui,sans-serif;background:var(--ink);color:var(--blush)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(120% 60% at 50% -10%,#4a1f5e 0%,var(--ink) 60%)}main{max-width:620px;margin:auto;padding:24px 18px 48px}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:10px 0 24px}.brand-logo{display:block;width:min(100%,360px);height:auto;object-fit:contain}.brand p{margin:0 0 0 2px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tabs{display:flex;gap:6px;background:var(--velvet);padding:5px;border-radius:999px;margin-bottom:20px}.tab{flex:1;border:0;border-radius:999px;padding:11px;background:none;color:var(--muted);font:600 15px Figtree;cursor:pointer}.tab.active{background:var(--gold);color:var(--ink)}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.card{background:linear-gradient(160deg,var(--plum),var(--velvet));border:1px solid #e8c88073;border-radius:22px;padding:22px;margin:0 0 16px;box-shadow:0 12px 36px #0002}h2{margin:0 0 8px;color:var(--gold);font:italic 600 26px/1.15 'Bodoni Moda',Georgia,serif}p{line-height:1.5}small,.muted{color:#c9b3d6}label{display:block;font-weight:600;margin:14px 0 6px}input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid #6a4a8a;background:var(--ink);color:var(--blush);font:inherit}.btn{width:100%;margin-top:15px;padding:14px;border:0;border-radius:14px;background:linear-gradient(100deg,var(--gold),#f7dda0);color:var(--ink);font:700 16px Figtree;cursor:pointer}.btn.secondary{background:none;border:1px solid var(--gold2);color:var(--gold)}.btn.danger{border-color:#e0487f;color:#ffafc4}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #e8c88033}.row button,.inline-btn{border:1px solid var(--gold2);background:none;color:var(--gold);border-radius:10px;padding:9px 12px;font:600 14px Figtree;cursor:pointer}.who{display:flex;align-items:center;gap:16px}.qr{background:var(--blush);padding:9px;border-radius:14px;line-height:0;min-width:146px;min-height:146px;display:grid;place-items:center}.coupon-mark{width:146px;height:146px;border:1px dashed var(--gold);border-radius:18px;display:grid;place-items:center;background:#170c2155;font-size:64px}.name{font:italic 600 24px 'Bodoni Moda',Georgia,serif}.code{color:var(--muted);font-size:13px;word-break:break-word;margin-top:5px}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:20px 0 8px}.slot{aspect-ratio:1;border-radius:50%;border:1.5px dashed #7d5c9c;display:grid;place-items:center;color:#8c6fa8;font-weight:700;position:relative}.slot.on{border:0;color:var(--ink);font:italic 800 20px 'Bodoni Moda',serif;background:linear-gradient(135deg,var(--gold),#fff3d2,var(--gold2));box-shadow:0 0 0 3px #e8c88040}.slot.reward{border-color:var(--rose)}.slot.reward.on{background:var(--rose);color:white}.status{padding:12px 14px;border-radius:12px;background:#0004;font-weight:600}.good{color:var(--ok)}.warn{color:var(--gold)}.bad{color:#ff9fb8}.notice{border-left:3px solid var(--gold);padding:10px 12px;background:#0003;border-radius:5px;color:var(--muted)}.codebox{font:700 19px ui-monospace,monospace;letter-spacing:.08em;color:var(--gold);background:#0004;border-radius:12px;padding:14px;text-align:center;overflow-wrap:anywhere}.toolbar{display:flex;gap:9px}.toolbar>*{flex:1}#reader{margin-top:14px;border-radius:14px;overflow:hidden}footer{text-align:center;color:#8c6fa8;font-size:12px;margin-top:28px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(92vw,520px);padding:13px 18px;border-radius:14px;background:var(--gold);color:var(--ink);font-weight:700;box-shadow:0 8px 30px #0008;z-index:9}.spinner{opacity:.7}@media(max-width:430px){.who{align-items:flex-start;gap:10px}.qr{min-width:118px;min-height:118px;padding:6px}.qr canvas,.qr img{max-width:106px!important;height:auto!important}.coupon-mark{width:118px;height:118px;font-size:54px}.name{font-size:21px}.card{padding:18px}.toolbar{flex-direction:column}}

.row .actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.row .actions button.danger{border-color:#e0487f;color:#ffafc4;background:none}

.regulation{margin:14px 0;border:1px solid #e8c88055;border-radius:12px;background:#0002}.regulation summary{padding:13px 14px;color:var(--gold);font-weight:700;cursor:pointer}.regulation-copy{padding:0 14px 12px;color:var(--muted);font-size:14px}.regulation-copy ol{padding-left:20px}.regulation-copy li{margin:8px 0;line-height:1.45}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.search-row input{min-width:0}.search-row .btn{width:auto;min-width:82px;margin:0;padding:12px 14px}#memberLookupStatus{margin:10px 0}#staffRecoveryResult{border-color:var(--gold);box-shadow:0 0 0 2px #e8c88033,0 12px 36px #0005}

.brand-logo{cursor:default;user-select:none;-webkit-user-drag:none}dialog.recovery-dialog{width:min(92vw,520px);max-height:min(90vh,760px);overflow:auto;margin:auto;padding:24px;border:1px solid var(--gold);border-radius:22px;background:linear-gradient(160deg,var(--plum),var(--velvet));color:var(--blush);box-shadow:0 24px 80px #000b}dialog.recovery-dialog::backdrop{background:#08040dcc;backdrop-filter:blur(5px)}dialog.recovery-dialog h2{margin-top:0}dialog.recovery-dialog .toolbar{margin-top:16px}
