<div class="login-container">
  <div class="login-form">
    <div class="form-header">
      <h2 class="form-title">Welcome Back</h2>
      <p class="form-subtitle">Sign in to your account</p>
    </div>
    
    <form class="auth-form" id="loginForm">
      <div class="input-group">
        <div class="input-wrapper">
          <input type="email" id="email" class="form-input" placeholder=" " required>
          <label for="email" class="form-label">Email Address</label>
          <div class="input-icon">
            <svg viewBox="0 0 24 24" fill="currentColor">
              <path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
            </svg>
          </div>
        </div>
      </div>
      
      <div class="input-group">
        <div class="input-wrapper">
          <input type="password" id="password" class="form-input" placeholder=" " required>
          <label for="password" class="form-label">Password</label>
          <div class="input-icon">
            <svg viewBox="0 0 24 24" fill="currentColor">
              <path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/>
            </svg>
          </div>
          <button type="button" class="password-toggle" id="passwordToggle">
            <svg class="eye-open" viewBox="0 0 24 24" fill="currentColor">
              <path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/>
            </svg>
            <svg class="eye-closed" viewBox="0 0 24 24" fill="currentColor" style="display: none;">
              <path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"/>
            </svg>
          </button>
        </div>
      </div>
      
      <div class="form-options">
        <label class="checkbox-wrapper">
          <input type="checkbox" id="remember" class="checkbox-input">
          <span class="checkbox-custom"></span>
          <span class="checkbox-label">Remember me</span>
        </label>
        <a href="#" class="forgot-link">Forgot password?</a>
      </div>
      
      <button type="submit" class="login-btn">
        <span class="btn-text">Sign In</span>
        <div class="btn-loader" style="display: none;">
          <div class="spinner"></div>
        </div>
      </button>
    </form>
    
    <div class="divider">
      <span class="divider-text">Or continue with</span>
    </div>
    
    <div class="social-login">
      <button class="social-btn google-btn">
        <svg viewBox="0 0 24 24" fill="currentColor">
          <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"/>
          <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"/>
          <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"/>
          <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"/>
        </svg>
        Google
      </button>
      
      <button class="social-btn github-btn">
        <svg viewBox="0 0 24 24" fill="currentColor">
          <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
        </svg>
        GitHub
      </button>
    </div>
    
    <div class="form-footer">
      <p class="signup-text">
        Don't have an account? 
        <a href="#" class="signup-link">Sign up</a>
      </p>
    </div>
  </div>
</div>
     .login-container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  padding: 20px;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}
