medichat / src /Styles /auth.css
gekina's picture
Upload 33 files
0156bac verified
/* ============================================
AUTHENTICATION PAGES STYLES
============================================ */
/* Auth Section */
.auth-section {
min-height: calc(100vh - 200px);
display: flex;
align-items: center;
justify-content: center;
padding: 80px 20px;
background: linear-gradient(135deg, #f5f9ff 0%, #e8f0fe 100%);
}
.auth-container {
max-width: 480px;
margin: 0 auto;
width: 100%;
animation: fadeIn 0.6s ease-out;
}
.auth-card {
background: white;
border-radius: 20px;
padding: 50px 40px;
box-shadow: 0 15px 50px rgba(42, 82, 152, 0.12);
border: 1px solid rgba(42, 82, 152, 0.08);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.auth-card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 60px rgba(42, 82, 152, 0.18);
}
.auth-title {
color: #2a5298;
font-size: 32px;
margin-bottom: 10px;
text-align: center;
font-weight: 700;
background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.auth-subtitle {
color: #666;
text-align: center;
margin-bottom: 40px;
font-size: 16px;
line-height: 1.5;
max-width: 350px;
margin-left: auto;
margin-right: auto;
}
/* Auth Form */
.auth-form {
margin: 35px 0;
}
.form-group {
margin-bottom: 25px;
position: relative;
}
.form-group label {
display: block;
margin-bottom: 10px;
color: #333;
font-weight: 600;
font-size: 15px;
display: flex;
align-items: center;
gap: 5px;
}
.form-group label::after {
content: '*';
color: #e74c3c;
font-size: 18px;
display: none;
}
.form-group label.required::after {
display: inline-block;
}
.form-group input,
.form-group select {
width: 100%;
padding: 16px 18px;
border: 2px solid #e0e7ff;
border-radius: 12px;
font-size: 16px;
transition: all 0.3s ease;
background-color: #f8faff;
color: #333;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.form-group input:focus,
.form-group select:focus {
outline: none;
border-color: #2a5298;
background-color: white;
box-shadow: 0 0 0 4px rgba(42, 82, 152, 0.1);
}
.form-group input::placeholder {
color: #999;
font-size: 15px;
}
.form-group input.error,
.form-group select.error {
border-color: #e74c3c;
background-color: #fff8f8;
}
.form-group input.error:focus {
box-shadow: 0 0 0 4px rgba(231, 76, 60, 0.1);
}
.error-message {
color: #e74c3c;
font-size: 13px;
margin-top: 8px;
display: flex;
align-items: center;
gap: 6px;
font-weight: 500;
}
.error-message::before {
content: '⚠️';
font-size: 12px;
}
/* Password field container */
.password-field {
position: relative;
}
.password-toggle {
position: absolute;
right: 15px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: #666;
cursor: pointer;
font-size: 18px;
padding: 5px;
transition: color 0.3s;
}
.password-toggle:hover {
color: #2a5298;
}
/* Auth Button */
.auth-btn {
width: 100%;
padding: 18px;
font-size: 17px;
font-weight: 700;
margin-top: 25px;
border-radius: 12px;
background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%);
border: none;
color: white;
cursor: pointer;
transition: all 0.3s ease;
letter-spacing: 0.5px;
text-transform: uppercase;
box-shadow: 0 8px 25px rgba(42, 82, 152, 0.25);
}
.auth-btn:hover {
transform: translateY(-3px);
box-shadow: 0 12px 30px rgba(42, 82, 152, 0.35);
}
.auth-btn:active {
transform: translateY(0);
}
.auth-btn:disabled {
background: #cccccc;
cursor: not-allowed;
transform: none;
box-shadow: none;
}
/* Auth Footer */
.auth-footer {
text-align: center;
padding-top: 25px;
border-top: 1px solid #eef2ff;
color: #666;
font-size: 15px;
line-height: 1.6;
}
.auth-link {
color: #2a5298;
font-weight: 700;
text-decoration: none;
position: relative;
transition: color 0.3s;
padding: 2px 0;
}
.auth-link::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 2px;
background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%);
transition: width 0.3s ease;
}
.auth-link:hover {
color: #1e3c72;
}
.auth-link:hover::after {
width: 100%;
}
/* Alert Messages */
.alert {
padding: 18px 20px;
border-radius: 12px;
margin-bottom: 25px;
font-size: 15px;
display: flex;
align-items: center;
gap: 12px;
animation: slideIn 0.4s ease;
}
.alert-error {
background-color: #ffeaea;
color: #d32f2f;
border: 1px solid #ffcdd2;
}
.alert-success {
background-color: #e8f5e9;
color: #2e7d32;
border: 1px solid #c8e6c9;
}
.alert-info {
background-color: #e3f2fd;
color: #1565c0;
border: 1px solid #bbdefb;
}
.alert::before {
font-size: 20px;
}
.alert-error::before {
content: '❌';
}
.alert-success::before {
content: '✅';
}
.alert-info::before {
content: 'ℹ️';
}
/* Auth Options Divider */
.auth-divider {
display: flex;
align-items: center;
margin: 30px 0;
color: #999;
font-size: 14px;
}
.auth-divider::before,
.auth-divider::after {
content: '';
flex: 1;
height: 1px;
background: linear-gradient(to right, transparent, #ddd, transparent);
}
.auth-divider span {
padding: 0 15px;
}
/* Social Login Buttons */
.social-login {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
margin-top: 20px;
}
.social-btn {
padding: 14px;
border-radius: 10px;
border: 2px solid #e0e7ff;
background: white;
color: #333;
font-weight: 600;
cursor: pointer;
transition: all 0.3s;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
font-size: 15px;
}
.social-btn.google:hover {
background: #f8faff;
border-color: #db4437;
color: #db4437;
}
.social-btn.facebook:hover {
background: #f8faff;
border-color: #4267B2;
color: #4267B2;
}
/* Terms Checkbox */
.terms-checkbox {
display: flex;
align-items: flex-start;
gap: 12px;
margin-top: 20px;
}
.terms-checkbox input[type="checkbox"] {
width: 18px;
height: 18px;
margin-top: 3px;
accent-color: #2a5298;
}
.terms-checkbox label {
font-size: 14px;
color: #666;
line-height: 1.5;
font-weight: normal;
}
.terms-checkbox a {
color: #2a5298;
text-decoration: none;
font-weight: 600;
}
.terms-checkbox a:hover {
text-decoration: underline;
}
/* Form Row (for side-by-side fields) */
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
/* Back Button */
.back-button {
display: inline-flex;
align-items: center;
gap: 8px;
color: #666;
text-decoration: none;
font-weight: 500;
margin-bottom: 25px;
transition: color 0.3s;
font-size: 15px;
}
.back-button:hover {
color: #2a5298;
}
.back-button::before {
content: '←';
font-size: 18px;
}
/* Forgot Password Link */
.forgot-password {
text-align: right;
margin-top: 5px;
}
.forgot-password a {
color: #666;
font-size: 14px;
text-decoration: none;
transition: color 0.3s;
}
.forgot-password a:hover {
color: #2a5298;
text-decoration: underline;
}
/* Auth Illustration */
.auth-illustration {
display: flex;
justify-content: center;
margin-bottom: 30px;
}
.auth-illustration img {
max-width: 200px;
height: auto;
filter: drop-shadow(0 10px 20px rgba(42, 82, 152, 0.15));
}
/* Responsive Styles */
@media (max-width: 768px) {
.auth-section {
padding: 60px 15px;
min-height: calc(100vh - 160px);
}
.auth-card {
padding: 40px 25px;
border-radius: 16px;
}
.auth-title {
font-size: 28px;
}
.auth-subtitle {
font-size: 15px;
margin-bottom: 30px;
}
.form-group input,
.form-group select {
padding: 14px 16px;
font-size: 15px;
}
.auth-btn {
padding: 16px;
font-size: 16px;
}
.form-row {
grid-template-columns: 1fr;
gap: 15px;
}
.social-login {
grid-template-columns: 1fr;
}
}
@media (max-width: 480px) {
.auth-card {
padding: 30px 20px;
}
.auth-title {
font-size: 24px;
}
.form-group {
margin-bottom: 20px;
}
.auth-footer {
font-size: 14px;
}
}
/* Animations */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateX(-20px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
/* Optional: Add background pattern */
.auth-section::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image:
radial-gradient(circle at 10% 20%, rgba(42, 82, 152, 0.05) 0%, transparent 20%),
radial-gradient(circle at 90% 80%, rgba(42, 82, 152, 0.05) 0%, transparent 20%);
pointer-events: none;
z-index: -1;
}