:root{
--theme1:#1a1668;
--theme2:#EAA451;
--white:#ffffff;
--light:#f7f7f7;
--text:#555;
}

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html,body{
width:100%;
max-width:100%;
overflow-x:hidden !important;
position:relative;
}

body{
font-family:'Poppins',sans-serif;
min-height:100vh;
display:flex;
align-items:center;
justify-content:center;
padding:15px 10px;
overflow:hidden;
background:
linear-gradient(135deg,var(--theme1) 0%,#2d2a8f 45%,var(--theme2) 100%);
position:relative;
animation:bgMove 10s ease infinite alternate;
}

body::before{
content:'';
position:fixed;
top:-120px;
left:-120px;
width:320px;
height:320px;
background:rgba(255,255,255,.10);
border-radius:50%;
animation:float1 8s ease-in-out infinite;
pointer-events:none;
}

body::after{
content:'';
position:fixed;
bottom:-140px;
right:-140px;
width:360px;
height:360px;
background:rgba(255,255,255,.08);
border-radius:50%;
animation:float2 10s ease-in-out infinite;
pointer-events:none;
}

@keyframes bgMove{
0%{
background-position:left top;
}
100%{
background-position:right bottom;
}
}

body::before{
content:'';
position:absolute;
top:-120px;
left:-120px;
width:320px;
height:320px;
background:rgba(255,255,255,.10);
border-radius:50%;
animation:float1 8s ease-in-out infinite;
}

body::after{
content:'';
position:absolute;
bottom:-140px;
right:-140px;
width:360px;
height:360px;
background:rgba(255,255,255,.08);
border-radius:50%;
animation:float2 10s ease-in-out infinite;
}

@keyframes float1{
0%{
transform:translateY(0px);
}
50%{
transform:translateY(20px);
}
100%{
transform:translateY(0px);
}
}

@keyframes float2{
0%{
transform:translateY(0px);
}
50%{
transform:translateY(-20px);
}
100%{
transform:translateY(0px);
}
}

.login-box{
width:100%;
max-width:390px;
position:relative;
z-index:2;
animation:fadeUp 1s ease;
}

@keyframes fadeUp{
0%{
opacity:0;
transform:translateY(40px);
}
100%{
opacity:1;
transform:translateY(0);
}
}

.login-card{
background:var(--white);
border-radius:30px;
overflow:hidden;
box-shadow:
0 25px 60px rgba(0,0,0,.25);
position:relative;
transition:.4s;
}

.login-card:hover{
transform:translateY(-5px);
box-shadow:
0 35px 70px rgba(0,0,0,.30);
}

.login-top{
height:150px;
background:
linear-gradient(135deg,var(--theme1),var(--theme2));
position:relative;
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
}

.login-top::before{
content:'';
position:absolute;
bottom:-70px;
left:0;
width:100%;
height:140px;
background:var(--white);
border-radius:100%;
}

.login-top::after{
content:'';
position:absolute;
width:220px;
height:220px;
background:rgba(255,255,255,.08);
border-radius:50%;
top:-100px;
right:-80px;
animation:rotateBg 15s linear infinite;
}

@keyframes rotateBg{
0%{
transform:rotate(0deg);
}
100%{
transform:rotate(360deg);
}
}

.logo-box{
position:relative;
z-index:2;
width:85px;
height:85px;
border-radius:25px;
background:var(--white);
display:flex;
align-items:center;
justify-content:center;
box-shadow:0 12px 25px rgba(0,0,0,.15);
animation:pulse 3s infinite;
}

@keyframes pulse{
0%{
transform:scale(1);
}
50%{
transform:scale(1.05);
}
100%{
transform:scale(1);
}
}

.logo-box img{
height:48px;
width:48px;
object-fit:contain;
}

.login-body{
padding:30px 24px 24px;
position:relative;
z-index:3;
}

.login-title{
text-align:center;
margin-bottom:22px;
animation:fadeText 1.2s ease;
}

@keyframes fadeText{
0%{
opacity:0;
transform:translateY(15px);
}
100%{
opacity:1;
transform:translateY(0);
}
}

.login-title h3{
font-size:28px;
font-weight:700;
color:var(--theme1);
margin-bottom:5px;
}

.login-title p{
font-size:13px;
color:#777;
margin:0;
}

.form-group{
margin-bottom:15px;
}

.input-group{
border-radius:16px;
overflow:hidden;
background:var(--light);
border:1px solid #ececec;
transition:.3s;
}

.input-group:hover{
transform:translateY(-1px);
}

.input-group:focus-within{
border-color:var(--theme2);
background:var(--white);
box-shadow:0 0 0 4px rgba(234,164,81,.15);
transform:scale(1.01);
}

.form-control{
height:52px;
border:none !important;
background:transparent !important;
font-size:14px;
padding-left:16px;
box-shadow:none !important;
color:var(--theme1) !important;
}

.form-control::placeholder{
color:#999;
}

.input-group-text{
background:transparent;
border:none;
padding:0 16px;
color:var(--theme2);
font-size:16px;
transition:.3s;
}

.input-group:hover .input-group-text{
transform:scale(1.1);
}

.remember-area{
display:flex;
justify-content:space-between;
align-items:center;
margin-top:5px;
margin-bottom:18px;
}

.remember-area label{
font-size:13px;
font-weight:500;
color:var(--text);
}

.remember-area a{
font-size:13px;
font-weight:600;
text-decoration:none;
color:var(--theme1);
transition:.3s;
}

.remember-area a:hover{
color:var(--theme2);
}

.icheck-primary>input:first-child:checked+label::before{
background-color:var(--theme2);
border-color:var(--theme2);
}

.btn-login{
height:52px;
border:none;
border-radius:16px;
background:
linear-gradient(135deg,var(--theme1),var(--theme2));
font-size:15px;
font-weight:700;
color:var(--white);
transition:.4s;
position:relative;
overflow:hidden;
}

.btn-login::before{
content:'';
position:absolute;
top:0;
left:-100%;
width:100%;
height:100%;
background:rgba(255,255,255,.2);
transition:.5s;
}

.btn-login:hover::before{
left:100%;
}

.btn-login:hover{
transform:translateY(-2px);
box-shadow:0 14px 25px rgba(26,22,104,.25);
}

.alert{
border-radius:14px;
font-size:13px;
padding:12px;
animation:shake .4s ease;
}

@keyframes shake{
0%,100%{
transform:translateX(0);
}
25%{
transform:translateX(-4px);
}
75%{
transform:translateX(4px);
}
}

.bottom-area{
margin-top:18px;
padding-top:16px;
border-top:1px solid #f1f1f1;
text-align:center;
}

.bottom-area a{
display:inline-flex;
align-items:center;
gap:8px;
font-size:13px;
font-weight:600;
text-decoration:none;
color:#666;
transition:.3s;
}

.bottom-area a:hover{
color:var(--theme1);
transform:translateX(-3px);
}

.footer-text{
margin-top:10px;
font-size:12px;
color:#999;
}

.footer-text a{
color:var(--theme1);
font-weight:700;
text-decoration:none;
}

@media(max-width:480px){

.login-box{
max-width:100%;
}

.login-card{
border-radius:24px;
}

.login-top{
height:135px;
}

.logo-box{
width:75px;
height:75px;
}

.login-body{
padding:26px 18px 20px;
}

.login-title h3{
font-size:24px;
}
}
