/*==================================================
        JR Gym Pro Premium Login
==================================================*/

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:"Poppins",sans-serif;
}

html,
body{

    width:100%;
    height:100%;
    overflow:hidden;

    background:#edf3fb;

}

/*==================================================
        Main Layout
==================================================*/

.login-container{

    width:100%;
    height:100vh;

    display:flex;

    overflow:hidden;

    position:relative;

}

/*==================================================
        LEFT PANEL
==================================================*/

.left-panel{

    width:52%;

    position:relative;

    display:flex;

    align-items:center;

    background:
    linear-gradient(
        rgba(4,15,35,.82),
        rgba(4,15,35,.90)
    ),
    url("../images/gym-login.jpg");

    background-size:cover;
    background-position:center;

}

.left-overlay{

    position:absolute;

    inset:0;

    background:

    radial-gradient(circle at top left,
    rgba(37,99,235,.18),
    transparent 35%);

}

.left-content{

    position:relative;

    z-index:5;

    margin-left:80px;

    width:620px;

}

/*==================================================
        Badge
==================================================*/

.badge-title{

    display:inline-block;

    padding:12px 24px;

    border-radius:40px;

    background:rgba(255,255,255,.08);

    color:#fff;

    letter-spacing:2px;

    font-size:14px;

    margin-bottom:35px;

}

/*==================================================
        Main Title
==================================================*/

.left-content h1{

    color:#fff;

    font-size:76px;

    line-height:1.02;

    font-weight:900;

}

.left-content h1 span{

    color:#1f73ff;

}

.subtitle{

    color:#d9e3ef;

    font-size:22px;

    margin-top:30px;

}

/*==================================================
        Divider
==================================================*/

.blue-divider{

    width:110px;

    background:#1f73ff;

    clip-path:polygon(
        0 0,
        100% 0,
        72% 50%,
        100% 100%,
        0 100%
    );

    margin-left:-55px;

    margin-right:-55px;

    z-index:20;

}

/*==================================================
        RIGHT PANEL
==================================================*/

.right-panel{

    flex:1;

    background:#f8fbff;

    display:flex;

    justify-content:center;

    align-items:center;

    position:relative;

    overflow:hidden;

}

/* decorative circles */

.right-panel::before{

    content:"";

    position:absolute;

    width:650px;
    height:650px;

    border-radius:50%;

    background:rgba(37,99,235,.05);

    top:-260px;
    right:-260px;

}

.right-panel::after{

    content:"";

    position:absolute;

    width:520px;
    height:520px;

    border-radius:50%;

    background:rgba(37,99,235,.05);

    bottom:-220px;
    right:-180px;

}
/*==================================================
        LOGIN CARD
==================================================*/

.login-card{

    width:480px;

    padding:42px;

    border-radius:32px;

    background:rgba(255,255,255,.72);

    backdrop-filter:blur(20px);

    -webkit-backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.45);

    box-shadow:
        0 25px 60px rgba(20,40,90,.15);

    position:relative;

    z-index:5;

    animation:cardFloat 1s ease;

}

/*==================================================
        LOGO
==================================================*/

.logo-wrapper{

    width:120px;
    height:120px;

    margin:auto;

    border-radius:50%;

    background:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    box-shadow:
        0 15px 35px rgba(31,115,255,.18);

    position:relative;

}

.logo-wrapper::before{

    content:"";

    position:absolute;

    inset:-8px;

    border-radius:50%;

    border:3px solid rgba(31,115,255,.25);

    animation:rotateRing 10s linear infinite;

}

.logo-wrapper img{

    width:78px;

}

/*==================================================
        BRAND
==================================================*/

.brand-name{

    text-align:center;

    margin-top:24px;

    font-size:40px;

    font-weight:800;

    color:#16233f;

}

.brand-name span{

    color:#1f73ff;

}

.brand-subtitle{

    text-align:center;

    color:#6b7280;

    margin-top:8px;

    font-size:15px;

}

.welcome-icon{

    width:72px;
    height:72px;

    border-radius:50%;

    margin:30px auto 20px;

    background:#e8f1ff;

    display:flex;

    justify-content:center;

    align-items:center;

    color:#1f73ff;

    font-size:28px;

}

.welcome-title{

    text-align:center;

    font-size:42px;

    font-weight:700;

    color:#111827;

}

.welcome-text{

    text-align:center;

    margin-top:10px;

    color:#6b7280;

    font-size:17px;

}
/*==================================================
        INPUTS
==================================================*/

.input-group-custom{

    display:flex;
    align-items:center;

    width:100%;

    margin-top:22px;

    padding:0 18px;

    height:64px;

    border-radius:18px;

    background:#ffffff;

    border:2px solid #edf2f7;

    transition:.35s;

}

