/* GAPXA auth pages (sign-up): same look as login.php. Generated from login.php styles. */
*{
    box-sizing:border-box;
}

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

body{
    margin:0;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    color:#101b38;
    background:
        radial-gradient(circle at 16% 82%,rgba(69,128,255,.15),transparent 30%),
        radial-gradient(circle at 48% 85%,rgba(139,92,246,.12),transparent 27%),
        linear-gradient(135deg,#f8fbff 0%,#ffffff 54%,#f6f8ff 100%);
}

.gx-login-page{
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(460px,.92fr);
}

/* LEFT */

.gx-login-showcase{
    position:relative;
    overflow:hidden;
    padding:56px clamp(42px,6vw,96px);
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.gx-login-showcase:before,
.gx-login-showcase:after{
    content:"";
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}

.gx-login-showcase:before{
    width:520px;
    height:520px;
    left:-250px;
    bottom:-260px;
    background:rgba(53,111,255,.09);
}

.gx-login-showcase:after{
    width:500px;
    height:500px;
    right:-210px;
    bottom:-310px;
    background:rgba(139,92,246,.08);
}

.gx-brand{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:56px;
}

.gx-brand img{
    width:72px;
    height:72px;
    object-fit:contain;
}

.gx-brand-name{
    font-size:44px;
    line-height:1;
    font-weight:850;
    letter-spacing:-1.5px;
    color:#101b38;
}

.gx-brand-tag{
    margin-top:9px;
    font-size:12px;
    font-weight:750;
    letter-spacing:3.5px;
    text-transform:uppercase;
    color:#63718e;
}

.gx-hero{
    position:relative;
    z-index:2;
    max-width:650px;
}

.gx-hero h1{
    margin:0;
    font-size:clamp(42px,4.2vw,66px);
    line-height:1.02;
    letter-spacing:-2.6px;
    font-weight:850;
    color:#101b38;
}

.gx-gradient-text{
    background:linear-gradient(90deg,#3167ff,#8b5cf6,#b73cf3);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.gx-hero-copy{
    max-width:590px;
    margin:22px 0 34px;
    font-size:19px;
    line-height:1.55;
    color:#596987;
}

.gx-features{
    display:grid;
    gap:17px;
    max-width:520px;
}

.gx-feature{
    display:grid;
    grid-template-columns:48px 1fr;
    gap:15px;
    align-items:center;
}

.gx-feature-icon{
    width:48px;
    height:48px;
    border-radius:14px;
    display:grid;
    place-items:center;
    font-size:22px;
    background:rgba(78,93,255,.09);
    border:1px solid rgba(78,93,255,.08);
}

.gx-feature:nth-child(2) .gx-feature-icon{
    background:rgba(14,165,233,.09);
}

.gx-feature:nth-child(3) .gx-feature-icon{
    background:rgba(16,185,129,.09);
}

.gx-feature:nth-child(4) .gx-feature-icon{
    background:rgba(245,158,11,.11);
}

.gx-feature strong{
    display:block;
    margin-bottom:2px;
    font-size:16px;
    color:#101b38;
}

.gx-feature span{
    font-size:14px;
    color:#66738d;
}

/* Decorative dashboard */

.gx-dashboard-art{
    position:absolute;
    z-index:1;
    width:470px;
    height:225px;
    left:34%;
    bottom:-82px;
    border:1px solid rgba(93,112,154,.14);
    border-radius:26px;
    background:rgba(255,255,255,.78);
    box-shadow:0 30px 80px rgba(60,82,150,.14);
    transform:rotate(-5deg);
    backdrop-filter:blur(12px);
}

.gx-dashboard-art:before{
    content:"";
    position:absolute;
    inset:28px 34px;
    border-radius:13px;
    background:
        linear-gradient(#eef2ff,#eef2ff) 0 0/38% 12px no-repeat,
        linear-gradient(#edf1f7,#edf1f7) 0 35px/100% 1px no-repeat,
        repeating-linear-gradient(
            90deg,
            transparent 0 68px,
            #edf1f7 68px 69px
        ),
        repeating-linear-gradient(
            0deg,
            transparent 0 36px,
            #edf1f7 36px 37px
        );
}

/* RIGHT */

.gx-login-side{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:42px;
}

.gx-login-card{
    width:min(100%,590px);
    padding:48px 54px 40px;
    border:1px solid rgba(91,109,150,.12);
    border-radius:28px;
    background:rgba(255,255,255,.92);
    box-shadow:
        0 24px 70px rgba(36,54,110,.09),
        0 2px 8px rgba(36,54,110,.03);
    backdrop-filter:blur(16px);
}

.gx-card-brand{
    text-align:center;
    margin-bottom:30px;
}

.gx-card-brand img{
    width:74px;
    height:74px;
    object-fit:contain;
    margin-bottom:8px;
}

.gx-card-brand-name{
    font-size:31px;
    line-height:1;
    font-weight:850;
    letter-spacing:-1px;
}

.gx-security-label{
    margin-top:26px;
    color:#72809d;
    font-size:12px;
    font-weight:800;
    letter-spacing:2.5px;
}

.gx-login-card h1{
    margin:8px 0 7px;
    text-align:center;
    font-size:34px;
    line-height:1.15;
    letter-spacing:-1px;
}

.gx-login-subtitle{
    margin:0 0 32px;
    text-align:center;
    color:#65738e;
    font-size:15px;
}

.gx-alert{
    padding:12px 14px;
    margin-bottom:18px;
    border-radius:12px;
    font-size:14px;
}

.gx-alert-danger{
    color:#991b1b;
    background:#fef2f2;
    border:1px solid #fecaca;
}

.gx-field{
    display:block;
    margin-bottom:18px;
}

.gx-field-label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:750;
    color:#18223e;
}

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

.gx-input-icon{
    position:absolute;
    left:15px;
    top:50%;
    transform:translateY(-50%);
    width:20px;
    height:20px;
    color:#7b89a4;
    pointer-events:none;
}

.gx-input{
    width:100%;
    height:52px;
    border:1px solid #d9dfeb;
    border-radius:11px;
    background:#fbfcff;
    padding:0 46px;
    color:#111a34;
    font:inherit;
    font-size:15px;
    outline:none;
    transition:.18s ease;
}

.gx-input:focus{
    border-color:#6674ff;
    background:#fff;
    box-shadow:0 0 0 4px rgba(99,102,241,.10);
}

.gx-password-toggle{
    position:absolute;
    right:9px;
    top:50%;
    transform:translateY(-50%);
    width:38px;
    height:38px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#71809c;
    cursor:pointer;
    display:grid;
    place-items:center;
}

.gx-login-actions{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    margin:-3px 0 21px;
}

.gx-login-actions a{
    color:#5145ff;
    font-size:13px;
    font-weight:750;
    text-decoration:none;
}

.gx-login-actions a:hover{
    text-decoration:underline;
}

.gx-submit{
    width:100%;
    min-height:54px;
    border:0;
    border-radius:11px;
    cursor:pointer;
    color:#fff;
    font-size:16px;
    font-weight:800;
    background:linear-gradient(90deg,#2864f5,#6249f7,#b72eea);
    box-shadow:0 10px 24px rgba(88,75,245,.18);
    transition:transform .15s ease,box-shadow .15s ease;
}

.gx-submit:hover{
    transform:translateY(-1px);
    box-shadow:0 14px 28px rgba(88,75,245,.23);
}

.gx-auth-divider{
    display:flex;
    align-items:center;
    gap:14px;
    margin:22px 0;
    color:#8a95aa;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:1px;
}

.gx-auth-divider:before,
.gx-auth-divider:after{
    content:"";
    flex:1;
    height:1px;
    background:#e2e7f0;
}

.gx-google-btn{
    width:100%;
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    border:1px solid #d9dfeb;
    border-radius:11px;
    background:#fff;
    color:#18223e;
    text-decoration:none;
    font-size:15px;
    font-weight:750;
    transition:
        transform .15s ease,
        box-shadow .15s ease,
        border-color .15s ease,
        background .15s ease;
}

.gx-google-btn:hover{
    transform:translateY(-1px);
    border-color:#c7cfdd;
    background:#fbfcff;
    box-shadow:0 8px 20px rgba(36,54,110,.08);
}

.gx-google-icon{
    width:20px;
    height:20px;
    flex:0 0 20px;
}

.gx-secure-note{
    margin-top:28px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    color:#75829b;
    font-size:13px;
}

.gx-secure-note svg{
    width:18px;
    height:18px;
}

/* Responsive */

@media(max-width:980px){
    .gx-login-page{
        grid-template-columns:1fr;
    }

    .gx-login-showcase{
        min-height:auto;
        padding:42px 32px 34px;
    }

    .gx-brand{
        margin-bottom:30px;
    }

    .gx-hero h1{
        font-size:44px;
    }

    .gx-dashboard-art{
        display:none;
    }

    .gx-login-side{
        padding:16px 24px 50px;
    }
}

@media(max-width:620px){
    .gx-login-showcase{
        padding:30px 20px;
    }

    .gx-brand img{
        width:54px;
        height:54px;
    }

    .gx-brand-name{
        font-size:34px;
    }

    .gx-brand-tag{
        letter-spacing:2px;
        font-size:9px;
    }

    .gx-hero h1{
        font-size:37px;
        letter-spacing:-1.5px;
    }

    .gx-hero-copy{
        font-size:16px;
    }

    .gx-features{
        display:none;
    }

    .gx-login-side{
        padding:12px 14px 32px;
    }

    .gx-login-card{
        padding:34px 22px 28px;
        border-radius:20px;
    }

    .gx-login-card h1{
        font-size:29px;
    }
}
/* GAPXA multilingual public showcase — presentation only */
.gx-hero{
    transition:opacity .28s ease,transform .28s ease;
}

.gx-hero.gx-language-changing{
    opacity:.18;
    transform:translateY(4px);
}

.gx-language-showcase{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin-top:23px;
    color:#8a95aa;
    font-size:12px;
    font-weight:700;
}

.gx-language-showcase button{
    appearance:none;
    border:0;
    padding:3px 1px;
    background:transparent;
    color:#7a86a0;
    font:inherit;
    cursor:pointer;
    border-bottom:2px solid transparent;
    transition:color .18s ease,border-color .18s ease;
}

.gx-language-showcase button:hover,
.gx-language-showcase button:focus-visible{
    color:#4f46e5;
    outline:none;
}

.gx-language-showcase button[aria-current="true"]{
    color:#4f46e5;
    border-bottom-color:#7c3aed;
}

/* Longer translated headlines need slightly tighter type. */
.gx-hero[data-language="vi"] h1{
    font-size:clamp(40px,3.55vw,55px);
    line-height:1.04;
}

.gx-hero[data-language="vi"] .gx-vi-line,
.gx-hero[data-language="vi"] .gx-gradient-text{
    white-space:nowrap;
}

.gx-hero[data-language="es"] h1,
.gx-hero[data-language="fr"] h1{
    font-size:clamp(44px,4.3vw,66px);
    line-height:1.04;
}

@media(max-width:1100px){
    .gx-hero[data-language="vi"] h1,
    .gx-hero[data-language="es"] h1,
    .gx-hero[data-language="fr"] h1{
        font-size:clamp(38px,5vw,56px);
    }
}

@media(max-width:620px){
    .gx-hero[data-language="vi"] h1,
    .gx-hero[data-language="es"] h1,
    .gx-hero[data-language="fr"] h1{
        font-size:clamp(34px,10vw,48px);
    }

    .gx-language-showcase{
        margin-top:18px;
        font-size:11px;
    }
}

@media(prefers-reduced-motion:reduce){
    .gx-hero{
        transition:none;
    }
}
/* GAPXA login artwork position refinement */

.gx-dashboard-art{
    bottom:35px !important;
    left:34% !important;
    width:500px !important;
    height:240px !important;
}

/* Decorative plant */
.gx-login-showcase::marker{
    display:none;
}

.gx-plant{
    position:absolute;
    left:42px;
    bottom:38px;
    z-index:2;
    width:120px;
    height:175px;
}

.gx-plant-pot{
    position:absolute;
    bottom:0;
    left:31px;
    width:66px;
    height:68px;
    background:linear-gradient(145deg,#ffffff,#dfe8f7);
    border-radius:8px 8px 25px 25px;
    box-shadow:0 15px 28px rgba(42,72,125,.14);
}

.gx-plant-stem{
    position:absolute;
    bottom:58px;
    left:62px;
    width:4px;
    height:82px;
    background:#328d61;
    border-radius:10px;
    transform:rotate(-3deg);
}

.gx-leaf{
    position:absolute;
    width:48px;
    height:25px;
    background:linear-gradient(135deg,#68bd79,#218b5c);
    border-radius:100% 0 100% 0;
    box-shadow:0 6px 12px rgba(31,125,83,.10);
}

.gx-leaf-1{
    left:19px;
    bottom:108px;
    transform:rotate(24deg);
}

.gx-leaf-2{
    left:60px;
    bottom:123px;
    transform:rotate(-28deg) scaleX(-1);
}

.gx-leaf-3{
    left:25px;
    bottom:76px;
    transform:rotate(12deg);
}

.gx-leaf-4{
    left:62px;
    bottom:88px;
    transform:rotate(-20deg) scaleX(-1);
}

@media(max-width:980px){
    .gx-plant{
        display:none;
    }

    .gx-dashboard-art{
        display:none;
    }
}
/* GAPXA Brand Alignment V4 */

/* Current SVG canvas contains icon + old wordmark.
   Use wrapper clipping to expose the G mark only. */
.gx-brand > img,
.gx-card-brand > img{
    object-fit:cover !important;
    object-position:left center !important;
}

/* Main GAPXA wordmark */
.gx-brand-name{
    font-weight:900 !important;
    letter-spacing:-2px !important;
    text-transform:uppercase;
}

/* Official tagline */
.gx-brand-tag{
    letter-spacing:2.2px !important;
    text-transform:none !important;
    font-weight:700 !important;
}

/* Login-card wordmark */
.gx-card-brand-name{
    font-weight:900 !important;
    letter-spacing:-1.5px !important;
    text-transform:uppercase;
}

/* Move artwork away from feature copy */
.gx-dashboard-art{
    left:43% !important;
    bottom:20px !important;
    width:480px !important;
    height:230px !important;
}

.gx-plant{
    left:48px !important;
    bottom:45px !important;
}
/* GAPXA Login V5 final brand adjustments */
.gx-plant{
    display:none !important;
}

.gx-brand > img{
    width:76px !important;
    height:76px !important;
    object-fit:contain !important;
}

.gx-card-brand > img{
    width:92px !important;
    height:92px !important;
    object-fit:contain !important;
}

.gx-brand-name,
.gx-card-brand-name{
    text-transform:uppercase;
    color:#0F172A;
}

.gx-dashboard-art{
    left:46% !important;
    bottom:22px !important;
    width:455px !important;
    height:220px !important;
}
