/* File contains the styles for the login page --> defines the layout of the login screen */ .login-page { min-height: 100vh; display: flex; /* enables flexbox layout for centering */ justify-content: center; /* horizontally centers the card */ align-items: center; /* vertically centers the card */ padding: 24px; /* space inside the page edges */ /* Layered background: two soft radial gradients for color accents, then the main background color */ background: radial-gradient(circle at top left, rgba(59, 130, 246, 0.12), transparent 35%), radial-gradient(circle at bottom right, rgba(236, 72, 153, 0.10), transparent 30%), var(--bg); } /* Main login card container */ .login-card { width: 100%; max-width: 430px; /* prevents the card from getting too wide on large screens */ background: var(--card); /* uses card color from variables.css */ border-radius: 24px; /* rounded corners */ box-shadow: var(--shadow); /* soft shadow for card elevation */ padding: 40px 32px; /* inner spacing for content */ } /* Logo area above the form */ .login-logo-wrapper { display: flex; /* centers logo horizontally */ justify-content: center; margin-bottom: 20px; width: 100%; overflow: hidden; /* hides any part of the logo that overflows the container */ } /* Full logo styling */ .login-logo { width: 100%; max-width: 220px; /* logo never exceeds this width */ height: auto; display: block; object-fit: contain; /* keeps logo aspect ratio, prevents stretching */ } .login-title { font-size: 2rem; font-weight: 700; text-align: center; margin-bottom: 8px; } .login-subtitle { text-align: center; color: var(--text-muted); margin-bottom: 28px; } /* Form layout */ .login-form { display: flex; flex-direction: column; /* stack form fields vertically */ gap: 18px; /* vertical space between form groups */ } .form-group { display: flex; flex-direction: column; /* label above input */ gap: 8px; /* space between label and input */ } .form-group label { font-weight: 600; font-size: 0.95rem; } .form-group input { width: 100%; padding: 14px 16px; /* vertical and horizontal padding for input */ border: 1px solid #dbe2ea; /* subtle border */ border-radius: 14px; /* rounded input corners */ background: #ffffff; font-size: 1rem; color: var(--text); } /* Highlight input when focused */ .form-group input:focus { outline: none; /* removes default browser outline */ border-color: #7c3aed; /* purple border on focus */ box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.10); /* soft glow for focus state */ } /* Password field with button inside the same row */ .password-wrapper { display: flex; /* input and button in one row */ align-items: center; /* vertically center input and button */ gap: 10px; /* space between input and show/hide button */ } .password-wrapper input { flex: 1; /* input takes all available space, button stays compact */ } .toggle-password { border: none; background: transparent; /* no background for button */ color: #64748b; font-weight: 600; cursor: pointer; /* pointer cursor for better UX */ } /* Main login action button */ .login-button { margin-top: 4px; border: none; border-radius: 14px; padding: 14px 18px; background: var(--gradient); /* uses a gradient background from variables */ color: white; font-size: 1rem; font-weight: 700; cursor: pointer; box-shadow: 0 8px 20px rgba(99, 102, 241, 0.22); /* blue shadow for button depth */ } .login-button:hover { opacity: 0.95; /* slight fade on hover for feedback */ } .signup-text { margin-top: 24px; text-align: center; color: var(--text-muted); /* used for the 'Don't have an account?' and link below the form */ } .signup-text a { color: #2563eb; text-decoration: none; font-weight: 600; /* blue link for sign up/login */ } /* Smaller spacing and sizing for narrow screens */ @media (max-width: 480px) { /* Responsive adjustments for small screens (mobile) */ .login-card { padding: 28px 20px; /* less padding on mobile */ border-radius: 20px; /* slightly less rounded */ } .login-title { font-size: 1.7rem; /* smaller title on mobile */ } .login-logo { max-width: 170px; /* smaller logo on mobile */ } }