.auth-logo-corner{left:20px;position:fixed;top:16px;z-index:100}.auth-page-container{align-items:center;display:flex;justify-content:center;min-height:95vh;padding:var(--spacing-xl) var(--spacing-md) var(--spacing-xl)}.auth-card{animation:authSlideUp .4s ease;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.2);max-width:700px;padding:var(--spacing-xl);width:100%}@keyframes authSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-card-header{margin-bottom:28px;text-align:center}.auth-card-header h1{color:var(--color-text-primary);font-size:26px;font-weight:700;margin:0 0 6px}.auth-card-header p{color:var(--color-text-secondary);font-size:14px;margin:0}.auth-flash{border-radius:var(--radius-sm);font-size:14px;margin-bottom:var(--spacing-md);padding:10px 14px}.auth-flash-error{background:rgba(255,59,48,.1);border:1px solid rgba(255,59,48,.3);color:#ff3b30}.auth-flash-success{background:rgba(52,199,89,.1);border:1px solid rgba(52,199,89,.3);color:#34c759}.auth-flash-info{background:rgba(0,122,255,.1);border:1px solid rgba(0,122,255,.3);color:#007aff}.auth-flash-warning{background:rgba(255,149,0,.1);border:1px solid rgba(255,149,0,.3);color:#ff9500}.auth-form{display:flex;flex-direction:column;gap:0}.auth-form .form-group{margin-bottom:18px}.auth-form .form-group label{color:var(--color-text-primary);display:block;font-size:14px;font-weight:600;margin-bottom:6px}.auth-form .form-group input{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;box-sizing:border-box;color:var(--color-text-primary);font-family:var(--font-body);font-size:15px;padding:11px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.auth-form .form-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(131,125,255,.12);outline:none}.auth-form .password-field{position:relative}.auth-form .password-field input{padding-right:44px}.auth-link{color:var(--color-primary);font-weight:500;text-decoration:none;transition:color .2s}.auth-link:hover{color:var(--color-accent);text-decoration:underline}.auth-link-small{display:inline-block;font-size:13px;margin-top:6px}.btn-auth-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border:none;border-radius:10px;color:#fff;cursor:pointer;display:block;font-size:15px;font-weight:600;margin-top:4px;padding:13px;text-align:center;text-decoration:none;transition:transform .2s,box-shadow .2s;width:100%}.btn-auth-primary:hover{box-shadow:0 8px 20px rgba(0,0,0,.25);transform:translateY(-1px)}.btn-auth-primary:active{transform:translateY(0)}.btn-auth-secondary{background:transparent;border:2px solid var(--color-border);border-radius:10px;box-sizing:border-box;color:var(--color-text-primary);cursor:pointer;display:block;font-size:15px;font-weight:600;padding:12px;text-align:center;text-decoration:none;transition:border-color .2s,background .2s;width:100%}.btn-auth-secondary:hover{background:rgba(131,125,255,.06);border-color:var(--color-primary)}.btn-auth-back{color:var(--color-text-secondary);display:block;font-size:14px;margin-top:14px;text-align:center;text-decoration:none;transition:color .2s}.btn-auth-back:hover{color:var(--color-primary)}.auth-separator{align-items:center;color:var(--color-text-secondary);display:flex;font-size:13px;gap:var(--spacing-sm);margin:20px 0}.auth-separator:after,.auth-separator:before{background:var(--color-border);content:"";flex:1;height:1px}.registration-layout{display:flex;min-height:100vh}.registration-intro{align-items:center;background:linear-gradient(135deg,var(--color-bg-secondary) 0,var(--color-bg-tertiary) 100%);border-right:1px solid var(--color-border);display:flex;flex:1;justify-content:center;padding:var(--spacing-2xl)}.registration-intro-content{max-width:360px;text-align:center}.registration-intro-logo{filter:drop-shadow(0 0 20px rgba(131,125,255,.4));height:80px;margin-bottom:var(--spacing-lg);width:80px}.registration-intro-content h2{color:var(--color-text-primary);font-size:28px;font-weight:700;margin:0 0 12px}.registration-intro-content p{color:var(--color-text-secondary);font-size:16px;line-height:1.6;margin:0}.registration-form-side{align-items:center;display:flex;flex:1;flex-direction:column;justify-content:center;overflow-y:auto;padding:var(--spacing-2xl) var(--spacing-xl)}.avatar-upload-zone{align-items:center;border:2px dashed var(--color-border);border-radius:12px;display:flex;gap:var(--spacing-lg);padding:16px;transition:border-color .2s,background .2s}.avatar-upload-zone.drag-over{background:rgba(131,125,255,.05);border-color:var(--color-primary)}.avatar-preview{background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:50%;flex-shrink:0;height:72px;object-fit:cover;width:72px}.avatar-upload-hint{display:flex;flex-direction:column;gap:6px}.avatar-upload-btn{align-items:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:8px 14px;transition:border-color .2s,background .2s}.avatar-upload-btn:hover{background:rgba(131,125,255,.06);border-color:var(--color-primary)}.auth-notice{font-size:13px;line-height:1.5;margin:0 0 16px}.auth-notice,.auth-support-hint{color:var(--color-text-secondary)}.auth-support-hint{font-size:12px;line-height:1.6;margin-top:20px;text-align:center}.auth-support-hint a{color:var(--color-primary);text-decoration:none}.auth-support-hint a:hover{text-decoration:underline}.auth-form .form-group--inline{align-items:center;display:flex;flex-direction:row;gap:10px;margin-bottom:18px}.auth-form .form-group--inline input[type=checkbox]{flex-shrink:0;width:auto}.auth-form .form-group--inline label{color:var(--color-text-secondary);cursor:pointer;font-size:13px;font-weight:400;margin-bottom:0}.auth-card--wide{max-width:520px}@media (max-width:768px){.registration-layout{flex-direction:column}.registration-intro{display:none}.registration-form-side{padding:var(--spacing-xl) var(--spacing-md)}.auth-card{padding:28px 20px}.auth-card-header h1{font-size:22px}.auth-logo-corner{position:relative}}