*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Poppins,sans-serif;
}

body{

background:url("../images/login-bg.jpg") center center/cover no-repeat;

height:100vh;

overflow:hidden;

display:flex;

justify-content:center;

align-items:center;

padding:12px;

}

.login-page{

position:relative;

width:100%;

max-width:430px;

}

.overlay{

position:fixed;

inset:0;

background:rgba(255,240,245,.35);

backdrop-filter:blur(8px);

}

.login-card{

position:relative;

z-index:2;

background:rgba(255,255,255,.88);

backdrop-filter:blur(25px);

border-radius:38px;

padding:24px;

width:100%;

max-height:95vh;

overflow:hidden;

box-shadow:0 25px 60px rgba(95,20,55,.18);

display:flex;

flex-direction:column;

justify-content:center;

}

.logo{

display:block;

width:170px;

margin:0 auto 12px;

}

.tagline{

display:table;

margin:0 auto 22px;

background:#fff;

padding:10px 22px;

border-radius:30px;

font-size:13px;

color:#8a3d60;

text-align:center;

box-shadow:0 5px 15px rgba(0,0,0,.08);

}

h1{

font-size:46px;

font-weight:700;

color:#6f163f;

line-height:1;

margin-bottom:10px;

}

h1 span{

color:#ff6fb0;

}

.subtitle{

font-size:18px;

font-weight:600;

margin-bottom:20px;

color:#555;

text-align:center;

}

.small-text{

color:#777;

font-size:15px;

margin-bottom:30px;

}

.input-box{

display:flex;

align-items:center;

background:#fff;

padding:18px;

border-radius:22px;

margin-bottom:18px;

box-shadow:0 10px 20px rgba(0,0,0,.06);

}

.input-box span{

margin-right:15px;

color:#8a3d60;

}

.input-box input{

border:none;

outline:none;

width:100%;

font-size:16px;

background:none;

}

.options{

display:flex;

justify-content:space-between;

align-items:center;

margin:18px 0 22px;

font-size:14px;

}

.options a{

color:#7a123e;

text-decoration:none;

font-weight:600;

}

