*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

:root{
    --bg:#070E1D;
    --panel:#11172B;
    --panel-soft:#161B34;
    --stroke:rgba(178,142,255,0.22);
    --text:#F8FAFC;
    --muted:#AAB2C8;
    --purple:#8B5CF6;
    --pink:#D84FCE;
    --violet:#6D3CE8;
}

body{
    min-height:100vh;
    overflow:hidden;
    background:
    radial-gradient(circle at 0% 100%, rgba(137,76,255,0.45), transparent 28%),
    radial-gradient(circle at 48% 15%, rgba(113,67,255,0.24), transparent 28%),
    radial-gradient(circle at 88% 82%, rgba(77,111,255,0.16), transparent 26%),
    linear-gradient(135deg,#07101F,#0B1023 48%,#070B17);
    color:var(--text);
    font-family:'Poppins',sans-serif;
}

.page-transition{
    display:none;
}

.container{
    height:100vh;
    min-height:0;
    display:grid;
    grid-template-columns:minmax(520px,1.12fr) minmax(430px,0.88fr);
    align-items:center;
    gap:70px;
    padding:30px 84px 86px;
}

.left-side,
.right-side{
    position:relative;
    display:flex;
    align-items:center;
    min-height:0;
    height:100%;
    max-height:calc(100vh - 116px);
}

.left-side{
    justify-content:center;
    overflow:hidden;
    border:1px solid var(--stroke);
    border-radius:26px;
    background:
    radial-gradient(circle at 28% 22%, rgba(116,65,255,0.44), transparent 33%),
    radial-gradient(circle at 90% 95%, rgba(124,58,237,0.30), transparent 36%),
    linear-gradient(145deg, rgba(18,25,51,0.95), rgba(8,13,30,0.92));
    box-shadow:0 28px 90px rgba(0,0,0,0.38);
}

.left-side::before{
    content:'';
    position:absolute;
    inset:auto -80px -110px 45%;
    height:210px;
    border-radius:50%;
    background:rgba(110,67,212,0.30);
    filter:blur(12px);
}

.left-side::after{
    content:'';
    position:absolute;
    top:42px;
    right:42px;
    width:170px;
    height:170px;
    background-image:radial-gradient(rgba(168,85,247,0.65) 2px, transparent 2px);
    background-size:20px 20px;
    opacity:0.45;
    mask-image:linear-gradient(90deg, transparent, #000);
}

.overlay{
    position:absolute;
    inset:0;
    background:
    radial-gradient(circle at 20% 82%, rgba(173,63,255,0.28), transparent 35%),
    linear-gradient(180deg, transparent, rgba(8,12,27,0.18));
}

.left-content{
    position:relative;
    z-index:2;
    width:min(680px,76%);
}

.logo{
    width:114px;
    height:114px;
    object-fit:contain;
    margin-bottom:18px;
    filter:drop-shadow(0 18px 34px rgba(139,92,246,0.35));
}

.tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    min-width:172px;
    margin:0 0 26px 28px;
    padding:0 26px;
    border:1px solid rgba(139,92,246,0.85);
    border-radius:999px;
    background:linear-gradient(135deg,rgba(126,58,242,0.58),rgba(36,60,132,0.55));
    color:#F6F0FF;
    font-weight:800;
    box-shadow:0 0 28px rgba(139,92,246,0.36);
}

.left-content h1{
    max-width:650px;
    margin-bottom:14px;
    font-size:clamp(42px,4.15vw,64px);
    line-height:1.05;
    font-weight:800;
    letter-spacing:0;
}

.left-content h1::after{
    content:'';
    display:block;
    width:118px;
    height:5px;
    margin-top:16px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--pink),var(--purple));
}

.left-content h1::first-line{
    color:#FFFFFF;
}

.left-content p{
    max-width:610px;
    color:#BBC3D8;
    font-size:19px;
    line-height:1.45;
}

.login-feature-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    margin-top:34px;
}

.login-feature{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    align-items:center;
    gap:15px;
}

