/* =========================================================
   FIRSTMYTRIP - CUSTOMER LOGIN / QUICK SIGNUP
   File: assets/css/customer-login.css
========================================================= */

:root{
    --fmt-auth-blue:#0d8df0;
    --fmt-auth-blue-dark:#076fc0;
    --fmt-auth-navy:#0c2d49;
    --fmt-auth-text:#19384f;
    --fmt-auth-muted:#76899a;
    --fmt-auth-line:#dfe8ef;
    --fmt-auth-soft:#f5f9fc;
    --fmt-auth-white:#ffffff;
    --fmt-auth-green:#16b773;
    --fmt-auth-red:#d95454;
    --fmt-auth-shadow:0 24px 70px rgba(8,48,78,.14);
}

html,
body{
    margin:0;
    min-height:100%;
}

body{
    overflow-x:hidden;
    background:#f4f9fd;
}

.fmt-auth-page,
.fmt-auth-page *{
    box-sizing:border-box;
}

.fmt-auth-page{
    width:100%;
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(420px,1.02fr) minmax(440px,.98fr);
    color:var(--fmt-auth-text);
    background:#fff;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.fmt-auth-page a{
    color:inherit;
    text-decoration:none;
}

.fmt-auth-page button,
.fmt-auth-page input{
    font:inherit;
}


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

.fmt-auth-visual{
    position:relative;
    overflow:hidden;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    padding:34px 42px 30px;
    color:#fff;
    background:
        linear-gradient(
            135deg,
            rgba(4,35,61,.94) 0%,
            rgba(5,74,121,.80) 50%,
            rgba(13,142,223,.34) 100%
        ),
        url('https://images.unsplash.com/photo-1436491865332-7a61a109cc05?auto=format&fit=crop&w=1800&q=85')
        center/cover no-repeat;
    isolation:isolate;
}

.fmt-auth-visual::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:
        radial-gradient(circle at 75% 25%,rgba(61,188,255,.30),transparent 28%),
        radial-gradient(circle at 15% 85%,rgba(255,255,255,.10),transparent 26%);
}

.fmt-auth-visual::after{
    content:"";
    position:absolute;
    right:-120px;
    bottom:-150px;
    width:420px;
    height:420px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    box-shadow:
        0 0 0 45px rgba(255,255,255,.025),
        0 0 0 95px rgba(255,255,255,.018);
}


/* =========================================================
   BRAND
========================================================= */

.fmt-auth-brand{
    position:relative;
    z-index:3;
    display:inline-flex;
    align-items:center;
    gap:11px;
    width:max-content;
}

.fmt-auth-brand-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    flex:0 0 44px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:13px;
    color:#fff;
    background:linear-gradient(135deg,#22b7ff,#0877ca);
    box-shadow:0 10px 28px rgba(1,49,86,.25);
    font-size:24px;
}

.fmt-auth-brand-copy strong{
    display:block;
    color:#fff;
    font-size:22px;
    line-height:1;
    letter-spacing:-.02em;
}

.fmt-auth-brand-copy small{
    display:block;
    margin-top:4px;
    color:#cceaff;
    font-size:7px;
    font-weight:900;
    letter-spacing:.16em;
}


/* =========================================================
   LEFT CONTENT
========================================================= */

.fmt-auth-visual-content{
    position:relative;
    z-index:3;
    width:min(560px,100%);
    margin:auto 0;
    padding:55px 0 40px;
}

.fmt-auth-eyebrow{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 12px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    color:#c8ebff;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(10px);
    font-size:9px;
    font-weight:900;
    letter-spacing:.14em;
}

.fmt-auth-visual-content h1{
    margin:22px 0 16px;
    color:#fff;
    font-family:Georgia,"Times New Roman",serif;
    font-size:54px;
    font-weight:500;
    line-height:1.04;
    letter-spacing:-.03em;
}

.fmt-auth-visual-content > p{
    max-width:500px;
    margin:0;
    color:#d9edf9;
    font-size:15px;
    line-height:1.7;
}

.fmt-auth-benefits{
    display:grid;
    gap:13px;
    margin-top:34px;
}

