*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#f6f3ef;color:#2d2926}body{margin:0}.container{width:min(100% - 28px,920px);margin:0 auto;padding:28px 0 64px}.narrow{max-width:600px}.card{background:#fff;border-radius:22px;padding:24px;margin:0 0 18px;box-shadow:0 8px 30px rgba(40,28,20,.07);border:1px solid rgba(50,35,25,.06)}h1,h2,h3{margin-top:0}h1{font-size:clamp(1.8rem,7vw,2.5rem)}h2{font-size:1.25rem}.hero{text-align:center}.hero>p{margin:.25rem}.subtitle{font-size:1.1rem;font-weight:700;text-transform:uppercase;color:var(--primary);margin:14px 0!important}.brand-mark{width:56px;height:56px;border-radius:18px;background:var(--primary,#7C4A2D);color:#fff;display:grid;place-items:center;margin:0 auto 12px;font-size:1.5rem}.business-head{text-align:center}.topbar,.admin-head{display:flex;justify-content:space-between;align-items:center;padding:8px 5px 20px}.topbar span{font-weight:800}.topbar a,.admin-head a{color:var(--primary);font-weight:700}.admin-head h1{margin:2px 0}.admin-head small{color:#756b65}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:12px;padding:13px 18px;background:var(--primary,#7C4A2D);color:#fff;text-decoration:none;font:inherit;font-weight:800;cursor:pointer;width:100%;margin-top:8px}.btn.secondary{background:#eee8e3;color:#443b35}.center{text-align:center}a{color:var(--primary,#7C4A2D)}label{display:block;font-weight:700;margin:14px 0 5px}input,select{width:100%;padding:13px;border:1px solid #d9d2cd;border-radius:11px;background:#fff;font:inherit;margin-top:6px}small{font-weight:400;color:#766b64;display:block;margin-top:4px}.flash{padding:14px 16px;border-radius:12px;margin-bottom:16px;font-weight:700}.flash.success{background:#e7f7ec;color:#176b35}.flash.error{background:#fde9e7;color:#9c2d22}.stamps{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:25px auto;max-width:560px}.stamp{aspect-ratio:1;border-radius:50%;background:#eeeae7;color:#a9a09a;border:3px dashed #c9c1bc;display:grid;place-items:center;font-weight:900;font-size:clamp(1rem,4vw,1.35rem)}.stamp.filled{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 5px 14px color-mix(in srgb,var(--primary) 30%,transparent)}.stamp.pop{animation:pop .6s ease}@keyframes pop{50%{transform:scale(1.28) rotate(8deg)}}.progress{height:9px;background:#eeeae7;border-radius:20px;overflow:hidden;margin:10px 0}.progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}.reward{border:2px solid var(--accent);background:#fffaf0}.mini p{margin:5px 0}.actions{display:flex;gap:8px}.actions .btn{width:50%}dialog{border:0;border-radius:20px;padding:24px;width:min(90%,400px);box-shadow:0 20px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(25,19,15,.6)}.admin-nav{display:flex;gap:8px;overflow:auto;padding:0 0 18px}.admin-nav a{white-space:nowrap;padding:9px 12px;background:#fff;border-radius:10px;text-decoration:none;font-weight:700}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{background:#fff;padding:18px;border-radius:16px}.stat strong{display:block;font-size:1.8rem;color:var(--primary)}.stat span{color:#756b65;font-size:.85rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #eee8e3;white-space:nowrap}th{font-size:.78rem;text-transform:uppercase;color:#756b65}.search{display:flex;gap:8px;margin-bottom:14px}.search .btn{width:auto}.big-number{font-size:3rem;font-weight:900;color:var(--primary)}.big-number small{font-size:1rem;display:inline}.nfc-row{padding:16px 0;border-top:1px solid #eee8e3}.nfc-row input{font-size:.82rem}hr{border:0;border-top:1px solid #eee8e3;margin:24px 0}
@media(max-width:650px){.stats{grid-template-columns:1fr 1fr}.stamps{gap:8px}.card{padding:20px}.admin-head h1{font-size:1.45rem}}
