.auth-form-container{width:100%;max-width:420px;margin:0 auto;padding:0}.auth-form-header{text-align:center;margin-bottom:24px}.auth-form-title{font-size:26px;font-weight:700;color:var(--color-text-primary);margin:0 0 8px;letter-spacing:-.03em;line-height:1.2}.auth-form-subtitle{font-size:14px;color:var(--color-text-tertiary);margin:0;line-height:1.6;letter-spacing:-.005em}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form-field{display:flex;flex-direction:column;gap:7px}.auth-form-label{font-size:13px;font-weight:500;color:var(--color-text-secondary);letter-spacing:0}.auth-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.auth-label-link{font-size:13px;letter-spacing:0}.auth-caps-hint{display:inline-flex;align-items:center;gap:6px;margin-top:-2px;font-size:12px;font-weight:500;color:var(--color-text-secondary);letter-spacing:-.005em}.auth-caps-hint svg{width:14px;height:14px;color:var(--color-text-tertiary);flex-shrink:0}.auth-input-wrapper{position:relative;display:flex;align-items:center;gap:12px;padding:0 16px;--auth-input-bg: var(--color-bg-primary);background:var(--auth-input-bg);border:1.5px solid var(--color-border-default);border-radius:var(--radius-lg);transition:all .2s cubic-bezier(.4,0,.2,1)}.auth-input-wrapper svg{width:18px;height:18px;color:var(--color-text-tertiary);flex-shrink:0;transition:color .2s cubic-bezier(.4,0,.2,1)}.auth-input-wrapper:hover{border-color:var(--color-border-strong);background:var(--auth-input-bg)}.auth-input-wrapper:focus-within{border-color:var(--color-brand-primary);box-shadow:0 0 0 3px #0d94881a;background:var(--auth-input-bg)}.auth-input-wrapper:focus-within svg{color:var(--color-brand-primary)}.auth-input-wrapper.error{border-color:var(--color-error)}.auth-input-wrapper.error:focus-within{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441a}.auth-input-wrapper .auth-input,.auth-input-wrapper .auth-input:focus,.auth-input-wrapper .auth-input:focus-visible{outline:none!important;box-shadow:none!important}.auth-input{flex:1;padding:12px 0;font-size:15px;color:var(--color-text-primary);background:transparent;border:none;outline:none;font-family:inherit;line-height:1.5;letter-spacing:-.01em}.auth-input::placeholder{color:var(--color-text-placeholder);opacity:.7}.auth-input:disabled{opacity:.5;cursor:not-allowed}.auth-input:-webkit-autofill,.auth-input:-webkit-autofill:hover,.auth-input:-webkit-autofill:focus,.auth-input:-webkit-autofill:active{-webkit-text-fill-color:var(--color-text-primary);caret-color:var(--color-text-primary);transition:background-color 9999s ease-in-out 0s,color 9999s ease-in-out 0s}[data-theme=light] .auth-input:-webkit-autofill,[data-theme=light] .auth-input:-webkit-autofill:hover,[data-theme=light] .auth-input:-webkit-autofill:focus,[data-theme=light] .auth-input:-webkit-autofill:active,[data-theme=dark] .auth-input:-webkit-autofill,[data-theme=dark] .auth-input:-webkit-autofill:hover,[data-theme=dark] .auth-input:-webkit-autofill:focus,[data-theme=dark] .auth-input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px var(--auth-input-bg) inset!important;box-shadow:0 0 0 1000px var(--auth-input-bg) inset!important}.auth-form-expanded{display:contents}.auth-form-expanded>*{animation:authSlideIn .28s cubic-bezier(.4,0,.2,1) both}@media (prefers-reduced-motion: reduce){.auth-form-expanded>*{animation:none}}.auth-toggle-password{display:flex;align-items:center;justify-content:center;padding:6px;background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);transition:all .15s ease;border-radius:var(--radius-sm);outline:none}.auth-toggle-password:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.auth-toggle-password:focus-visible{outline:none;background:var(--color-bg-hover)}.auth-toggle-password svg{width:18px;height:18px}.auth-field-error{font-size:12px;color:var(--color-error);margin-top:-2px;display:flex;align-items:center;gap:5px;font-weight:500;letter-spacing:-.005em}.auth-error-banner,.auth-success-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--radius-md);font-size:14px;line-height:1.5;animation:authSlideIn .25s cubic-bezier(.4,0,.2,1)}.auth-error-banner{background:#ef44440f;color:var(--color-error);border:1px solid rgba(239,68,68,.2)}.auth-error-banner__body{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:1;min-width:0}.auth-error-banner__action{background:none;border:none;padding:0;margin:0;font:inherit;font-size:13px;font-weight:600;color:var(--color-error);text-decoration:underline;text-underline-offset:2px;cursor:pointer;letter-spacing:-.005em;transition:opacity .15s ease}.auth-error-banner__action:hover:not(:disabled){opacity:.75}.auth-error-banner__action:disabled{opacity:.4;cursor:not-allowed}.auth-success-banner{background:#22c55e0f;color:var(--color-success);border:1px solid rgba(34,197,94,.2)}.auth-info-banner{background:#3b82f60f;color:var(--color-info, var(--color-brand-primary));border:1px solid rgba(59,130,246,.2);display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--radius-md);font-size:14px;line-height:1.5;animation:authSlideIn .25s cubic-bezier(.4,0,.2,1)}.auth-info-banner svg{width:20px;height:20px;flex-shrink:0;margin-top:2px}.auth-info-banner__body{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:1;min-width:0;color:var(--color-text-primary)}.auth-info-banner__action{background:none;border:none;padding:0;margin:0;font:inherit;font-size:13px;font-weight:600;color:var(--color-brand-primary);text-decoration:underline;text-underline-offset:2px;cursor:pointer;letter-spacing:-.005em;transition:opacity .15s ease}.auth-info-banner__action:hover:not(:disabled){opacity:.75}.auth-info-banner__action:disabled{opacity:.4;cursor:not-allowed}.auth-error-banner svg,.auth-success-banner svg{width:20px;height:20px;flex-shrink:0}@keyframes authSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.password-strength{display:flex;align-items:center;gap:12px;margin-top:-2px}.password-strength-bar{flex:1;height:3px;background:var(--color-bg-tertiary);border-radius:2px;overflow:hidden}.password-strength-fill{height:100%;transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:2px}.password-strength-fill.strength-0{width:0%}.password-strength-fill.strength-1{width:20%;background:var(--color-error)}.password-strength-fill.strength-2{width:40%;background:var(--color-warning)}.password-strength-fill.strength-3{width:60%;background:var(--color-info, #3b82f6)}.password-strength-fill.strength-4{width:80%;background:var(--color-success)}.password-strength-fill.strength-5{width:100%;background:var(--color-success)}.password-strength-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);min-width:72px;text-align:right;text-transform:uppercase;letter-spacing:.03em}.auth-form-options{display:flex;justify-content:flex-end;margin-top:-10px}.auth-form-footer{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px}.auth-footer-text{font-size:14px;color:var(--color-text-tertiary)}.auth-link-primary,.auth-link-secondary{font-size:14px;font-weight:600;background:none;border:none;cursor:pointer;text-decoration:none;transition:all .15s ease;padding:0;letter-spacing:-.005em}.auth-link-primary{color:var(--color-brand-primary)}.auth-link-primary:hover{color:var(--color-brand-secondary)}.auth-link-secondary{color:var(--color-text-tertiary);font-weight:500}.auth-link-secondary:hover{color:var(--color-text-primary)}.auth-link-primary:disabled,.auth-link-secondary:disabled{opacity:.5;cursor:not-allowed}.auth-resend{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.auth-resend-hint{margin:0;font-size:14px;line-height:1.5;color:var(--color-text-tertiary)}.auth-resend-link{font:inherit;font-weight:600;color:var(--color-brand-primary);background:none;border:none;padding:2px 4px;cursor:pointer;white-space:nowrap;transition:color .15s ease}.auth-resend-link:hover:not(:disabled){color:var(--color-brand-secondary);text-decoration:underline;text-underline-offset:2px}.auth-resend-link:disabled{color:var(--color-text-tertiary);cursor:not-allowed}.auth-submit-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;font-size:15px;font-weight:600;color:var(--color-text-inverse, #fff);background:var(--color-brand-fill);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);margin-top:4px;letter-spacing:-.01em;position:relative;overflow:hidden}.auth-submit-button:hover:not(:disabled){background:var(--color-brand-fill-hover);box-shadow:0 4px 16px #0d948840;transform:translateY(-1px)}.auth-submit-button:active:not(:disabled){transform:translateY(0) scale(.995);box-shadow:0 2px 8px #0d948833}.auth-submit-button:disabled{opacity:.5;cursor:not-allowed}.auth-submit-button:focus-visible{outline:none;box-shadow:0 0 0 3px #0d94884d}.auth-submit-button svg{width:18px;height:18px}.spinner{animation:authSpin .8s linear infinite}@keyframes authSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-divider{display:flex;align-items:center;gap:16px;margin:12px 0}.auth-divider--reversed{margin:4px 0 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border-default)}.auth-divider span{font-size:13px;color:var(--color-text-tertiary);letter-spacing:.01em;font-weight:500}.google-signin-wrapper{display:flex;flex-direction:column;align-items:stretch;justify-content:center;min-height:44px;position:relative}.google-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-primary);border:1.5px solid var(--color-border-default);border-radius:var(--radius-md, 8px);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .05s ease}.google-button:hover:not(:disabled){border-color:var(--color-text-primary);background:var(--color-bg-secondary)}.google-button:active:not(:disabled){transform:scale(.99)}.google-button:disabled{opacity:.55;cursor:not-allowed}.google-button:focus-visible{outline:2px solid var(--color-brand-primary, #0d9488);outline-offset:2px}.google-button svg{flex-shrink:0}@media (hover: none){.google-button{min-height:48px}}.google-signin-loading{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 24px;font-size:14px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1.5px solid var(--color-border-default);border-radius:var(--radius-lg)}.google-signin-loading svg{width:18px;height:18px}.apple-signin-wrapper{display:flex;flex-direction:column;align-items:stretch;justify-content:center;min-height:44px;margin-top:10px}.apple-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-primary);border:1.5px solid var(--color-border-default);border-radius:var(--radius-md, 8px);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .05s ease}.apple-button:hover:not(:disabled){border-color:var(--color-text-primary);background:var(--color-bg-secondary)}.apple-button:active:not(:disabled){transform:scale(.99)}.apple-button:disabled{opacity:.55;cursor:not-allowed}.apple-button:focus-visible{outline:2px solid var(--color-brand-primary, #0d9488);outline-offset:2px}.apple-button svg{flex-shrink:0}@media (hover: none){.apple-button{min-height:48px}}.apple-signin-loading{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 24px;font-size:14px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1.5px solid var(--color-border-default);border-radius:var(--radius-lg);margin-top:10px}.google-inapp-card{display:flex;flex-direction:column;gap:10px;width:100%;padding:14px 16px;font-size:14px;color:var(--color-text-primary);background:var(--color-bg-secondary);border:1.5px solid var(--color-border-default);border-radius:var(--radius-lg)}.google-inapp-card-header{display:flex;align-items:center;gap:10px}.google-inapp-card-title{font-weight:600;line-height:1.3}.google-inapp-card-body{margin:0;font-size:13px;line-height:1.45;color:var(--color-text-secondary)}.google-inapp-card-primary{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-on-brand-fill);background:var(--color-brand-fill);border:1.5px solid var(--color-brand-fill);border-radius:var(--radius-md, 8px);text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .05s ease}.google-inapp-card-primary:hover{background:var(--color-brand-fill-hover);border-color:var(--color-brand-fill-hover)}.google-inapp-card-primary:active{transform:scale(.99)}.google-inapp-card-primary:focus-visible{outline:2px solid var(--color-brand-primary, #0d9488);outline-offset:2px}@media (hover: none){.google-inapp-card-primary{min-height:48px}}.auth-form-group{display:flex;flex-direction:column;gap:7px}.auth-input-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.auth-input-icon svg{width:18px;height:18px;color:var(--color-text-tertiary);transition:color .2s ease}.auth-input-wrapper:focus-within .auth-input-icon svg{color:var(--color-brand-primary)}.auth-switch-link{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:500;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;padding:8px 0;margin-top:8px;transition:color .15s ease}.auth-switch-link:hover{color:var(--color-brand-primary)}.auth-switch-link svg{width:16px;height:16px}.auth-success-icon{flex-shrink:0}.auth-success-icon svg{width:24px;height:24px}.auth-success-content{flex:1}.auth-success-title{font-size:16px;font-weight:600;margin:0 0 8px;color:var(--color-success)}.auth-success-message{font-size:14px;margin:0;line-height:1.6;color:var(--color-text-secondary)}.auth-success-message .text-muted{color:var(--color-text-tertiary);font-size:13px}@media (max-width: 480px){.auth-form-container{padding:20px 16px}.auth-form-title{font-size:24px}.auth-form-subtitle{font-size:14px}.auth-input{font-size:16px}.auth-form-label{font-size:12px}}[data-theme=dark] .auth-input-wrapper{--auth-input-bg: var(--color-bg-secondary);background:var(--auth-input-bg)}[data-theme=dark] .auth-input-wrapper:focus-within{box-shadow:0 0 0 3px #0d948826}[data-theme=dark] .auth-input-wrapper.error:focus-within{box-shadow:0 0 0 3px #ef444426}[data-theme=dark] .auth-toggle-password:hover{background:var(--color-bg-active)}[data-theme=dark] .auth-error-banner{background:#ef44441a;border-color:#ef444440}[data-theme=dark] .auth-success-banner{background:#22c55e1a;border-color:#22c55e40}[data-theme=dark] .auth-info-banner{background:#3b82f61a;border-color:#3b82f640}.auth-pending-detail{margin:4px 0 0;font-size:13px;opacity:.85}.auth-success-banner--centered{flex-direction:column;align-items:center;text-align:center;padding:20px 18px;gap:12px}.auth-success-banner--centered svg{width:28px;height:28px;flex-shrink:0}.auth-success-detail{margin:0 0 4px;font-size:14px;line-height:1.5;font-weight:500;text-wrap:balance}.auth-success-hint{margin:0;font-size:13px;line-height:1.5;opacity:.7}.auth-form-footer--spaced{margin-top:16px}.auth-link-primary--with-icon{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.auth-link-primary--with-icon svg{width:16px;height:16px;flex-shrink:0}.auth-marketing-consent{margin-bottom:4px}.auth-marketing-consent__hint{margin:4px 0 0 26px;font-size:12px;line-height:1.5;color:var(--color-text-tertiary)}.auth-terms-label{display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:13px;line-height:1.4}.auth-terms-checkbox{margin-top:2px;accent-color:var(--color-brand-primary);min-width:16px;min-height:16px}.auth-terms-text{color:var(--color-text-secondary)}.auth-terms-text a{color:var(--color-brand-primary);text-decoration:none}.auth-terms-text a:hover{text-decoration:underline}.auth-oauth-legal{margin:8px 0 0;font-size:12px;line-height:1.4;color:var(--color-text-tertiary);text-align:center}.auth-oauth-legal a{color:var(--color-brand-primary);text-decoration:none}.auth-oauth-legal a:hover{text-decoration:underline}.auth-page{position:fixed;top:var(--header-offset, 56px);left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;overflow-y:auto;background:transparent}.auth-page--native{top:var(--safe-top, 0px)}.auth-page{padding-bottom:var(--safe-bottom, 0px)}.auth-native-masthead{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0 8px}.auth-native-masthead .perspec-logo{font-size:22px}.auth-native-tagline{margin:0;font-size:.9375rem;color:var(--color-text-secondary);text-align:center}.auth-page-content{position:relative;z-index:var(--z-base, 1);width:100%;max-width:440px;padding:24px;margin:auto 0;display:flex;flex-direction:column;gap:20px}.auth-page-form-wrapper{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-2xl);padding:32px 28px;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f}.auth-page-footer{text-align:center}.auth-page-footer-text{font-size:12px;color:var(--color-text-tertiary);line-height:1.6;margin:0;opacity:.8}.auth-page-footer-link{color:var(--color-text-tertiary);text-decoration:none;font-weight:500;transition:color .15s ease}.auth-page-footer-link:hover{color:var(--color-text-secondary);text-decoration:underline}@media (max-width: 640px){.auth-page{justify-content:flex-start;padding-top:32px}.auth-page-content{padding:16px;gap:16px}.auth-page-form-wrapper{padding:24px 20px;border-radius:var(--radius-xl)}}@media (max-height: 700px){.auth-page-content{gap:16px;padding-top:20px;padding-bottom:20px}.auth-page-form-wrapper{padding:24px}}[data-theme=dark] .auth-page-form-wrapper{box-shadow:0 1px 3px #0006,0 8px 24px #0000004d;border-color:var(--color-border-default)}
