@font-face{font-family:Manrope;src:url(/fonts/manrope-var.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--bg-base: #F6F7F9;--bg-card: #FFFFFF;--bg-elev: #F6F7F9;--border: #E5E7EB;--border-card: #F0F0F0;--text-primary: #111111;--text-muted: #636363;--text-dim: #9CA3AF;--brand: #0161FE;--brand-hover: #0050D4;--brand-soft: #E6EFFF;--brand-glow: rgba(1, 97, 254, .22);--success: #22C55E;--warning: #F59E0B;--danger: #EF4444;--radius: 16px;--shadow-card: 0 12px 40px rgba(17, 17, 17, .06);--font-display: "Manrope", ui-sans-serif, system-ui, sans-serif;--font-body: "Inter", ui-sans-serif, system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1000px 420px at 80% -80px,rgba(1,97,254,.07),transparent 70%),var(--bg-base);color:var(--text-primary);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;border-radius:999px;padding:11px 20px;background:var(--brand);color:#fff;font-weight:600;transition:transform 80ms ease,background .12s ease}button:hover{background:var(--brand-hover)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{background:transparent;color:var(--text-primary);border:1px solid #D1D5DB}button.ghost:hover{background:var(--bg-elev)}button:focus-visible,input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}input[type=text],input[type=number],input[type=email],input[type=tel]{font-family:inherit;font-size:inherit;border:1px solid #D1D5DB;background:var(--bg-card);color:var(--text-primary);border-radius:12px;padding:11px 14px;width:100%;outline:none}input::placeholder{color:var(--text-dim)}input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}h1,h2,h3{font-family:var(--font-display);font-weight:700;margin:0;letter-spacing:-.02em}h1{font-size:28px}h2{font-size:18px}h3{font-size:15px;color:var(--text-muted)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;border-bottom:1px solid var(--border);background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;font-size:17px}.brand .dot{width:0;height:0;border-radius:0;border-left:12px solid var(--brand);border-top:7px solid transparent;border-bottom:7px solid transparent;background:transparent;box-shadow:none}.login-shell{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 16px}.login-card{width:100%;max-width:480px;background:var(--bg-card);border:1px solid var(--border-card);border-radius:24px;box-shadow:var(--shadow-card);padding:28px}.login-card .login-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:18px 0 22px;background:var(--bg-elev);border:1px solid var(--border-card);border-radius:999px;padding:4px}.login-card .login-tabs button{background:transparent;color:var(--text-muted);padding:8px 4px;border-radius:999px;font-size:13px;font-weight:600}.login-card .login-tabs button:hover{background:#ffffffb3;color:var(--text-primary)}.login-card .login-tabs button.active{background:var(--bg-card);color:var(--brand);box-shadow:0 1px 4px #1111111a}.login-card .tab-body{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}.muted{color:var(--text-muted)}.dim{color:var(--text-dim);font-size:13px}.input-row{display:grid;gap:10px;width:100%}.qr-frame{background:#fff;border:1px solid var(--border-card);border-radius:12px;padding:12px;display:inline-block}.method-banner{display:inline-flex;align-items:center;gap:6px;background:var(--brand-soft);color:var(--brand);padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.dashboard-shell{flex:1;display:grid;grid-template-columns:1fr 360px;gap:22px;padding:28px;max-width:1380px;width:100%;margin:0 auto}.dashboard-main{display:grid;gap:18px}.card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius);padding:18px}.card h2{margin-bottom:12px}.card .row{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--border-card)}.card .row:first-of-type{border-top:0}.card .row .title{color:var(--text-primary)}.card .row .sub{color:var(--text-muted);font-size:13px}.audit-feed{position:sticky;top:90px;align-self:flex-start;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius);padding:16px;height:calc(100vh - 110px);display:flex;flex-direction:column}.audit-feed h2{margin-bottom:12px;display:flex;align-items:center;gap:8px}.audit-feed h2 .pulse{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 8px #22c55e80;animation:pulse 1.4s infinite ease-in-out}.audit-feed .events{overflow-y:auto;flex:1;padding-right:4px}.audit-feed .event{padding:8px 10px;border-radius:8px;margin-bottom:6px;background:var(--bg-elev);border-left:3px solid var(--brand);display:grid;gap:2px}.audit-feed .event.success{border-left-color:var(--success)}.audit-feed .event.denied{border-left-color:var(--danger)}.audit-feed .event .head{font-size:13px;font-weight:600}.audit-feed .event .meta{font-size:11px;color:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion: reduce){.audit-feed h2 .pulse{animation:none}}.success-flash{position:fixed;top:0;right:0;bottom:0;left:0;background:#22c55e1f;display:flex;align-items:center;justify-content:center;z-index:50;pointer-events:none}.success-flash .check{width:96px;height:96px;border-radius:50%;background:var(--success);color:#fff;display:flex;align-items:center;justify-content:center;font-size:56px;box-shadow:0 0 32px #22c55e73}.error-text{color:var(--danger);font-size:13px}
