*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--ink: #0a0a0b;--bg: #0b0b0d;--bg-elev: #0f0f11;--surface: #131316;--surface-2: #17171b;--line: rgba(255, 255, 255, .06);--line-strong: rgba(255, 255, 255, .1);--text: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .6);--text-tertiary: rgba(255, 255, 255, .42);--text-quaternary: rgba(255, 255, 255, .28);--success: #34c759;--success-soft: rgba(52, 199, 89, .16);--warning: #ffb020;--danger: #ff453a;--danger-soft: rgba(255, 69, 58, .14);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", system-ui, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 24px;--ease-standard: cubic-bezier(.32, .72, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-instant: 80ms;--dur-fast: .16s;--dur-med: .28s}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.47;letter-spacing:-.003em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;text-rendering:optimizeLegibility}body{min-height:100vh;min-height:100dvh}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::selection{background:#fff3;color:#fff}:focus{outline:none}:focus-visible{box-shadow:0 0 0 2px var(--bg),0 0 0 4px #ffffff59;border-radius:var(--r-sm)}.hid-app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.hid-user-chip{position:fixed;top:calc(env(safe-area-inset-top) + 12px);right:16px;z-index:20;display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:999px;background:#131316b8;backdrop-filter:saturate(160%) blur(20px);-webkit-backdrop-filter:saturate(160%) blur(20px);border:.5px solid var(--line-strong);font-size:13px;color:var(--text);transition:background var(--dur-fast) var(--ease-standard),transform 90ms var(--ease-standard)}.hid-user-chip:hover{background:#1e1e22cc}.hid-user-chip:active{transform:scale(.97)}.hid-avatar{width:24px;height:24px;border-radius:50%;background:#ffffff14;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text);font-weight:600;font-size:11px}.hid-avatar img{width:100%;height:100%;object-fit:cover}.hid-main{flex:1;display:flex;flex-direction:column;align-items:center;width:100%;max-width:420px;margin:0 auto;padding:60px 20px}.hid-hero{text-align:center;padding:40px 8px 0;animation:hid-enter .5s var(--ease-out)}.hid-hero-mark{width:68px;height:68px;margin:0 auto 28px;border-radius:18px;background:linear-gradient(180deg,#1c1c20,#0e0e11);border:.5px solid var(--line-strong);display:flex;align-items:center;justify-content:center;font-family:var(--font);font-size:22px;font-weight:600;color:var(--text);letter-spacing:-.03em;box-shadow:0 1px #ffffff0d inset,0 20px 40px -20px #000000b3}.hid-hero-mark .sep{color:var(--text-quaternary);font-weight:400}.hid-hero-title{font-size:clamp(30px,8vw,36px);font-weight:700;color:var(--text);letter-spacing:-.028em;line-height:1.08;margin-bottom:12px}.hid-hero-subtitle{color:var(--text-secondary);font-size:15px;max-width:320px;margin:0 auto 32px;line-height:1.5;letter-spacing:-.003em}.hid-cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:13px 22px;background:#fff;color:#0a0a0b;border-radius:999px;font-size:15px;font-weight:600;letter-spacing:-.01em;min-width:200px;transition:transform 90ms var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.hid-cta:hover{background:#f4f4f5}.hid-cta:active{transform:scale(.985)}.hid-cta.secondary{background:transparent;color:var(--text);border:.5px solid var(--line-strong)}.hid-cta.secondary:hover{background:#ffffff0a}.hid-hero-note{margin-top:40px;color:var(--text-tertiary);font-size:12px;letter-spacing:-.002em;max-width:300px;line-height:1.5;text-align:center}.hid-card{width:100%;padding:32px 24px 24px;background:var(--surface);border:.5px solid var(--line);border-radius:var(--r-xl);animation:hid-enter .34s var(--ease-out);box-shadow:0 30px 70px -30px #0009}.hid-card-head{text-align:center;margin-bottom:24px}.hid-card-title{font-size:22px;font-weight:600;color:var(--text);letter-spacing:-.02em;margin-bottom:6px;line-height:1.15}.hid-card-sub{color:var(--text-secondary);font-size:14px;line-height:1.5;letter-spacing:-.003em}.hid-field{display:block;margin-bottom:12px}.hid-field label{display:block;font-size:12px;font-weight:500;color:var(--text-tertiary);margin-bottom:8px;letter-spacing:-.002em}.hid-input-wrap{position:relative;display:flex;align-items:center}.hid-input-icon{position:absolute;left:14px;color:var(--text-tertiary);pointer-events:none}.hid-input{width:100%;background:var(--bg-elev);border:.5px solid var(--line-strong);color:var(--text);padding:12px 14px;font-size:15px;border-radius:10px;outline:none;font-family:inherit;letter-spacing:-.003em;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.hid-input.with-icon{padding-left:40px}.hid-input::placeholder{color:var(--text-quaternary);letter-spacing:-.003em}.hid-input:hover{border-color:#ffffff2e}.hid-input:focus{border-color:#ffffff57;background:var(--surface)}.hid-input.otp{text-align:center;font-family:var(--font-mono);font-size:22px;letter-spacing:.55em;padding-left:.55em;padding-right:0;font-variant-numeric:tabular-nums;font-weight:500}.hid-submit{width:100%;padding:13px;background:#fff;color:#0a0a0b;border-radius:12px;font-size:15px;font-weight:600;margin-top:6px;letter-spacing:-.01em;transition:background var(--dur-fast) var(--ease-standard),transform 90ms var(--ease-standard),opacity var(--dur-fast) var(--ease-standard);min-height:46px;display:inline-flex;align-items:center;justify-content:center}.hid-submit:hover:not(:disabled){background:#f4f4f5}.hid-submit:active:not(:disabled){transform:scale(.99)}.hid-submit:disabled{opacity:.36;cursor:not-allowed}.hid-error{background:var(--danger-soft);border:.5px solid rgba(255,69,58,.28);color:#ff8a80;padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:12px;letter-spacing:-.002em;animation:hid-shake .26s var(--ease-standard)}.hid-footnote{color:var(--text-tertiary);font-size:12px;text-align:center;margin-top:20px;line-height:1.5;letter-spacing:-.002em}.hid-status{padding:14px 16px;background:var(--surface);border:.5px solid var(--line);border-radius:var(--r-lg);margin-bottom:20px;display:flex;align-items:center;gap:12px}.hid-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.hid-status.enrolled .hid-status-dot{background:var(--success)}.hid-status.not-enrolled .hid-status-dot{background:var(--warning)}.hid-status h3{color:var(--text);font-size:14px;font-weight:500;margin-bottom:2px;letter-spacing:-.005em}.hid-status p{font-size:13px;color:var(--text-secondary);line-height:1.45;letter-spacing:-.003em}.hid-section-title{font-size:12px;color:var(--text-tertiary);font-weight:500;padding:0 4px 8px;letter-spacing:-.002em;text-transform:none}.hid-list{background:var(--surface);border:.5px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.hid-list-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:.5px solid var(--line);transition:background var(--dur-fast) var(--ease-standard)}.hid-list-row:first-child{border-top:none}.hid-list-row:hover{background:#ffffff05}.hid-list-row-icon{color:var(--text-secondary);flex-shrink:0}.hid-list-row-body{flex:1;min-width:0}.hid-list-row-name{color:var(--text);font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.005em}.hid-list-row-when{font-size:12px;color:var(--text-tertiary);margin-top:2px;letter-spacing:-.002em}.hid-empty{padding:32px 16px;text-align:center;color:var(--text-tertiary);font-size:13px;background:var(--surface);border:.5px solid var(--line);border-radius:var(--r-lg)}.hid-ready{padding:24px 20px;background:var(--surface);border:.5px solid var(--line);border-radius:var(--r-lg);margin-bottom:24px;display:flex;flex-direction:column;align-items:center;text-align:center}.hid-ready h3{color:var(--text);font-size:15px;font-weight:600;margin:12px 0 4px;letter-spacing:-.01em}.hid-ready p{color:var(--text-secondary);font-size:13.5px;line-height:1.5;max-width:300px;letter-spacing:-.003em}.hid-ready-mark{width:44px;height:44px;border-radius:12px;background:#ffffff0d;border:.5px solid var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--text)}.hid-approve{width:100%;padding:28px 24px;background:var(--surface);border:.5px solid var(--line);border-radius:var(--r-xl);animation:hid-sheet-in .34s var(--ease-out);box-shadow:0 30px 70px -30px #0009}.hid-approve-icon{width:56px;height:56px;margin:0 auto 18px;border-radius:16px;background:#ffffff0d;border:.5px solid var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--text)}.hid-approve h2{text-align:center;color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.02em;margin-bottom:6px}.hid-approve-sub{text-align:center;color:var(--text-secondary);font-size:14px;margin-bottom:24px;line-height:1.5;letter-spacing:-.003em}.hid-meta{background:var(--bg-elev);border:.5px solid var(--line);border-radius:var(--r-md);overflow:hidden}.hid-meta-row{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:12px;padding:10px 14px;border-top:.5px solid var(--line);font-size:13px}.hid-meta-row:first-child{border-top:none}.hid-meta-row .k{color:var(--text-tertiary);font-size:12px;letter-spacing:-.002em}.hid-meta-row .v{color:var(--text);font-family:var(--font-mono);font-size:12.5px;word-break:break-word;letter-spacing:0}.hid-approve-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.hid-btn-approve{padding:13px;background:#fff;color:#0a0a0b;border-radius:12px;font-weight:600;font-size:15px;letter-spacing:-.01em;transition:background var(--dur-fast) var(--ease-standard),transform 90ms var(--ease-standard)}.hid-btn-approve:hover:not(:disabled){background:#f4f4f5}.hid-btn-approve:active:not(:disabled){transform:scale(.99)}.hid-btn-approve:disabled{opacity:.4;cursor:not-allowed}.hid-btn-reject{padding:13px;background:transparent;color:var(--danger);border:.5px solid rgba(255,69,58,.28);border-radius:12px;font-weight:500;font-size:15px;letter-spacing:-.005em;transition:background var(--dur-fast) var(--ease-standard),transform 90ms var(--ease-standard)}.hid-btn-reject:hover:not(:disabled){background:var(--danger-soft)}.hid-btn-reject:active:not(:disabled){transform:scale(.99)}.hid-approve-done,.hid-approve-error{text-align:center;padding:40px 20px}.hid-approve-done .icon,.hid-approve-error .icon{width:56px;height:56px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center}.hid-approve-done .icon{background:var(--success-soft);color:var(--success)}.hid-approve-error .icon{background:var(--danger-soft);color:var(--danger)}.hid-approve-done h2,.hid-approve-error h2{color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.015em;margin-bottom:6px}.hid-approve-done p,.hid-approve-error p{color:var(--text-secondary);font-size:14px;letter-spacing:-.003em}.hid-qr-page{padding:20px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg)}.hid-qr-card{width:100%;max-width:380px;padding:32px 28px 28px;background:var(--surface);border:.5px solid var(--line);border-radius:var(--r-xl);text-align:center;box-shadow:0 40px 100px -30px #000000b3}.hid-qr-brand{font-family:var(--font);font-size:13px;font-weight:600;color:var(--text-secondary);letter-spacing:-.005em;margin-bottom:20px}.hid-qr-brand .sep{color:var(--text-quaternary);font-weight:400}.hid-qr-canvas{width:224px;height:224px;margin:0 auto 24px;padding:14px;background:#fff;border-radius:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 20px 40px -20px #00000080}.hid-qr-canvas canvas{width:100%!important;height:100%!important}.hid-qr-title{color:var(--text);font-size:17px;font-weight:600;letter-spacing:-.015em;margin-bottom:6px}.hid-qr-sub{color:var(--text-secondary);font-size:13.5px;line-height:1.5;margin-bottom:16px;letter-spacing:-.003em}.hid-qr-status{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--bg-elev);border:.5px solid var(--line);color:var(--text-secondary);font-size:12.5px;font-weight:500;letter-spacing:-.002em}.hid-qr-status .dot{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);transition:background var(--dur-fast) var(--ease-standard)}.hid-qr-status.pending .dot{background:var(--text-secondary);animation:hid-blink 1.6s ease-in-out infinite}.hid-qr-status.success{color:var(--success);border-color:#34c75947;background:var(--success-soft)}.hid-qr-status.success .dot{background:var(--success);animation:none}.hid-qr-status.expired{color:var(--danger);border-color:#ff453a47;background:var(--danger-soft)}.hid-qr-status.expired .dot{background:var(--danger);animation:none}.hid-qr-refresh{display:inline-block;margin-top:14px;color:var(--text-secondary);font-size:13px;padding:4px 8px;cursor:pointer;transition:color var(--dur-fast) var(--ease-standard);letter-spacing:-.003em}.hid-qr-refresh:hover{color:var(--text)}.hid-scan{position:fixed;inset:0;z-index:100;background:#000;animation:hid-enter .2s var(--ease-out)}.hid-scan-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hid-scan-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding-top:calc(env(safe-area-inset-top) + 12px);padding-bottom:calc(env(safe-area-inset-bottom) + 24px);pointer-events:none}.hid-scan-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;pointer-events:auto}.hid-scan-title{color:#fff;font-size:15px;font-weight:600;letter-spacing:-.01em;text-shadow:0 1px 4px rgba(0,0,0,.5)}.hid-scan-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#0000006b;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#fff;border:.5px solid rgba(255,255,255,.14);transition:background var(--dur-fast) var(--ease-standard),transform 90ms var(--ease-standard)}.hid-scan-btn:active{transform:scale(.94)}.hid-scan-btn.is-on{background:#ffffffe6;color:#0a0a0b}.hid-scan-reticle{position:relative;width:min(72vw,280px);aspect-ratio:1;margin:0 auto;align-self:center;border-radius:24px;box-shadow:0 0 0 9999px #0006}.hid-scan-reticle .c{position:absolute;width:32px;height:32px;border:3px solid #ffffff}.hid-scan-reticle .tl{top:-1px;left:-1px;border-right:none;border-bottom:none;border-top-left-radius:22px}.hid-scan-reticle .tr{top:-1px;right:-1px;border-left:none;border-bottom:none;border-top-right-radius:22px}.hid-scan-reticle .bl{bottom:-1px;left:-1px;border-right:none;border-top:none;border-bottom-left-radius:22px}.hid-scan-reticle .br{bottom:-1px;right:-1px;border-left:none;border-top:none;border-bottom-right-radius:22px}.hid-scan-hint{text-align:center;color:#ffffffd9;font-size:14px;padding:0 24px;letter-spacing:-.003em;text-shadow:0 1px 4px rgba(0,0,0,.6);min-height:20px}.hid-scan-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:#fff;color:#0a0a0b;border-radius:14px;font-size:15px;font-weight:600;letter-spacing:-.01em;margin-bottom:24px;transition:background var(--dur-fast) var(--ease-standard),transform 90ms var(--ease-standard)}.hid-scan-cta:hover{background:#f4f4f5}.hid-scan-cta:active{transform:scale(.99)}@keyframes hid-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes hid-sheet-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes hid-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes hid-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.hid-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.14);border-top-color:var(--text);border-radius:50%;animation:hid-spin .7s linear infinite;display:inline-block}@keyframes hid-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.1s!important}}@media(prefers-reduced-transparency:reduce){.hid-user-chip{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}}
