/* =========================================================
   AUTH.CSS - QUỲNH PHƯƠNG LOWER
========================================================= */

*,
*::before,
*::after{
    box-sizing:border-box;
}

body{
    margin:0;
    min-height:100vh;
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",system-ui,sans-serif;
    color:#233b5d;
    background:#f4f7fb;
}

.auth-page{
    min-height:100vh;
    position:relative;
    overflow:hidden;
    padding:32px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:
        radial-gradient(circle at 10% 10%, rgba(35,59,93,.20), transparent 32%),
        radial-gradient(circle at 90% 85%, rgba(255,255,255,.70), transparent 34%),
        linear-gradient(135deg,#f8fbff 0%,#f4f7fb 46%,#e8eef6 100%);
}

.auth-glass-bg{
    position:absolute;
    border-radius:999px;
    filter:blur(8px);
    opacity:.55;
    animation:authFloat 9s ease-in-out infinite;
}

.auth-glass-bg-1{
    width:280px;
    height:280px;
    left:7%;
    top:8%;
    background:rgba(35,59,93,.22);
}

.auth-glass-bg-2{
    width:360px;
    height:360px;
    right:6%;
    bottom:8%;
    background:rgba(45,70,101,.18);
    animation-delay:1.5s;
}

.auth-glass-bg-3{
    width:180px;
    height:180px;
    right:24%;
    top:15%;
    background:rgba(255,255,255,.55);
    animation-delay:3s;
}

@keyframes authFloat{
    0%,100%{
        transform:translateY(0) scale(1);
    }

    50%{
        transform:translateY(-20px) scale(1.04);
    }
}

/* SHELL */

.auth-shell{
    width:100%;
    max-width:1180px;
    min-height:640px;

    position:relative;
    z-index:2;

    display:grid;
    grid-template-columns:1.15fr .85fr;

    border-radius:36px;
    overflow:hidden;

    background:rgba(255,255,255,.48);
    border:1px solid rgba(255,255,255,.78);

    box-shadow:
        0 36px 90px rgba(15,23,42,.14),
        inset 0 1px 0 rgba(255,255,255,.86);

    backdrop-filter:blur(30px) saturate(180%);
    -webkit-backdrop-filter:blur(30px) saturate(180%);
}

/* LEFT */

.auth-left{
    padding:52px;

    display:flex;
    flex-direction:column;
    justify-content:space-between;

    background:
        linear-gradient(135deg, rgba(255,255,255,.52), rgba(255,255,255,.16));
}

.auth-brand{
    display:flex;
    align-items:center;
    gap:14px;
}

.auth-brand-logo{
    width:72px;
    height:72px;

    border-radius:24px;

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

    display:flex;
    align-items:center;
    justify-content:center;

    border:1px solid rgba(255,255,255,.82);

    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);

    box-shadow:
        0 15px 35px rgba(35,59,93,.18),
        inset 0 1px 0 rgba(255,255,255,.92);
}

.auth-brand-logo img{
    width:54px;
    height:54px;
    object-fit:contain;
}

