/* ── Auth Gate ── */
/* AUTH GATE */
#pin-gate{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,#0f172a,#1e3a5f 60%,#1e40af);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto;padding:20px 0;}
.plogo{width:64px;height:64px;border-radius:18px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:#fff;margin-bottom:18px;border:1px solid rgba(255,255,255,.15);}
.ptitle{color:#fff;font-size:20px;font-weight:700;margin-bottom:4px;}
.psub{color:rgba(255,255,255,.5);font-size:13px;margin-bottom:28px;text-align:center;}
.pbox{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:28px 32px;width:min(94vw,400px);backdrop-filter:blur(20px);}
.pnote{text-align:center;font-size:12px;color:rgba(255,255,255,.45);margin-bottom:20px;line-height:1.5;}
/* Google Sign-In */
.gauth-sep{display:flex;align-items:center;gap:10px;margin:18px 0;color:rgba(255,255,255,.3);font-size:12px;}
.gauth-sep::before,.gauth-sep::after{content:'';flex:1;border-top:1px solid rgba(255,255,255,.15);}
.gauth-link{background:none;border:none;color:rgba(255,255,255,.45);font-size:12px;cursor:pointer;text-decoration:underline;padding:4px 0;font-family:var(--sans);}
.gauth-link:hover{color:rgba(255,255,255,.7);}
.gauth-error{background:rgba(220,38,38,.2);border:1px solid rgba(220,38,38,.4);border-radius:8px;padding:10px 14px;color:#fca5a5;font-size:12px;margin-top:14px;display:none;line-height:1.5;}
.gauth-user{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.08);border-radius:12px;padding:12px 16px;margin-bottom:16px;}
.gauth-avatar{width:40px;height:40px;border-radius:50%;border:2px solid rgba(255,255,255,.2);}
.gauth-uname{color:#fff;font-weight:600;font-size:14px;}
.gauth-uemail{color:rgba(255,255,255,.5);font-size:11px;margin-top:2px;}
/* Setup steps */
.setup-step{display:flex;gap:12px;margin-bottom:14px;}
.setup-num{width:24px;height:24px;border-radius:50%;background:rgba(37,99,235,.6);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.setup-step-text{color:rgba(255,255,255,.75);font-size:12px;line-height:1.65;}
.setup-step-text strong{color:#fff;}
.setup-step-text a{color:#93c5fd;text-decoration:underline;}
.setup-inp{width:100%;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);border-radius:9px;padding:10px 14px;color:#fff;font-size:13px;font-family:var(--sans);outline:none;box-sizing:border-box;margin-top:8px;}
.setup-inp::placeholder{color:rgba(255,255,255,.3);}
.setup-inp:focus{border-color:rgba(99,179,237,.6);box-shadow:0 0 0 3px rgba(37,99,235,.25);}
/* PIN keypad (fallback) */
.pdots{display:flex;gap:14px;justify-content:center;margin-bottom:28px;}
.pmsg{text-align:center;font-size:12px;color:rgba(255,255,255,.45);margin-top:10px;min-height:18px;}
.pw-inp{width:100%;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);border-radius:9px;padding:12px 14px;color:#fff;font-size:15px;font-family:var(--mono);outline:none;box-sizing:border-box;letter-spacing:.08em;}
.pw-inp::placeholder{color:rgba(255,255,255,.25);letter-spacing:0;}
.pw-inp:focus{border-color:rgba(99,179,237,.7);box-shadow:0 0 0 3px rgba(37,99,235,.3);}
.pw-inp.err{border-color:rgba(220,38,38,.7);box-shadow:0 0 0 3px rgba(220,38,38,.2);animation:shake .3s;}
.pw-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:rgba(255,255,255,.4);cursor:pointer;font-size:16px;padding:4px;}
.pw-toggle:hover{color:rgba(255,255,255,.7);}
.pw-wrap{position:relative;margin-bottom:6px;}
.pw-strength{height:3px;border-radius:2px;transition:all .3s;background:rgba(255,255,255,.1);}
.pw-hint{font-size:10px;color:rgba(255,255,255,.35);text-align:right;margin-bottom:16px;min-height:14px;}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes spin{to{transform:rotate(360deg)}}
