/* ==========================================================
LOGIN.CSS
Modern Glassmorphism Login
DISKOMINFOTIK TTU
==========================================================*/


/* ==========================================================
RESET
==========================================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Poppins',sans-serif;

    background:#edf4ff;

    min-height:100vh;

    overflow-x:hidden;

    position:relative;

}


/* ==========================================================
BACKGROUND
==========================================================*/

.background{

    position:fixed;

    inset:0;

    overflow:hidden;

    background:

    linear-gradient(135deg,#0f5ef7 0%,#4f8cff 40%,#dfefff 100%);

}


/* Grid */

.grid-bg{

    position:absolute;

    inset:0;

    opacity:.06;

    background-image:

    linear-gradient(rgba(255,255,255,.6) 1px,transparent 1px),

    linear-gradient(90deg,rgba(255,255,255,.6) 1px,transparent 1px);

    background-size:45px 45px;

}


/* Blur */

.blur{

    position:absolute;

    border-radius:50%;

    filter:blur(120px);

    opacity:.55;

}

.blur1{

    width:420px;

    height:420px;

    background:#7ec8ff;

    left:-120px;

    top:-80px;

}

.blur2{

    width:500px;

    height:500px;

    background:#4b74ff;

    right:-160px;

    top:120px;

}

.blur3{

    width:360px;

    height:360px;

    background:#ffffff;

    bottom:-120px;

    left:45%;

}


/* Floating circles */

.circle{

    position:absolute;

    border-radius:50%;

    border:1px solid rgba(255,255,255,.15);

    animation:float 9s ease-in-out infinite;

}

.circle.one{

    width:120px;

    height:120px;

    top:18%;

    left:14%;

}

.circle.two{

    width:70px;

    height:70px;

    bottom:18%;

    right:20%;

}

.circle.three{

    width:220px;

    height:220px;

    bottom:-80px;

    right:-50px;

}


/* ==========================================================
ANIMATION
==========================================================*/

@keyframes float{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-20px);

    }

    100%{

        transform:translateY(0);

    }

}

.fade-up{

    animation:fadeUp .8s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(45px);

    }

    to{

        opacity:1;

        transform:none;

    }

}


/* ==========================================================
BACK BUTTON
==========================================================*/

.back-home{

    position:fixed;

    top:35px;

    left:35px;

    z-index:999;

    display:flex;

    align-items:center;

    gap:10px;

    padding:14px 24px;

    text-decoration:none;

    color:#fff;

    border-radius:50px;

    backdrop-filter:blur(18px);

    background:rgba(255,255,255,.12);

    border:1px solid rgba(255,255,255,.15);

    transition:.35s;

}

.back-home:hover{

    transform:translateY(-3px);

    background:rgba(255,255,255,.22);

}


/* ==========================================================
WRAPPER
==========================================================*/

.login-wrapper{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:60px;

}


/* ==========================================================
MAIN CARD
==========================================================*/

.login-card{

    width:1320px;

    min-height:760px;

    display:grid;

    grid-template-columns:1.08fr .92fr;

    overflow:hidden;

    border-radius:34px;

    background:rgba(255,255,255,.15);

    backdrop-filter:blur(30px);

    border:1px solid rgba(255,255,255,.18);

    box-shadow:

    0 35px 90px rgba(0,0,0,.18);

}


/* ==========================================================
LEFT PANEL
==========================================================*/

.login-left{

    position:relative;

    padding:55px;

    color:#fff;

    display:flex;

    flex-direction:column;

    justify-content:space-between;

}


/* ==========================================================
RIGHT PANEL
==========================================================*/

.login-right{

    background:rgba(255,255,255,.82);

    backdrop-filter:blur(40px);

    display:flex;

    justify-content:center;

    align-items:center;

    padding:70px;

}

/* ==========================================================
BRAND
==========================================================*/

.brand{

    display:flex;

    align-items:center;

    gap:18px;

    margin-bottom:25px;

}