.auth-brand-icon{
    width:52px;
    height:52px;

    border-radius:18px;

    display:flex;
    align-items:center;
    justify-content:center;

    color:#ffffff;
    font-size:24px;

    background:
        linear-gradient(135deg,#2d4665,#233b5d);

    box-shadow:0 16px 34px rgba(35,59,93,.28);
}

.auth-brand-title{
    color:#233b5d;
    font-size:18px;
    font-weight:950;
    letter-spacing:.2px;
}

.auth-brand-subtitle{
    color:#6f7f95;
    font-size:13px;
    font-weight:650;
}

.auth-heading{
    margin-top:58px;
    margin-bottom:18px;

    color:#233b5d;

    font-size:54px;
    line-height:1.03;
    letter-spacing:-2px;
    font-weight:950;
}

.auth-desc{
    max-width:590px;

    color:#6f7f95;

    font-size:17px;
    line-height:1.75;
    font-weight:600;
}

/* MODULE CARDS */

.auth-module-grid{
    margin-top:38px;

    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}

.auth-module-card{
    min-height:96px;

    padding:18px 14px;

    border-radius:24px;
    border:1px solid rgba(255,255,255,.76);

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

    box-shadow:
        0 12px 28px rgba(35,59,93,.07),
        inset 0 1px 0 rgba(255,255,255,.86);

    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:10px;

    color:#233b5d;

    font-weight:850;

    backdrop-filter:blur(20px) saturate(170%);
    -webkit-backdrop-filter:blur(20px) saturate(170%);
}

.auth-module-card i{
    color:#233b5d;
    font-size:24px;
}

.auth-footer{
    margin-top:32px;

    color:#94a3b8;

    font-size:13px;
    font-weight:600;
}

/* RIGHT */

.auth-right{
    padding:42px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:rgba(255,255,255,.42);
    border-left:1px solid rgba(255,255,255,.62);
}

.auth-card{
    width:100%;
    max-width:410px;

    padding:34px;

    border-radius:32px;
    border:1px solid rgba(255,255,255,.86);

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

    box-shadow:
        0 24px 60px rgba(15,23,42,.12),
        inset 0 1px 0 rgba(255,255,255,.92);

    backdrop-filter:blur(26px) saturate(180%);
    -webkit-backdrop-filter:blur(26px) saturate(180%);
}

.auth-card-header{
    text-align:center;
    margin-bottom:28px;
}

.auth-lock{
    width:64px;
    height:64px;

    margin:0 auto 18px;

    border-radius:22px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:rgba(35,59,93,.10);
    color:#233b5d;

    font-size:30px;
}

.auth-card-header h2{
    margin:0;

    color:#233b5d;

    font-size:31px;
    font-weight:950;
    letter-spacing:-.8px;
}

.auth-card-header p{
    margin:8px 0 0;

    color:#6f7f95;

    font-weight:600;
}

.auth-alert{
    border:0;
    border-radius:18px;
    font-size:14px;
}

/* FIELDS */

.auth-field{
    margin-bottom:18px;
}

.auth-field label{
    display:block;

    margin-bottom:8px;

    color:#233b5d;

    font-size:14px;
    font-weight:850;
}

.auth-input-wrap{
    height:54px;

    padding:0 16px;

    border-radius:18px;
    border:1px solid rgba(35,59,93,.18);

    display:flex;
    align-items:center;
    gap:12px;

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

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.92),
        0 8px 22px rgba(35,59,93,.05);

    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.auth-input-wrap i{
    color:#233b5d;
    font-size:18px;
}

.auth-input-wrap input{
    width:100%;

    border:0;
    outline:0;
    background:transparent;

    color:#233b5d;

    font-size:15px;
    font-weight:700;
}

.auth-input-wrap input::placeholder{
    color:rgba(111,127,149,.72);
    font-weight:600;
}

.auth-input-wrap:focus-within{
    border-color:rgba(35,59,93,.58);

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

    box-shadow:
        0 0 0 4px rgba(35,59,93,.12),
        0 14px 30px rgba(35,59,93,.10),
        inset 0 1px 0 rgba(255,255,255,.94);
}

/* SUBMIT */

.auth-submit-btn{
    width:100%;
    height:54px;

    margin-top:8px;

    border:0;
    border-radius:18px;

    color:#ffffff;

    font-weight:950;

    background:
        linear-gradient(135deg,#2d4665,#233b5d);

    box-shadow:
        0 18px 36px rgba(35,59,93,.28),
        inset 0 1px 0 rgba(255,255,255,.18);

    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.auth-submit-btn:hover{
    transform:translateY(-2px);

    background:
        linear-gradient(135deg,#233b5d,#1d314b);

    box-shadow:
        0 22px 42px rgba(35,59,93,.34),
        inset 0 1px 0 rgba(255,255,255,.22);
}

.auth-register{
    margin-top:24px;

    text-align:center;

    color:#6f7f95;

    font-size:14px;
    font-weight:600;
}

.auth-register a{
    color:#233b5d;
    font-weight:850;
    text-decoration:none;
}

.auth-register a:hover{
    text-decoration:underline;
}

/* RESPONSIVE */

@media (max-width:992px){
    .auth-page{
        padding:18px;
        overflow:auto;
    }

    .auth-shell{
        grid-template-columns:1fr;
        min-height:auto;
    }

    .auth-left{
        padding:34px;
    }

    .auth-right{
        padding:28px;
        border-left:0;
    }

    .auth-heading{
        margin-top:36px;
        font-size:38px;
    }

    .auth-module-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:576px){
    .auth-page{
        padding:12px;
    }

    .auth-shell{
        border-radius:28px;
    }

    .auth-left{
        padding:26px;
    }

    .auth-right{
        padding:22px;
    }

    .auth-heading{
        font-size:32px;
    }

    .auth-desc{
        font-size:15px;
    }

    .auth-module-grid{
        grid-template-columns:1fr;
    }

    .auth-card{
        padding:26px;
        border-radius:26px;
    }

    .auth-brand-logo{
        width:62px;
        height:62px;
        border-radius:21px;
    }

    .auth-brand-logo img{
        width:46px;
        height:46px;
    }
}

@media (max-width: 768px) {
    .auth-page {
        min-height: 100dvh;
        padding: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .auth-shell {
        width: 100%;
        max-width: 430px;
        min-height: auto;
        display: block;
        padding: 0;
        background: transparent;
        border: none;
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .auth-left {
        display: none !important;
    }

    .auth-right {
        width: 100%;
        min-height: auto;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .auth-card {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 24px 20px;
        border-radius: 26px;
    }

    .auth-card-header h2 {
        font-size: 28px;
    }

    .auth-card-header p {
        font-size: 13px;
    }

    .auth-register {
        font-size: 12px;
        line-height: 1.45;
    }
}