﻿html, body {
	height: 100%;
	padding-top: 0;
	overflow-x: hidden;
}

.container {
	font-family: 'Lexend', sans-serif;
}

.main {
	/*background: #fff;*/
	position: relative;
	z-index: 3;
}

.bg-gradient-primary {
	background: linear-gradient(135deg, #1da9d7, #7dd3fc);
}

.text-sky {
	/*color: #7DD3FC !important;*/
	color: #6ec1e4;
}

.form-container {
	width: 100%;
	max-width: 480px; /* 🔥 igual ao padrão da segunda imagem */
	margin: 0 auto;
}

.form-group {
	margin-bottom: 1.5rem;
}

.form-control {
	height: 48px;
	font-size: 1rem;
	border-radius: 8px;
	border: 1px solid #d0d7de;
	padding: 0 14px;
}

label {
	font-size: 0.95rem;
	font-weight: 600;
	margin-bottom: 6px;
	display: block;
}

.card-login {
	width: 100%;
	display: flex;
	flex-direction: row;
	max-width: 1050px;
	min-height: 520px;
	border-radius: 20px;
	overflow: hidden;
}

.login-left {
	flex: 1;
	background-color: #eaf7fd;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}

	.login-left img {
		max-width: 250px;
	}

.login-right {
	flex: 1;
	background: #f8f9fa;
	padding: 2rem 3.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.header-titulo {
	font-size: 2rem;
	font-weight: 300;
}

.header-subtitulo {
	font-weight: 400;
}

.label-login {
	font-weight: 450;
}

.text-senha-border {
	border-right: 0;
}

.btn-visualizar-senha {
	border: 1px solid #d0d7de;
	border-left: 0;
	border-radius: 0 8px 8px 0;
	color: #6c757d;
	height: 48px;
}

	.btn-visualizar-senha:hover {
		background-color: transparent;
		text-decoration: none;
		opacity: 0.7;
	}

.btn-login {
	background: #1da9d7;
	color: #fff;
	border-radius: 10px;
	padding: 14px;
	font-weight: 600;
	border: none;
	transition: 0.3s;
}

	.btn-login:hover {
		background: #159ac4;
	}

.transition-button {
	transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 300ms ease;
}

	.transition-button:hover {
		transform: scale(1.02);
		box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.35);
	}

.transition-text {
	transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

	.transition-text:hover {
		transform: scale(1.02);
	}

/* Mobile */
@media (max-width: 768px) {
	.container {
		max-width: 100% !important; /* ocupa toda a largura */
		/*margin: 0px auto 5px auto;*/ /* margens menores */
		/*padding: 5px 0px !important;*/ /* garante respiro nas laterais */
	}

	.min-vh-100 {
		min-height: 0vh !important;
	}

	.card-login {
		display: flex;
		flex-direction: column;
		min-height: 100vh;
		min-height: 100dvh; /* melhor para mobile */
		border-radius: 0;
	}

	.login-left {
		display: none !important;
	}

	.login-right {
		padding: 1.5rem 2.5rem;
	}

	.form-container {
		margin-bottom: 40px;
	}

	.logo-mobile {
		display: flex; /* 🔥 essencial */
		justify-content: center; /* centraliza horizontal */
		align-items: center; /* centraliza vertical */
		padding: 25px;
		background-color: #eaf7fd;
	}

	.logo-mobile-img {
		max-height: 60px;
		max-width: 100%;
		height: auto;
	}

	.header-titulo {
		font-size: 20px;
		font-weight: 450;
		white-space: normal; /* permite quebras de linha automáticas */
		word-wrap: break-word; /* força quebra em palavras muito longas */
		overflow-wrap: break-word; /* compatibilidade mais ampla */
	}

	.header-subtitulo {
		font-size: 22px;
		font-weight: 400;
		white-space: normal; /* permite quebras de linha automáticas */
		word-wrap: break-word; /* força quebra em palavras muito longas */
		overflow-wrap: break-word; /* compatibilidade mais ampla */
	}

	.subtitulo {
		font-size: 15px;
		white-space: normal; /* permite quebras de linha automáticas */
		word-wrap: break-word; /* força quebra em palavras muito longas */
		overflow-wrap: break-word; /* compatibilidade mais ampla */
	}

	.label-login {
		font-size: 15px;
		font-weight: 450;
	}

	.text-label {
		font-size: 15px;
	}

	.btn-login {
		width: 100%; /* Botão ocupa toda a largura */
		font-size: 0.9rem; /* Texto um pouco menor */
		margin: 0.1rem auto;
		padding: 0.6rem; /* Mais espaço para facilitar o toque */
	}
}

/* Tablet */
@media (min-width: 769px) and (max-width: 1024px) {
	.container {
		max-width: 70% !important;
		/*margin: 5px auto 5px auto;*/ /* top, left/right, bottom */
		padding: 15px 0px !important; /* garante respiro nas laterais */
	}

	.min-vh-100 {
		min-height: 0vh !important;
	}

	.card-login {
		flex-direction: column;
		height: 100%;
		min-height: 100vh;
		min-height: 100dvh;
		margin: 0;
	}

	.login-left {
		display: none !important;
	}

	.login-right {
		/*padding: 1.5rem 2.5rem;*/
	}

	.form-group {
		padding: 0;
		margin-bottom: 0;
	}

	.form-container {
		margin-bottom: 10px;
	}

	.logo-mobile {
		display: flex; /* 🔥 essencial */
		justify-content: center; /* centraliza horizontal */
		align-items: center; /* centraliza vertical */
		padding: 20px;
		background-color: #eaf7fd;
	}

	.logo-mobile-img {
		max-height: 70px;
		max-width: 100%;
		height: auto;
	}

	.header-titulo {
		font-size: 22px;
		font-weight: 450;
		white-space: normal; /* permite quebras de linha automáticas */
		word-wrap: break-word; /* força quebra em palavras muito longas */
		overflow-wrap: break-word; /* compatibilidade mais ampla */
	}

	.header-subtitulo {
		font-size: 24px;
		font-weight: 400;
		white-space: normal; /* permite quebras de linha automáticas */
		word-wrap: break-word; /* força quebra em palavras muito longas */
		overflow-wrap: break-word; /* compatibilidade mais ampla */
	}

	.subtitulo {
		font-size: 15px;
		white-space: normal; /* permite quebras de linha automáticas */
		word-wrap: break-word; /* força quebra em palavras muito longas */
		overflow-wrap: break-word; /* compatibilidade mais ampla */
	}

	.label-login {
		font-size: 15px;
		font-weight: 450;
	}

	.text-label {
		font-size: 15px;
	}
}

/* Desktop */
@media (min-width: 1025px) {
	.min-vh-100 {
		min-height: 100vh !important;
	}
}
