/* Loader styles */
.loader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(255,255,255,0.85);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
}

.loader-spinner {
    border: 6px solid #f3f3f3;
    border-top: 6px solid #3b53a5;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Inter',sans-serif;
}

body{
    height:100vh;
    background:url('/css/imgs/sso-background.jpg') no-repeat center center/cover;
    display:flex;
    justify-content:center;
    align-items:center;
}



.valid { color: green !important; }
.invalid { color: red !important; }

#password-rules {
    list-style: none;
    padding-left: 0;
    font-size: 10px;
    margin-bottom: 10px;
    line-height: 1.2;
    display: none;
    

}

#password-rules li {
    color: gray;
    margin: 4px 0;
}

.fleft{ float:left;}
.fright{float:right;}

#password:focus + #password-rules {
    display: block;
}

.valid {
    color: green;
}

.invalid {
    color: red;
}

.container{
text-align:center;
}

.logo {
    background: url('/css/imgs/atlantis-logo.png') no-repeat center;
    background-size: contain;
    height: 70px;
    max-width: 100%;
    margin: 25px auto;
}

.logo small{
display:block;
font-size:10px;
letter-spacing:2px;
opacity:.9;
margin-top:5px;
}

.card{
background:#ffffff;
padding:20px 25px;
width:95%;
max-width:400px;
margin: 0 auto;
border-radius:6px;
box-shadow:0 12px 35px rgba(0,0,0,0.25);
}

.card h2{
margin-bottom:18px;
font-weight:500;
}

.card p{
font-size:14px;
margin-bottom:18px;
color:#555;
}

.input-label{
display:block;
text-align:left;
font-size:13px;
margin-bottom:6px;
color:#444;
}

input{
width:100%;
padding:12px;
margin-bottom:14px;
border:1px solid #ccc;
border-radius:3px;
}

button{
width:100%;
padding:12px;
background:#3b53a5;
color:white;
border:none;
border-radius:3px;
cursor:pointer;
font-size:15px;
margin-bottom:10px;
}

button:hover{
background:#2f448b;
}

.links{
font-size:13px;
margin-bottom:18px;
}

.links a{
text-decoration:none;
color:#3b53a5;
margin:0 4px;
}

.divider{
display:flex;
align-items:center;
margin:15px 0;
}

.divider::before,
.divider::after{
content:"";
flex:1;
height:1px;
background:#ccc;
}

.divider span{
margin:0 10px;
font-size:13px;
color:#777;
}

.card p.style-text {
    font-size: 12px;
    margin: 5px 0 0 0;
    color: #666;
    text-align: center;
}

.style-text a {
    color: #4a5fb4;
    text-decoration: none;
    font-weight: 500;
}

.style-text a:hover {
    text-decoration: underline;
}

.social-btn{
display:flex;
align-items:center;
justify-content:center;
gap:10px;
margin-top:10px;
padding:10px;
border:1px solid #ddd;
background:white;
cursor:pointer;
width:100%;
font-size:14px;
color:#333;
}

.social-btn img{
width:18px;
}

.social-btn:hover{
border-color:#bbb;
background:white;
}

.checkbox-row{
display:flex;
align-items:center;
gap:8px;
font-size:13px;
margin-bottom:15px;
color:#333;
}

.bottom-text{
margin-top:7px;
font-size:7px;
text-align:center;
}

.bottom-text a{
color:#3b53a5;
text-decoration:none;
font-weight:500;
}

.card {
    text-align: center;
}

.checkbox-group{
width:100%;
text-align:left;
display:flex;
}

.checkbox-item{
display:flex;
align-items:center;
justify-content:flex-start;
gap:8px;
font-size:13px;
color:#333;
margin-bottom:8px;
}

.checkbox-item input{
margin:0;
}

.form-check-left{
width:100%;
text-align:left;
margin-top:8px;
margin-bottom:8px;
}

.form-check-left label{
display:flex;
align-items:center;
gap:8px;
font-size:14px;
color:#333;
cursor:pointer;
}

.checkbox-row{
width:100%;
display:flex;
align-items:center;
justify-content:flex-start;
gap:10px;
margin:8px 0;
text-align:left !important;
}

.checkbox-row span{
display:inline-block;
text-align:left;
}

.left-check{
display:block;
width:100%;
text-align:left !important;
margin:8px 0;
font-size:14px;
color:#333;
}

.left-check input{
margin-right:8px;
vertical-align:middle;
}

.check-left{
display:flex;
align-items:center;
justify-content:flex-start;
width:100%;
gap:8px;
text-align:left;
margin:6px 0;
}
/* .show_password{
margin-bottom:16px !important;

} */

.check-left input{
width:auto;
margin:0;
}

.check-left label{
font-size:12px;
line-height:1.4;
color:#444;
}

.confirm{
    margin-bottom: 7px !important;
}

/* Responsive adjustments */
@media (max-width: 480px) {
    .card {
        padding: 15px 20px;
    }
    
    .card h2 {
        font-size: 20px;
        margin-bottom: 12px;
    }
    
    .card p {
        font-size: 13px;
    }
    
    input, button, .social-btn {
        padding: 10px;
    }
}