.input-group-custom:hover{

    transform:translateY(-2px);

    box-shadow:0 12px 28px rgba(31,115,255,.08);

}

.input-group-custom:focus-within{

    border-color:#1f73ff;

    box-shadow:
        0 0 0 5px rgba(31,115,255,.12);

}

.input-group-custom i{

    font-size:20px;

    color:#7c8798;

}

.input-group-custom input{

    flex:1;

    border:none;

    outline:none;

    padding:0 16px;

    background:transparent;

    font-size:17px;

    color:#111827;

}

.input-group-custom input::placeholder{

    color:#9aa5b1;

}

.eye-btn{

    border:none;

    background:none;

    cursor:pointer;

    color:#6b7280;

    font-size:19px;

}

/*==================================================
        OPTIONS
==================================================*/

.login-options{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-top:18px;

    font-size:15px;

}

.login-options label{

    color:#5b6473;

    cursor:pointer;

}

.login-options a{

    text-decoration:none;

    color:#1f73ff;

    font-weight:600;

}

.login-options a:hover{

    text-decoration:underline;

}

/*==================================================
        LOGIN BUTTON
==================================================*/

.login-btn{

    width:100%;

    height:62px;

    margin-top:30px;

    border:none;

    border-radius:18px;

    background:linear-gradient(135deg,#1f73ff,#004de8);

    color:#fff;

    font-size:18px;

    font-weight:700;

    letter-spacing:.5px;

    transition:.35s;

    position:relative;

    overflow:hidden;

}

.login-btn i{

    margin-right:10px;

}

.login-btn::before{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:80%;

    height:100%;

    background:rgba(255,255,255,.28);

    transform:skewX(-25deg);

    transition:.7s;

}

.login-btn:hover{

    transform:translateY(-4px);

    box-shadow:0 20px 40px rgba(31,115,255,.30);

}

.login-btn:hover::before{

    left:150%;

}

/*==================================================
        SECURE LOGIN
==================================================*/

.secure-login{

    margin-top:30px;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:10px;

    color:#1f73ff;

    font-weight:600;

}

.secure-login i{

    font-size:22px;

}

/*==================================================
        ANIMATIONS
==================================================*/

@keyframes cardFloat{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

@keyframes rotateRing{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}
/*==================================================
        FEATURE CARDS
==================================================*/

.feature-cards{

    display:flex;

    gap:18px;

    margin-top:45px;

}

.feature-card{

    flex:1;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(12px);

    border:1px solid rgba(255,255,255,.10);

    border-radius:22px;

    padding:25px;

    text-align:center;

    transition:.35s;

}

.feature-card:hover{

    transform:translateY(-8px);

    background:rgba(255,255,255,.12);

}

.feature-card i{

    font-size:32px;

    color:#4ea5ff;

    margin-bottom:15px;

}

.feature-card h3{

    color:#fff;

    font-size:30px;

    font-weight:700;

}

.feature-card span{

    color:#d5dce8;

    font-size:15px;

}

/*==================================================
        QUOTE CARD
==================================================*/

.quote-card{

    display:flex;

    gap:18px;

    margin-top:40px;

    padding:22px;

    border-radius:22px;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(15px);

}

.quote-card i{

    color:#4ea5ff;

    font-size:34px;

}

.quote-card strong{

    color:#fff;

    display:block;

    font-size:20px;

}

.quote-card p{

    margin-top:6px;

    color:#cfd8e6;

}

/*==================================================
        FLOATING ANIMATION
==================================================*/

.feature-card{

    animation:floating 6s ease-in-out infinite;

}

.feature-card:nth-child(2){

    animation-delay:1s;

}

.feature-card:nth-child(3){

    animation-delay:2s;

}

@keyframes floating{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-10px);

    }

    100%{

        transform:translateY(0);

    }

}

/*==================================================
        RESPONSIVE
==================================================*/

@media (max-width:1200px){

.left-content{

    width:500px;

    margin-left:50px;

}

.left-content h1{

    font-size:58px;

}

.login-card{

    width:430px;

}

}

@media (max-width:992px){

.left-panel{

    display:none;

}

.blue-divider{

    display:none;

}

.right-panel{

    width:100%;

}

.login-card{

    width:92%;

    max-width:460px;

}

}

@media (max-width:576px){

.login-card{

    padding:30px 24px;

}

.brand-name{

    font-size:30px;

}

.welcome-title{

    font-size:32px;

}

.logo-wrapper{

    width:95px;

    height:95px;

}

.logo-wrapper img{

    width:60px;

}

}
/*==================================================
        LIVE GYM ANIMATION
==================================================*/

.gym-animation{

    position:absolute;

    inset:0;

    overflow:hidden;

    z-index:1;

}

