:root {
	--primary-color: #2c5aa0;
	--secondary-color: #d4af37;
	--success-color: #28a745;
	--danger-color: #dc3545;
	--gradient-primary: linear-gradient(135deg, #2c5aa0 0%, #3b82f6 100%);
	--gradient-success: linear-gradient(135deg, #28a745 0%, #20c997 100%);
	--shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.1);
	--border-radius: 15px;
}

.login-card {
	border-radius: var(--border-radius);
	border: none;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

	.login-card:hover {
		transform: translateY(-5px);
		box-shadow: var(--shadow-lg);
	}

.bg-gradient-primary {
	background: var(--gradient-primary) !important;
	border-radius: var(--border-radius) var(--border-radius) 0 0 !important;
}

.login-icon {
	width: 80px;
	height: 80px;
	background: var(--gradient-primary);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-size: 2rem;
}

.input-group-lg .form-control,
.input-group-lg .input-group-text {
	padding: 1rem 1.25rem;
	font-size: 1.1rem;
}

.input-group-text {
	background-color: #f8f9fa;
	border: 1px solid #dee2e6;
}

.form-control:focus {
	border-color: var(--primary-color);
	box-shadow: 0 0 0 0.2rem rgba(44, 90, 160, 0.25);
}

.btn-primary {
	background: var(--gradient-primary);
	border: none;
	transition: all 0.3s ease;
}

	.btn-primary:hover {
		transform: translateY(-2px);
		box-shadow: 0 5px 15px rgba(44, 90, 160, 0.3);
	}

.divider {
	position: relative;
	text-align: center;
}

	.divider::before {
		content: '';
		position: absolute;
		top: 50%;
		left: 0;
		right: 0;
		height: 1px;
		background: #dee2e6;
		z-index: 1;
	}

.divider-text {
	background: white;
	padding: 0 1rem;
	position: relative;
	z-index: 2;
	font-size: 0.9rem;
}

.social-login-buttons .btn {
	width: 45px;
	height: 45px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
}

	.social-login-buttons .btn:hover {
		transform: translateY(-2px);
	}

.security-info {
	opacity: 0.8;
	transition: opacity 0.3s ease;
}

	.security-info:hover {
		opacity: 1;
	}

/* Responsive Design */
@media (max-width: 768px) {
	.container.py-5 {
		padding-top: 2rem !important;
		padding-bottom: 2rem !important;
	}

	.card-body {
		padding: 2rem !important;
	}

	.input-group-lg .form-control,
	.input-group-lg .input-group-text {
		padding: 0.875rem 1rem;
		font-size: 1rem;
	}

	.login-icon {
		width: 60px;
		height: 60px;
		font-size: 1.5rem;
	}
}

@media (max-width: 576px) {
	.card-body {
		padding: 1.5rem !important;
	}

	.d-flex.justify-content-between {
		flex-direction: column;
		gap: 1rem;
		text-align: center;
	}
}

/* Animation for success state */
.alert-success {
	border-left: 4px solid var(--success-color);
	animation: slideIn 0.5s ease;
}

.alert-danger {
	border-left: 4px solid var(--danger-color);
	animation: slideIn 0.5s ease;
}

@keyframes slideIn {
	from {
		opacity: 0;
		transform: translateX(-20px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* Loading animation */
.btn-loading {
	position: relative;
	color: transparent !important;
}

	.btn-loading::after {
		content: '';
		position: absolute;
		width: 20px;
		height: 20px;
		top: 50%;
		left: 50%;
		margin-left: -10px;
		margin-top: -10px;
		border: 2px solid #ffffff;
		border-radius: 50%;
		border-right-color: transparent;
		animation: spin 1s linear infinite;
	}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}
