:root{color-scheme:light;--bg:#f5f6f8;--panel:#ffffff;--text:#121418;--muted:#6d7280;--line:#e6e8ec;--accent:#111827;--success:#0f7a45;--danger:#b42318;--radius:18px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body,html{background:var(--bg)}body{margin:0;color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{width:min(1120px,calc(100% - 32px));margin:0 auto}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar-inner{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-weight:900;letter-spacing:-.03em}.navlinks{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.navlinks a{padding:9px 11px;border-radius:10px;color:var(--muted)}.navlinks a:hover{background:#f1f2f4;color:var(--text)}.page{padding:32px 0 64px}.hero{padding:88px 0 72px}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:56px;gap:56px;align-items:center}.eyebrow{padding:7px 10px;border:1px solid var(--line);font-size:13px;font-weight:700;background:#fff}.badge,.eyebrow{display:inline-flex;border-radius:999px;color:var(--muted)}.badge{align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--line);background:#f9fafb;font-size:12px;font-weight:800}.badge.success{background:#eaf8f0;border-color:#c7efd8;color:var(--success)}.badge.warning{background:#fff7e8;border-color:#f7dca4;color:#8a5a00}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(42px,7vw,76px);line-height:.98;letter-spacing:-.055em;margin:18px 0 22px}h2{font-size:clamp(28px,4vw,40px);letter-spacing:-.04em}h3{letter-spacing:-.02em}.lead{font-size:19px;line-height:1.6;color:var(--muted);max-width:700px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.btn{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--text);padding:0 16px;border-radius:12px;font-weight:800}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-danger{background:#fff0ef;border-color:#ffd6d1;color:var(--danger)}.btn-success{background:#eaf8f0;border-color:#c7efd8;color:var(--success)}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 14px 36px rgba(20,24,35,.05)}.grid{display:grid;grid-gap:16px;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.metric strong{display:block;font-size:32px;letter-spacing:-.04em}.metric span{color:var(--muted);font-size:14px}.form{display:grid;grid-gap:16px;gap:16px}.field{display:grid;grid-gap:7px;gap:7px}.field label{font-weight:750;font-size:14px}.field small{color:var(--muted)}.input,.select,.textarea{width:100%;border:1px solid #d8dbe1;background:#fff;min-height:46px;border-radius:12px;padding:10px 12px;color:var(--text)}.textarea{min-height:96px;resize:vertical}.notice{border:1px solid var(--line);background:#f9fafb;padding:12px 14px;border-radius:12px;color:var(--muted);font-size:14px}.notice.error{border-color:#ffd0cb;background:#fff5f4;color:var(--danger)}.notice.success{border-color:#cbeed9;background:#f0fbf5;color:var(--success)}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-card{width:min(460px,100%)}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:18px}.muted{color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.loyalty-card{border-radius:28px;padding:24px;color:white;min-height:420px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 24px 60px rgba(0,0,0,.22)}.loyalty-card .qr{width:220px;max-width:74vw;background:white;padding:12px;border-radius:20px}.progress{height:12px;background:rgba(255,255,255,.25);overflow:hidden;border-radius:999px}.progress>span{display:block;height:100%;background:#fff;border-radius:inherit}.scanner-page{min-height:100dvh;background:#020203;color:white;position:relative;overflow:hidden}.scanner-video{position:fixed;inset:0;width:100%;height:100dvh;object-fit:cover}.scanner-shade{inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 30%,transparent 60%,rgba(0,0,0,.75))}.scanner-shade,.scanner-top{position:fixed;pointer-events:none}.scanner-top{top:0;left:0;right:0;z-index:5;padding:max(16px,env(safe-area-inset-top)) 16px 12px;display:flex;justify-content:space-between;gap:8px}.scanner-pill{background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:9px 12px;border-radius:999px;font-weight:800;font-size:13px}.scan-sheet{position:fixed;z-index:10;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));background:rgba(18,18,20,.96);border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:24px;padding:18px;box-shadow:0 22px 60px rgba(0,0,0,.5)}.scan-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:14px}.scan-main{min-height:54px;border:0;border-radius:16px;font-size:17px;font-weight:900;background:white;color:black}.scan-redeem{min-height:54px;border:1px solid rgba(255,255,255,.18);border-radius:16px;font-size:15px;font-weight:800;background:#2a2a2d;color:white}.scan-result{display:grid;grid-gap:8px;gap:8px}.scan-result strong{font-size:26px}.scan-error{color:#ffb4ab}.scan-success{color:#86efac}.poster{width:210mm;min-height:297mm;margin:0 auto;background:white;color:#111;padding:24mm;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.poster img{width:110mm;height:110mm}.poster h1{font-size:42pt}.poster p{font-size:18pt}@media (max-width:820px){.grid-2,.grid-3,.grid-4,.hero-grid{grid-template-columns:1fr}.hero{padding-top:54px}.navlinks a:not(.keep-mobile){display:none}}@media print{body{background:white}.no-print{display:none!important}.poster{width:auto;min-height:100vh;box-shadow:none}}