.brand-logo{

    width:78px;

    height:78px;

    object-fit:contain;

    border-radius:18px;

    background:rgba(255,255,255,.15);

    backdrop-filter:blur(12px);

    padding:10px;

    box-shadow:0 12px 30px rgba(0,0,0,.18);

}

.brand-text h2{

    font-size:30px;

    font-weight:700;

    letter-spacing:.5px;

}

.brand-text span{

    display:block;

    margin-top:4px;

    color:rgba(255,255,255,.82);

    font-size:14px;

}


/* ==========================================================
SYSTEM BADGE
==========================================================*/

.system-badge{

    display:inline-flex;

    align-items:center;

    gap:10px;

    width:max-content;

    padding:12px 22px;

    border-radius:40px;

    margin-top:20px;

    margin-bottom:35px;

    background:rgba(255,255,255,.16);

    border:1px solid rgba(255,255,255,.22);

    backdrop-filter:blur(20px);

    font-size:14px;

    font-weight:600;

}

.system-badge i{

    color:#ffe082;

}


/* ==========================================================
HERO CONTENT
==========================================================*/

.hero-content{

    max-width:560px;

}

.hero-content h1{

    font-size:56px;

    line-height:1.18;

    font-weight:800;

    margin-bottom:25px;

}

.hero-content h1 span{

    display:block;

    color:#dbeafe;

}

.hero-content p{

    font-size:17px;

    line-height:1.9;

    color:rgba(255,255,255,.88);

}


/* ==========================================================
FEATURE CARD
==========================================================*/

.feature-card{

    margin-top:45px;

    display:grid;

    gap:18px;

}

.feature-item{

    display:flex;

    align-items:flex-start;

    gap:18px;

    padding:18px 22px;

    border-radius:20px;

    background:rgba(255,255,255,.12);

    border:1px solid rgba(255,255,255,.15);

    backdrop-filter:blur(15px);

    transition:.35s;

}

.feature-item:hover{

    transform:translateX(8px);

    background:rgba(255,255,255,.18);

}

.feature-icon{

    width:58px;

    height:58px;

    border-radius:16px;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(255,255,255,.22);

    flex-shrink:0;

}

.feature-icon i{

    font-size:22px;

    color:#fff;

}

.feature-item h4{

    margin-bottom:6px;

    font-size:17px;

    font-weight:700;

}

.feature-item p{

    font-size:14px;

    color:rgba(255,255,255,.82);

    line-height:1.6;

}


/* ==========================================================
OFFICE CARD
==========================================================*/

.office-card{

    margin-top:40px;

    padding:28px;

    border-radius:24px;

    background:rgba(255,255,255,.12);

    border:1px solid rgba(255,255,255,.18);

    backdrop-filter:blur(20px);

}

.office-title{

    display:flex;

    align-items:center;

    gap:12px;

    margin-bottom:15px;

}

.office-title i{

    font-size:28px;

}

.office-title h3{

    font-size:22px;

    font-weight:700;

}

.office-card>p{

    color:rgba(255,255,255,.88);

    line-height:1.8;

    margin-bottom:25px;

}


/* ==========================================================
INFO
==========================================================*/

.office-info{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:18px;

}

.office-info div{

    padding:18px;

    border-radius:16px;

    background:rgba(255,255,255,.10);

}

.office-info strong{

    display:block;

    margin-bottom:8px;

    font-size:14px;

    color:#fff;

}

.office-info span{

    color:rgba(255,255,255,.82);

    font-size:13px;

}
/* ==========================================================
LOGIN BOX
==========================================================*/

.login-box{

    width:100%;
    max-width:480px;

}

.login-header{

    margin-bottom:40px;

}

.login-header h2{

    font-size:42px;

    color:#183153;

    font-weight:700;

    margin-bottom:12px;

}

.login-header p{

    color:#64748b;

    line-height:1.8;

    font-size:15px;

}


/* ==========================================================
ALERT
==========================================================*/

