.auth-page{min-height:100vh;justify-content:center;padding:16px;background:var(--bg-primary)}.auth-card-shell,.auth-page{display:flex;align-items:center}.auth-card-shell{width:100%;max-width:500px;max-height:calc(100dvh - 32px);flex-direction:column;gap:16px;min-height:0}.auth-brand{width:auto;height:40px;display:flex;flex:0 0 auto;align-items:center;justify-content:center;border-radius:var(--radius)}.auth-brand:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.auth-brand-logo{display:block;width:auto;height:40px;object-fit:contain}.auth-page .modal-content{position:relative;background:var(--surface);border:none;border-radius:var(--radius-lg);box-shadow:none;width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.auth-page .auth-card-shell>.modal-content{max-height:min(90vh,calc(100dvh - 88px))}.auth-page .modal-header{padding:var(--space-lg);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.auth-page .modal-header h2{font-size:16px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-sm)}.auth-page .modal-close{background:none;border:none;padding:6px;border-radius:var(--radius);color:var(--text-tertiary);cursor:pointer;transition:var(--transition);display:inline-flex}.auth-page .modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.auth-page .modal-body{padding:var(--space-lg);flex:1 1;overflow-y:auto;min-height:0}.auth-page .form-group{display:flex;flex-direction:column;margin-bottom:var(--space)}.auth-page .form-group label{margin-bottom:var(--space-sm);font-weight:500;color:var(--text-primary);font-size:13px;display:flex;align-items:center;gap:var(--space-sm)}.auth-page .form-group input{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--bg-tertiary);color:var(--text-primary);transition:var(--transition);font-family:inherit}.auth-page .form-group input:focus{outline:none;border-color:var(--accent);background:var(--surface)}.auth-page .auth-actions{margin-top:var(--space-lg)}.auth-page .auth-copy{margin:0 0 var(--space);color:var(--text-secondary);font-size:13px;line-height:1.5}.auth-page .auth-options-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space);margin:var(--space-sm) 0}.auth-page .auth-inline-link{color:var(--accent);font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}.auth-page .auth-inline-link:hover{color:var(--accent-hover);text-decoration:underline}.auth-page .auth-divider{position:relative;text-align:center;margin:var(--space-lg) 0;color:var(--text-tertiary);font-size:13px}.auth-page .auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border);z-index:1}.auth-page .auth-divider span{background:var(--surface);padding:0 var(--space);position:relative;z-index:2}.auth-page .social-login{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.auth-page .btn-social{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.auth-page .btn-social:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.auth-page .btn-social.google{border-color:#4285f4;color:#4285f4}.auth-page .btn-social.google:hover{background:rgba(66,133,244,.1)}.auth-page .btn-social.github{border-color:#333;color:var(--text-primary)}.auth-page .btn-social.github:hover{background:var(--bg-hover)}.auth-page .auth-links{text-align:center;margin-top:var(--space-lg)}.auth-page .auth-links p{margin:var(--space-sm) 0;font-size:14px;color:var(--text-secondary)}.auth-page .auth-links a{color:var(--accent);text-decoration:none;font-weight:500;transition:var(--transition);display:inline-flex;align-items:center;justify-content:center;gap:6px}.auth-page .auth-links a:hover{color:var(--accent-hover);text-decoration:underline}.auth-page .password-input-container{position:relative;display:flex;align-items:center}.auth-page .password-input-container input{padding-right:45px;flex:1 1}.auth-page .password-toggle{position:absolute;right:12px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:4px;transition:var(--transition);display:flex;align-items:center;justify-content:center}.auth-page .password-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}.auth-page .password-requirements{margin-top:4px}.auth-page .password-requirements small{color:var(--text-tertiary);font-size:12px}.auth-page .checkbox-container{display:flex;align-items:flex-start;gap:var(--space-sm);margin:var(--space-sm) 0}.auth-page .checkbox-input{display:none}.auth-page .checkbox-label{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:14px;color:var(--text-primary);cursor:pointer;line-height:1.4}.auth-page .checkbox-custom{width:18px;height:18px;border:2px solid var(--border);border-radius:4px;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;transition:var(--transition);flex-shrink:0;margin-top:1px}.auth-page .checkbox-input:checked+.checkbox-label .checkbox-custom{background:var(--accent);border-color:var(--accent)}.auth-page .checkbox-input:checked+.checkbox-label .checkbox-custom:after{content:"✓";color:#fff;font-size:12px;font-weight:700}.auth-page .checkbox-label:hover .checkbox-custom{border-color:var(--accent)}.auth-page .full-width{width:100%}.auth-page .auth-message{display:flex;align-items:center;gap:8px;margin-top:var(--space);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-tertiary);color:var(--text-secondary);font-size:13px}.auth-page .auth-message+.form-group{margin-top:var(--space-lg)}.auth-page .auth-message.success{border-left:3px solid var(--success)}.auth-page .auth-message.error{border-left:3px solid var(--danger)}.auth-page .auth-spin{animation:auth-spin .9s linear infinite;flex:0 0 auto}@media (max-width:420px){.auth-card-shell{gap:12px}.auth-page .auth-card-shell>.modal-content{max-height:min(88vh,calc(100dvh - 84px))}.auth-page .auth-options-row{align-items:flex-start;flex-direction:column}.auth-page .auth-inline-link{white-space:normal}}@keyframes auth-spin{to{transform:rotate(1turn)}}