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