/* ==========================================================
   LISTFORGE LOGIN PAGE
========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&family=Work+Sans:wght@400;500;600;700&display=swap');

.lfl-page{
    --lf-ink:#12231C;
    --lf-green:#0E6544;
    --lf-green-deep:#0A4E35;
    --lf-ember:#C17817;
    --lf-paper:#F6F8F5;
    --lf-line:#D8E3DC;

    position:fixed;
    inset:0;
    display:flex;
    font-family:'Work Sans', sans-serif;
    z-index:9999;
    background:#fff;
}

.lfl-page *{
    box-sizing:border-box;
}

.lfl-page h1,
.lfl-page h2{
    font-family:'Fraunces', serif;
    margin:0;
}

/* ==========================================================
   LEFT PANEL
========================================================== */

.lfl-side{
    position:relative;
    flex:1;
    background:var(--lf-ink);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    padding:44px 56px;
}

.lfl-side-bg{
    position:absolute;
    inset:0;
    background-image:
        radial-gradient(rgba(14,101,68,.35) 1.5px, transparent 1.5px);
    background-size:34px 34px;
    opacity:.5;
}

.lfl-side-bg::after{
    content:"";
    position:absolute;
    width:460px;
    height:460px;
    top:-120px;
    right:-140px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(14,101,68,.35), transparent 70%);
    filter:blur(20px);
}

.lfl-side-content{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    height:100%;
    gap:60px;
}

.lfl-logo{
    display:flex;
    align-items:center;
    gap:10px;
    color:#fff;
    font-weight:700;
    font-size:16px;
    letter-spacing:.04em;
}

.lfl-logo-icon{
    font-size:18px;
}

.lfl-side-middle{
    max-width:100%;
}

.lfl-badge{
    display:inline-block;
    font-size:12px;
    font-weight:600;
    letter-spacing:.06em;
    color:#9AD9BE;
    background:rgba(14,101,68,.25);
    border:1px solid rgba(14,101,68,.5);
    padding:6px 14px;
    border-radius:999px;
    margin-bottom:26px;
}

.lfl-headline{
    color:#fff;
    font-size:88px;
    font-weight:600;
    line-height:1.05;
    letter-spacing:-.02em;
}