.alert-error{

    display:flex;

    align-items:center;

    gap:12px;

    padding:18px 22px;

    margin-bottom:28px;

    border-radius:18px;

    background:#fff0f0;

    color:#dc2626;

    border:1px solid #fecaca;

    font-size:14px;

}

.alert-error i{

    font-size:18px;

}


/* ==========================================================
FORM
==========================================================*/

.login-form{

    display:flex;

    flex-direction:column;

    gap:25px;

}


/* ==========================================================
INPUT GROUP
==========================================================*/

.input-group{

    display:flex;

    flex-direction:column;

    gap:10px;

}

.input-group label{

    font-size:14px;

    color:#334155;

    font-weight:600;

}


/* ==========================================================
INPUT
==========================================================*/

.input-icon{

    position:relative;

}

.input-icon i:first-child{

    position:absolute;

    left:22px;

    top:50%;

    transform:translateY(-50%);

    color:#3366ff;

    font-size:18px;

}

.input-icon input{

    width:100%;

    height:64px;

    padding-left:58px;

    padding-right:55px;

    border:none;

    outline:none;

    border-radius:18px;

    background:#f4f8ff;

    font-size:15px;

    color:#1e293b;

    transition:.35s;

    border:2px solid transparent;

}

.input-icon input::placeholder{

    color:#94a3b8;

}

.input-icon input:focus{

    background:#fff;

    border-color:#3b82f6;

    box-shadow:

    0 12px 35px rgba(59,130,246,.15);

}


/* ==========================================================
PASSWORD BUTTON
==========================================================*/

.toggle-password{

    position:absolute;

    top:50%;

    right:20px;

    transform:translateY(-50%);

    width:42px;

    height:42px;

    border:none;

    border-radius:12px;

    cursor:pointer;

    background:#edf4ff;

    transition:.3s;

}

.toggle-password:hover{

    background:#dbeafe;

}

.toggle-password i{

    color:#3366ff;

    font-size:17px;

}


/* ==========================================================
OPTIONS
==========================================================*/

.form-option{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-top:-5px;

}

.remember{

    display:flex;

    align-items:center;

    gap:8px;

    color:#64748b;

    font-size:14px;

}

.remember input{

    accent-color:#3366ff;

}

.forgot-password{

    color:#3366ff;

    text-decoration:none;

    font-size:14px;

    font-weight:600;

}

.forgot-password:hover{

    text-decoration:underline;

}


/* ==========================================================
LOGIN BUTTON
==========================================================*/

