:root{--primary: #4f7cff;--primary-dark: #2f5bd6;--accent: #22d3a6;--danger: #ff5d6c;--warn: #ffb020;--bg: #0b1020;--surface: #141a2e;--surface-2: #1c2440;--border: #26304f;--text: #eef2ff;--muted: #9aa6c7;--radius: 16px;--shadow: 0 10px 30px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 50% -10%,#17204a 0%,var(--bg) 55%);color:var(--text);-webkit-tap-highlight-color:transparent}.app{max-width:480px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;position:sticky;top:0;z-index:10;background:#0b1020d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.3px}.brand .logo{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--primary),var(--accent));display:grid;place-items:center;font-weight:900;color:#06122a}.brand small{display:block;font-weight:600;color:var(--muted);font-size:11px;letter-spacing:.4px}.op-chip{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.op-chip button{font-size:12px}.content{flex:1;padding:18px;display:flex;flex-direction:column;gap:16px}.tabs{display:flex;gap:8px;padding:0 18px 12px}.tabs button{flex:1;padding:10px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-weight:700;font-size:13px}.tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card h2{margin:0 0 4px;font-size:18px}.card p.sub{margin:0 0 16px;color:var(--muted);font-size:13px}label{display:block;font-size:13px;color:var(--muted);margin:0 0 6px;font-weight:600}input,textarea,select{width:100%;padding:14px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:16px;outline:none}input:focus,textarea:focus{border-color:var(--primary)}button{cursor:pointer;border:none;border-radius:12px;padding:14px 16px;background:var(--primary);color:#fff;font-weight:700;font-size:15px;transition:transform .05s ease,opacity .15s ease}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}button.accent{background:var(--accent);color:#06251d}button.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}button.block{width:100%}.row{display:flex;gap:10px}.row>*{flex:1}.otp-inputs{display:flex;gap:8px;justify-content:center;margin:8px 0 4px}.otp-inputs input{width:48px;height:58px;text-align:center;font-size:24px;font-weight:800;padding:0}.attendee-name{font-size:22px;font-weight:800;margin:2px 0}.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.badge.vip{color:var(--warn);border-color:var(--warn)}.badge.in{color:var(--accent);border-color:var(--accent)}.banner{padding:14px 16px;border-radius:12px;font-weight:700;font-size:14px}.banner.ok{background:#22d3a61f;color:var(--accent);border:1px solid rgba(34,211,166,.3)}.banner.err{background:#ff5d6c1f;color:var(--danger);border:1px solid rgba(255,93,108,.3)}.banner.warn{background:#ffb0201f;color:var(--warn);border:1px solid rgba(255,176,32,.3)}.result{text-align:center;padding:30px 18px}.result .icon{font-size:64px;line-height:1}.result h1{margin:12px 0 4px;font-size:26px}.result p{color:var(--muted);margin:0}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center}.stat .num{font-size:26px;font-weight:900}.stat .lbl{font-size:12px;color:var(--muted)}#qr-reader{border-radius:14px;overflow:hidden;border:1px solid var(--border)}#qr-reader video{border-radius:14px}.log-item{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.log-item .when{color:var(--muted);font-size:11px}.log-tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}.muted{color:var(--muted);font-size:13px}.center{text-align:center}.spacer{height:4px}.footer-note{text-align:center;color:var(--muted);font-size:11px;padding:16px}a{color:var(--primary)}
