body{
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}
*, ::after, ::before {
    box-sizing: border-box;
}

.neodent-login-wrapper{
    font-family: "League Spartan", sans-serif;
    font-size: 16px;
    line-height: 1.5;
}

.neodent-login-wrapper { position: relative; min-height: calc(100vh - 132px); display: flex; align-items: center; justify-content: flex-end; padding-right: 13vw; }
.neodent-login-bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-image: url('../images/fundo-pagina-login.jpg'); }
.neodent-login-card { position: relative; width: 100%; max-width: 520px;  z-index: 1; }

.text-logo{
    display: flex;
    align-items: center;
    gap: 10px;
}

.text-logo p{
    font-size: 53px;
    font-weight: 300;
    color: #fff;
    line-height: 0;
    margin: 11px 0 0 0;
    padding: 0;
}

.text-logo img{
    width: 280px;
}


.neodent-login-content{
    margin-top: 20px;
    margin-bottom: 80px;
    width: 100%;
    max-width: 420px;
}


.neodent-login-content p{
    font-size: 22px;
    font-weight: 400;
    color: #fff;
}


.neodent-login-content p strong{
    font-weight: bold;
    color: #ac79ba;
}

.box-input-button{
    display: flex;
    align-items: center;
    gap: 10px;
}


#neodent-login-form label { display: block; margin-bottom: 6px; font-weight: 400; font-size: 20px; color: #fff;}
#neodent-login-form input[type="text"] { 
    width: 100%; 
    height: 42px; 
    border: 1px solid #dcdcdc; 
    border-radius: 30px; 
    padding: 0 15px;
    outline: none; 
    background: transparent; 
    color: #fff;
}

/* placeholder */
#neodent-login-form input[type="text"]::placeholder { color: #fff; }

#neodent-login-form input[type="text"]:focus { border-color: #ac79ba; box-shadow: 0 0 0 2px rgba(156,39,176,0.12); }

#neodent-request-code { 
    width: 100%; 
    height: 44px; 
    border: none; 
    border-radius: 40px; 
    background: #ac79ba; 
    color: #fff; 
    cursor: pointer; 
    font-weight: bold; 
    font-size: 15px;
}

#neodent-request-code:hover { background: #9c27b0; }

.neodent-login-message { margin-top: 12px; font-size: 16px; }
.neodent-login-message.info { color: #ac79ba; }
.neodent-login-message.success { color: #ac79ba; }
.neodent-login-message.error { color: #ac79ba; }

/* Modal de código de acesso - usando o padrão do modal de consulta */
.modal-overlay{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
	display: none;
	justify-content: center;
	align-items: center;
	z-index: 1000;
}

.modal-overlay.active{
	display: flex;
}

.modal-content{
	background: #833279;
	border-radius: 20px;
	padding: 40px;
	max-width: 500px;
	width: 90%;
	position: relative;
}

.modal-header{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 25px;
}

.modal-header h2{
	color: white;
	font-size: 28px;
	font-weight: bold;
	margin: 0;
}

.modal-close{
	background: none;
	border: none;
	color: white;
	font-size: 32px;
	cursor: pointer;
	padding: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background 0.3s ease;
	position: absolute;
	right: 10px;
	top: 10px;
	z-index: 1001;
	user-select: none;
}

.modal-close:hover{
	background: rgba(255, 255, 255, 0.1);
}

.modal-form{
	color: white;
}

.form-section{
	margin-bottom: 20px;
}

.code-input-wrapper{
	text-align: center;
	margin-bottom: 20px;
}

.code-input{
	width: 100%;
	max-width: 200px;
	height: 60px;
	border: 2px solid white !important;
	border-radius: 15px !important;
	padding: 0 20px !important;
	outline: none;
	background: transparent;
	color: white;
	font-size: 24px;
	font-weight: bold;
	text-align: center;
	letter-spacing: 2px;
	margin: 0 auto;
	display: block;
}

.code-input::placeholder{
	color: rgba(255, 255, 255, 0.6);
}

.code-input:focus{
	border-color: #ac79ba;
	box-shadow: 0 0 0 3px rgba(172, 121, 186, 0.3);
}

.submit-btn{
	background: #5b215e;
	color: white;
	border: none;
	padding: 15px 30px;
	border-radius: 25px;
	font-size: 18px;
	font-weight: bold;
	cursor: pointer;
	transition: background 0.3s ease;
	width: 100%;
}

.submit-btn:hover{
	background: #6a2a5f;
}

/* Responsividade do modal */
@media (max-width: 768px){
	.modal-content{
		padding: 30px 20px;
		width: 95%;
	}
	
	.modal-header h2{
		font-size: 24px;
	}
	
	.code-input{
		max-width: 150px;
		height: 50px;
		font-size: 20px;
	}
	
	.form-section{
		margin-bottom: 15px;
	}
	
	.modal-header{
		margin-bottom: 20px;
	}
}

@media (max-width: 1280px) {
 .neodent-login-bg{
    background-image: url('../images/layout-login-mobile.jpg');
    background-position: top center;
    background-size: auto;
    background-repeat: no-repeat;
    background-color: #5a205e;
 }

 .neodent-login-wrapper{
    justify-content: center;
    padding-right: 0;
    align-items: flex-start;
    padding-top: 50px;
    /* Ajustar altura para mobile - header tablet: ~100px + footer: 60px = 160px */
    min-height: calc(100vh - 160px);
 }
}

@media (max-width: 768px) {
    .neodent-login-wrapper{
        /* Ajustar altura para tablet - header: ~100px + footer: 60px = 160px */
        min-height: calc(100vh - 160px);
    }
    .neodent-login-bg{
        background-size: contain;  
        background-position: bottom center;
    }
}

@media (max-width: 480px) {
    .neodent-login-wrapper{
        /* Ajustar altura para mobile - header: ~120px + footer: 60px = 180px */
        min-height: calc(100vh - 180px);
        padding-top: 30px; /* Padding top reduzido */
    }
    .neodent-login-card{
        padding: 0 20px;
    }

    .box-input-button{
        flex-direction: column;
    }

    #neodent-login-form input[type="text"]{
        background: #ffffff7d;
    }
}

@media (max-width: 500px) {
    .text-logo p{
        font-size: 39px;
        margin: 8px 0 0 0;
    }
    .text-logo img{
        width: 200px;
    }
}