*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--surface: #1e293b;--border: #334155;--primary: #3b82f6;--text: #f1f5f9;--text-muted: #94a3b8;--radius: 16px;--approved: #22c55e;--not-approved: #ef4444;--expired: #f59e0b;--not-found: #64748b}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:16px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}button{cursor:pointer;border:none;border-radius:var(--radius);font-size:20px;font-weight:700;padding:20px;width:100%;transition:transform .1s,opacity .1s;letter-spacing:.3px}button:active{transform:scale(.97);opacity:.85}button:disabled{opacity:.4;cursor:not-allowed}button.scan{background:var(--primary);color:#fff}button.manual{background:var(--surface);color:var(--text);border:2px solid var(--border)}button.back{background:var(--surface);color:var(--text-muted);font-size:16px;padding:14px;border:1px solid var(--border)}input{width:100%;padding:18px 20px;border:2px solid var(--border);border-radius:var(--radius);font-size:24px;font-weight:700;background:var(--surface);color:var(--text);text-align:center;letter-spacing:4px;outline:none;-webkit-appearance:none}input:focus{border-color:var(--primary)}select{width:100%;padding:16px 20px;border:2px solid var(--border);border-radius:var(--radius);font-size:18px;font-weight:600;background:var(--surface);color:var(--text);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center}select:focus{border-color:var(--primary)}
