.signin-page{min-height:100vh;display:flex;flex-direction:row;background:var(--bg-primary);font-family:var(--font-body);color:var(--text-primary)}.signin-brand{flex:0 0 45%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-3xl) var(--space-2xl);background:linear-gradient(135deg,#1c1917,#292524,#3d3632);color:#f5f0eb;position:relative;overflow:hidden}.signin-brand:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 50%,rgba(212,101,74,.08) 0%,transparent 70%);pointer-events:none}.signin-brand-content{position:relative;z-index:1;max-width:400px;text-align:center}.signin-brand-logo{font-family:var(--font-heading);font-size:2.25rem;font-weight:var(--weight-bold);margin-bottom:var(--space-md);letter-spacing:-.02em}.signin-brand-tagline{font-size:var(--text-body-lg);color:#c4baa8;margin-bottom:var(--space-2xl);line-height:var(--leading-relaxed)}.signin-brand-features{list-style:none;padding:0;margin:0 0 var(--space-2xl) 0;text-align:left}.signin-brand-features li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;font-size:var(--text-body);color:#c4baa8}.signin-brand-features li i{color:var(--accent-primary);width:20px;text-align:center;flex-shrink:0}.signin-brand-apply{margin-top:var(--space-lg)}.signin-brand-apply a{color:var(--accent-primary);text-decoration:none;font-size:var(--text-small);font-weight:var(--weight-medium);transition:color var(--duration-normal) var(--ease-smooth)}.signin-brand-apply a:hover{color:var(--accent-secondary);text-decoration:underline}.signin-auth{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-2xl);overflow-y:auto}.signin-auth-inner{width:100%;max-width:440px}.signin-theme-toggle{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;color:var(--text-secondary);font-size:1.25rem;cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-sm);transition:color var(--duration-normal) var(--ease-smooth),background var(--duration-normal) var(--ease-smooth)}.signin-theme-toggle:hover{color:var(--accent-primary);background:var(--bg-inset)}.signin-section{display:none}.signin-section.active{display:block}.signin-heading{font-family:var(--font-heading);font-size:1.75rem;font-weight:var(--weight-bold);margin:0 0 var(--space-xs) 0;letter-spacing:-.02em}.signin-subheading{color:var(--text-secondary);font-size:var(--text-body);margin:0 0 var(--space-xl) 0;line-height:var(--leading-normal)}.signin-migration-notice{display:flex;align-items:flex-start;gap:14px;padding:18px;margin:0 0 var(--space-xl);border:2px solid #f97316;border-left:8px solid #ea580c;border-radius:var(--radius-sm);background:#fff7ed;color:var(--text-primary);box-shadow:0 12px 32px #ea580c2e}.signin-migration-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:#ea580c;color:#fff;box-shadow:0 8px 20px #ea580c4d}.signin-migration-icon i{font-size:1.25rem;line-height:1}.signin-migration-notice strong{display:block;margin-bottom:6px;color:#7c2d12;font-size:1.05rem;font-weight:var(--weight-bold);line-height:1.25}.signin-migration-notice span{display:block;color:#7c2d12;font-size:var(--text-body);line-height:var(--leading-relaxed)}.signin-migration-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.signin-migration-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:9px 12px;border-radius:var(--radius-sm);background:#fff;color:#7c2d12;border:1px solid rgba(124,45,18,.18);font-size:var(--text-small);font-weight:var(--weight-semibold);text-decoration:none;transition:border-color var(--duration-normal) var(--ease-smooth),box-shadow var(--duration-normal) var(--ease-smooth),transform var(--duration-fast) var(--ease-smooth)}.signin-migration-actions a:hover{border-color:#ea580c;box-shadow:0 6px 18px #ea580c29;transform:translateY(-1px)}.signin-migration-actions a:focus-visible{outline:3px solid rgba(234,88,12,.35);outline-offset:2px}.signin-migration-actions .fa-discord{color:#5865f2}.signin-migration-actions .fa-envelope{color:#ea580c}html.dark .signin-migration-notice,body.dark .signin-migration-notice{background:#7c2d125c;border-color:#fb923c;border-left-color:#f97316;box-shadow:0 12px 32px #fb923c29}html.dark .signin-migration-notice strong,html.dark .signin-migration-notice span,body.dark .signin-migration-notice strong,body.dark .signin-migration-notice span{color:#fed7aa}html.dark .signin-migration-actions a,body.dark .signin-migration-actions a{background:#111827eb;color:#fed7aa;border-color:#fb923c52}.signin-form-group{margin-bottom:var(--space-md)}.signin-label{display:block;font-size:var(--text-small);font-weight:var(--weight-semibold);color:var(--text-secondary);margin-bottom:6px}.signin-input{width:100%;padding:12px var(--space-md);border:1.5px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-body);font-family:var(--font-body);transition:border-color var(--duration-normal) var(--ease-smooth),box-shadow var(--duration-normal) var(--ease-smooth);box-sizing:border-box}.signin-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(var(--accent-primary-rgb),.15)}.signin-input::placeholder{color:var(--text-tertiary)}.signin-password-field{position:relative}.signin-password-field .signin-input{padding-right:44px}.signin-password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;font-size:1rem}.signin-password-toggle:hover{color:var(--text-secondary)}.signin-btn{width:100%;padding:14px var(--space-lg);border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);font-family:var(--font-body);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);transition:background var(--duration-normal) var(--ease-smooth),transform var(--duration-fast) var(--ease-smooth),box-shadow var(--duration-normal) var(--ease-smooth);margin-top:var(--space-sm)}.signin-btn:active{transform:scale(.98)}.signin-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.signin-btn-primary{background:var(--accent-primary);color:#fff;box-shadow:0 2px 8px rgba(var(--accent-primary-rgb),.3)}.signin-btn-primary:hover:not(:disabled){box-shadow:0 4px 16px rgba(var(--accent-primary-rgb),.4)}.signin-link{color:var(--accent-primary);text-decoration:none;font-size:var(--text-small);font-weight:var(--weight-medium);cursor:pointer;background:none;border:none;font-family:var(--font-body);padding:0}.signin-link:hover{text-decoration:underline}.signin-form-footer{display:flex;justify-content:flex-end;align-items:center;margin-top:var(--space-xs);margin-bottom:var(--space-sm)}.signin-footer{text-align:center;margin-top:var(--space-xl);font-size:var(--text-small);color:var(--text-secondary)}.signin-footer a{color:var(--accent-primary);text-decoration:none;font-weight:var(--weight-semibold);margin-left:4px}.signin-footer a:hover{text-decoration:underline}.signin-back-link{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:var(--text-small);font-weight:var(--weight-medium);text-decoration:none;background:none;border:none;cursor:pointer;font-family:var(--font-body);padding:0;margin-bottom:var(--space-lg);transition:color var(--duration-normal) var(--ease-smooth)}.signin-back-link:hover{color:var(--accent-primary)}.signin-error{display:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:#fef2f2;border:1px solid #fecaca;color:#dc2626;font-size:var(--text-small);margin-bottom:var(--space-md)}html.dark .signin-error,body.dark .signin-error{background:#dc26261a;border-color:#dc26264d;color:#fca5a5}.signin-otp-input{text-align:center;font-size:1.5rem;letter-spacing:.3em;font-weight:var(--weight-bold)}.signin-forgot-step{display:none}.signin-forgot-step.active{display:block}.signin-btn .spinner{display:none;width:18px;height:18px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:signin-spin .6s linear infinite}.signin-btn.loading .spinner{display:inline-block}.signin-btn.loading .btn-text{display:none}@keyframes signin-spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.signin-page{flex-direction:column}.signin-brand{flex:none;padding:var(--space-xl) var(--space-md)}.signin-brand-features{display:none}.signin-brand-tagline{font-size:var(--text-small);margin-bottom:var(--space-md)}.signin-brand-logo{font-size:1.5rem;margin-bottom:var(--space-sm)}.signin-brand-apply{display:none}.signin-auth{padding:var(--space-lg) var(--space-md)}}@media (max-width: 480px){.signin-brand,.signin-auth{padding:var(--space-md)}.signin-auth-inner{max-width:100%}}.signin-divider{display:flex;align-items:center;text-align:center;margin:18px 0 14px;color:var(--text-secondary, #888);font-size:13px}.signin-divider:before,.signin-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color, #e0e0e0)}.signin-divider span{padding:0 12px}.signin-btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 12px;background:#fff;color:#1f1f1f;border:1px solid #dadce0;border-radius:6px;font-weight:500;font-size:14px;text-decoration:none;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease}.signin-btn-google:hover{background:#f8f9fa;border-color:#c8cdd3;box-shadow:0 1px 2px #3c40434d}.signin-btn-google:active{background:#f1f3f4}.signin-btn-google:focus-visible{outline:2px solid #4285f4;outline-offset:2px}.signin-btn-google svg{flex-shrink:0}:root.dark .signin-btn-google{background:#1f1f1f;color:#e8eaed;border-color:#5f6368}:root.dark .signin-btn-google:hover{background:#2d2d2d;border-color:#80868b}:root.dark .signin-btn-google:active{background:#3c3c3c}:root.dark .signin-divider{color:var(--text-secondary, #aaa)}:root.dark .signin-divider:before,:root.dark .signin-divider:after{border-bottom-color:var(--border-color, #3a3a3a)}