.feature-icon{
    width:58px;
    height:58px;
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    border:1px solid rgba(139,92,246,0.38);
    border-radius:13px;
    background:linear-gradient(145deg,rgba(142,84,255,0.30),rgba(60,32,110,0.70));
    color:#D96CFF;
    font-weight:900;
    box-shadow:0 12px 30px rgba(92,51,188,0.24);
}

.login-feature strong,
.login-feature small{
    display:block;
}

.login-feature strong{
    font-size:15px;
}

.login-feature small{
    margin-top:2px;
    color:#AEB6CA;
    font-size:12px;
    line-height:1.25;
}

.right-side{
    justify-content:center;
}

.login-box{
    width:min(440px,100%);
    padding:44px 38px 36px;
    border:1px solid var(--stroke);
    border-radius:26px;
    background:
    radial-gradient(circle at 50% 0%, rgba(139,92,246,0.20), transparent 38%),
    linear-gradient(180deg,rgba(26,31,58,0.92),rgba(14,19,36,0.92));
    box-shadow:
    0 34px 90px rgba(0,0,0,0.44),
    0 0 80px rgba(100,63,218,0.18);
}

.mobile-logo{
    display:none;
    justify-content:center;
    margin-bottom:24px;
}

.mobile-logo img{
    width:96px;
    height:96px;
    object-fit:contain;
    filter:drop-shadow(0 14px 28px rgba(139,92,246,0.28));
}

.login-avatar-icon{
    width:72px;
    height:72px;
    display:grid;
    place-items:center;
    margin:0 auto 28px;
    border:2px solid rgba(139,92,246,0.48);
    border-radius:50%;
    background:rgba(139,92,246,0.08);
    box-shadow:0 0 28px rgba(139,92,246,0.46);
}

.login-avatar-icon span{
    width:28px;
    height:28px;
    border:3px solid #D15CF3;
    border-top-color:transparent;
    border-radius:50% 50% 42% 42%;
    position:relative;
}

.login-avatar-icon span::before{
    content:'';
    position:absolute;
    top:-18px;
    left:50%;
    width:12px;
    height:12px;
    border:3px solid #D15CF3;
    border-radius:50%;
    transform:translateX(-50%);
}

.login-box h2{
    margin-bottom:10px;
    text-align:center;
    font-size:38px;
    line-height:1.1;
    font-weight:800;
}

.subtitle{
    margin-bottom:34px;
    color:#B4BCD2;
    text-align:center;
    font-size:17px;
}

.input-group{
    position:relative;
    margin-bottom:20px;
}

.input-group label{
    display:block;
    margin-bottom:10px;
    color:#A77BFF;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
}

.input-group input{
    width:100%;
    height:54px;
    border:1px solid rgba(148,163,184,0.18);
    border-radius:10px;
    outline:none;
    padding:0 48px 0 54px;
    background:rgba(9,15,30,0.66);
    color:white;
    font:inherit;
    transition:0.22s ease;
}

.input-group input::placeholder{
    color:rgba(218,225,240,0.56);
}

.input-group input:focus{
    border-color:rgba(167,123,255,0.74);
    box-shadow:0 0 0 3px rgba(139,92,246,0.14);
}

.input-icon{
    position:absolute;
    bottom:15px;
    width:21px;
    height:21px;
    opacity:0.76;
    pointer-events:none;
}

.user-icon,
.lock-icon{
    left:22px;
}

.user-icon{
    border:2px solid #C1C8D9;
    border-top-color:transparent;
    border-radius:50% 50% 45% 45%;
}

.user-icon::before{
    content:'';
    position:absolute;
    top:-11px;
    left:50%;
    width:8px;
    height:8px;
    border:2px solid #C1C8D9;
    border-radius:50%;
    transform:translateX(-50%);
}

.lock-icon{
    border:2px solid #C1C8D9;
    border-radius:4px;
}

.lock-icon::before{
    content:'';
    position:absolute;
    left:4px;
    top:-11px;
    width:9px;
    height:11px;
    border:2px solid #C1C8D9;
    border-bottom:0;
    border-radius:8px 8px 0 0;
}

.eye-icon{
    right:20px;
    width:22px;
    height:14px;
    bottom:18px;
    border:2px solid #C1C8D9;
    border-radius:50%;
}

