.pin-pad{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.pin-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pin-dots{justify-content:center;align-items:center;gap:14px;min-height:16px;display:flex}.pin-dots.is-error{animation:.3s both pin-shake}.pin-dot{border:2px solid var(--muted);width:14px;height:14px;color:var(--text);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;transition:border-color .15s,background-color .15s,transform .15s;display:inline-flex}.pin-dot.is-on{border-color:var(--teal);background:var(--teal);animation:.16s both pin-dot-in}.pin-dots.is-error .pin-dot{border-color:var(--red)}.pin-dots.is-error .pin-dot.is-on{background:var(--red);border-color:var(--red)}@keyframes pin-dot-in{0%{opacity:.35;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes pin-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}.pin-spinner{border:2px solid var(--border);border-block-start-color:var(--teal);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite pin-spin}@keyframes pin-spin{to{transform:rotate(360deg)}}.pin-keypad{grid-template-columns:repeat(3,64px);justify-content:center;gap:12px;margin-inline:auto;display:grid}.pin-key{border:1px solid var(--border);background:var(--surface);width:64px;min-width:44px;height:64px;min-height:44px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:24px;font-weight:600;line-height:1;transition:background-color 60ms,border-color 60ms,color 60ms,transform 60ms;display:inline-flex}.pin-key:active:not(:disabled){background:var(--teal);border-color:var(--teal);color:var(--text);transform:scale(.94)}.pin-key:disabled{opacity:.4;cursor:not-allowed}.pin-key--del{font-size:22px}.pin-key--aux{justify-content:center;align-items:center;display:inline-flex}.pin-key--aux svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}@media (min-width:768px){.pin-keypad{grid-template-columns:repeat(3,72px)}.pin-key{width:72px;height:72px}}.bio-overlay{z-index:9500;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bio-sheet{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;padding:24px 20px calc(20px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;outline:none;flex-direction:column;align-items:center;gap:14px;display:flex}@media (min-width:640px){.bio-overlay{align-items:center;padding:20px}.bio-sheet{border-radius:20px;padding:28px 24px}}.bio-icon{width:96px;height:96px;color:var(--teal);background:var(--surface);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.bio-icon svg{width:52px;height:52px}.bio-state-idle .bio-icon{color:var(--muted)}.bio-state-waiting .bio-icon{color:var(--teal)}.bio-state-success .bio-icon{color:var(--teal);border-color:var(--teal)}.bio-state-error .bio-icon{color:var(--red);border-color:var(--red);animation:.3s both pin-shake}.bio-state-locked .bio-icon{color:var(--muted)}.bio-state-waiting .bio-icon:after{content:"";border:2px solid var(--teal);border-radius:50%;animation:1.6s ease-in-out infinite bio-pulse;position:absolute;inset:-6px}@keyframes bio-pulse{0%,to{opacity:.25;transform:scale(.96)}50%{opacity:.7;transform:scale(1.06)}}.bio-check{position:absolute;inset:0;width:100%!important;height:100%!important}.bio-check-path{fill:none;stroke:var(--teal);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:34;stroke-dashoffset:34px;animation:.25s forwards bio-draw}@keyframes bio-draw{to{stroke-dashoffset:0}}.bio-title{color:var(--text);text-align:center;font-size:18px;font-weight:800;line-height:1.25}.bio-sub{color:var(--muted);text-align:center;font-size:13px;line-height:1.4}.bio-status{color:var(--muted);text-align:center;min-height:18px;font-size:13px;line-height:1.4}.bio-state-error .bio-status{color:var(--red)}.bio-actions{flex-direction:column;gap:10px;width:100%;margin-top:6px;display:flex}.bio-btn{border:1px solid var(--border);background:var(--surface);width:100%;min-height:48px;color:var(--text);cursor:pointer;touch-action:manipulation;border-radius:14px;padding:0 16px;font-family:inherit;font-size:14px;font-weight:700}.bio-btn:active:not(:disabled){transform:scale(.98)}.bio-btn--primary{border-color:var(--teal);color:var(--teal)}.bio-btn--ghost{color:var(--muted)}@media (prefers-reduced-motion:reduce){.pin-dot,.pin-dots,.pin-spinner,.pin-key,.bio-icon,.bio-icon:after,.bio-check-path{transition:none!important;animation:none!important}.bio-check-path{stroke-dashoffset:0}}
