:root{--spring-bounce:cubic-bezier(0.34,1.56,0.64,1);--spring-smooth:cubic-bezier(0.16,1,0.3,1);--spring-snappy:cubic-bezier(0.2,0,0,1);--auth-radius:0.75rem;--auth-radius-sm:0.5rem;--auth-radius-xs:0.375rem}.auth-layout{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem clamp(1.5rem,5vw,2.5rem) max(1.5rem,env(safe-area-inset-bottom,1rem))}.auth-glow-layer{z-index:0;pointer-events:none}.auth-layout>:not(.auth-glow-layer){position:relative;z-index:1}.auth-container{width:100%;max-width:380px;display:flex;flex-direction:column;gap:1.25rem}.auth-container[data-entering=true]{animation:authSlideIn .45s var(--spring-smooth) both}@keyframes authSlideIn{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.375rem}.auth-logo{width:56px;height:56px;margin-bottom:.75rem;-o-object-fit:contain;object-fit:contain;border-radius:14px;animation:authLogoIn .5s var(--spring-bounce) both}@keyframes authLogoIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.auth-title{font-size:1.625rem;font-weight:700;line-height:1.15;letter-spacing:-.025em;color:hsl(var(--foreground));margin:0}.auth-subtitle{font-size:.9375rem;line-height:1.5;color:hsl(var(--muted-foreground));margin:.125rem 0 0}.auth-identifier{font-weight:500;color:hsl(var(--foreground))}.auth-form-group{display:flex;flex-direction:column;gap:.875rem}.auth-input{width:100%;height:3rem;padding:0 .875rem;font-size:.9375rem;background:hsl(var(--input));border:1px solid hsl(var(--border));border-radius:var(--auth-radius-sm);color:hsl(var(--foreground));transition:border-color .18s var(--spring-snappy),box-shadow .18s var(--spring-snappy)}.auth-input:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring)/.12)}.auth-input:disabled{opacity:.5;cursor:not-allowed}.auth-input::-moz-placeholder{color:hsl(var(--muted-foreground)/.6)}.auth-input::placeholder{color:hsl(var(--muted-foreground)/.6)}.auth-phone-input .PhoneInputInput{height:3rem;padding:0 .875rem;font-size:.9375rem;background:hsl(var(--input));border:1px solid hsl(var(--border));border-radius:var(--auth-radius-sm);color:hsl(var(--foreground));transition:border-color .18s var(--spring-snappy),box-shadow .18s var(--spring-snappy)}.auth-phone-input .PhoneInputInput:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring)/.12)}.auth-button{width:100%;height:3rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9375rem;font-weight:600;letter-spacing:-.01em;border-radius:var(--auth-radius-sm);border:none;cursor:pointer;transition:opacity .15s,transform .12s var(--spring-snappy),background-color .15s;-webkit-tap-highlight-color:transparent}.auth-button:active:not(:disabled){transform:scale(.975)}.auth-button:disabled{opacity:.45;cursor:not-allowed}.auth-button-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.auth-button-secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:none}.auth-button:hover:not(:disabled){opacity:.88}.auth-button-loading{color:transparent!important;position:relative;pointer-events:none}.auth-button-loading:after{content:"";position:absolute;width:1.125rem;height:1.125rem;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:authSpin .55s linear infinite}.auth-button-primary.auth-button-loading:after{border-color:hsl(var(--primary-foreground)/.7);border-right-color:transparent}@keyframes authSpin{to{transform:rotate(1turn)}}.auth-divider{display:flex;align-items:center;gap:.75rem;color:hsl(var(--muted-foreground));font-size:.75rem;letter-spacing:.02em;text-transform:uppercase}.auth-divider:after,.auth-divider:before{content:"";flex:1;height:1px;background:hsl(var(--border))}.auth-link{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;color:hsl(var(--primary));background:none;border:none;padding:0;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.auth-link:hover{opacity:.75}.auth-link:disabled{opacity:.45;cursor:not-allowed}.auth-actions{display:flex;justify-content:center;gap:1.5rem}.auth-error{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;line-height:1.4;color:hsl(var(--destructive));animation:authShake .38s cubic-bezier(.36,.07,.19,.97) both}.auth-error-icon{flex-shrink:0;width:1rem;height:1rem;margin-top:.1rem;opacity:.85}@keyframes authShake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-5px)}40%,60%{transform:translateX(5px)}}.auth-footer{display:flex;justify-content:center;gap:.75rem;font-size:.75rem;color:hsl(var(--muted-foreground))}.auth-footer a{color:inherit;text-decoration:none;transition:color .15s}.auth-footer a:hover{color:hsl(var(--foreground))}.auth-footer-dot{opacity:.25}.auth-terms{display:flex;align-items:flex-start;gap:.625rem;font-size:.8125rem;line-height:1.5;color:hsl(var(--muted-foreground))}.auth-terms-checkbox{margin-top:.125rem;flex-shrink:0}.auth-terms a{color:hsl(var(--primary));text-decoration:none;transition:opacity .15s}.auth-terms a:hover{opacity:.75}.auth-remember{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:hsl(var(--foreground));cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.auth-remember-checkbox{flex-shrink:0}.auth-remember-label{font-weight:400;cursor:pointer}.auth-channel-toggle{display:flex;padding:3px;background:hsl(var(--muted));border-radius:var(--auth-radius-sm);gap:2px}.auth-channel-option{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.4375rem 1rem;font-size:.8125rem;font-weight:500;letter-spacing:-.005em;color:hsl(var(--muted-foreground));background:transparent;border:none;border-radius:calc(var(--auth-radius-sm) - 2px);cursor:pointer;transition:color .2s,background .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}.auth-channel-option[data-active=true]{color:hsl(var(--foreground));background:hsl(var(--background));box-shadow:0 1px 3px hsl(0 0% 0%/.08),0 0 0 .5px hsl(var(--border))}.auth-channel-option:disabled{opacity:.45;cursor:not-allowed}.auth-channel-option svg{width:.875rem;height:.875rem;flex-shrink:0}.auth-otp-container{display:flex;justify-content:center;width:100%}.auth-otp-wrapper{display:flex;gap:.375rem;width:100%}.auth-otp-wrapper input{width:3rem;height:3.5rem;font-size:1.375rem;font-weight:600;text-align:center;letter-spacing:-.01em;background:hsl(var(--input));border:1px solid hsl(var(--border));border-radius:var(--auth-radius-sm);color:hsl(var(--foreground));transition:border-color .18s,box-shadow .18s}.auth-otp-wrapper input:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring)/.12)}.auth-otp-wrapper input:disabled{opacity:.45}.auth-qr-container{display:flex;justify-content:center;padding:.75rem 0}.auth-qr{padding:.875rem;background:white;border-radius:var(--auth-radius);box-shadow:0 2px 12px hsl(0 0% 0%/.1)}.auth-collapsible-centered,.auth-secret-container{display:flex;flex-direction:column;align-items:center}.auth-secret-container{gap:.5rem;padding:.75rem}.auth-secret{padding:.5rem .875rem;font-family:ui-monospace,SF Mono,monospace;font-size:.8125rem;letter-spacing:.08em;background:hsl(var(--muted));border-radius:var(--auth-radius-xs);color:hsl(var(--foreground));word-break:break-all;text-align:center}.auth-backup-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:.375rem;padding:.875rem;background:hsl(var(--muted)/.4);border:1px dashed hsl(var(--border));border-radius:var(--auth-radius-sm)}.auth-backup-code{font-family:ui-monospace,SF Mono,monospace;font-size:.8125rem;letter-spacing:.05em;text-align:center;padding:.375rem;color:hsl(var(--foreground))}.auth-success-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:hsl(var(--background));z-index:50;animation:authFadeIn .25s var(--spring-snappy) both}@keyframes authFadeIn{0%{opacity:0}to{opacity:1}}.auth-success-content{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.auth-success-logo{-o-object-fit:contain;object-fit:contain;border-radius:16px}.auth-success-check,.auth-success-logo{width:72px;height:72px;animation:authSuccessIn .5s var(--spring-bounce) both}.auth-success-check{display:flex;align-items:center;justify-content:center;background:hsl(142 76% 36%/.1);border-radius:50%;color:hsl(142 76% 36%)}@keyframes authSuccessIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.auth-success-check svg{width:36px;height:36px}.auth-success-text{font-size:.9375rem;font-weight:500;color:hsl(var(--muted-foreground));animation:authFadeIn .4s .15s var(--spring-smooth) both}.auth-2fa-box{padding:1.5rem 1.25rem 1.25rem;background:hsl(var(--card,var(--muted)/.25));border:1px solid hsl(var(--border));border-radius:var(--auth-radius);box-shadow:0 2px 12px hsl(0 0% 0%/.08),0 0 0 1px hsl(var(--border)/.4) inset;display:flex;flex-direction:column;gap:1.125rem}.auth-2fa-shield{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin:0 auto;border-radius:50%;background:hsl(var(--primary)/.1);color:hsl(var(--primary));animation:authLogoIn .5s var(--spring-bounce) both}.auth-2fa-shield svg{width:1.375rem;height:1.375rem}.auth-2fa-box .auth-actions{flex-wrap:wrap;row-gap:.625rem}.auth-dev-notice{padding:.5rem .75rem;font-size:.75rem;text-align:center;color:hsl(38 92% 40%);background:hsl(38 92% 95%);border-radius:var(--auth-radius-xs);border:1px solid hsl(38 92% 80%)}.dark .auth-dev-notice{color:hsl(38 92% 65%);background:hsl(38 92% 15%);border-color:hsl(38 92% 30%)}.auth-instruction{font-size:.875rem;line-height:1.5;color:hsl(var(--muted-foreground));text-align:center;margin:0}@media (max-width:480px){.auth-layout{overflow-y:auto}.auth-title{font-size:1.375rem}.auth-otp-wrapper input{width:2.625rem;height:3.25rem;font-size:1.125rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}