@seaverse/auth-sdk 0.4.7 → 0.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1817,7 +1817,22 @@ MIT © [SeaVerse Team](mailto:support@seaverse.com)
1817
1817
 
1818
1818
  ## Changelog
1819
1819
 
1820
- ### v0.4.6 (Current Version)
1820
+ ### v0.4.7 (Current Version)
1821
+ - 🎨 **UI Style Update**: Modernized login interface with refined visual design
1822
+ - Updated primary button color to brighter green (#00E599 → #00e599, #00f5a8 on hover)
1823
+ - **OAuth buttons layout** (applies to login and signup pages):
1824
+ - **Desktop & Mobile**: Google and GitHub in first row (2 columns grid), Discord spans full width in second row
1825
+ - Uses CSS Grid layout with `grid-column: 1 / -1` for Discord button to span both columns
1826
+ - Consistent button styling across all OAuth providers
1827
+ - Enhanced input field styling with improved hover and focus states
1828
+ - Refined modal layout: left panel (374px) + right panel (456px), fixed height (636px)
1829
+ - Updated mesh gradient animation for smoother visual effects
1830
+ - Improved button styles across all views (signin, signup, forgot password)
1831
+ - Enhanced form labels, dividers, and social login buttons
1832
+ - Better spacing and typography throughout the interface
1833
+ - Optimized responsive design for mobile devices
1834
+
1835
+ ### v0.4.6
1821
1836
  - 🐛 **Bug Fix**: Fix OAuth buttons not responding in email login view
1822
1837
  - Fixed HTML element ID conflict between new style and old style login views
1823
1838
  - Old style login view OAuth buttons now have unique IDs with 'old' prefix
@@ -1 +1 @@
1
- :root{--font-display:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;--font-sans:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;--color-neon-green:#10b981;--color-text-primary:#ffffff;--color-text-secondary:#a1a1aa;--color-text-tertiary:#71717a;--gradient-neon:linear-gradient(135deg,#10b981 0%,#06b6d4 100%);}.auth-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;animation:modalFadeIn 0.3s ease-out;overflow:hidden;}.auth-modal.hidden{display:none;}@keyframes modalFadeIn{from{opacity:0;}to{opacity:1;}}.auth-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}.auth-modal-content{position:relative;z-index:10;display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:900px;max-height:90vh;background:#0d0d0d;border:1px solid rgba(255,255,255,0.08);border-radius:20px;box-shadow:0 25px 80px rgba(0,0,0,0.8);overflow:hidden;animation:modalSlideUp 0.4s cubic-bezier(0.4,0,0.2,1);transition:max-width 0.3s ease;}.auth-modal-content:has(#loginForm:not(.hidden)){grid-template-columns:1fr auto;max-width:none;width:auto;}.auth-modal-content:has(#loginForm:not(.hidden)) .auth-modal-right{width:auto;min-width:0;}.auth-modal-content:has(#newStyleLoginView:not(.hidden)) .auth-modal-right{width:auto;}.auth-modal-content:has(#oldStyleLoginView:not(.hidden)) .auth-modal-right{width:auto;}.auth-modal-content:has(#authMessage:not(.hidden)){grid-template-columns:1fr;max-width:480px;}.auth-modal-content:has(#authMessage:not(.hidden)) .auth-modal-left{display:none;}@keyframes modalSlideUp{from{opacity:0;transform:translateY(30px) scale(0.96);}to{opacity:1;transform:translateY(0) scale(1);}}.auth-modal-left{position:relative;display:flex;flex-direction:column;padding:32px;background:#000;overflow:hidden;border-right:1px solid rgba(255,255,255,0.05);}.auth-modal-left::before{content:'';position:absolute;inset:-50%;width:200%;height:200%;background:radial-gradient(at 0% 0%,rgba(99,102,241,0.3) 0px,transparent 50%),radial-gradient(at 50% 0%,rgba(139,92,246,0.3) 0px,transparent 50%),radial-gradient(at 100% 0%,rgba(236,72,153,0.3) 0px,transparent 50%),radial-gradient(at 0% 50%,rgba(16,185,129,0.3) 0px,transparent 50%),radial-gradient(at 100% 50%,rgba(244,63,94,0.3) 0px,transparent 50%),radial-gradient(at 0% 100%,rgba(236,72,153,0.3) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(139,92,246,0.3) 0px,transparent 50%);filter:blur(80px);animation:meshRotate 20s linear infinite;opacity:0.6;}@keyframes meshRotate{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}.auth-modal-left::after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");opacity:0.4;mix-blend-mode:overlay;pointer-events:none;}.auth-modal-logo{display:flex;align-items:center;gap:10px;z-index:10;position:relative;}.auth-modal-logo .logo-icon{width:28px;height:28px;filter:drop-shadow(0 0 10px rgba(16,185,129,0.3));}.auth-modal-logo .logo-text{font-family:var(--font-display);font-size:18px;font-weight:700;color:#fff;text-shadow:0 0 20px rgba(0,0,0,0.5);}.auth-modal-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none;}.auth-modal-decoration .glow-orb-1{position:absolute;width:400px;height:400px;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,0.05) 0%,transparent 70%);border-radius:50%;filter:blur(60px);animation:breathe 8s ease-in-out infinite;pointer-events:none;}@keyframes breathe{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:0.5;}50%{transform:translate(-50%,-50%) scale(1.2);opacity:0.8;}}.auth-modal-decoration .glow-orb-2{position:absolute;width:300px;height:300px;top:20%;right:-10%;background:radial-gradient(circle,rgba(139,92,246,0.08) 0%,transparent 70%);border-radius:50%;filter:blur(50px);animation:breathe 10s ease-in-out infinite;animation-delay:2s;pointer-events:none;}.auth-modal-branding{margin-top:auto;margin-bottom:48px;z-index:10;position:relative;}.auth-modal-branding .branding-title{font-family:var(--font-display);font-size:36px;font-weight:700;line-height:1.15;margin-bottom:12px;color:#ffffff;letter-spacing:-0.02em;text-shadow:0 2px 10px rgba(0,0,0,0.3);}.auth-modal-branding .branding-subtitle{font-size:14px;color:rgba(255,255,255,0.8);max-width:260px;line-height:1.6;}.auth-modal-right{position:relative;display:flex;flex-direction:column;padding:56px 48px 42px 48px;background:#1e1e1e;overflow-y:auto;max-height:90vh;}.auth-modal-right::-webkit-scrollbar{width:6px;}.auth-modal-right::-webkit-scrollbar-track{background:transparent;}.auth-modal-right::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px;}.auth-modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:rgba(255,255,255,0.5);cursor:pointer;transition:all 0.2s ease;z-index:20;border-radius:8px;}.auth-modal-close:hover{background:rgba(255,255,255,0.1);color:#ffffff;}.auth-form-view{animation:formFadeIn 0.3s ease-out;}#loginForm .form-input{width:360px;}@keyframes formFadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}.auth-form-view.hidden{display:none;}.new-style-login-view{max-width:400px;margin:0 auto;animation:formFadeIn 0.3s ease-out;}.new-style-login-view.hidden{display:none;}.new-style-login-view .auth-form-header{margin-bottom:32px;text-align:center;}.new-style-login-view .auth-form-title{font-family:var(--font-display);font-size:24px;font-weight:700;margin-bottom:8px;color:#ffffff;letter-spacing:-0.02em;}.new-style-login-view .auth-form-subtitle{font-size:14px;color:rgba(161,161,170,1);}.new-style-login-view .auth-form{display:flex;flex-direction:column;gap:12px;}.new-style-login-view .btn-auth-primary{width:100%;height:56px;padding:0 24px;font-size:16px;font-weight:700;color:#000;background:#00E599;border:none;border-radius:12px;box-shadow:0 0 20px rgba(0,229,153,0.2);display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px;}.new-style-login-view .btn-auth-primary:hover{background:#00cc88;transform:scale(1.02);}.new-style-login-view .btn-auth-primary:active{transform:scale(0.95);}.new-style-login-view .btn-auth-primary svg{width:20px;height:20px;}.new-style-login-view .social-buttons-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}.new-style-login-view .btn-social{height:48px;background:rgba(43,45,49,1);border:1px solid rgba(113,113,122,1);border-radius:12px;color:rgba(161,161,170,1);}.new-style-login-view .btn-social:hover{background:rgba(53,55,60,1);border-color:rgba(161,161,170,1);color:#ffffff;}.new-style-login-view .divider{font-size:12px;color:rgba(113,113,122,1);margin:24px 0 20px 0;}.new-style-login-view .divider::before,.new-style-login-view .divider::after{height:1px;background:rgba(82,82,91,1);}.btn-email-toggle{width:100%;height:48px;padding:0 16px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:rgba(209,213,219,1);background:transparent;border:1px solid rgba(107,114,128,1);border-radius:12px;cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px;}.btn-email-toggle:hover{border-color:rgba(156,163,175,1);color:#ffffff;}.btn-email-toggle svg{color:rgba(156,163,175,1);}.terms-text{font-size:12px;color:rgba(113,113,122,1);text-align:center;line-height:1.5;}.terms-link{color:rgba(113,113,122,1);text-decoration:underline;transition:color 0.2s ease;}.terms-link:hover{color:rgba(156,163,175,1);}.old-style-login-view{animation:formFadeIn 0.3s ease-out;}.old-style-login-view.hidden{display:none;}.old-style-login-view .auth-form-header{margin-bottom:28px;text-align:center;}.old-style-login-view .auth-form-title{font-family:var(--font-display);font-size:26px;font-weight:700;margin-bottom:8px;color:#ffffff;letter-spacing:-0.02em;}.old-style-login-view .auth-form-subtitle{font-size:14px;color:var(--color-text-secondary);}.old-style-login-view .form-input{width:360px;}.btn-back{width:100%;height:32px;padding:0 12px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:rgba(156,163,175,1);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;}.btn-back:hover{color:#ffffff;}.btn-back svg{transition:transform 0.3s ease;}.btn-back:hover svg{transform:translateX(-4px);}.auth-form-header{margin-bottom:28px;text-align:center;}.auth-form-title{font-family:var(--font-display);font-size:26px;font-weight:700;margin-bottom:8px;color:#ffffff;letter-spacing:-0.02em;}.auth-form-subtitle{font-size:14px;color:var(--color-text-secondary);}.auth-form{display:flex;flex-direction:column;gap:16px;}.form-group{display:flex;flex-direction:column;gap:6px;}.form-label{font-size:12px;font-weight:500;color:var(--color-text-primary);letter-spacing:0.02em;text-transform:uppercase;opacity:0.9;}.form-input{width:100%;height:40px;padding:0 14px;font-family:var(--font-sans);font-size:14px;color:var(--color-text-primary);background:rgba(30,30,30,0.8);border:1px solid rgba(255,255,255,0.1);border-radius:8px;outline:none;transition:all 0.2s ease;}.form-input::placeholder{color:rgba(255,255,255,0.35);}.form-input:hover{border-color:rgba(255,255,255,0.15);}.form-input:focus{border-color:#10b981;box-shadow:0 0 0 2px rgba(16,185,129,0.15);background:rgba(30,30,30,0.9);}.form-input:invalid:not(:placeholder-shown){border-color:#ff006e;}.form-input[type="textarea"],textarea.form-input{min-height:100px;resize:vertical;font-family:inherit;line-height:1.5;padding:12px 14px;}.char-count{font-size:12px;color:rgba(255,255,255,0.5);text-align:right;margin-top:4px;}.auth-modal-light .char-count{color:rgba(0,0,0,0.4);}.icon-mail{position:relative;z-index:2;color:#10b981;filter:drop-shadow(0 0 10px rgba(16,185,129,0.4));animation:floatIcon 4s ease-in-out infinite;}.forgot-password-icon:has(.icon-mail) .icon-glow{background:radial-gradient( circle,rgba(16,185,129,0.25) 0%,rgba(6,182,212,0.15) 40%,transparent 70% );}#applyInviteReason{position:relative;min-height:120px;padding:14px 16px;background:rgba(20,20,20,0.6);transition:all 0.3s ease;}#applyInviteReason:focus{background:rgba(20,20,20,0.8);border-color:rgba(16,185,129,0.5);box-shadow:0 0 0 3px rgba(16,185,129,0.15),0 0 20px rgba(16,185,129,0.15),inset 0 1px 0 rgba(255,255,255,0.05);}.form-group:has(#applyInviteReason) .char-count{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:rgba(161,161,170,0.7);text-align:right;margin-top:8px;padding:4px 0;display:block;float:right;position:relative;transition:all 0.3s ease;letter-spacing:0.02em;}.form-group:has(#applyInviteReason) .char-count::before{content:'';position:absolute;bottom:0;left:0;height:2px;width:var(--progress-width,0%);background:linear-gradient(90deg,#10b981,#06b6d4);transition:width 0.3s ease,box-shadow 0.3s ease,background 0.3s ease;box-shadow:0 0 8px rgba(16,185,129,0.5);}.form-group:has(#applyInviteReason) .char-count[data-progress="low"]{color:rgba(251,191,36,0.9);}.form-group:has(#applyInviteReason) .char-count[data-progress="low"]::before{background:linear-gradient(90deg,rgba(251,191,36,0.8),rgba(251,191,36,0.6));box-shadow:0 0 8px rgba(251,191,36,0.5);}.form-group:has(#applyInviteReason) .char-count[data-progress="medium"]{color:rgba(16,185,129,0.9);}.form-group:has(#applyInviteReason) .char-count[data-progress="medium"]::before{background:linear-gradient(90deg,#10b981,#06b6d4);box-shadow:0 0 10px rgba(16,185,129,0.6);}.form-group:has(#applyInviteReason) .char-count[data-progress="high"]{color:rgba(239,68,68,0.9);}.form-group:has(#applyInviteReason) .char-count[data-progress="high"]::before{background:linear-gradient(90deg,rgba(239,68,68,0.8),rgba(239,68,68,0.6));box-shadow:0 0 10px rgba(239,68,68,0.6);}.auth-modal-light .icon-mail{color:#059669;filter:drop-shadow(0 0 8px rgba(5,150,105,0.3));}.auth-modal-light .forgot-password-icon:has(.icon-mail) .icon-glow{background:radial-gradient( circle,rgba(16,185,129,0.15) 0%,rgba(6,182,212,0.1) 40%,transparent 70% );}.auth-modal-light #applyInviteReason{background:rgba(255,255,255,0.8);border-color:rgba(16,185,129,0.2);color:#0a0a0a;}.auth-modal-light #applyInviteReason:focus{background:rgba(255,255,255,0.95);border-color:rgba(16,185,129,0.5);box-shadow:0 0 0 3px rgba(16,185,129,0.12),0 0 20px rgba(16,185,129,0.1),inset 0 1px 0 rgba(255,255,255,0.8);}.auth-modal-light .form-group:has(#applyInviteReason) .char-count{color:rgba(82,82,91,0.8);}.input-with-icon{position:relative;display:flex;align-items:center;}.input-with-icon .form-input{padding-right:40px;}.input-icon-btn{position:absolute;right:8px;background:transparent;border:none;color:rgba(255,255,255,0.4);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:color 0.2s ease;border-radius:4px;}.input-icon-btn:hover{color:rgba(255,255,255,0.7);background:rgba(255,255,255,0.05);}.input-icon-btn .hidden{display:none;}.strength-text{font-size:12px;color:var(--color-text-tertiary);font-weight:500;display:flex;align-items:center;gap:6px;margin-top:4px;}.form-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}.form-group-header .form-label{margin-bottom:0;}.forgot-password-link{font-size:12px;font-weight:500;color:#00E599;text-decoration:none;transition:all 0.2s ease;position:relative;}.forgot-password-link:hover{color:#00cc88;}.link-primary{color:var(--color-neon-green);text-decoration:none;font-weight:600;transition:all 0.2s ease;position:relative;text-shadow:0 0 10px rgba(0,255,136,0.3);}.link-primary::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--color-neon-green);transform:scaleX(0);transform-origin:right;transition:transform 0.3s ease;}.link-primary:hover{color:#00ff88;text-shadow:0 0 20px rgba(0,255,136,0.5);}.link-primary:hover::after{transform:scaleX(1);transform-origin:left;}.btn-auth-primary{width:100%;height:56px;padding:0 24px;font-family:var(--font-sans);font-size:16px;font-weight:700;color:#000;background:#00E599;border:none;border-radius:12px;cursor:pointer;transition:all 0.2s ease;position:relative;overflow:hidden;box-shadow:0 0 20px rgba(0,229,153,0.2);display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px;}.btn-auth-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,0.2) 50%,transparent 100%);opacity:0;transition:opacity 0.3s ease;}.btn-auth-primary:hover{background:#00cc88;transform:scale(1.02);}.btn-auth-primary:hover::before{opacity:1;}.btn-auth-primary:active{transform:scale(0.95);}.btn-auth-primary svg{width:20px;height:20px;flex-shrink:0;}.btn-auth-primary svg path{fill:rgba(0,0,0,0.8);}.btn-auth-primary:disabled{opacity:0.6;cursor:not-allowed;transform:none;}.btn-auth-primary .btn-text{position:relative;z-index:2;}.btn-auth-primary .btn-loader{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;}.btn-auth-primary .btn-loader.hidden{display:none;}.spinner{width:20px;height:20px;fill:none;stroke-width:3;animation:spin 0.8s linear infinite;}@keyframes spin{to{transform:rotate(360deg);}}.spinner-track{stroke:rgba(0,0,0,0.2);}.spinner-circle{stroke:#000;stroke-dasharray:50;stroke-dashoffset:50;animation:spinDash 1.2s ease-in-out infinite;}@keyframes spinDash{0%{stroke-dashoffset:50;}50%{stroke-dashoffset:12.5;}100%{stroke-dashoffset:50;}}.invite-code-icon{position:relative;width:80px;height:80px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;background:rgba(52,211,153,0.1);border-radius:12px;}.invite-code-icon .icon-glow{position:absolute;inset:-10px;background:radial-gradient(circle,rgba(52,211,153,0.2) 0%,transparent 70%);border-radius:50%;animation:pulseGlow 3s ease-in-out infinite;filter:blur(15px);}.invite-code-icon .icon-star{position:relative;z-index:2;color:#34d399;filter:drop-shadow(0 0 10px rgba(52,211,153,0.4));animation:floatIcon 4s ease-in-out infinite;}.forgot-password-icon{position:relative;width:100px;height:100px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;}.forgot-password-icon .icon-glow{position:absolute;inset:-10px;background:radial-gradient(circle,rgba(16,185,129,0.25) 0%,transparent 70%);border-radius:50%;animation:pulseGlow 3s ease-in-out infinite;filter:blur(15px);}@keyframes pulseGlow{0%,100%{opacity:0.5;transform:scale(0.95);}50%{opacity:0.8;transform:scale(1.05);}}.forgot-password-icon .icon-lock{position:relative;z-index:2;color:#10b981;filter:drop-shadow(0 0 10px rgba(16,185,129,0.4));animation:floatIcon 4s ease-in-out infinite;}@keyframes floatIcon{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}.btn-forgot-password{display:flex;align-items:center;justify-content:center;gap:8px;}.btn-forgot-password .btn-arrow{transition:transform 0.3s ease;}.btn-forgot-password:hover .btn-arrow{transform:translateX(4px);}.auth-footer{margin-top:24px;text-align:center;}.forgot-footer{display:flex;justify-content:center;}.back-to-login{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:all 0.2s ease;padding:8px 12px;border-radius:6px;}.back-to-login:hover{color:var(--color-neon-green);background:rgba(16,185,129,0.05);}.back-to-login svg{transition:transform 0.3s ease;}.back-to-login:hover svg{transform:translateX(-4px);}.invite-code-divider{position:relative;text-align:center;margin:32px 0 20px 0;font-size:11px;font-weight:600;color:var(--color-text-tertiary);letter-spacing:0.08em;display:flex;align-items:center;gap:12px;}.invite-code-divider::before,.invite-code-divider::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.1),transparent);}.btn-apply-invite{width:100%;height:44px;padding:0 24px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color-text-secondary);background:rgba(30,30,30,0.8);border:1px solid rgba(255,255,255,0.1);border-radius:10px;cursor:pointer;transition:all 0.25s cubic-bezier(0.4,0,0.2,1);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}.btn-apply-invite::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,0.05) 50%,transparent 100%);opacity:0;transition:opacity 0.3s ease;}.btn-apply-invite:hover{border-color:rgba(255,255,255,0.2);background:rgba(40,40,40,0.9);color:var(--color-text-primary);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.3);}.btn-apply-invite:hover::before{opacity:1;}.btn-apply-invite:active{transform:translateY(0);}.auth-modal-light .invite-code-icon{background:rgba(52,211,153,0.08);}.auth-modal-light .invite-code-icon .icon-star{color:#059669;filter:drop-shadow(0 2px 8px rgba(5,150,105,0.3));}.auth-modal-light .btn-apply-invite{background:rgba(255,255,255,0.9);border:1.5px solid rgba(0,0,0,0.08);color:rgba(0,0,0,0.6);box-shadow:0 2px 4px rgba(0,0,0,0.04),0 0 0 1px rgba(255,255,255,0.8) inset;}.auth-modal-light .btn-apply-invite:hover{background:#ffffff;border-color:rgba(16,185,129,0.2);color:#0a0a0a;box-shadow:0 4px 8px rgba(0,0,0,0.06),0 0 0 1px rgba(16,185,129,0.1) inset;transform:translateY(-1px);}.auth-modal-light .invite-code-divider{color:rgba(0,0,0,0.35);}.auth-modal-light .invite-code-divider::before,.auth-modal-light .invite-code-divider::after{background:linear-gradient(to right,transparent,rgba(0,0,0,0.1),transparent);}.auth-footer-divider{margin-top:32px;padding:28px 20px 0 20px;position:relative;text-align:center;isolation:isolate;}.auth-footer-divider::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:85%;height:2px;background:linear-gradient( 90deg,transparent 0%,rgba(16,185,129,0.15) 15%,rgba(16,185,129,0.5) 30%,rgba(6,182,212,0.6) 50%,rgba(16,185,129,0.5) 70%,rgba(16,185,129,0.15) 85%,transparent 100% );filter:blur(0.5px);animation:energyFlow 4s ease-in-out infinite;}.auth-footer-divider::after{content:'';position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:70%;height:8px;background:radial-gradient( ellipse at center,rgba(16,185,129,0.25) 0%,rgba(6,182,212,0.15) 40%,transparent 70% );filter:blur(6px);animation:glowPulse 3s ease-in-out infinite;opacity:0.6;}@keyframes energyFlow{0%,100%{opacity:0.7;transform:translateX(-50%) scaleX(1);}50%{opacity:1;transform:translateX(-50%) scaleX(1.02);}}@keyframes glowPulse{0%,100%{opacity:0.4;transform:translateX(-50%) scaleY(0.8);}50%{opacity:0.8;transform:translateX(-50%) scaleY(1.2);}}.auth-footer-text{font-size:13.5px;font-weight:400;color:rgba(161,161,170,0.85);letter-spacing:0.02em;line-height:1.6;margin:0;position:relative;z-index:1;}.auth-link{color:#10b981;font-weight:600;text-decoration:none;position:relative;display:inline-block;padding:6px 14px;border-radius:6px;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);background:rgba(16,185,129,0.05);border:1px solid rgba(16,185,129,0.2);margin-left:6px;letter-spacing:0.01em;isolation:isolate;}.auth-link::before{content:'';position:absolute;inset:-1px;border-radius:6px;padding:1px;background:linear-gradient( 135deg,transparent 0%,rgba(16,185,129,0.4) 25%,rgba(6,182,212,0.5) 50%,rgba(16,185,129,0.4) 75%,transparent 100% );-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity 0.4s ease;animation:shimmerRotate 3s linear infinite paused;}@keyframes shimmerRotate{0%{background-position:0% 50%;}100%{background-position:200% 50%;}}.auth-link::after{content:'';position:absolute;bottom:3px;left:14px;right:14px;height:2px;background:linear-gradient( 90deg,rgba(16,185,129,0.8),rgba(6,182,212,0.9),rgba(16,185,129,0.8) );border-radius:2px;transform:scaleX(0);transform-origin:center;transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);filter:blur(0.5px);box-shadow:0 0 8px rgba(16,185,129,0.6),0 0 12px rgba(6,182,212,0.4);}.auth-link:hover{color:#00ffaa;background:rgba(16,185,129,0.12);border-color:rgba(6,182,212,0.5);transform:translateY(-2px) scale(1.02);text-shadow:0 0 10px rgba(16,185,129,0.6),0 0 20px rgba(6,182,212,0.4),0 0 30px rgba(16,185,129,0.2);box-shadow:0 4px 20px rgba(16,185,129,0.3),0 0 40px rgba(6,182,212,0.15),inset 0 1px 0 rgba(255,255,255,0.1);}.auth-link:hover::before{opacity:1;animation-play-state:running;}.auth-link:hover::after{transform:scaleX(1);}.auth-link:active{transform:translateY(0) scale(0.98);background:rgba(16,185,129,0.18);border-color:rgba(16,185,129,0.6);box-shadow:0 2px 12px rgba(16,185,129,0.4),inset 0 2px 8px rgba(0,0,0,0.2);}.auth-link:focus-visible{outline:none;border-color:rgba(16,185,129,0.8);box-shadow:0 0 0 3px rgba(16,185,129,0.3),0 0 20px rgba(16,185,129,0.4),inset 0 1px 0 rgba(255,255,255,0.15);}@media (max-width:768px){.auth-footer-divider{margin-top:28px;padding-top:24px;}.auth-footer-divider::before{width:90%;}.auth-footer-text{font-size:13px;}.auth-link{padding:8px 16px;margin-left:4px;}.auth-link::after{left:16px;right:16px;}}.auth-modal-light .auth-footer-divider::before{background:linear-gradient( 90deg,transparent 0%,rgba(16,185,129,0.2) 15%,rgba(16,185,129,0.35) 30%,rgba(6,182,212,0.4) 50%,rgba(16,185,129,0.35) 70%,rgba(16,185,129,0.2) 85%,transparent 100% );}.auth-modal-light .auth-footer-divider::after{background:radial-gradient( ellipse at center,rgba(16,185,129,0.15) 0%,rgba(6,182,212,0.1) 40%,transparent 70% );}.auth-modal-light .auth-footer-text{color:rgba(82,82,91,0.9);}.auth-modal-light .auth-link{color:#059669;background:rgba(16,185,129,0.08);border-color:rgba(16,185,129,0.25);}.auth-modal-light .auth-link::before{background:linear-gradient( 135deg,transparent 0%,rgba(16,185,129,0.5) 25%,rgba(6,182,212,0.6) 50%,rgba(16,185,129,0.5) 75%,transparent 100% );}.auth-modal-light .auth-link:hover{color:#047857;background:rgba(16,185,129,0.15);border-color:rgba(6,182,212,0.4);text-shadow:0 0 8px rgba(16,185,129,0.4),0 0 16px rgba(6,182,212,0.3);box-shadow:0 4px 16px rgba(16,185,129,0.25),0 0 30px rgba(6,182,212,0.1),inset 0 1px 0 rgba(255,255,255,0.6);}.auth-modal-light .auth-link:active{background:rgba(16,185,129,0.22);box-shadow:0 2px 10px rgba(16,185,129,0.3),inset 0 2px 6px rgba(0,0,0,0.1);}.auth-message-content{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px;}.message-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;border-radius:50%;background:rgba(16,185,129,0.1);color:#10b981;}.message-icon svg{filter:drop-shadow(0 0 10px rgba(16,185,129,0.3));animation:successPulse 2s ease-in-out infinite;}@keyframes successPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.05);}}.message-title{font-family:var(--font-display);font-size:24px;font-weight:700;margin-bottom:12px;color:#ffffff;}.message-text{font-size:14px;color:var(--color-text-secondary);margin-bottom:24px;line-height:1.6;}.divider{position:relative;text-align:center;margin:24px 0 20px 0;font-size:12px;font-weight:600;color:rgba(113,113,122,1);letter-spacing:0.08em;display:flex;align-items:center;gap:16px;}.divider::before,.divider::after{content:'';flex:1;height:1px;background:rgba(82,82,91,1);}.social-buttons-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.btn-social{height:48px;padding:0 16px;margin:0;font-family:var(--font-sans);font-size:14px;font-weight:500;color:rgba(161,161,170,1);background:rgba(43,45,49,1);border:1px solid rgba(113,113,122,1);border-radius:12px;cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;}.btn-social::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,0.05) 50%,transparent 100%);opacity:0;transition:opacity 0.3s ease;}.btn-social:hover{border-color:rgba(161,161,170,1);background:rgba(53,55,60,1);color:#ffffff;}.btn-social:hover::before{opacity:1;}.btn-social:active{transform:scale(0.95);}.btn-social svg{width:20px;height:20px;flex-shrink:0;}.btn-social span{position:relative;z-index:2;white-space:nowrap;}.btn-social-full{width:100%;height:48px;padding:0 16px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:rgba(161,161,170,1);background:rgba(43,45,49,1);border:1px solid rgba(113,113,122,1);border-radius:12px;cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;}.btn-social-full::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,0.05) 50%,transparent 100%);opacity:0;transition:opacity 0.3s ease;}.btn-social-full:hover{border-color:rgba(161,161,170,1);background:rgba(53,55,60,1);color:#ffffff;}.btn-social-full:hover::before{opacity:1;}.btn-social-full:active{transform:scale(0.95);}.btn-social-full svg{width:20px;height:20px;flex-shrink:0;}.btn-social-full span{position:relative;z-index:2;}@media (max-width:768px){.auth-modal-content{grid-template-columns:1fr;max-width:100%;max-height:100vh;border-radius:0;}.auth-modal-left{display:none;}.auth-modal-right{max-height:100vh;padding:24px;}.auth-form-title{font-size:22px;}#loginForm .form-input{width:100%;}.btn-auth-primary{height:48px;font-size:15px;}.social-buttons-grid{grid-template-columns:1fr;gap:10px;}.btn-social,.btn-social-full{height:48px;}.new-style-login-view,.old-style-login-view{max-width:100%;}.new-style-login-view .social-buttons-grid{grid-template-columns:1fr;}.new-style-login-view .btn-email-toggle{height:48px;}.old-style-login-view .form-input{width:100%;}}@media (max-width:480px){.auth-modal{padding:0;}.auth-modal-content{border-radius:0;max-height:100vh;}.auth-modal-right{padding:20px 16px;}.auth-form-header{margin-bottom:20px;}.auth-form-title{font-size:20px;}.new-style-login-view .btn-email-toggle{height:44px;}}.auth-modal-light{}.auth-modal-light .auth-modal-backdrop{background:rgba(255,255,255,0.75);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);}.auth-modal-light .auth-modal-content{background:linear-gradient(135deg,#fdfbf7 0%,#f8f6f2 100%);border:1px solid rgba(16,185,129,0.1);box-shadow:0 50px 100px rgba(0,0,0,0.12),0 20px 40px rgba(0,0,0,0.08),0 0 0 1px rgba(255,255,255,0.9) inset;}.auth-modal-light .auth-modal-left{background:linear-gradient(135deg,#ffffff 0%,#faf9f7 100%);border-right:1px solid rgba(16,185,129,0.08);box-shadow:2px 0 20px rgba(0,0,0,0.03),0 0 0 1px rgba(16,185,129,0.05) inset;}.auth-modal-light .auth-modal-left::before{background:radial-gradient(at 0% 0%,rgba(16,185,129,0.08) 0px,transparent 50%),radial-gradient(at 50% 0%,rgba(6,182,212,0.06) 0px,transparent 50%),radial-gradient(at 100% 0%,rgba(16,185,129,0.08) 0px,transparent 50%),radial-gradient(at 0% 50%,rgba(52,211,153,0.05) 0px,transparent 50%),radial-gradient(at 100% 50%,rgba(6,182,212,0.06) 0px,transparent 50%),radial-gradient(at 0% 100%,rgba(16,185,129,0.07) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(52,211,153,0.06) 0px,transparent 50%);filter:blur(60px);opacity:0.9;}.auth-modal-light .auth-modal-left::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");opacity:0.6;mix-blend-mode:multiply;}.auth-modal-light .auth-modal-logo .logo-icon{filter:drop-shadow(0 2px 8px rgba(16,185,129,0.25));}.auth-modal-light .auth-modal-logo .logo-text{color:#0a0a0a;text-shadow:0 1px 2px rgba(16,185,129,0.1);}.auth-modal-light .auth-modal-decoration .glow-orb-1{background:radial-gradient(circle,rgba(16,185,129,0.08) 0%,transparent 70%);filter:blur(80px);}.auth-modal-light .auth-modal-decoration .glow-orb-2{background:radial-gradient(circle,rgba(6,182,212,0.06) 0%,transparent 70%);filter:blur(70px);}.auth-modal-light .auth-modal-branding .branding-title{color:#0a0a0a;text-shadow:0 2px 12px rgba(16,185,129,0.12);background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}.auth-modal-light .auth-modal-branding .branding-subtitle{color:rgba(0,0,0,0.6);}.auth-modal-light .auth-modal-right{background:rgba(255,255,255,0.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:-2px 0 20px rgba(0,0,0,0.03);}.auth-modal-light .auth-modal-right::-webkit-scrollbar-thumb{background:rgba(16,185,129,0.2);}.auth-modal-light .auth-modal-right::-webkit-scrollbar-thumb:hover{background:rgba(16,185,129,0.3);}.auth-modal-light .auth-modal-close{color:rgba(0,0,0,0.4);}.auth-modal-light .auth-modal-close:hover{background:rgba(16,185,129,0.08);color:#0a0a0a;}.auth-modal-light .auth-form-title{color:#0a0a0a;background:linear-gradient(135deg,#0a0a0a 0%,#2a2a2a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}.auth-modal-light .auth-form-subtitle{color:rgba(0,0,0,0.5);}.auth-modal-light .form-label{color:#0a0a0a;opacity:0.7;}.auth-modal-light .form-input{color:#0a0a0a;background:rgba(255,255,255,0.9);border:1.5px solid rgba(0,0,0,0.08);box-shadow:0 1px 2px rgba(0,0,0,0.02),0 0 0 1px rgba(255,255,255,0.8) inset;}.auth-modal-light .form-input::placeholder{color:rgba(0,0,0,0.3);}.auth-modal-light .form-input:hover{border-color:rgba(16,185,129,0.2);box-shadow:0 2px 4px rgba(0,0,0,0.03),0 0 0 1px rgba(16,185,129,0.05) inset;}.auth-modal-light .form-input:focus{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,0.12),0 2px 8px rgba(16,185,129,0.08);background:#ffffff;}.auth-modal-light .form-input:invalid:not(:placeholder-shown){border-color:#ff006e;box-shadow:0 0 0 3px rgba(255,0,110,0.1);}.auth-modal-light .input-icon-btn{color:rgba(0,0,0,0.4);}.auth-modal-light .input-icon-btn:hover{color:rgba(0,0,0,0.7);}.auth-modal-light .forgot-password-link{color:#10b981;}.auth-modal-light .forgot-password-link:hover{color:#059669;text-shadow:0 0 8px rgba(16,185,129,0.2);}.auth-modal-light .strength-text{color:rgba(0,0,0,0.45);}.auth-modal-light .btn-auth-primary{background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#ffffff;border:none;box-shadow:0 4px 12px rgba(16,185,129,0.25),0 2px 4px rgba(16,185,129,0.15),0 0 0 1px rgba(255,255,255,0.3) inset;}.auth-modal-light .btn-auth-primary:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);box-shadow:0 6px 16px rgba(16,185,129,0.3),0 3px 6px rgba(16,185,129,0.2),0 0 0 1px rgba(255,255,255,0.4) inset;transform:translateY(-1px);}.auth-modal-light .btn-auth-primary:active{transform:translateY(0);box-shadow:0 2px 8px rgba(16,185,129,0.2),0 1px 3px rgba(16,185,129,0.15);}.auth-modal-light .btn-auth-primary:disabled{background:linear-gradient(135deg,rgba(16,185,129,0.4) 0%,rgba(5,150,105,0.4) 100%);box-shadow:none;}.auth-modal-light .btn-forgot-password{background:linear-gradient(135deg,#10b981 0%,#059669 100%);}.auth-modal-light .btn-forgot-password:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);}.auth-modal-light .btn-forgot-password .btn-arrow{filter:drop-shadow(0 0 4px rgba(255,255,255,0.5));}.auth-modal-light .divider{color:rgba(0,0,0,0.35);}.auth-modal-light .divider::before,.auth-modal-light .divider::after{background:linear-gradient(to right,transparent,rgba(0,0,0,0.1),transparent);}.auth-modal-light .btn-social,.auth-modal-light .btn-social-full{background:rgba(255,255,255,0.9);border:1.5px solid rgba(0,0,0,0.08);color:#1a1a1a;box-shadow:0 2px 4px rgba(0,0,0,0.04),0 0 0 1px rgba(255,255,255,0.8) inset;}.auth-modal-light .btn-social:hover,.auth-modal-light .btn-social-full:hover{background:#ffffff;border-color:rgba(16,185,129,0.2);box-shadow:0 4px 8px rgba(0,0,0,0.06),0 0 0 1px rgba(16,185,129,0.1) inset;transform:translateY(-1px);}.auth-modal-light .btn-social:active,.auth-modal-light .btn-social-full:active{transform:translateY(0);box-shadow:0 1px 3px rgba(0,0,0,0.04),0 0 0 1px rgba(0,0,0,0.05) inset;}.auth-modal-light .link-primary{color:#10b981;}.auth-modal-light .link-primary:hover{color:#059669;text-shadow:0 0 8px rgba(16,185,129,0.2);}.auth-modal-light .forgot-password-icon{background:linear-gradient(135deg,rgba(16,185,129,0.08) 0%,rgba(6,182,212,0.06) 100%);box-shadow:0 8px 24px rgba(16,185,129,0.12),0 0 0 1px rgba(16,185,129,0.1) inset;}.auth-modal-light .forgot-password-icon .icon-glow{background:radial-gradient(circle,rgba(16,185,129,0.15) 0%,transparent 70%);}.auth-modal-light .forgot-password-icon .icon-lock{color:#10b981;filter:drop-shadow(0 2px 8px rgba(16,185,129,0.2));}.auth-modal-light .forgot-password-icon .lock-shackle{animation:shakeLock 2s ease-in-out infinite;}.auth-modal-light .back-to-login{color:rgba(0,0,0,0.6);}.auth-modal-light .back-to-login:hover{color:#10b981;}.auth-modal-light .back-to-login svg{color:rgba(0,0,0,0.4);}.auth-modal-light .back-to-login:hover svg{color:#10b981;}.auth-modal-light .auth-message-content{background:linear-gradient(135deg,rgba(16,185,129,0.05) 0%,rgba(6,182,212,0.03) 100%);box-shadow:0 8px 32px rgba(16,185,129,0.12),0 0 0 1px rgba(16,185,129,0.1) inset;}.auth-modal-light .message-icon{background:linear-gradient(135deg,#10b981 0%,#059669 100%);box-shadow:0 8px 24px rgba(16,185,129,0.3),0 0 0 4px rgba(16,185,129,0.1);}.auth-modal-light .message-icon svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2));}.auth-modal-light .message-title{color:#0a0a0a;background:linear-gradient(135deg,#0a0a0a 0%,#2a2a2a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}.auth-modal-light .message-text{color:rgba(0,0,0,0.6);}
1
+ :root{--font-display:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;--font-sans:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;--color-neon-green:#00E599;--color-text-primary:#ffffff;--color-text-secondary:#a1a1aa;--color-text-tertiary:#71717a;--gradient-neon:linear-gradient(135deg,#00E599 0%,#00cc88 100%);}.auth-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;animation:modalFadeIn 0.3s ease-out;overflow:hidden;}.auth-modal.hidden{display:none;}@keyframes modalFadeIn{from{opacity:0;}to{opacity:1;}}.auth-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}.auth-modal-content{position:relative;z-index:10;display:flex;width:fit-content;max-width:90vw;height:636px;background:#1a1a1a;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,0.5);overflow:hidden;animation:modalSlideUp 0.4s cubic-bezier(0.4,0,0.2,1);transition:all 0.3s ease;}.auth-modal-content:has(#authMessage:not(.hidden)){width:480px;}.auth-modal-content:has(#authMessage:not(.hidden)) .auth-modal-left{display:none;}@keyframes modalSlideUp{from{opacity:0;transform:translateY(30px) scale(0.96);}to{opacity:1;transform:translateY(0) scale(1);}}.auth-modal-left{position:relative;display:flex;flex-direction:column;justify-content:space-between;width:374px;height:636px;padding:48px 32px;background:#000;overflow:hidden;}.auth-modal-left::before{content:'';filter:blur(80px);opacity:0.6;background:radial-gradient(at 0 0,#6366f14d 0,#0b5cf64d 0,#0000 50%),radial-gradient(at 50% 0%,#1db9814d 0,#0000 50%),radial-gradient(at 100% 0%,#f43f5e4d 0,#0000 50%),radial-gradient(at 100%,#f43f5e4d 0,#0000 50%),radial-gradient(at 100% 100%,#8b5cf64d 0,#0000 50%),radial-gradient(at 0 100%,#ec48994d 0,#0000 50%),radial-gradient(at 50% 100%,#8b5cf64d 0,#0000 50%);width:200%;height:200%;animation:20s linear infinite meshRotate;position:absolute;inset:-50%;pointer-events:none;}@keyframes meshRotate{from{transform:rotate(170.867deg);}to{transform:rotate(530.867deg);}}.auth-modal-left::after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");opacity:0.4;mix-blend-mode:overlay;pointer-events:none;}.auth-modal-logo{display:flex;align-items:center;gap:10px;z-index:10;position:relative;}.auth-modal-logo .logo-icon{width:28px;height:28px;filter:drop-shadow(0 0 10px rgba(16,185,129,0.3));}.auth-modal-logo .logo-text{font-family:var(--font-display);font-size:16px;font-weight:700;color:#fff;}.auth-modal-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none;}.auth-modal-decoration .glow-orb-1{position:absolute;width:400px;height:400px;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,0.05) 0%,transparent 70%);border-radius:50%;filter:blur(60px);animation:breathe 8s ease-in-out infinite;pointer-events:none;}@keyframes breathe{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:0.5;}50%{transform:translate(-50%,-50%) scale(1.2);opacity:0.8;}}.auth-modal-decoration .glow-orb-2{position:absolute;width:300px;height:300px;top:20%;right:-10%;background:radial-gradient(circle,rgba(139,92,246,0.08) 0%,transparent 70%);border-radius:50%;filter:blur(50px);animation:breathe 10s ease-in-out infinite;animation-delay:2s;pointer-events:none;}.auth-modal-branding{z-index:10;position:relative;}.auth-modal-branding .branding-title{font-family:var(--font-display);font-size:28px;font-weight:700;line-height:1.15;margin-bottom:16px;color:#ffffff;}.auth-modal-branding .branding-subtitle{font-size:16px;color:rgba(255,255,255,0.8);line-height:1.6;}.auth-modal-right{position:relative;display:flex;flex-direction:column;width:456px;height:636px;padding:80px 48px 50px 48px;background:#1e1e1e;overflow-y:auto;}.auth-modal-right::-webkit-scrollbar{width:6px;}.auth-modal-right::-webkit-scrollbar-track{background:transparent;}.auth-modal-right::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px;}.auth-modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:rgba(255,255,255,0.5);cursor:pointer;transition:all 0.2s ease;z-index:20;border-radius:8px;}.auth-modal-close:hover{background:rgba(255,255,255,0.1);color:#ffffff;}.auth-form-view{animation:formFadeIn 0.3s ease-out;}#loginForm .form-input{width:360px;}@keyframes formFadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}.auth-form-view.hidden{display:none;}.new-style-login-view{max-width:400px;margin:0 auto;animation:formFadeIn 0.3s ease-out;}.new-style-login-view.hidden{display:none;}.new-style-login-view .auth-form-header{margin-bottom:32px;text-align:center;}.new-style-login-view .auth-form-title{font-family:var(--font-display);font-size:28px;font-weight:700;margin-bottom:8px;color:#ffffff;}.new-style-login-view .auth-form-subtitle{font-size:14px;color:#888;}.new-style-login-view .auth-form{display:flex;flex-direction:column;gap:12px;}.new-style-login-view .social-buttons{display:flex;flex-direction:column;gap:12px;}.new-style-login-view .btn-social{width:100%;padding:12px;background:rgba(255,255,255,0.04);border:1px solid rgba(230,233,236,0.1);border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background 0.3s,border-color 0.3s;display:flex;align-items:center;justify-content:center;gap:10px;}.new-style-login-view .btn-social:hover{background:rgba(255,255,255,0.08);border-color:rgba(230,233,236,0.2);}.new-style-login-view .btn-social svg{width:18px;height:18px;}.new-style-login-view .divider{font-size:12px;color:#666;margin:30px 0;text-transform:lowercase;letter-spacing:0.5px;}.new-style-login-view .divider::before,.new-style-login-view .divider::after{height:1px;background:#3a3a3a;}.btn-email-toggle{width:100%;padding:12px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:#fff;background:rgba(255,255,255,0.04);border:1px solid rgba(230,233,236,0.1);border-radius:8px;cursor:pointer;transition:background 0.3s,border-color 0.3s;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px;}.btn-email-toggle:hover{background:rgba(255,255,255,0.08);border-color:rgba(230,233,236,0.2);}.btn-email-toggle svg{width:20px;height:20px;}.terms-text{font-size:12px;color:#666;text-align:center;line-height:1.6;}.terms-link{color:#888;text-decoration:underline;}.terms-link:hover{color:#aaa;}.old-style-login-view{animation:formFadeIn 0.3s ease-out;}.auth-modal-right:has(.old-style-login-view:not(.hidden)){padding:40px 48px 30px 48px;}.old-style-login-view.hidden{display:none;}.old-style-login-view .auth-form-header{margin-bottom:20px;text-align:center;}.old-style-login-view .auth-form-title{font-family:var(--font-display);font-size:28px;font-weight:700;margin-bottom:8px;color:#ffffff;}.old-style-login-view .auth-form-subtitle{font-size:14px;color:#888;}.old-style-login-view .form-group{gap:4px;margin-bottom:12px;}.old-style-login-view .divider{margin:16px 0;}.old-style-login-view .auth-form-title{font-size:24px;margin-bottom:6px;}#signupForm .auth-form-header{margin-bottom:10px;}#signupForm .auth-form-title{font-size:22px;margin-bottom:2px;}#signupForm .auth-form-subtitle{font-size:13px;line-height:1.3;}#signupForm .form-group{gap:2px;margin-bottom:5px;}#signupForm .divider{margin:8px 0;}#signupForm .strength-text{font-size:10px;line-height:1.2;margin-top:1px;margin-bottom:0;}#signupForm .btn-auth-primary{height:44px;margin-top:4px;margin-bottom:4px;}#signupForm .form-label{margin-bottom:3px;}#signupForm .form-input{height:36px;}.auth-modal-right:has(#signupForm:not(.hidden)){padding:28px 48px 18px 48px;}.btn-back{width:100%;height:32px;padding:0 12px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:rgba(156,163,175,1);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;}.btn-back:hover{color:#ffffff;}.btn-back svg{transition:transform 0.3s ease;}.btn-back:hover svg{transform:translateX(-4px);}.auth-form-header{margin-bottom:32px;text-align:center;}.auth-form-title{font-family:var(--font-display);font-size:28px;font-weight:700;margin-bottom:8px;color:#ffffff;}.auth-form-subtitle{font-size:14px;color:#888;}.auth-form{display:flex;flex-direction:column;gap:16px;}.form-group{display:flex;flex-direction:column;gap:6px;}.form-label{display:block;font-size:12px;color:#aaa;margin-bottom:8px;text-transform:uppercase;letter-spacing:0.5px;font-weight:500;}.form-input{width:100%;height:40px;padding:0 14px;font-family:var(--font-sans);font-size:14px;color:var(--color-text-primary);background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.15);border-radius:8px;outline:none;transition:all 0.3s;}.form-input::placeholder{color:#666;}.form-input:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.25);}.form-input:focus{border:2px solid #00d9a3;box-shadow:0 0 0 3px rgba(0,217,163,0.1);background:rgba(255,255,255,0.1);}.form-input:invalid:not(:placeholder-shown){border-color:#ff006e;}.form-input[type="textarea"],textarea.form-input{min-height:100px;resize:vertical;font-family:inherit;line-height:1.5;padding:12px 14px;}.char-count{font-size:12px;color:rgba(255,255,255,0.5);text-align:right;margin-top:4px;}.auth-modal-light .char-count{color:rgba(0,0,0,0.4);}.icon-mail{position:relative;z-index:2;color:#10b981;filter:drop-shadow(0 0 10px rgba(16,185,129,0.4));animation:floatIcon 4s ease-in-out infinite;}.forgot-password-icon:has(.icon-mail) .icon-glow{background:radial-gradient( circle,rgba(16,185,129,0.25) 0%,rgba(6,182,212,0.15) 40%,transparent 70% );}#applyInviteReason{position:relative;min-height:120px;padding:14px 16px;background:rgba(20,20,20,0.6);transition:all 0.3s ease;}#applyInviteReason:focus{background:rgba(20,20,20,0.8);border-color:rgba(16,185,129,0.5);box-shadow:0 0 0 3px rgba(16,185,129,0.15),0 0 20px rgba(16,185,129,0.15),inset 0 1px 0 rgba(255,255,255,0.05);}.form-group:has(#applyInviteReason) .char-count{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:rgba(161,161,170,0.7);text-align:right;margin-top:8px;padding:4px 0;display:block;float:right;position:relative;transition:all 0.3s ease;letter-spacing:0.02em;}.form-group:has(#applyInviteReason) .char-count::before{content:'';position:absolute;bottom:0;left:0;height:2px;width:var(--progress-width,0%);background:linear-gradient(90deg,#10b981,#06b6d4);transition:width 0.3s ease,box-shadow 0.3s ease,background 0.3s ease;box-shadow:0 0 8px rgba(16,185,129,0.5);}.form-group:has(#applyInviteReason) .char-count[data-progress="low"]{color:rgba(251,191,36,0.9);}.form-group:has(#applyInviteReason) .char-count[data-progress="low"]::before{background:linear-gradient(90deg,rgba(251,191,36,0.8),rgba(251,191,36,0.6));box-shadow:0 0 8px rgba(251,191,36,0.5);}.form-group:has(#applyInviteReason) .char-count[data-progress="medium"]{color:rgba(16,185,129,0.9);}.form-group:has(#applyInviteReason) .char-count[data-progress="medium"]::before{background:linear-gradient(90deg,#10b981,#06b6d4);box-shadow:0 0 10px rgba(16,185,129,0.6);}.form-group:has(#applyInviteReason) .char-count[data-progress="high"]{color:rgba(239,68,68,0.9);}.form-group:has(#applyInviteReason) .char-count[data-progress="high"]::before{background:linear-gradient(90deg,rgba(239,68,68,0.8),rgba(239,68,68,0.6));box-shadow:0 0 10px rgba(239,68,68,0.6);}.auth-modal-light .icon-mail{color:#059669;filter:drop-shadow(0 0 8px rgba(5,150,105,0.3));}.auth-modal-light .forgot-password-icon:has(.icon-mail) .icon-glow{background:radial-gradient( circle,rgba(16,185,129,0.15) 0%,rgba(6,182,212,0.1) 40%,transparent 70% );}.auth-modal-light #applyInviteReason{background:rgba(255,255,255,0.8);border-color:rgba(16,185,129,0.2);color:#0a0a0a;}.auth-modal-light #applyInviteReason:focus{background:rgba(255,255,255,0.95);border-color:rgba(16,185,129,0.5);box-shadow:0 0 0 3px rgba(16,185,129,0.12),0 0 20px rgba(16,185,129,0.1),inset 0 1px 0 rgba(255,255,255,0.8);}.auth-modal-light .form-group:has(#applyInviteReason) .char-count{color:rgba(82,82,91,0.8);}.input-with-icon{position:relative;display:flex;align-items:center;}.input-with-icon .form-input{padding-right:40px;}.input-icon-btn{position:absolute;right:8px;background:transparent;border:none;color:rgba(255,255,255,0.4);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:color 0.2s ease;border-radius:4px;}.input-icon-btn:hover{color:rgba(255,255,255,0.7);background:rgba(255,255,255,0.05);}.input-icon-btn .hidden{display:none;}.strength-text{font-size:12px;color:var(--color-text-tertiary);font-weight:500;display:flex;align-items:center;gap:6px;margin-top:4px;}.form-group-header{display:flex;align-items:center;justify-content:space-between;}.form-group-header .form-label{margin-bottom:0;}.forgot-password-link{font-size:12px;color:#00d9a3;text-decoration:none;text-transform:none;letter-spacing:normal;margin-bottom:8px;}.forgot-password-link:hover{text-decoration:underline;}.link-primary{color:var(--color-neon-green);text-decoration:none;font-weight:600;transition:all 0.2s ease;position:relative;text-shadow:0 0 10px rgba(0,255,136,0.3);}.link-primary::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--color-neon-green);transform:scaleX(0);transform-origin:right;transition:transform 0.3s ease;}.link-primary:hover{color:#00ff88;text-shadow:0 0 20px rgba(0,255,136,0.5);}.link-primary:hover::after{transform:scaleX(1);transform-origin:left;}.btn-auth-primary{width:100%;padding:14px;font-family:var(--font-sans);font-size:15px;font-weight:600;color:#0a0a0a;background:#00e599;border:none;border-radius:8px;cursor:pointer;transition:background 0.3s,transform 0.1s;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;}.btn-auth-primary:hover{background:#00f5a8;}.btn-auth-primary:active{transform:scale(0.98);}.btn-auth-primary svg{width:20px;height:20px;flex-shrink:0;}.btn-auth-primary svg path{fill:rgba(0,0,0,0.8);}.btn-auth-primary:disabled{opacity:0.6;cursor:not-allowed;transform:none;}.btn-auth-primary .btn-text{position:relative;z-index:2;}.btn-auth-primary .btn-loader{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;}.btn-auth-primary .btn-loader.hidden{display:none;}.spinner{width:20px;height:20px;fill:none;stroke-width:3;animation:spin 0.8s linear infinite;}@keyframes spin{to{transform:rotate(360deg);}}.spinner-track{stroke:rgba(0,0,0,0.2);}.spinner-circle{stroke:#000;stroke-dasharray:50;stroke-dashoffset:50;animation:spinDash 1.2s ease-in-out infinite;}@keyframes spinDash{0%{stroke-dashoffset:50;}50%{stroke-dashoffset:12.5;}100%{stroke-dashoffset:50;}}.invite-code-icon{position:relative;width:80px;height:80px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;background:rgba(52,211,153,0.1);border-radius:12px;}.invite-code-icon .icon-glow{position:absolute;inset:-10px;background:radial-gradient(circle,rgba(52,211,153,0.2) 0%,transparent 70%);border-radius:50%;animation:pulseGlow 3s ease-in-out infinite;filter:blur(15px);}.invite-code-icon .icon-star{position:relative;z-index:2;color:#34d399;filter:drop-shadow(0 0 10px rgba(52,211,153,0.4));animation:floatIcon 4s ease-in-out infinite;}.forgot-password-icon{position:relative;width:100px;height:100px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;}.forgot-password-icon .icon-glow{position:absolute;inset:-10px;background:radial-gradient(circle,rgba(16,185,129,0.25) 0%,transparent 70%);border-radius:50%;animation:pulseGlow 3s ease-in-out infinite;filter:blur(15px);}@keyframes pulseGlow{0%,100%{opacity:0.5;transform:scale(0.95);}50%{opacity:0.8;transform:scale(1.05);}}.forgot-password-icon .icon-lock{position:relative;z-index:2;color:#10b981;filter:drop-shadow(0 0 10px rgba(16,185,129,0.4));animation:floatIcon 4s ease-in-out infinite;}@keyframes floatIcon{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}.btn-forgot-password{display:flex;align-items:center;justify-content:center;gap:8px;}.btn-forgot-password .btn-arrow{transition:transform 0.3s ease;}.btn-forgot-password:hover .btn-arrow{transform:translateX(4px);}.auth-footer{margin-top:24px;text-align:center;}.forgot-footer{display:flex;justify-content:center;}.back-to-login{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:all 0.2s ease;padding:8px 12px;border-radius:6px;}.back-to-login:hover{color:var(--color-neon-green);background:rgba(16,185,129,0.05);}.back-to-login svg{transition:transform 0.3s ease;}.back-to-login:hover svg{transform:translateX(-4px);}.invite-code-divider{position:relative;text-align:center;margin:32px 0 20px 0;font-size:11px;font-weight:600;color:var(--color-text-tertiary);letter-spacing:0.08em;display:flex;align-items:center;gap:12px;}.invite-code-divider::before,.invite-code-divider::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.1),transparent);}.btn-apply-invite{width:100%;height:44px;padding:0 24px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color-text-secondary);background:rgba(30,30,30,0.8);border:1px solid rgba(255,255,255,0.1);border-radius:10px;cursor:pointer;transition:all 0.25s cubic-bezier(0.4,0,0.2,1);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}.btn-apply-invite::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,0.05) 50%,transparent 100%);opacity:0;transition:opacity 0.3s ease;}.btn-apply-invite:hover{border-color:rgba(255,255,255,0.2);background:rgba(40,40,40,0.9);color:var(--color-text-primary);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.3);}.btn-apply-invite:hover::before{opacity:1;}.btn-apply-invite:active{transform:translateY(0);}.auth-modal-light .invite-code-icon{background:rgba(52,211,153,0.08);}.auth-modal-light .invite-code-icon .icon-star{color:#059669;filter:drop-shadow(0 2px 8px rgba(5,150,105,0.3));}.auth-modal-light .btn-apply-invite{background:rgba(255,255,255,0.9);border:1.5px solid rgba(0,0,0,0.08);color:rgba(0,0,0,0.6);box-shadow:0 2px 4px rgba(0,0,0,0.04),0 0 0 1px rgba(255,255,255,0.8) inset;}.auth-modal-light .btn-apply-invite:hover{background:#ffffff;border-color:rgba(16,185,129,0.2);color:#0a0a0a;box-shadow:0 4px 8px rgba(0,0,0,0.06),0 0 0 1px rgba(16,185,129,0.1) inset;transform:translateY(-1px);}.auth-modal-light .invite-code-divider{color:rgba(0,0,0,0.35);}.auth-modal-light .invite-code-divider::before,.auth-modal-light .invite-code-divider::after{background:linear-gradient(to right,transparent,rgba(0,0,0,0.1),transparent);}.auth-footer-divider{margin-top:32px;padding:28px 20px 0 20px;position:relative;text-align:center;isolation:isolate;}.auth-footer-divider::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:85%;height:2px;background:linear-gradient( 90deg,transparent 0%,rgba(16,185,129,0.15) 15%,rgba(16,185,129,0.5) 30%,rgba(6,182,212,0.6) 50%,rgba(16,185,129,0.5) 70%,rgba(16,185,129,0.15) 85%,transparent 100% );filter:blur(0.5px);animation:energyFlow 4s ease-in-out infinite;}.auth-footer-divider::after{content:'';position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:70%;height:8px;background:radial-gradient( ellipse at center,rgba(16,185,129,0.25) 0%,rgba(6,182,212,0.15) 40%,transparent 70% );filter:blur(6px);animation:glowPulse 3s ease-in-out infinite;opacity:0.6;}@keyframes energyFlow{0%,100%{opacity:0.7;transform:translateX(-50%) scaleX(1);}50%{opacity:1;transform:translateX(-50%) scaleX(1.02);}}@keyframes glowPulse{0%,100%{opacity:0.4;transform:translateX(-50%) scaleY(0.8);}50%{opacity:0.8;transform:translateX(-50%) scaleY(1.2);}}.auth-footer-text{font-size:13.5px;font-weight:400;color:rgba(161,161,170,0.85);letter-spacing:0.02em;line-height:1.6;margin:0;position:relative;z-index:1;}.auth-link{color:#10b981;font-weight:600;text-decoration:none;position:relative;display:inline-block;padding:6px 14px;border-radius:6px;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);background:rgba(16,185,129,0.05);border:1px solid rgba(16,185,129,0.2);margin-left:6px;letter-spacing:0.01em;isolation:isolate;}.auth-link::before{content:'';position:absolute;inset:-1px;border-radius:6px;padding:1px;background:linear-gradient( 135deg,transparent 0%,rgba(16,185,129,0.4) 25%,rgba(6,182,212,0.5) 50%,rgba(16,185,129,0.4) 75%,transparent 100% );-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity 0.4s ease;animation:shimmerRotate 3s linear infinite paused;}@keyframes shimmerRotate{0%{background-position:0% 50%;}100%{background-position:200% 50%;}}.auth-link::after{content:'';position:absolute;bottom:3px;left:14px;right:14px;height:2px;background:linear-gradient( 90deg,rgba(16,185,129,0.8),rgba(6,182,212,0.9),rgba(16,185,129,0.8) );border-radius:2px;transform:scaleX(0);transform-origin:center;transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);filter:blur(0.5px);box-shadow:0 0 8px rgba(16,185,129,0.6),0 0 12px rgba(6,182,212,0.4);}.auth-link:hover{color:#00ffaa;background:rgba(16,185,129,0.12);border-color:rgba(6,182,212,0.5);transform:translateY(-2px) scale(1.02);text-shadow:0 0 10px rgba(16,185,129,0.6),0 0 20px rgba(6,182,212,0.4),0 0 30px rgba(16,185,129,0.2);box-shadow:0 4px 20px rgba(16,185,129,0.3),0 0 40px rgba(6,182,212,0.15),inset 0 1px 0 rgba(255,255,255,0.1);}.auth-link:hover::before{opacity:1;animation-play-state:running;}.auth-link:hover::after{transform:scaleX(1);}.auth-link:active{transform:translateY(0) scale(0.98);background:rgba(16,185,129,0.18);border-color:rgba(16,185,129,0.6);box-shadow:0 2px 12px rgba(16,185,129,0.4),inset 0 2px 8px rgba(0,0,0,0.2);}.auth-link:focus-visible{outline:none;border-color:rgba(16,185,129,0.8);box-shadow:0 0 0 3px rgba(16,185,129,0.3),0 0 20px rgba(16,185,129,0.4),inset 0 1px 0 rgba(255,255,255,0.15);}@media (max-width:768px){.auth-footer-divider{margin-top:28px;padding-top:24px;}.auth-footer-divider::before{width:90%;}.auth-footer-text{font-size:13px;}.auth-link{padding:8px 16px;margin-left:4px;}.auth-link::after{left:16px;right:16px;}}.auth-modal-light .auth-footer-divider::before{background:linear-gradient( 90deg,transparent 0%,rgba(16,185,129,0.2) 15%,rgba(16,185,129,0.35) 30%,rgba(6,182,212,0.4) 50%,rgba(16,185,129,0.35) 70%,rgba(16,185,129,0.2) 85%,transparent 100% );}.auth-modal-light .auth-footer-divider::after{background:radial-gradient( ellipse at center,rgba(16,185,129,0.15) 0%,rgba(6,182,212,0.1) 40%,transparent 70% );}.auth-modal-light .auth-footer-text{color:rgba(82,82,91,0.9);}.auth-modal-light .auth-link{color:#059669;background:rgba(16,185,129,0.08);border-color:rgba(16,185,129,0.25);}.auth-modal-light .auth-link::before{background:linear-gradient( 135deg,transparent 0%,rgba(16,185,129,0.5) 25%,rgba(6,182,212,0.6) 50%,rgba(16,185,129,0.5) 75%,transparent 100% );}.auth-modal-light .auth-link:hover{color:#047857;background:rgba(16,185,129,0.15);border-color:rgba(6,182,212,0.4);text-shadow:0 0 8px rgba(16,185,129,0.4),0 0 16px rgba(6,182,212,0.3);box-shadow:0 4px 16px rgba(16,185,129,0.25),0 0 30px rgba(6,182,212,0.1),inset 0 1px 0 rgba(255,255,255,0.6);}.auth-modal-light .auth-link:active{background:rgba(16,185,129,0.22);box-shadow:0 2px 10px rgba(16,185,129,0.3),inset 0 2px 6px rgba(0,0,0,0.1);}.auth-message-content{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px;}.message-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;border-radius:50%;background:rgba(16,185,129,0.1);color:#10b981;}.message-icon svg{filter:drop-shadow(0 0 10px rgba(16,185,129,0.3));animation:successPulse 2s ease-in-out infinite;}@keyframes successPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.05);}}.message-title{font-family:var(--font-display);font-size:24px;font-weight:700;margin-bottom:12px;color:#ffffff;}.message-text{font-size:14px;color:var(--color-text-secondary);margin-bottom:24px;line-height:1.6;}.divider{position:relative;text-align:center;margin:30px 0;font-size:12px;color:#666;text-transform:lowercase;letter-spacing:0.5px;display:flex;align-items:center;}.divider::before,.divider::after{content:'';flex:1;height:1px;background:#3a3a3a;}.divider::before{margin-right:16px;}.divider::after{margin-left:16px;}.social-buttons-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.btn-social{width:100%;padding:12px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:#fff;background:rgba(255,255,255,0.04);border:1px solid rgba(230,233,236,0.1);border-radius:8px;cursor:pointer;transition:background 0.3s,border-color 0.3s;display:flex;align-items:center;justify-content:center;gap:10px;}.btn-social:hover{background:rgba(255,255,255,0.08);border-color:rgba(230,233,236,0.2);}.btn-social:active{transform:scale(0.98);}.btn-social svg{width:18px;height:18px;flex-shrink:0;}.btn-social-full{width:100%;padding:12px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:#fff;background:rgba(255,255,255,0.04);border:1px solid rgba(230,233,236,0.1);border-radius:8px;cursor:pointer;transition:background 0.3s,border-color 0.3s;display:flex;align-items:center;justify-content:center;gap:10px;grid-column:1 / -1;}.btn-social-full:hover{background:rgba(255,255,255,0.08);border-color:rgba(230,233,236,0.2);}.btn-social-full:active{transform:scale(0.98);}.btn-social-full svg{width:18px;height:18px;flex-shrink:0;}@media (max-width:768px){.auth-modal{padding:12px;overflow:hidden;}.auth-modal-content{flex-direction:column;width:calc(100vw - 24px);max-width:420px;height:auto;max-height:calc(100vh - 24px);overflow:hidden;}.auth-modal-left{display:none;}.auth-modal-right{width:100%;height:auto;max-height:calc(100vh - 24px);padding:24px 20px;overflow:hidden;box-sizing:border-box;}#loginForm .form-input{width:100%;max-width:100%;}.auth-form-header{margin-bottom:12px;}.auth-form-title{font-size:20px;margin-bottom:4px;}.auth-form-subtitle{font-size:13px;line-height:1.3;}.form-group{margin-bottom:10px;gap:3px;}.form-label{font-size:12px;margin-bottom:3px;}.form-input{height:42px;font-size:14px;padding:0 12px;}.btn-auth-primary{height:44px;font-size:14px;margin-top:6px;}.divider{margin:12px 0;font-size:11px;}.social-buttons-grid,.new-style-login-view .social-buttons{gap:12px;}.social-buttons-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.new-style-login-view .social-buttons{display:flex;flex-direction:column;}.btn-social,.btn-social-full{width:100%;height:42px;font-size:13px;padding:0 14px;}.btn-social-full{grid-column:1 / -1;}.btn-social svg,.btn-social-full svg{width:16px;height:16px;}.new-style-login-view,.old-style-login-view{max-width:100%;overflow:hidden;}.old-style-login-view .form-group{margin-bottom:10px;}.old-style-login-view .divider{margin:10px 0;}.old-style-login-view .auth-form-title{font-size:20px;margin-bottom:4px;}.old-style-login-view .auth-form-header{margin-bottom:10px;}.auth-modal-right:has(.old-style-login-view:not(.hidden)){padding:22px 20px 20px 20px;}#signupForm .auth-form-header{margin-bottom:10px;}#signupForm .auth-form-title{font-size:18px;margin-bottom:3px;}#signupForm .auth-form-subtitle{font-size:11px;line-height:1.3;}#signupForm .form-group{margin-bottom:8px;}#signupForm .form-input{height:38px;}#signupForm .divider{margin:8px 0;}#signupForm .strength-text{font-size:10px;margin-top:1px;}#signupForm .btn-auth-primary{height:42px;margin-top:4px;margin-bottom:2px;}.auth-modal-right:has(#signupForm:not(.hidden)){padding:20px 20px 18px 20px;}.btn-back{top:12px;left:12px;width:32px;height:32px;}.demo-controls{top:10px;right:10px;}.demo-btn{padding:6px 12px;font-size:11px;}}@media (max-width:480px){.auth-modal{padding:8px;}.auth-modal-content{width:calc(100vw - 16px);max-width:380px;max-height:calc(100vh - 16px);}.auth-modal-right{padding:20px 18px;max-height:calc(100vh - 16px);}.auth-form-title{font-size:18px;}#signupForm .auth-form-title{font-size:17px;}.form-input{height:40px;font-size:14px;padding:0 12px;}#signupForm .form-input{height:36px;}.btn-auth-primary{height:42px;font-size:14px;}#signupForm .btn-auth-primary{height:40px;}.btn-social,.btn-social-full{height:40px;font-size:13px;}.divider{margin:10px 0;}.auth-modal-right:has(#signupForm:not(.hidden)){padding:18px 18px 16px 18px;}.auth-modal-right:has(.old-style-login-view:not(.hidden)){padding:20px 18px 18px 18px;}#signupForm .form-group{margin-bottom:7px;}#signupForm .divider{margin:7px 0;}.old-style-login-view .form-group{margin-bottom:8px;}.old-style-login-view .divider{margin:8px 0;}.social-buttons-grid,.new-style-login-view .social-buttons{gap:10px;}.social-buttons-grid{grid-template-columns:1fr 1fr;gap:10px;}.form-group{margin-bottom:8px;}}.auth-modal-light{}.auth-modal-light .auth-modal-backdrop{background:rgba(255,255,255,0.75);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);}.auth-modal-light .auth-modal-content{background:linear-gradient(135deg,#fdfbf7 0%,#f8f6f2 100%);border:1px solid rgba(16,185,129,0.1);box-shadow:0 50px 100px rgba(0,0,0,0.12),0 20px 40px rgba(0,0,0,0.08),0 0 0 1px rgba(255,255,255,0.9) inset;}.auth-modal-light .auth-modal-left{background:linear-gradient(135deg,#ffffff 0%,#faf9f7 100%);border-right:1px solid rgba(16,185,129,0.08);box-shadow:2px 0 20px rgba(0,0,0,0.03),0 0 0 1px rgba(16,185,129,0.05) inset;}.auth-modal-light .auth-modal-left::before{background:radial-gradient(at 0% 0%,rgba(16,185,129,0.08) 0px,transparent 50%),radial-gradient(at 50% 0%,rgba(6,182,212,0.06) 0px,transparent 50%),radial-gradient(at 100% 0%,rgba(16,185,129,0.08) 0px,transparent 50%),radial-gradient(at 0% 50%,rgba(52,211,153,0.05) 0px,transparent 50%),radial-gradient(at 100% 50%,rgba(6,182,212,0.06) 0px,transparent 50%),radial-gradient(at 0% 100%,rgba(16,185,129,0.07) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(52,211,153,0.06) 0px,transparent 50%);filter:blur(60px);opacity:0.9;}.auth-modal-light .auth-modal-left::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");opacity:0.6;mix-blend-mode:multiply;}.auth-modal-light .auth-modal-logo .logo-icon{filter:drop-shadow(0 2px 8px rgba(16,185,129,0.25));}.auth-modal-light .auth-modal-logo .logo-text{color:#0a0a0a;text-shadow:0 1px 2px rgba(16,185,129,0.1);}.auth-modal-light .auth-modal-decoration .glow-orb-1{background:radial-gradient(circle,rgba(16,185,129,0.08) 0%,transparent 70%);filter:blur(80px);}.auth-modal-light .auth-modal-decoration .glow-orb-2{background:radial-gradient(circle,rgba(6,182,212,0.06) 0%,transparent 70%);filter:blur(70px);}.auth-modal-light .auth-modal-branding .branding-title{color:#0a0a0a;text-shadow:0 2px 12px rgba(16,185,129,0.12);background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}.auth-modal-light .auth-modal-branding .branding-subtitle{color:rgba(0,0,0,0.6);}.auth-modal-light .auth-modal-right{background:rgba(255,255,255,0.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:-2px 0 20px rgba(0,0,0,0.03);}.auth-modal-light .auth-modal-right::-webkit-scrollbar-thumb{background:rgba(16,185,129,0.2);}.auth-modal-light .auth-modal-right::-webkit-scrollbar-thumb:hover{background:rgba(16,185,129,0.3);}.auth-modal-light .auth-modal-close{color:rgba(0,0,0,0.4);}.auth-modal-light .auth-modal-close:hover{background:rgba(16,185,129,0.08);color:#0a0a0a;}.auth-modal-light .auth-form-title{color:#0a0a0a;background:linear-gradient(135deg,#0a0a0a 0%,#2a2a2a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}.auth-modal-light .auth-form-subtitle{color:rgba(0,0,0,0.5);}.auth-modal-light .form-label{color:#0a0a0a;opacity:0.7;}.auth-modal-light .form-input{color:#0a0a0a;background:rgba(255,255,255,0.9);border:1.5px solid rgba(0,0,0,0.08);box-shadow:0 1px 2px rgba(0,0,0,0.02),0 0 0 1px rgba(255,255,255,0.8) inset;}.auth-modal-light .form-input::placeholder{color:rgba(0,0,0,0.3);}.auth-modal-light .form-input:hover{border-color:rgba(16,185,129,0.2);box-shadow:0 2px 4px rgba(0,0,0,0.03),0 0 0 1px rgba(16,185,129,0.05) inset;}.auth-modal-light .form-input:focus{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,0.12),0 2px 8px rgba(16,185,129,0.08);background:#ffffff;}.auth-modal-light .form-input:invalid:not(:placeholder-shown){border-color:#ff006e;box-shadow:0 0 0 3px rgba(255,0,110,0.1);}.auth-modal-light .input-icon-btn{color:rgba(0,0,0,0.4);}.auth-modal-light .input-icon-btn:hover{color:rgba(0,0,0,0.7);}.auth-modal-light .forgot-password-link{color:#10b981;}.auth-modal-light .forgot-password-link:hover{color:#059669;text-shadow:0 0 8px rgba(16,185,129,0.2);}.auth-modal-light .strength-text{color:rgba(0,0,0,0.45);}.auth-modal-light .btn-auth-primary{background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#ffffff;border:none;box-shadow:0 4px 12px rgba(16,185,129,0.25),0 2px 4px rgba(16,185,129,0.15),0 0 0 1px rgba(255,255,255,0.3) inset;}.auth-modal-light .btn-auth-primary:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);box-shadow:0 6px 16px rgba(16,185,129,0.3),0 3px 6px rgba(16,185,129,0.2),0 0 0 1px rgba(255,255,255,0.4) inset;transform:translateY(-1px);}.auth-modal-light .btn-auth-primary:active{transform:translateY(0);box-shadow:0 2px 8px rgba(16,185,129,0.2),0 1px 3px rgba(16,185,129,0.15);}.auth-modal-light .btn-auth-primary:disabled{background:linear-gradient(135deg,rgba(16,185,129,0.4) 0%,rgba(5,150,105,0.4) 100%);box-shadow:none;}.auth-modal-light .btn-forgot-password{background:linear-gradient(135deg,#10b981 0%,#059669 100%);}.auth-modal-light .btn-forgot-password:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);}.auth-modal-light .btn-forgot-password .btn-arrow{filter:drop-shadow(0 0 4px rgba(255,255,255,0.5));}.auth-modal-light .divider{color:rgba(0,0,0,0.35);}.auth-modal-light .divider::before,.auth-modal-light .divider::after{background:linear-gradient(to right,transparent,rgba(0,0,0,0.1),transparent);}.auth-modal-light .btn-social,.auth-modal-light .btn-social-full{background:rgba(255,255,255,0.9);border:1.5px solid rgba(0,0,0,0.08);color:#1a1a1a;box-shadow:0 2px 4px rgba(0,0,0,0.04),0 0 0 1px rgba(255,255,255,0.8) inset;}.auth-modal-light .btn-social:hover,.auth-modal-light .btn-social-full:hover{background:#ffffff;border-color:rgba(16,185,129,0.2);box-shadow:0 4px 8px rgba(0,0,0,0.06),0 0 0 1px rgba(16,185,129,0.1) inset;transform:translateY(-1px);}.auth-modal-light .btn-social:active,.auth-modal-light .btn-social-full:active{transform:translateY(0);box-shadow:0 1px 3px rgba(0,0,0,0.04),0 0 0 1px rgba(0,0,0,0.05) inset;}.auth-modal-light .link-primary{color:#10b981;}.auth-modal-light .link-primary:hover{color:#059669;text-shadow:0 0 8px rgba(16,185,129,0.2);}.auth-modal-light .forgot-password-icon{background:linear-gradient(135deg,rgba(16,185,129,0.08) 0%,rgba(6,182,212,0.06) 100%);box-shadow:0 8px 24px rgba(16,185,129,0.12),0 0 0 1px rgba(16,185,129,0.1) inset;}.auth-modal-light .forgot-password-icon .icon-glow{background:radial-gradient(circle,rgba(16,185,129,0.15) 0%,transparent 70%);}.auth-modal-light .forgot-password-icon .icon-lock{color:#10b981;filter:drop-shadow(0 2px 8px rgba(16,185,129,0.2));}.auth-modal-light .forgot-password-icon .lock-shackle{animation:shakeLock 2s ease-in-out infinite;}.auth-modal-light .back-to-login{color:rgba(0,0,0,0.6);}.auth-modal-light .back-to-login:hover{color:#10b981;}.auth-modal-light .back-to-login svg{color:rgba(0,0,0,0.4);}.auth-modal-light .back-to-login:hover svg{color:#10b981;}.auth-modal-light .auth-message-content{background:linear-gradient(135deg,rgba(16,185,129,0.05) 0%,rgba(6,182,212,0.03) 100%);box-shadow:0 8px 32px rgba(16,185,129,0.12),0 0 0 1px rgba(16,185,129,0.1) inset;}.auth-modal-light .message-icon{background:linear-gradient(135deg,#10b981 0%,#059669 100%);box-shadow:0 8px 24px rgba(16,185,129,0.3),0 0 0 4px rgba(16,185,129,0.1);}.auth-modal-light .message-icon svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2));}.auth-modal-light .message-title{color:#0a0a0a;background:linear-gradient(135deg,#0a0a0a 0%,#2a2a2a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}.auth-modal-light .message-text{color:rgba(0,0,0,0.6);}
package/dist/index.cjs CHANGED
@@ -2673,6 +2673,7 @@ class AuthModal {
2673
2673
  this.resetToken = null;
2674
2674
  this.tempUserId = null; // 临时用户ID(需要激活)
2675
2675
  this.tempUserEmail = null; // 临时用户邮箱
2676
+ this.isOAuthInProgress = false; // OAuth登录进行中标志
2676
2677
  this.client = options.client;
2677
2678
  this.options = options;
2678
2679
  // Auto-detect email verification token in URL
@@ -2840,25 +2841,26 @@ class AuthModal {
2840
2841
  const hasOAuth = this.options.enableOAuth &&
2841
2842
  (this.options.enableOAuth.google || this.options.enableOAuth.discord || this.options.enableOAuth.github);
2842
2843
  if (hasOAuth) {
2843
- // Google button (full width, primary style)
2844
+ // Social buttons container (vertical list)
2845
+ const socialButtons = document.createElement('div');
2846
+ socialButtons.className = 'social-buttons';
2847
+ // Google button
2844
2848
  if (this.options.enableOAuth?.google) {
2845
- const googleBtn = this.createSocialButton('google', 'Continue with Google', 'login', true);
2846
- googleBtn.className = 'btn-auth-primary';
2847
- form.appendChild(googleBtn);
2849
+ const googleBtn = this.createSocialButton('google', 'Google', 'login', true);
2850
+ socialButtons.appendChild(googleBtn);
2848
2851
  }
2849
- // Social buttons grid (GitHub + Discord)
2850
- const socialGrid = document.createElement('div');
2851
- socialGrid.className = 'social-buttons-grid';
2852
+ // GitHub button
2852
2853
  if (this.options.enableOAuth?.github) {
2853
- const githubBtn = this.createSocialButton('github', 'GitHub', 'login');
2854
- socialGrid.appendChild(githubBtn);
2854
+ const githubBtn = this.createSocialButton('github', 'Github', 'login', true);
2855
+ socialButtons.appendChild(githubBtn);
2855
2856
  }
2857
+ // Discord button
2856
2858
  if (this.options.enableOAuth?.discord) {
2857
- const discordBtn = this.createSocialButton('discord', 'Discord', 'login');
2858
- socialGrid.appendChild(discordBtn);
2859
+ const discordBtn = this.createSocialButton('discord', 'Discord', 'login', true);
2860
+ socialButtons.appendChild(discordBtn);
2859
2861
  }
2860
- if (socialGrid.children.length > 0) {
2861
- form.appendChild(socialGrid);
2862
+ if (socialButtons.children.length > 0) {
2863
+ form.appendChild(socialButtons);
2862
2864
  }
2863
2865
  // Divider
2864
2866
  const divider = document.createElement('div');
@@ -2883,8 +2885,8 @@ class AuthModal {
2883
2885
  termsText.className = 'terms-text';
2884
2886
  termsText.innerHTML = `
2885
2887
  By clicking continue, you agree to our
2886
- <a href="#" class="terms-link">Terms of Service</a> and
2887
- <a href="#" class="terms-link">Privacy Policy</a>.
2888
+ <a href="https://seaverse.ai/terms" class="terms-link">Terms of Service</a> and
2889
+ <a href="https://seaverse.ai/privacy" class="terms-link">Privacy Policy</a>.
2888
2890
  `;
2889
2891
  form.appendChild(termsText);
2890
2892
  view.appendChild(form);
@@ -2965,7 +2967,7 @@ class AuthModal {
2965
2967
  divider.className = 'divider';
2966
2968
  divider.textContent = 'OR SIGN IN WITH';
2967
2969
  form.appendChild(divider);
2968
- // Social buttons grid (Google + GitHub)
2970
+ // Social buttons grid (Google + GitHub + Discord)
2969
2971
  const socialGrid = document.createElement('div');
2970
2972
  socialGrid.className = 'social-buttons-grid';
2971
2973
  if (this.options.enableOAuth?.google) {
@@ -2976,13 +2978,13 @@ class AuthModal {
2976
2978
  const githubBtn = this.createSocialButton('github', 'Github', 'login', false, 'old');
2977
2979
  socialGrid.appendChild(githubBtn);
2978
2980
  }
2979
- if (socialGrid.children.length > 0) {
2980
- form.appendChild(socialGrid);
2981
- }
2982
2981
  // Discord button (full width)
2983
2982
  if (this.options.enableOAuth?.discord) {
2984
2983
  const discordBtn = this.createSocialButton('discord', 'Discord', 'login', true, 'old');
2985
- form.appendChild(discordBtn);
2984
+ socialGrid.appendChild(discordBtn);
2985
+ }
2986
+ if (socialGrid.children.length > 0) {
2987
+ form.appendChild(socialGrid);
2986
2988
  }
2987
2989
  }
2988
2990
  view.appendChild(form);
@@ -3066,7 +3068,7 @@ class AuthModal {
3066
3068
  divider.className = 'divider';
3067
3069
  divider.textContent = 'OR SIGN UP WITH';
3068
3070
  form.appendChild(divider);
3069
- // Social buttons grid (Google + GitHub)
3071
+ // Social buttons grid (Google + GitHub + Discord)
3070
3072
  const socialGrid = document.createElement('div');
3071
3073
  socialGrid.className = 'social-buttons-grid';
3072
3074
  // Google button - only if enabled
@@ -3079,14 +3081,14 @@ class AuthModal {
3079
3081
  const githubBtn = this.createSocialButton('github', 'Github', 'signup');
3080
3082
  socialGrid.appendChild(githubBtn);
3081
3083
  }
3082
- // Only add grid if it has buttons
3083
- if (socialGrid.children.length > 0) {
3084
- form.appendChild(socialGrid);
3085
- }
3086
3084
  // Discord button (full width) - only if configured
3087
3085
  if (this.options.enableOAuth?.discord) {
3088
3086
  const discordBtn = this.createSocialButton('discord', 'Discord', 'signup', true);
3089
- form.appendChild(discordBtn);
3087
+ socialGrid.appendChild(discordBtn);
3088
+ }
3089
+ // Only add grid if it has buttons
3090
+ if (socialGrid.children.length > 0) {
3091
+ form.appendChild(socialGrid);
3090
3092
  }
3091
3093
  }
3092
3094
  container.appendChild(form);
@@ -4219,7 +4221,14 @@ class AuthModal {
4219
4221
  * - Redirecting back to returnUrl with token
4220
4222
  */
4221
4223
  async startOAuthFlow(provider) {
4224
+ // 防止重复点击:如果已经有 OAuth 登录在进行中,直接返回
4225
+ if (this.isOAuthInProgress) {
4226
+ console.log(`[AuthModal] OAuth login already in progress, ignoring ${provider} login request`);
4227
+ return;
4228
+ }
4222
4229
  try {
4230
+ // 设置登录进行中标志
4231
+ this.isOAuthInProgress = true;
4223
4232
  // Get the return URL (where user should be redirected after OAuth)
4224
4233
  const return_url = this.options.returnUrl || window.location.href;
4225
4234
  // Call backend to get OAuth authorization URL
@@ -4244,6 +4253,8 @@ class AuthModal {
4244
4253
  window.location.href = authorizeUrl;
4245
4254
  }
4246
4255
  catch (error) {
4256
+ // 登录失败,释放锁定
4257
+ this.isOAuthInProgress = false;
4247
4258
  const err = error instanceof Error ? error : new Error(`${provider} OAuth failed`);
4248
4259
  this.showError('OAuth Failed', err.message);
4249
4260
  if (this.options.onError) {