.login-btn{

width:100%;

height:65px;

border:none;

border-radius:35px;

background:linear-gradient(135deg,#8f1c52,#5f1238);

color:#fff;

font-size:24px;

font-weight:600;

display:flex;

justify-content:center;

align-items:center;

gap:10px;

cursor:pointer;

transition:.3s;

}

.login-btn:hover{

transform:translateY(-3px);

}

.bottom-text{

text-align:center;

margin-top:20px;

font-size:14px;

color:#7a123e;

}

.error-box{

background:#ffdede;

color:#b30000;

padding:14px;

border-radius:14px;

margin-bottom:18px;

}

@media(max-width:480px){

.login-card{

padding:30px 20px;

}

.logo{

width:180px;

}

h1{

font-size:46px;

}

.subtitle{

font-size:26px;

}

}
/* Remove blue tap highlight */

*{
    -webkit-tap-highlight-color:transparent;
}

a,
button,
input{
    outline:none;
    -webkit-tap-highlight-color:transparent;
}

a:focus,
button:focus,
input:focus{
    outline:none;
}
/*==========================
LOGIN THEME VARIABLES
==========================*/

:root,
body.theme-pink{
    --login-primary:#B47AA1;
    --login-primary-dark:#965D82;
    --login-primary-light:#F4E7EF;
    --login-primary-soft:#FFF8FC;
    --login-shadow:rgba(180,122,161,.28);
}

body.theme-blue{
    --login-primary:#6E9FD0;
    --login-primary-dark:#4E7FAF;
    --login-primary-light:#E7F1FB;
    --login-primary-soft:#F7FBFF;
    --login-shadow:rgba(110,159,208,.28);
}

body.theme-lavender{
    --login-primary:#927AC2;
    --login-primary-dark:#745DA5;
    --login-primary-light:#ECE7F7;
    --login-primary-soft:#FBF9FF;
    --login-shadow:rgba(146,122,194,.28);
}

body.theme-green{
    --login-primary:#70A78A;
    --login-primary-dark:#54876D;
    --login-primary-light:#E5F2EB;
    --login-primary-soft:#F7FCF9;
    --login-shadow:rgba(112,167,138,.28);
}

body.theme-peach{
    --login-primary:#D58D68;
    --login-primary-dark:#B76C48;
    --login-primary-light:#F9E9DF;
    --login-primary-soft:#FFF9F5;
    --login-shadow:rgba(213,141,104,.28);
}

/*==========================
THEMED LOGIN PAGE
==========================*/

body{
    background:
        radial-gradient(
            circle at top,
            #FFFFFF 0%,
            var(--login-primary-soft) 48%,
            var(--login-primary-light) 100%
        );
    transition:background .5s ease;
}

.login-page::before{
    content:"";
    position:fixed;
    width:240px;
    height:240px;
    top:-110px;
    right:-90px;
    border-radius:50%;
    background:var(--login-primary-light);
    opacity:.75;
    animation:loginDecorationFloat 7s ease-in-out infinite;
}

.login-page::after{
    content:"";
    position:fixed;
    width:180px;
    height:180px;
    bottom:-80px;
    left:-75px;
    border-radius:50%;
    background:var(--login-primary-light);
    opacity:.65;
    animation:loginDecorationFloat 8s 1s ease-in-out infinite reverse;
}

.login-card{
    position:relative;
    z-index:2;
    box-shadow:
        0 24px 60px var(--login-shadow);
    animation:
        loginCardEnter .7s
        cubic-bezier(.22,.8,.28,1)
        both;
}

.login-card .logo{
    object-fit:contain;
    transition:
        transform .35s ease,
        filter .35s ease;
}

.login-card .logo:hover{
    transform:scale(1.04) rotate(-1deg);
    filter:drop-shadow(
        0 8px 12px var(--login-shadow)
    );
}

.login-business-name{
    margin-top:10px;
    color:var(--login-primary-dark);
    text-align:center;
    font-size:20px;
    font-weight:600;
}

.tagline{
    color:var(--login-primary);
}

.login-card h1 span{
    color:var(--login-primary);
}

.input-box{
    transition:
        border-color .25s ease,
        box-shadow .25s ease,
        transform .25s ease,
        background .25s ease;
}

.input-box:focus-within{
    border-color:var(--login-primary);
    background:#fff;
    box-shadow:
        0 0 0 4px var(--login-primary-light),
        0 9px 20px var(--login-shadow);
    transform:translateY(-2px);
}

.input-box > span{
    color:var(--login-primary);
}

.options input{
    accent-color:var(--login-primary);
}

.options a{
    color:var(--login-primary-dark);
}

.login-btn{
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(
            135deg,
            var(--login-primary),
            var(--login-primary-dark)
        );
    box-shadow:
        0 14px 30px var(--login-shadow);
    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.login-btn::before{
    content:"";
    position:absolute;
    top:0;
    left:-120%;
    width:75%;
    height:100%;
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.27),
            transparent
        );
    transform:skewX(-20deg);
    transition:left .6s ease;
}

.login-btn:hover::before{
    left:145%;
}

.login-btn:hover{
    transform:translateY(-3px);
    box-shadow:
        0 18px 36px var(--login-shadow);
}

.login-btn:active{
    transform:scale(.98);
}

.login-btn span,
.login-btn{
    position:relative;
}

.error-box{
    animation:loginErrorEnter .4s ease both;
}

.bottom-text{
    color:var(--login-primary-dark);
}

/*==========================
LOGIN ANIMATIONS
==========================*/

@keyframes loginCardEnter{

    from{
        opacity:0;
        transform:
            translateY(28px)
            scale(.97);
    }

    to{
        opacity:1;
        transform:
            translateY(0)
            scale(1);
    }

}

@keyframes loginErrorEnter{

    from{
        opacity:0;
        transform:translateY(-8px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

@keyframes loginDecorationFloat{

    0%,
    100%{
        transform:translateY(0) rotate(0);
    }

    50%{
        transform:translateY(16px) rotate(5deg);
    }

}

@media(prefers-reduced-motion:reduce){

    .login-card,
    .error-box,
    .login-page::before,
    .login-page::after{
        animation:none;
    }

    .login-btn,
    .input-box,
    .login-card .logo{
        transition:none;
    }

}