/*==========================
    Floating Circles
==========================*/

.circle{

    position:absolute;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    animation:floatCircle 14s linear infinite;

}

.circle1{

    width:280px;
    height:280px;

    left:-80px;
    top:-60px;

}

.circle2{

    width:160px;
    height:160px;

    right:80px;
    top:140px;

    animation-duration:18s;

}

.circle3{

    width:220px;
    height:220px;

    bottom:-70px;
    left:120px;

    animation-duration:20s;

}

.circle4{

    width:120px;
    height:120px;

    bottom:160px;
    right:70px;

}

/*==========================
      Dumbbells
==========================*/

.dumbbell{

    position:absolute;

    color:rgba(255,255,255,.12);

    font-size:55px;

    animation:dumbbellMove 8s ease-in-out infinite;

}

.dumbbell1{

    left:12%;

    bottom:18%;

}

.dumbbell2{

    right:12%;

    top:20%;

    animation-delay:3s;

}

/*==========================
      Heart Beat
==========================*/

.heartbeat{

    position:absolute;

    left:45%;

    top:15%;

    color:#4ea5ff;

    font-size:42px;

    animation:heartBeat 1.4s infinite;

}

/*==========================
        Trophy
==========================*/

.trophy{

    position:absolute;

    right:18%;

    bottom:15%;

    color:#ffd34d;

    font-size:52px;

    animation:trophyGlow 2.5s infinite;

}

/*==========================
      Light Beams
==========================*/

.light{

    position:absolute;

    width:3px;

    height:240px;

    background:linear-gradient(
        transparent,
        rgba(78,165,255,.75),
        transparent
    );

    filter:blur(2px);

}

.light1{

    left:35%;

    animation:lightMove 6s linear infinite;

}

.light2{

    right:25%;

    animation:lightMove 8s linear infinite;

}

/*==================================================
        KEYFRAMES
==================================================*/

@keyframes floatCircle{

    0%{

        transform:translateY(0) rotate(0deg);

    }

    50%{

        transform:translateY(-35px) rotate(180deg);

    }

    100%{

        transform:translateY(0) rotate(360deg);

    }

}

@keyframes dumbbellMove{

    0%,100%{

        transform:translateY(0) rotate(0deg);

    }

    50%{

        transform:translateY(-18px) rotate(12deg);

    }

}

@keyframes heartBeat{

    0%,100%{

        transform:scale(1);

    }

    30%{

        transform:scale(1.25);

    }

    60%{

        transform:scale(.95);

    }

}

@keyframes trophyGlow{

    0%,100%{

        transform:scale(1);

        text-shadow:0 0 12px rgba(255,211,77,.2);

    }

    50%{

        transform:scale(1.18);

        text-shadow:
            0 0 25px rgba(255,211,77,.9);

    }

}

@keyframes lightMove{

    0%{

        transform:translateY(-250px);

        opacity:0;

    }

    50%{

        opacity:1;

    }

    100%{

        transform:translateY(850px);

        opacity:0;

    }

}
/*==================================================
        FLOATING PARTICLES
==================================================*/

.particles{

    position:absolute;

    inset:0;

    overflow:hidden;

}

.particles span{

    position:absolute;

    width:8px;
    height:8px;

    border-radius:50%;

    background:rgba(255,255,255,.65);

    box-shadow:0 0 18px rgba(255,255,255,.7);

    animation:particleMove linear infinite;

}

/* Individual positions */

.particles span:nth-child(1){left:8%;animation-duration:14s;animation-delay:0s;}
.particles span:nth-child(2){left:18%;animation-duration:11s;animation-delay:2s;}
.particles span:nth-child(3){left:30%;animation-duration:16s;animation-delay:4s;}
.particles span:nth-child(4){left:42%;animation-duration:13s;animation-delay:1s;}
.particles span:nth-child(5){left:55%;animation-duration:18s;animation-delay:5s;}
.particles span:nth-child(6){left:67%;animation-duration:12s;animation-delay:3s;}
.particles span:nth-child(7){left:76%;animation-duration:15s;animation-delay:6s;}
.particles span:nth-child(8){left:84%;animation-duration:17s;animation-delay:2s;}
.particles span:nth-child(9){left:92%;animation-duration:14s;animation-delay:7s;}
.particles span:nth-child(10){left:50%;animation-duration:19s;animation-delay:0s;}

@keyframes particleMove{

    0%{

        transform:translateY(110vh) scale(.2);

        opacity:0;

    }

    10%{

        opacity:1;

    }

    50%{

        transform:translateY(40vh) translateX(15px) scale(1);

    }

    100%{

        transform:translateY(-20vh) translateX(-20px) scale(.3);

        opacity:0;

    }

}
/*==================================================
        NEON GLOW EFFECT
==================================================*/

