:root{--bg: #0b0b0d;--card: #161619;--card2: #1e1e23;--border: #2c2c33;--gold: #d4af37;--gold-dim: #a8892c;--text: #f0ede4;--muted: #9b978c;--green: #2ecc71;--red: #e74c3c;--amber: #f39c12}*{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--gold)}button{font-family:inherit}.app{max-width:560px;margin:0 auto;padding:16px}.app.wide{max-width:1100px}.dev-banner{background:repeating-linear-gradient(45deg,#7a5c00,#7a5c00 12px,#4d3a00 12px,#4d3a00 24px);color:#fff;text-align:center;font-weight:700;font-size:12px;padding:6px;border-radius:8px;margin-bottom:12px;letter-spacing:1px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;margin:14px 0}.card h2{font-size:17px;margin-bottom:12px;color:var(--gold);letter-spacing:.5px}.card h3{font-size:15px;margin:10px 0 6px}label.field{display:block;margin:12px 0 4px;font-size:13px;color:var(--muted)}input[type=text],input[type=tel],input[type=number],input[type=password],select,textarea{width:100%;padding:12px;border-radius:10px;border:1px solid var(--border);background:var(--card2);color:var(--text);font-size:16px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold-dim)}textarea{font-family:inherit;resize:vertical;min-height:80px}.btn{display:block;width:100%;padding:14px;margin-top:16px;border:none;border-radius:10px;background:var(--gold);color:#141310;font-size:16px;font-weight:700;cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:var(--card2);color:var(--gold);border:1px solid var(--gold-dim)}.btn.small{width:auto;display:inline-block;padding:8px 14px;margin:4px 6px 4px 0;font-size:13px}.btn.danger{background:var(--red);color:#fff}.btn.green{background:var(--green);color:#06220f}.err{color:var(--red);margin-top:10px;font-size:14px}.okmsg{color:var(--green);margin-top:10px;font-size:14px}.muted{color:var(--muted);font-size:13px}.member-card{border-radius:18px;padding:24px 18px;text-align:center;border:2px solid;margin:14px 0}.member-card .tier-badge{display:inline-block;margin:12px 0 6px;padding:4px 16px;border-radius:999px;font-weight:800;font-size:13px;letter-spacing:2px;border:1px solid}.member-card .name{font-size:22px;font-weight:800;margin-top:6px}.member-card .no{font-size:15px;margin-top:2px;opacity:.9}.member-card .vehicles{font-size:14px;margin-top:8px;opacity:.8}.member-card .scan-photo{width:84px;height:112px;object-fit:cover;border-radius:10px;border:2px solid currentColor;margin-top:8px}.id-card{border-radius:18px;border:2px solid;padding:14px 16px;margin:14px 0}.idc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.idc-brand{font-weight:900;font-size:26px;letter-spacing:2px}.idc-sub{font-size:9px;letter-spacing:2.5px;opacity:.75;margin-top:2px}.idc-plate{color:#141310;border-radius:8px;padding:6px 12px;text-align:center;min-width:118px}.idc-plate-title{font-weight:900;font-size:12px;letter-spacing:1px}.idc-plate-no{font-weight:900;font-size:15px}.idc-motto{font-size:8px;letter-spacing:2px;opacity:.6;text-align:right;margin:4px 0 10px}.idc-body{display:grid;grid-template-columns:88px 1fr 112px;gap:12px;align-items:start}.idc-photo{border:2px solid;border-radius:10px;overflow:hidden;aspect-ratio:3 / 4;background:var(--card2)}.idc-photo img{width:100%;height:100%;object-fit:cover;display:block}.idc-photo-ph{display:flex;align-items:center;justify-content:center;height:100%;font-size:34px;opacity:.5}.idc-field{margin-bottom:9px;border-bottom:1px solid rgba(155,151,140,.25);padding-bottom:6px}.idc-field:last-child{border-bottom:none}.idc-label{font-size:8.5px;font-weight:800;letter-spacing:1.5px}.idc-value{font-size:15px;font-weight:700;line-height:1.25}.idc-qr{text-align:center}.idc-qr .qr-box{background:#fff;display:inline-block;padding:5px;border-radius:10px}.idc-qr-cap{font-size:7.5px;letter-spacing:1.5px;opacity:.7;margin-top:4px}.idc-foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;font-weight:800;font-size:13px}table.grid{width:100%;border-collapse:collapse;font-size:13px}table.grid th,table.grid td{padding:8px 6px;border-bottom:1px solid var(--border);text-align:left}table.grid th{color:var(--muted);font-weight:600}table.grid tr.sel{background:var(--card2)}table.grid tr{cursor:pointer}.tier-chip{padding:2px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:1px}.tier-chip.gold{background:#453a15;color:#d4af37}.tier-chip.platinum{background:#3c4048;color:#c9ccd4}.tier-chip.black{background:#060607;color:#d4af37;border:1px solid #d4af37}.row{display:flex;gap:10px}.row>*{flex:1}.tabbar{display:flex;gap:6px;margin-bottom:4px}.tabbar .btn{flex:1;margin-top:0}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 0}.stat{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px;text-align:center}.stat-n{font-size:26px;font-weight:800;color:var(--gold)}.stat-l{font-size:12px;color:var(--muted);margin-top:2px}.stat-s{font-size:11px;color:var(--muted);margin-top:4px}.offer{border:1px solid var(--border);border-radius:12px;padding:12px;margin:10px 0}.offer.locked{opacity:.55}.offer .deal{font-size:18px;font-weight:800;color:var(--gold);margin:6px 0}.offer .locked-note{color:var(--muted);font-size:13px;margin:6px 0}.offer .partner-line{font-size:13px;color:var(--muted)}.offer-banner{width:100%;aspect-ratio:2 / 1;object-fit:cover;border-radius:10px;margin-bottom:8px;display:block}input[type=file]{color:var(--muted);font-size:14px;margin-top:4px}.scan-outcome{text-align:center;border-width:3px}.scan-outcome h1{font-size:34px;margin:10px 0}.scan-outcome .deal{font-size:22px}#qr-reader{border-radius:12px;overflow:hidden}