.login-button{

    margin-top:10px;

    width:100%;

    height:64px;

    border:none;

    border-radius:18px;

    cursor:pointer;

    background:linear-gradient(135deg,#2563eb,#3b82f6);

    color:#fff;

    font-size:17px;

    font-weight:700;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:12px;

    transition:.35s;

}

.login-button:hover{

    transform:translateY(-4px);

    box-shadow:

    0 18px 35px rgba(37,99,235,.28);

}

.login-button:active{

    transform:scale(.98);

}

/* ==========================================================
AJUKAN AKUN
==========================================================*/

.account-request{

    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:24px;
    color:#64748b;
    font-size:14px;

}

.account-request a{

    color:#2563eb;
    font-weight:700;
    text-decoration:none;

}

.account-request a:hover{

    text-decoration:underline;

}


/* ==========================================================
DIVIDER
==========================================================*/

.divider{

    display:flex;

    align-items:center;

    margin:35px 0;

    color:#94a3b8;

    font-size:13px;

}

.divider::before,

.divider::after{

    content:"";

    flex:1;

    height:1px;

    background:#dbe4f1;

}

.divider span{

    margin:0 18px;

}


/* ==========================================================
FOOTER
==========================================================*/

.login-footer{

    margin-top:35px;

    padding-top:28px;

    border-top:1px solid #e2e8f0;

}

.login-footer p{

    display:flex;

    gap:10px;

    align-items:flex-start;

    color:#64748b;

    font-size:14px;

    line-height:1.8;

}

.login-footer i{

    color:#2563eb;

    margin-top:3px;

}

/* ==========================================================
ANIMATION
==========================================================*/

.login-card{

    animation:loginFade .9s ease;

}

@keyframes loginFade{

    from{

        opacity:0;

        transform:translateY(35px) scale(.97);

    }

    to{

        opacity:1;

        transform:none;

    }

}

.hero-content,
.login-box{

    animation:fadeUp .9s ease;

}


/* ==========================================================
SCROLLBAR
==========================================================*/

::-webkit-scrollbar{

    width:8px;

}

::-webkit-scrollbar-thumb{

    background:#3b82f6;

    border-radius:20px;

}

::-webkit-scrollbar-track{

    background:#eef4ff;

}


/* ==========================================================
HOVER EFFECT
==========================================================*/

.feature-item,
.office-card,
.login-box{

    transition:.35s;

}

.office-card:hover{

    transform:translateY(-6px);

    box-shadow:

    0 18px 45px rgba(0,0,0,.12);

}

.feature-item:hover .feature-icon{

    transform:rotate(-8deg) scale(1.08);

    transition:.35s;

}

.brand-logo:hover{

    transform:rotate(-6deg) scale(1.05);

    transition:.35s;

}


/* ==========================================================
GLASS BORDER
==========================================================*/

.login-card::before{

    content:"";

    position:absolute;

    inset:0;

    border-radius:34px;

    padding:1px;

    background:

    linear-gradient(

        135deg,

        rgba(255,255,255,.45),

        rgba(255,255,255,.05)

    );

    -webkit-mask:

        linear-gradient(#fff 0 0) content-box,

        linear-gradient(#fff 0 0);

    -webkit-mask-composite:xor;

            mask-composite:exclude;

    pointer-events:none;

}


/* ==========================================================
RESPONSIVE
==========================================================*/

@media(max-width:1200px){

.login-card{

grid-template-columns:1fr;

max-width:760px;

}

.login-left{

padding:45px;

}

.login-right{

padding:50px;

}

.hero-content h1{

font-size:46px;

}

.office-info{

grid-template-columns:1fr;

}

}


/* ==========================================================
TABLET
==========================================================*/

@media(max-width:768px){

.login-wrapper{

padding:20px;

}

.back-home{

top:18px;

left:18px;

padding:12px 18px;

font-size:14px;

}

.login-card{

border-radius:24px;

}

.login-left{

padding:35px;

}

.login-right{

padding:35px;

}

.brand{

flex-direction:column;

align-items:flex-start;

}

.brand-logo{

width:65px;

height:65px;

}

.hero-content h1{

font-size:38px;

}

.hero-content p{

font-size:15px;

}

.feature-card{

gap:14px;

}

.feature-item{

padding:16px;

}

.login-header h2{

font-size:34px;

}

.login-button{

height:58px;

}

}


/* ==========================================================
MOBILE
==========================================================*/

@media(max-width:576px){

.back-home span{

display:none;

}

.back-home{

width:50px;

height:50px;

justify-content:center;

padding:0;

}

.login-wrapper{

padding:15px;

}

.login-left{

padding:28px;

}

.login-right{

padding:25px;

}

.brand-text h2{

font-size:24px;

}

.hero-content h1{

font-size:31px;

}

.hero-content p{

font-size:14px;

line-height:1.8;

}

.system-badge{

font-size:12px;

padding:10px 16px;

}

.feature-item{

flex-direction:column;

text-align:center;

align-items:center;

}

.feature-icon{

margin-bottom:8px;

}

.office-card{

padding:22px;

}

.login-header{

text-align:center;

}

.login-header h2{

font-size:30px;

}

.input-icon input{

height:58px;

font-size:14px;

}

.login-button{

height:56px;

font-size:15px;

}

.login-footer{

text-align:center;

}

.login-footer p{

justify-content:center;

}

}


/* ==========================================================
LARGE SCREEN
==========================================================*/

@media(min-width:1600px){

.login-card{

max-width:1450px;

}

.hero-content h1{

font-size:64px;

}

.login-header h2{

font-size:48px;

}

}