.eye-icon::before{
    content:'';
    position:absolute;
    inset:3px 6px;
    border-radius:50%;
    background:#C1C8D9;
}

button{
    width:100%;
    height:64px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin-top:28px;
    border:0;
    border-radius:10px;
    background:linear-gradient(100deg,#8D46F2,#D44AD4);
    color:white;
    font:inherit;
    font-size:18px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 22px 38px rgba(136,75,242,0.25);
    transition:0.22s ease;
}

button:hover{
    transform:translateY(-2px);
    box-shadow:0 26px 46px rgba(136,75,242,0.34);
}

.login-arrow{
    font-size:31px;
    line-height:1;
    font-weight:400;
}

.bottom-text{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:28px;
    padding-top:26px;
    border-top:1px solid rgba(255,255,255,0.08);
    color:#929CB6;
    font-size:14px;
}

.berry-mark{
    width:22px;
    height:22px;
    display:inline-grid;
    place-items:center;
    border-radius:50%;
    background:linear-gradient(135deg,#8B5CF6,#D84FCE);
    color:white;
    font-size:12px;
    font-weight:900;
}

.footer-login{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:5;
    padding:12px 48px;
    background:linear-gradient(180deg,rgba(7,12,24,0.10),rgba(7,12,24,0.78));
    backdrop-filter:blur(10px);
}

.footer-content{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.footer-logo{
    display:flex;
    align-items:center;
    gap:14px;
}

.footer-logo img{
    width:54px;
    height:54px;
    object-fit:contain;
    border-radius:12px;
    filter:drop-shadow(0 8px 18px rgba(139,92,246,0.24));
}

.footer-logo strong,
.footer-logo span{
    display:block;
}

.footer-logo strong{
    color:white;
    font-size:16px;
}

.footer-logo span,
.footer-right p{
    color:#9099B1;
    font-size:14px;
}

.footer-right{
    display:flex;
    align-items:center;
    gap:10px;
}

.footer-right a{
    color:#A268FF;
    font-weight:800;
    text-decoration:none;
}

.popup-login{
    position:fixed;
    inset:0;
    z-index:999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(3,7,18,0.72);
    backdrop-filter:blur(8px);
    opacity:0;
    pointer-events:none;
    transition:0.25s ease;
}

.popup-login.active{
    opacity:1;
    pointer-events:auto;
}

.popup-box{
    width:min(380px,100%);
    padding:34px;
    border:1px solid var(--stroke);
    border-radius:22px;
    background:var(--panel);
    text-align:center;
    box-shadow:0 26px 70px rgba(0,0,0,0.45);
}

.popup-icone{
    width:68px;
    height:68px;
    display:grid;
    place-items:center;
    margin:0 auto 18px;
    border-radius:50%;
    background:rgba(239,68,68,0.12);
    color:#FB7185;
    font-size:30px;
}

.popup-box h2{
    margin-bottom:10px;
}

.popup-box p{
    color:#B4BCD2;
}

@media(max-width:1180px){
    .container{
        grid-template-columns:1fr;
        gap:30px;
        padding:28px 26px 118px;
    }

    .left-side,
    .right-side{
        min-height:auto;
    }

    .left-side{
        padding:54px 0;
    }

    .right-side{
        padding:0;
    }

    .login-box{
        margin:0 auto;
    }
}

@media(max-width:760px){
    .left-side{
        display:none;
    }

    .container{
        min-height:100vh;
        display:flex;
        align-items:center;
        justify-content:center;
        padding:22px 16px 150px;
    }

    .mobile-logo{
        display:flex;
    }

    .login-avatar-icon{
        display:none;
    }

    .footer-content{
        flex-direction:column;
        text-align:center;
    }

    .footer-right{
        flex-direction:column;
        gap:4px;
    }
}

@media(max-width:520px){
    .login-box{
        padding:28px 18px;
        border-radius:20px;
    }

    .login-box h2{
        font-size:31px;
    }

    button{
        height:58px;
        font-size:16px;
    }

    .footer-login{
        padding:14px;
    }
}