.left-panel::before{

    content:"";

    position:absolute;

    width:900px;
    height:900px;

    border-radius:50%;

    background:radial-gradient(
        circle,
        rgba(37,99,235,.22),
        transparent 70%
    );

    top:-300px;
    left:-250px;

    animation:neonGlow 10s ease-in-out infinite;

    z-index:0;

}

.left-panel::after{

    content:"";

    position:absolute;

    width:700px;
    height:700px;

    border-radius:50%;

    background:radial-gradient(
        circle,
        rgba(0,183,255,.18),
        transparent 70%
    );

    bottom:-250px;
    right:-250px;

    animation:neonGlow2 12s ease-in-out infinite;

    z-index:0;

}

/*==================================================
        MOVING LIGHT STREAKS
==================================================*/

.left-content{

    position:relative;

    overflow:hidden;

}

.left-content::before{

    content:"";

    position:absolute;

    top:-120%;

    left:-50%;

    width:60%;

    height:260%;

    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.18),
        transparent
    );

    transform:rotate(25deg);

    animation:shineEffect 7s linear infinite;

}

/*==================================================
        ANIMATIONS
==================================================*/

@keyframes neonGlow{

    0%{

        transform:scale(1);

        opacity:.45;

    }

    50%{

        transform:scale(1.15);

        opacity:.75;

    }

    100%{

        transform:scale(1);

        opacity:.45;

    }

}

@keyframes neonGlow2{

    0%{

        transform:scale(1);

        opacity:.30;

    }

    50%{

        transform:scale(.85);

        opacity:.65;

    }

    100%{

        transform:scale(1);

        opacity:.30;

    }

}

@keyframes shineEffect{

    0%{

        left:-80%;

    }

    100%{

        left:180%;

    }

}
/*==================================================
        PREMIUM COUNTER
==================================================*/

.feature-card{

    transition:.35s;

    cursor:pointer;

}

.feature-card:hover{

    transform:translateY(-12px) scale(1.04);

    box-shadow:
        0 20px 40px rgba(37,99,235,.18);

}

.feature-card h3{

    font-size:34px;

    font-weight:800;

    color:#ffffff;

    text-shadow:
        0 0 18px rgba(37,99,235,.35);

    transition:.3s;

}

.feature-card:hover h3{

    color:#6cb7ff;

    text-shadow:

        0 0 10px rgba(80,170,255,.6),

        0 0 25px rgba(80,170,255,.5),

        0 0 45px rgba(80,170,255,.35);

}

.counter.finished{

    animation:counterBounce .8s ease;

}

@keyframes counterBounce{

    0%{

        transform:scale(.6);

    }

    40%{

        transform:scale(1.35);

    }

    60%{

        transform:scale(.92);

    }

    80%{

        transform:scale(1.08);

    }

    100%{

        transform:scale(1);

    }

}
/*=========================================
      LIVE STATUS PANEL
=========================================*/

.live-status{

    margin-top:35px;

    display:flex;

    flex-direction:column;

    gap:18px;

}

.status-item{

    display:flex;

    align-items:center;

    gap:18px;

    padding:18px 22px;

    border-radius:18px;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(12px);

    border:1px solid rgba(255,255,255,.12);

    transition:.35s;

}

.status-item:hover{

    transform:translateX(8px);

    background:rgba(255,255,255,.12);

}

.status-item i{

    width:58px;

    height:58px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:rgba(31,115,255,.18);

    color:#5eb5ff;

    font-size:24px;

}

.status-item strong{

    display:block;

    color:#ffffff;

    font-size:24px;

    font-weight:700;

}

.status-item span{

    color:#d8deea;

    font-size:14px;

}
.login-wrapper{
    display:flex;
    width:100%;
    height:calc(100vh - 72px);
    overflow:hidden;

    /* NEW */
    transform:scale(.88);
    transform-origin:top center;
}
.login-left{
    width:48%;
}
.login-right{
    width:52%;
    padding:20px 35px;
}
.login-card{
    width:460px;
    padding:32px;
    border-radius:24px;
}
.logo-box{
    width:95px;
    height:95px;
}

.logo-img{
    width:70px;
}
.brand-title{
    font-size:50px;
}

.welcome-title{
    font-size:32px;
}

.welcome-text{
    font-size:15px;
}
.input-group-custom{
    margin-top:14px;
}

.input-group-custom input{
    padding:13px 14px;
    font-size:15px;
}
.login-btn{
    padding:14px;
    font-size:18px;
}
.stat-card{
    width:150px;
    height:120px;
}

.stat-card h2{
    font-size:34px;
}

.stat-card p{
    font-size:15px;
}