.fmt-auth-benefit{
    display:grid;
    grid-template-columns:34px 1fr;
    align-items:start;
    gap:11px;
}

.fmt-auth-benefit > span{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    margin-top:1px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:50%;
    color:#fff;
    background:rgba(255,255,255,.10);
    font-size:12px;
    font-weight:900;
}

.fmt-auth-benefit strong{
    display:block;
    color:#fff;
    font-size:12px;
}

.fmt-auth-benefit small{
    display:block;
    margin-top:4px;
    color:#c8ddeb;
    font-size:10px;
    line-height:1.5;
}

.fmt-auth-visual-footer{
    position:relative;
    z-index:3;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    color:#cde7f6;
    font-size:9px;
    font-weight:800;
    letter-spacing:.05em;
}

.fmt-auth-visual-footer i{
    width:4px;
    height:4px;
    border-radius:50%;
    background:#66c4f7;
}


/* =========================================================
   RIGHT MAIN AREA
========================================================= */

.fmt-auth-main{
    position:relative;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:42px;
    background:
        radial-gradient(circle at 100% 0%,#eaf6ff,transparent 34%),
        radial-gradient(circle at 0% 100%,#f4faff,transparent 28%),
        #fbfdff;
}

.fmt-auth-main::before{
    content:"";
    position:absolute;
    top:65px;
    right:7%;
    width:140px;
    height:140px;
    border-radius:50%;
    background:rgba(15,151,233,.05);
    filter:blur(1px);
}

.fmt-auth-mobile-brand{
    display:none;
}


/* =========================================================
   AUTH CARD
========================================================= */

.fmt-auth-card{
    position:relative;
    z-index:2;
    width:min(470px,100%);
    padding:36px;
    border:1px solid #dfe9f1;
    border-radius:24px;
    background:rgba(255,255,255,.97);
    box-shadow:var(--fmt-auth-shadow);
    backdrop-filter:blur(12px);
}

.fmt-auth-panel{
    display:none;
}

.fmt-auth-panel.is-active{
    display:block;
    animation:fmtAuthFade .22s ease;
}

@keyframes fmtAuthFade{
    from{
        opacity:0;
        transform:translateY(7px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}


/* =========================================================
   HEADINGS
========================================================= */

.fmt-auth-heading{
    margin-bottom:26px;
}

.fmt-auth-heading-kicker{
    display:block;
    margin-bottom:8px;
    color:#0d88d8;
    font-size:9px;
    font-weight:900;
    letter-spacing:.14em;
}

.fmt-auth-heading h2{
    margin:0;
    color:#102f4a;
    font-size:30px;
    line-height:1.16;
    letter-spacing:-.03em;
}

.fmt-auth-heading p{
    margin:9px 0 0;
    color:var(--fmt-auth-muted);
    font-size:12px;
    line-height:1.65;
}


/* =========================================================
   ALERT
========================================================= */

.fmt-auth-alert{
    display:grid;
    grid-template-columns:28px 1fr;
    align-items:center;
    gap:10px;
    margin-bottom:20px;
    padding:11px 13px;
    border-radius:11px;
}

.fmt-auth-alert > span{
    width:25px;
    height:25px;
    display:grid;
    place-items:center;
    border-radius:50%;
    font-size:11px;
    font-weight:900;
}

.fmt-auth-alert p{
    margin:0;
    font-size:10px;
    line-height:1.5;
}

.fmt-auth-alert-error{
    border:1px solid #f4cccc;
    color:#9e3434;
    background:#fff4f4;
}

.fmt-auth-alert-error > span{
    color:#fff;
    background:#dc5e5e;
}


/* =========================================================
   FORM
========================================================= */

.fmt-auth-form{
    display:grid;
    gap:17px;
}

.fmt-auth-field{
    display:grid;
    gap:7px;
}

.fmt-auth-field label,
.fmt-auth-label-row label{
    color:#304e66;
    font-size:10px;
    font-weight:800;
}

.fmt-auth-label-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.fmt-auth-text-button{
    padding:0;
    border:0;
    color:#0b86da;
    background:none;
    font-size:9px;
    font-weight:800;
    cursor:pointer;
}

.fmt-auth-text-button:hover{
    color:#076aab;
}


/* =========================================================
   INPUTS
========================================================= */

.fmt-auth-input-wrap{
    position:relative;
    display:flex;
    align-items:center;
}

.fmt-auth-input-wrap input{
    width:100%;
    height:50px;
    padding:0 48px;
    border:1px solid #dce6ee;
    border-radius:12px;
    outline:none;
    color:#19384f;
    background:#fff;
    transition:.18s ease;
}

.fmt-auth-input-wrap input::placeholder{
    color:#9aa9b6;
}

.fmt-auth-input-wrap input:focus{
    border-color:#7fc9f4;
    box-shadow:0 0 0 4px rgba(13,141,240,.08);
}

.fmt-auth-input-icon{
    position:absolute;
    left:15px;
    z-index:2;
    width:22px;
    height:22px;
    display:grid;
    place-items:center;
    color:#4c8fb9;
    font-size:12px;
}

.fmt-auth-country-code{
    position:absolute;
    left:14px;
    z-index:2;
    min-width:38px;
    color:#31576f;
    font-size:11px;
    font-weight:800;
}

.fmt-auth-country-code + input{
    padding-left:58px;
}

.fmt-auth-password-toggle{
    position:absolute;
    right:12px;
    z-index:2;
    padding:5px 4px;
    border:0;
    color:#0d81ce;
    background:none;
    font-size:9px;
    font-weight:800;
    cursor:pointer;
}


/* =========================================================
   REMEMBER
========================================================= */

.fmt-auth-remember{
    display:inline-flex;
    align-items:center;
    gap:8px;
    width:max-content;
    color:#667c8f;
    cursor:pointer;
}

.fmt-auth-remember input{
    width:15px;
    height:15px;
    accent-color:var(--fmt-auth-blue);
}

.fmt-auth-remember span{
    font-size:9px;
}


/* =========================================================
   PRIMARY BUTTON
========================================================= */

.fmt-auth-primary-button{
    width:100%;
    min-height:50px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin-top:2px;
    border:0;
    border-radius:12px;
    color:#fff;
    background:linear-gradient(135deg,#10a4ef,#0877ca);
    box-shadow:0 11px 24px rgba(9,125,204,.22);
    cursor:pointer;
    transition:.18s ease;
}

.fmt-auth-primary-button:hover{
    transform:translateY(-1px);
    box-shadow:0 15px 30px rgba(9,125,204,.28);
}

.fmt-auth-primary-button:active{
    transform:translateY(0);
}

.fmt-auth-primary-button span{
    font-size:11px;
    font-weight:900;
}

.fmt-auth-primary-button strong{
    font-size:16px;
    line-height:1;
}


/* =========================================================
   LOGIN / SIGNUP SWITCH
========================================================= */

.fmt-auth-switch{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    margin-top:23px;
    padding-top:19px;
    border-top:1px solid #edf2f6;
}

.fmt-auth-switch span{
    color:#75899a;
    font-size:10px;
}

.fmt-auth-switch button{
    padding:0;
    border:0;
    color:#0b86da;
    background:none;
    font-size:10px;
    font-weight:900;
    cursor:pointer;
}

.fmt-auth-switch button:hover{
    color:#086cae;
}


/* =========================================================
   LEGAL
========================================================= */

.fmt-auth-legal{
    margin:0;
    color:#8998a5;
    text-align:center;
    font-size:8px;
    line-height:1.6;
}

.fmt-auth-legal a{
    color:#39779e;
    font-weight:800;
}


/* =========================================================
   BACK BUTTON / FORGOT
========================================================= */

.fmt-auth-back-button{
    display:inline-flex;
    align-items:center;
    margin-bottom:22px;
    padding:0;
    border:0;
    color:#0c81ce;
    background:none;
    font-size:10px;
    font-weight:800;
    cursor:pointer;
}


/* =========================================================
   RIGHT FOOTER
========================================================= */

.fmt-auth-main-footer{
    position:relative;
    z-index:2;
    width:min(470px,100%);
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px 18px;
    margin-top:20px;
    color:#8797a4;
    font-size:8px;
}

.fmt-auth-main-footer a:hover{
    color:#0c82d1;
}


/* =========================================================
   JS STATES
========================================================= */

.fmt-auth-primary-button.is-loading{
    pointer-events:none;
    opacity:.72;
}

.fmt-auth-primary-button.is-loading strong{
    animation:fmtAuthSpin .7s linear infinite;
}

@keyframes fmtAuthSpin{
    to{
        transform:rotate(360deg);
    }
}

.fmt-auth-field.is-error .fmt-auth-input-wrap input{
    border-color:#e87474;
    background:#fffafa;
    box-shadow:0 0 0 3px rgba(216,84,84,.07);
}

.fmt-auth-field-error{
    margin-top:2px;
    color:#cc4f4f;
    font-size:8px;
}


/* =========================================================
   LARGE SCREENS
========================================================= */

@media (min-width:1500px){

    .fmt-auth-visual{
        padding-left:65px;
        padding-right:65px;
    }

    .fmt-auth-visual-content h1{
        font-size:62px;
    }

    .fmt-auth-card{
        width:min(500px,100%);
        padding:42px;
    }

    .fmt-auth-main-footer{
        width:min(500px,100%);
    }

}


/* =========================================================
   TABLET / SMALL DESKTOP
========================================================= */

@media (max-width:1050px){

    .fmt-auth-page{
        grid-template-columns:.9fr 1.1fr;
    }

    .fmt-auth-visual{
        padding:30px;
    }

    .fmt-auth-visual-content h1{
        font-size:44px;
    }

    .fmt-auth-main{
        padding:30px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width:820px){

    .fmt-auth-page{
        display:block;
        min-height:100vh;
        background:#f5faff;
    }

    .fmt-auth-visual{
        display:none;
    }

    .fmt-auth-main{
        min-height:100vh;
        justify-content:flex-start;
        padding:20px 16px 26px;
        background:
            radial-gradient(circle at 50% 0%,#e4f5ff,transparent 32%),
            #f7fbfe;
    }

    .fmt-auth-mobile-brand{
        width:min(470px,100%);
        display:block;
        margin:4px auto 18px;
    }

    .fmt-auth-mobile-brand > a{
        display:flex;
        align-items:center;
        justify-content:center;
        gap:9px;
    }

    .fmt-auth-mobile-brand .fmt-auth-brand-icon{
        width:39px;
        height:39px;
        flex-basis:39px;
        border:0;
    }

    .fmt-auth-mobile-brand .fmt-auth-brand-copy strong{
        color:#123b5d;
        font-size:20px;
    }

    .fmt-auth-mobile-brand .fmt-auth-brand-copy small{
        color:#7190a7;
    }

    .fmt-auth-card{
        width:min(470px,100%);
        padding:28px 22px;
        border-radius:20px;
        box-shadow:0 18px 55px rgba(8,56,87,.11);
    }

    .fmt-auth-heading{
        margin-bottom:22px;
    }

    .fmt-auth-heading h2{
        font-size:26px;
    }

    .fmt-auth-main-footer{
        width:min(470px,100%);
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width:480px){

    .fmt-auth-main{
        padding-left:12px;
        padding-right:12px;
    }

    .fmt-auth-mobile-brand{
        margin-bottom:14px;
    }

    .fmt-auth-card{
        padding:24px 18px;
        border-radius:17px;
    }

    .fmt-auth-heading h2{
        font-size:24px;
    }

    .fmt-auth-heading p{
        font-size:11px;
    }

    .fmt-auth-input-wrap input{
        height:48px;
        font-size:12px;
    }

    .fmt-auth-primary-button{
        min-height:48px;
    }

}


/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media (max-width:360px){

    .fmt-auth-card{
        padding:22px 14px;
    }

    .fmt-auth-switch{
        flex-direction:column;
    }

}

.fmt-auth-alert-success{border:1px solid #c7ead9;color:#15704a;background:#f1fff8}.fmt-auth-alert-success>span{color:#fff;background:#16b773}