.login-form {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(20px);
  border-radius: 20px;
  padding: 40px;
  width: 100%;
  max-width: 400px;
  box-shadow: 
    0 20px 40px rgba(0, 0, 0, 0.1),
    0 0 0 1px rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.form-header {
  text-align: center;
  margin-bottom: 32px;
}
.form-title {
  font-size: 28px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  background: linear-gradient(135deg, #667eea, #764ba2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.form-subtitle {
  font-size: 16px;
  color: #666;
  margin: 0;
}
.input-group {
  margin-bottom: 24px;
}
.input-wrapper {
  position: relative;
}
.form-input {
  width: 100%;
  height: 56px;
  padding: 16px 48px 16px 16px;
  border: 2px solid #e1e5e9;
  border-radius: 12px;
  font-size: 16px;
  background: #fff;
  transition: all 0.3s ease;
  outline: none;
  box-sizing: border-box;
}
.form-input:focus {
  border-color: #667eea;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}
.form-input:focus + .form-label,
.form-input:not(:placeholder-shown) + .form-label {
  transform: translateY(-28px) scale(0.85);
  color: #667eea;
  background: #fff;
  padding: 0 8px;
}
.form-label {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  color: #999;
  pointer-events: none;
  transition: all 0.3s ease;
  background: transparent;
}
.input-icon {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: #999;
  transition: color 0.3s ease;
}
.form-input:focus ~ .input-icon {
  color: #667eea;
}
.password-toggle {
  position: absolute;
  right: 48px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  width: 20px;
  height: 20px;
  color: #999;
  cursor: pointer;
  transition: color 0.3s ease;
}
.password-toggle:hover {
  color: #667eea;
}
.password-toggle svg {
  width: 100%;
  height: 100%;
}
.form-options {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 32px;
}
.checkbox-wrapper {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.checkbox-input {
  display: none;
}
.checkbox-custom {
  width: 18px;
  height: 18px;
  border: 2px solid #e1e5e9;
  border-radius: 4px;
  margin-right: 8px;
  position: relative;
  transition: all 0.3s ease;
}
.checkbox-input:checked + .checkbox-custom {
  background: #667eea;
  border-color: #667eea;
}
.checkbox-input:checked + .checkbox-custom::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 2px;
  width: 4px;
  height: 8px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.checkbox-label {
  font-size: 14px;
  color: #666;
}
.forgot-link {
  font-size: 14px;
  color: #667eea;
  text-decoration: none;
  transition: color 0.3s ease;
}
.forgot-link:hover {
  color: #5a6fd8;
}
.login-btn {
  width: 100%;
  height: 56px;
  background: linear-gradient(135deg, #667eea, #764ba2);
  border: none;
  border-radius: 12px;
  color: white;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  margin-bottom: 24px;
}
.login-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
}
.login-btn:active {
  transform: translateY(0);
}
.login-btn.loading .btn-text {
  opacity: 0;
}
.login-btn.loading .btn-loader {
  display: flex !important;
}
.btn-loader {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  align-items: center;
  justify-content: center;
}
.spinner {
  width: 20px;
  height: 20px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top: 2px solid white;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.divider {
  position: relative;
  text-align: center;
  margin: 24px 0;
}
.divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background: #e1e5e9;
}
.divider-text {
  background: rgba(255, 255, 255, 0.95);
  padding: 0 16px;
  font-size: 14px;
  color: #999;
}
.social-login {
  display: flex;
  gap: 12px;
  margin-bottom: 24px;
}
.social-btn {
  flex: 1;
  height: 48px;
  border: 2px solid #e1e5e9;
  border-radius: 12px;
  background: white;
  color: #666;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.social-btn:hover {
  border-color: #667eea;
  background: #f8f9ff;
}
.social-btn svg {
  width: 20px;
  height: 20px;
}
.google-btn:hover {
  border-color: #4285f4;
  background: #f8f9ff;
}
.github-btn:hover {
  border-color: #333;
  background: #f8f9ff;
}
.form-footer {
  text-align: center;
}
.signup-text {
  font-size: 14px;
  color: #666;
  margin: 0;
}
.signup-link {
  color: #667eea;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.3s ease;
}
.signup-link:hover {
  color: #5a6fd8;
}
/* Responsive design */
@media (max-width: 480px) {
  .login-container {
    padding: 16px;
  }
  
  .login-form {
    padding: 32px 24px;
  }
  
  .form-title {
    font-size: 24px;
  }
  
  .social-login {
    flex-direction: column;
  }
}
     document.addEventListener('DOMContentLoaded', () => {
  const loginForm = document.getElementById('loginForm');
  const passwordToggle = document.getElementById('passwordToggle');
  const passwordInput = document.getElementById('password');
  const loginBtn = loginForm.querySelector('.login-btn');
  const emailInput = document.getElementById('email');
  const rememberCheckbox = document.getElementById('remember');
  
  // Password visibility toggle
  passwordToggle.addEventListener('click', () => {
    const eyeOpen = passwordToggle.querySelector('.eye-open');
    const eyeClosed = passwordToggle.querySelector('.eye-closed');
    
    if (passwordInput.type === 'password') {
      passwordInput.type = 'text';
      eyeOpen.style.display = 'none';
      eyeClosed.style.display = 'block';
    } else {
      passwordInput.type = 'password';
      eyeOpen.style.display = 'block';
      eyeClosed.style.display = 'none';
    }
  });
  
  // Form validation
  function validateEmail(email) {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    return emailRegex.test(email);
  }
  
  function validatePassword(password) {
    return password.length >= 6;
  }
  
  function showError(input, message) {
    // Remove existing error
    const existingError = input.parentNode.querySelector('.error-message');
    if (existingError) {
      existingError.remove();
    }
    
    // Add error styling
    input.style.borderColor = '#e74c3c';
    
    // Add error message
    const errorDiv = document.createElement('div');
    errorDiv.className = 'error-message';
    errorDiv.textContent = message;
    errorDiv.style.cssText = `
      color: #e74c3c;
      font-size: 12px;
      margin-top: 4px;
      margin-left: 4px;
    `;
    input.parentNode.appendChild(errorDiv);
  }
  
  function clearError(input) {
    const errorMessage = input.parentNode.querySelector('.error-message');
    if (errorMessage) {
      errorMessage.remove();
    }
    input.style.borderColor = '#e1e5e9';
  }
  
  // Real-time validation
  emailInput.addEventListener('blur', () => {
    if (emailInput.value && !validateEmail(emailInput.value)) {
      showError(emailInput, 'Please enter a valid email address');
    } else {
      clearError(emailInput);
    }
  });
  
  passwordInput.addEventListener('blur', () => {
    if (passwordInput.value && !validatePassword(passwordInput.value)) {
      showError(passwordInput, 'Password must be at least 6 characters');
    } else {
      clearError(passwordInput);
    }
  });
  
  // Form submission
  loginForm.addEventListener('submit', async (e) => {
    e.preventDefault();
    
    const email = emailInput.value.trim();
    const password = passwordInput.value;
    const remember = rememberCheckbox.checked;
    
    // Clear previous errors
    clearError(emailInput);
    clearError(passwordInput);
    
    let hasErrors = false;
    
    // Validate email
    if (!email) {
      showError(emailInput, 'Email is required');
      hasErrors = true;
    } else if (!validateEmail(email)) {
      showError(emailInput, 'Please enter a valid email address');
      hasErrors = true;
    }
    
    // Validate password
    if (!password) {
      showError(passwordInput, 'Password is required');
      hasErrors = true;
    } else if (!validatePassword(password)) {
      showError(passwordInput, 'Password must be at least 6 characters');
      hasErrors = true;
    }
    
    if (hasErrors) {
      return;
    }
    
    // Show loading state
    loginBtn.classList.add('loading');
    loginBtn.disabled = true;
    
    try {
      // Simulate API call
      await new Promise(resolve => setTimeout(resolve, 2000));
      
      // Simulate successful login
      console.log('Login successful:', { email, remember });
      
      // Show success message
      const successDiv = document.createElement('div');
      successDiv.textContent = 'Login successful! Redirecting...';
      successDiv.style.cssText = `
        background: #d4edda;
        color: #155724;
        padding: 12px;
        border-radius: 8px;
        margin-bottom: 16px;
        text-align: center;
        border: 1px solid #c3e6cb;
      `;
      loginForm.insertBefore(successDiv, loginForm.firstChild);
      
      // Simulate redirect after delay
      setTimeout(() => {
        console.log('Redirecting to dashboard...');
      }, 1500);
      
    } catch (error) {
      console.error('Login failed:', error);
      
      // Show error message
      const errorDiv = document.createElement('div');
      errorDiv.textContent = 'Login failed. Please check your credentials.';
      errorDiv.style.cssText = `
        background: #f8d7da;
        color: #721c24;
        padding: 12px;
        border-radius: 8px;
        margin-bottom: 16px;
        text-align: center;
        border: 1px solid #f5c6cb;
      `;
      loginForm.insertBefore(errorDiv, loginForm.firstChild);
      
    } finally {
      // Hide loading state
      loginBtn.classList.remove('loading');
      loginBtn.disabled = false;
    }
  });
  
  // Social login handlers
  const socialBtns = document.querySelectorAll('.social-btn');
  socialBtns.forEach(btn => {
    btn.addEventListener('click', (e) => {
      const provider = btn.classList.contains('google-btn') ? 'Google' : 'GitHub';
      console.log(`${provider} login clicked`);
      
      // Add loading state to social button
      btn.style.opacity = '0.7';
      btn.disabled = true;
      
      // Simulate social login
      setTimeout(() => {
        btn.style.opacity = '1';
        btn.disabled = false;
        console.log(`${provider} login completed`);
      }, 1500);
    });
  });
  
  // Input focus effects
  const inputs = document.querySelectorAll('.form-input');
  inputs.forEach(input => {
    input.addEventListener('focus', () => {
      input.parentNode.classList.add('focused');
    });
    
    input.addEventListener('blur', () => {
      input.parentNode.classList.remove('focused');
    });
  });
  
  // Keyboard shortcuts
  document.addEventListener('keydown', (e) => {
    // Enter key to submit form
    if (e.key === 'Enter' && (emailInput === document.activeElement || passwordInput === document.activeElement)) {
      loginForm.dispatchEvent(new Event('submit'));
    }
  });
});