.lfl-headline-accent{
    background:linear-gradient(90deg, #4EDBA0, #C17817);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.lfl-side-sub{
    color:#9FB3A8;
    font-size:18px;
    line-height:1.65;
    margin:26px 0 0;
    max-width:480px;
}

/* ==========================================================
   RIGHT PANEL
========================================================== */

.lfl-main{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:40px;
    background:#fff;
    overflow-y:auto;
}

.lfl-form-wrap{
    width:100%;
    max-width:400px;
}

.lfl-form-wrap h2{
    font-size:28px;
    font-weight:600;
    color:var(--lf-ink);
    text-align:center;
}

.lfl-form-sub{
    text-align:center;
    color:#64748B;
    font-size:14.5px;
    margin:10px 0 32px;
}

.lfl-error{
    display:none;
    background:#FEF2F2;
    border:1px solid #FEE2E2;
    color:#DC2626;
    font-size:13.5px;
    padding:12px 14px;
    border-radius:10px;
    margin-bottom:18px;
}

.lfl-error.active{
    display:block;
}

.lfl-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.lfl-form input[type="text"],
.lfl-form input[type="email"],
.lfl-form input[type="password"]{
    width:100%;
    height:48px;
    padding:0 16px;
    border:1.5px solid #CBD5E1;
    border-radius:10px;
    font-size:15px;
    color:#111827;
    background:#F8FAFC;
    transition:.2s;
}

.lfl-form input:focus{
    outline:none;
    border-color:var(--lf-green);
    background:#fff;
    box-shadow:0 0 0 4px rgba(14,101,68,.08);
}

.lfl-input-wrap{
    position:relative;
}

.lfl-input-wrap input{
    padding-left:42px !important;
    padding-right:42px !important;
}

.lfl-input-icon{
    position:absolute;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    font-size:15px;
    opacity:.5;
    pointer-events:none;
}

.lfl-toggle-password{
    position:absolute;
    right:6px;
    top:50%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border:none;
    background:none;
    font-size:15px;
    cursor:pointer;
    opacity:.5;
}

.lfl-toggle-password:hover{
    opacity:.9;
}

.lfl-btn-primary{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    height:48px;
    background:var(--lf-green);
    color:#fff;
    border:none;
    border-radius:10px;
    font-size:15px;
    font-weight:600;
    font-family:'Work Sans', sans-serif;
    cursor:pointer;
    transition:.2s;
    margin-top:4px;
}

.lfl-btn-primary:hover{
    background:var(--lf-green-deep);
}

.lfl-divider{
    position:relative;
    text-align:center;
    margin:10px 0;
}

.lfl-divider::before{
    content:"";
    position:absolute;
    top:50%;
    left:0;
    right:0;
    height:1px;
    background:var(--lf-line);
}

.lfl-divider span{
    position:relative;
    background:#fff;
    padding:0 12px;
    font-size:11.5px;
    font-weight:600;
    letter-spacing:.05em;
    color:#94A3B8;
}

.lfl-btn-social{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    height:48px;
    border:1.5px solid #E2E8F0;
    border-radius:10px;
    background:#fff;
    color:#334155;
    font-size:14.5px;
    font-weight:600;
    text-decoration:none;
    transition:.2s;
}

.lfl-btn-social:hover{
    background:#F8FAFC;
}

.lfl-chosen-email{
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:#F8FAFC;
    border:1px solid var(--lf-line);
    border-radius:10px;
    padding:10px 14px;
    font-size:13.5px;
    color:#334155;
}

.lfl-change-email{
    background:none;
    border:none;
    color:var(--lf-green);
    font-size:12.5px;
    font-weight:600;
    cursor:pointer;
    padding:0;
}

.lfl-link{
    text-align:center;
    font-size:13px;
    color:var(--lf-green);
    text-decoration:none;
    font-weight:600;
}

.lfl-link:hover{
    text-decoration:underline;
}

.lfl-hint{
    font-size:13.5px;
    color:#64748B;
    margin:0 0 4px;
    line-height:1.5;
}

.lfl-honeypot-field{
    position:absolute;
    left:-9999px;
    top:-9999px;
    width:1px;
    height:1px;
    overflow:hidden;
}

/* ==========================================================
   RESPONSIVE
========================================================== */

@media (max-width:900px){

    .lfl-side{
        display:none;
    }

    .lfl-main{
        flex:none;
        width:100%;
    }

}

/* ==========================================================
   PASSWORD STRENGTH
========================================================== */

.lfl-password-strength{

    display:none;

    align-items:center;

    gap:10px;

    margin-top:-6px;

}

.lfl-password-strength.active{

    display:flex;

}

.lfl-password-strength-bars{

    display:flex;

    gap:4px;

    flex:1;

}

.lfl-password-strength-bars span{

    height:4px;

    flex:1;

    border-radius:999px;

    background:#E2E8F0;

    transition:.2s;

}

.lfl-password-strength-label{

    font-size:12px;

    font-weight:600;

    white-space:nowrap;

}

.lfl-password-strength.weak .lfl-password-strength-bars span:nth-child(1){

    background:#DC2626;

}

.lfl-password-strength.weak .lfl-password-strength-label{

    color:#DC2626;

}

.lfl-password-strength.medium .lfl-password-strength-bars span:nth-child(1),
.lfl-password-strength.medium .lfl-password-strength-bars span:nth-child(2){

    background:#D97706;

}

.lfl-password-strength.medium .lfl-password-strength-label{

    color:#D97706;

}

.lfl-password-strength.strong .lfl-password-strength-bars span{

    background:#0E6544;

}

.lfl-password-strength.strong .lfl-password-strength-label{

    color:#0E6544;

}

/* ==========================================================
   TERMS CHECKBOX
========================================================== */

.lfl-terms-check{

    display:flex;

    align-items:flex-start;

    gap:9px;

    font-size:12.5px;

    color:#64748B;

    line-height:1.5;

    cursor:pointer;

    margin-top:-4px;

}

.lfl-terms-check input{

    width:15px;

    height:15px;

    flex-shrink:0;

    margin-top:2px;

    accent-color:#0E6544;

    cursor:pointer;

}

.lfl-terms-check a{

    color:#0E6544;

    font-weight:600;

    text-decoration:none;

}

.lfl-terms-check a:hover{

    text-decoration:underline;

}
