/*
|--------------------------------------------------------------------------
| TTS Ludo — Login Styles
|--------------------------------------------------------------------------
|
| STEP 1 — Login UI
|--------------------------------------------------------------------------
*/

:root
{
    --login-bg:
        #f7f9fc;

    --login-card:
        #ffffff;

    --login-primary:
        #ff0000;

    --login-primary-dark:
        #d80000;

    --login-navy:
        #0b2348;

    --login-text:
        #172033;

    --login-muted:
        #667085;

    --login-border:
        #d9e1ec;

    --login-border-soft:
        #e9eef5;

    --login-input-bg:
        #fbfcfe;

    --login-error:
        #d92d20;

    --login-success:
        #138a4b;

    --login-radius-lg:
        24px;

    --login-radius-md:
        14px;

    --login-radius-sm:
        11px;

    --login-transition:
        180ms ease;
}


*
{
    box-sizing:
        border-box;
}


html
{
    margin:
        0;

    padding:
        0;
}


body
{
    margin:
        0;

    min-height:
        100vh;

    background:
        var(--login-bg);

    color:
        var(--login-text);

    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    -webkit-font-smoothing:
        antialiased;
}


a
{
    color:
        inherit;
}


button,
input
{
    font:
        inherit;
}


/*
|--------------------------------------------------------------------------
| Page
|--------------------------------------------------------------------------
*/

.login-page
{
    min-height:
        100vh;

    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        center;

    padding:
        52px 20px 70px;
}


/*
|--------------------------------------------------------------------------
| Card
|--------------------------------------------------------------------------
*/

.login-card
{
    width:
        min(
            100%,
            520px
        );

    overflow:
        hidden;

    border:
        1px solid
        rgba(
            211,
            220,
            233,
            0.95
        );

    border-radius:
        var(--login-radius-lg);

    background:
        var(--login-card);

    box-shadow:
        0 22px 55px
        rgba(
            15,
            23,
            42,
            0.10
        );
}


/*
|--------------------------------------------------------------------------
| Header
|--------------------------------------------------------------------------
*/

.login-header
{
    min-height:
        72px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        16px;

    padding:
        15px 24px;

    border-bottom:
        1px solid
        var(--login-border-soft);
}


.login-brand
{
    display:
        inline-flex;

    align-items:
        center;

    gap:
        10px;

    text-decoration:
        none;
}


.login-brand-icon
{
    width:
        42px;

    height:
        42px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        12px;

    background:
        #eef5ff;

    font-size:
        22px;
}


.login-brand-text
{
    color:
        var(--login-navy);

    font-size:
        19px;

    font-weight:
        800;

    letter-spacing:
        -0.02em;
}


.login-step
{
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        30px;

    padding:
        6px 11px;

    border-radius:
        999px;

    background:
        #fff1f1;

    color:
        #d60000;

    font-size:
        10px;

    font-weight:
        800;

    letter-spacing:
        0.1em;
}


/*
|--------------------------------------------------------------------------
| Intro
|--------------------------------------------------------------------------
*/

.login-intro
{
    padding:
        34px 34px 8px;
}


.login-kicker
{
    display:
        inline-block;

    margin-bottom:
        8px;

    color:
        #6a7890;

    font-size:
        10px;

    font-weight:
        800;

    letter-spacing:
        0.13em;
}


.login-intro h1
{
    margin:
        0;

    color:
        var(--login-navy);

    font-size:
        clamp(
            30px,
            5vw,
            40px
        );

    line-height:
        1.1;

    letter-spacing:
        -0.035em;
}


.login-intro p
{
    margin:
        10px 0 0;

    color:
        var(--login-muted);

    font-size:
        14px;

    line-height:
        1.6;
}


/*
|--------------------------------------------------------------------------
| Form
|--------------------------------------------------------------------------
*/

.login-form
{
    padding:
        24px 34px 34px;
}


.form-field
{
    margin-bottom:
        20px;
}


.form-field label
{
    display:
        block;

    margin-bottom:
        8px;

    color:
        #27344d;

    font-size:
        13px;

    font-weight:
        750;
}


.form-field label span
{
    color:
        var(--login-primary);
}


/*
|--------------------------------------------------------------------------
| Password Label
|--------------------------------------------------------------------------
*/

.password-label-row
{
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        12px;

    margin-bottom:
        8px;
}


.password-label-row label
{
    margin:
        0;
}


.forgot-password-link
{
    color:
        #315f9d;

    font-size:
        11px;

    font-weight:
        700;

    text-decoration:
        none;

    white-space:
        nowrap;
}


.forgot-password-link:hover
{
    text-decoration:
        underline;
}


/*
|--------------------------------------------------------------------------
| Input
|--------------------------------------------------------------------------
*/

.input-wrapper
{
    position:
        relative;

    display:
        flex;

    align-items:
        center;

    min-height:
        52px;

    border:
        1px solid
        var(--login-border);

    border-radius:
        var(--login-radius-sm);

    background:
        var(--login-input-bg);

    transition:
        border-color var(--login-transition),
        box-shadow var(--login-transition),
        background var(--login-transition);
}


.input-wrapper:focus-within
{
    border-color:
        #7aa7ee;

    background:
        #ffffff;

    box-shadow:
        0 0 0 4px
        rgba(
            58,
            134,
            255,
            0.10
        );
}


.input-wrapper.input-error
{
    border-color:
        rgba(
            217,
            45,
            32,
            0.75
        );

    background:
        #fffafa;
}


.input-wrapper.input-success
{
    border-color:
        rgba(
            19,
            138,
            75,
            0.65
        );

    background:
        #fbfffd;
}


.input-icon
{
    flex:
        0 0 45px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    color:
        #6c7b90;

    font-size:
        16px;
}


.input-wrapper input
{
    width:
        100%;

    min-width:
        0;

    height:
        50px;

    padding:
        0 14px 0 0;

    border:
        0;

    outline:
        0;

    background:
        transparent;

    color:
        #172033;

    font-size:
        14px;
}


.input-wrapper input::placeholder
{
    color:
        #9aa6b8;
}


/*
|--------------------------------------------------------------------------
| Password Toggle
|--------------------------------------------------------------------------
*/

.password-wrapper input
{
    padding-right:
        48px;
}


.password-toggle
{
    position:
        absolute;

    top:
        50%;

    right:
        8px;

    width:
        36px;

    height:
        36px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    transform:
        translateY(-50%);

    border:
        0;

    border-radius:
        9px;

    background:
        transparent;

    cursor:
        pointer;

    font-size:
        15px;
}


.password-toggle:hover
{
    background:
        #eef2f7;
}


/*
|--------------------------------------------------------------------------
| Errors
|--------------------------------------------------------------------------
*/

.field-error
{
    min-height:
        0;

    margin:
        6px 0 0;

    color:
        var(--login-error);

    font-size:
        11px;

    line-height:
        1.45;
}


.field-error:empty
{
    display:
        none;
}


/*
|--------------------------------------------------------------------------
| Message
|--------------------------------------------------------------------------
*/

.login-message
{
    margin-top:
        4px;

    padding:
        12px 14px;

    border:
        1px solid
        var(--login-border);

    border-radius:
        11px;

    font-size:
        12px;

    line-height:
        1.5;
}


.login-message.error
{
    border-color:
        #f2c3bd;

    background:
        #fff8f7;

    color:
        #a12b22;
}


.login-message.success
{
    border-color:
        #b9e4c8;

    background:
        #f3fff7;

    color:
        #176637;
}


/*
|--------------------------------------------------------------------------
| Login Button
|--------------------------------------------------------------------------
*/

.login-button
{
    width:
        100%;

    min-height:
        52px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        9px;

    margin-top:
        18px;

    border:
        0;

    border-radius:
        var(--login-radius-sm);

    background:
        var(--login-primary);

    color:
        #ffffff;

    font-size:
        14px;

    font-weight:
        850;

    cursor:
        pointer;

    box-shadow:
        0 9px 20px
        rgba(
            255,
            0,
            0,
            0.18
        );

    transition:
        transform var(--login-transition),
        background var(--login-transition),
        box-shadow var(--login-transition),
        opacity var(--login-transition);
}


.login-button:hover
{
    background:
        var(--login-primary-dark);

    transform:
        translateY(-1px);

    box-shadow:
        0 12px 24px
        rgba(
            255,
            0,
            0,
            0.22
        );
}


.login-button:active
{
    transform:
        translateY(0);
}


.login-button:disabled
{
    opacity:
        0.68;

    cursor:
        wait;

    transform:
        none;
}


.login-button.is-loading
.login-button-icon
{
    animation:
        loginSpin 800ms linear infinite;
}


@keyframes loginSpin
{
    from
    {
        transform:
            rotate(0deg);
    }

    to
    {
        transform:
            rotate(360deg);
    }
}


/*
|--------------------------------------------------------------------------
| Registration Link
|--------------------------------------------------------------------------
*/

.register-link-area
{
    margin-top:
        22px;

    text-align:
        center;
}


.register-link-area p
{
    margin:
        0;

    color:
        #748197;

    font-size:
        12px;
}


.register-link-area a
{
    color:
        #d60000;

    font-weight:
        800;

    text-decoration:
        none;
}


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


/*
|--------------------------------------------------------------------------
| Back Home
|--------------------------------------------------------------------------
*/

.back-home-button
{
    width:
        100%;

    min-height:
        45px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    margin-top:
        14px;

    border:
        1px solid
        var(--login-border);

    border-radius:
        var(--login-radius-sm);

    background:
        #ffffff;

    color:
        #36445c;

    font-size:
        12px;

    font-weight:
        800;

    text-decoration:
        none;

    transition:
        border-color var(--login-transition),
        background var(--login-transition),
        transform var(--login-transition);
}


.back-home-button:hover
{
    border-color:
        #b8c2d0;

    background:
        #f9fbfd;

    transform:
        translateY(-1px);
}


/*
|--------------------------------------------------------------------------
| Responsive
|--------------------------------------------------------------------------
*/

@media (
    max-width: 560px
)
{
    .login-page
    {
        padding:
            20px 12px 35px;
    }


    .login-card
    {
        border-radius:
            18px;
    }


    .login-header
    {
        padding:
            13px 17px;
    }


    .login-intro
    {
        padding:
            27px 20px 8px;
    }


    .login-form
    {
        padding:
            18px 20px 26px;
    }
}


@media (
    max-width: 400px
)
{
    .login-page
    {
        padding:
            0;
    }


    .login-card
    {
        min-height:
            100vh;

        border:
            0;

        border-radius:
            0;

        box-shadow:
            none;
    }


    .login-intro
    {
        padding:
            24px 16px 8px;
    }


    .login-form
    {
        padding:
            17px 16px 24px;
    }


    .password-label-row
    {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            5px;
    }
}


/*
|--------------------------------------------------------------------------
| Reduced Motion
|--------------------------------------------------------------------------
*/

@media (
    prefers-reduced-motion: reduce
)
{
    *
    {
        transition:
            none !important;

        animation:
            none !important;
    }
}

/* ========================================================================
   GoPlayLudo visual theme — full-file replacement preserves all existing
   selectors/states while matching the approved dark-blue home UI.
   No profile/account header card is introduced on the auth pages.
   ======================================================================== */
:root{
    --login-bg:#020a18;
    --login-card:#062458;
    --login-primary:#ffd21f;
    --login-primary-dark:#ffb900;
    --login-navy:#f7fbff;
    --login-text:#f7fbff;
    --login-muted:#a9c2e6;
    --login-border:rgba(73,187,255,.50);
    --login-border-soft:rgba(105,198,255,.20);
    --login-input-bg:rgba(3,29,84,.82);
    --login-error:#ff7b87;
    --login-success:#62ff9b;
}
html,body{background:#020a18;}
body{background:radial-gradient(circle at 50% -10%,rgba(17,133,232,.24),transparent 38%),linear-gradient(180deg,#031d54 0%,#020a18 85%);color:var(--login-text);}
.login-page{min-height:100vh;align-items:center;padding:28px 16px 42px;position:relative;overflow:hidden;}
.login-page::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 20%,rgba(0,178,255,.12),transparent 25%),radial-gradient(circle at 82% 34%,rgba(124,58,237,.10),transparent 27%);}
.login-card{position:relative;z-index:1;width:min(100%,560px);border:1px solid rgba(74,194,255,.58);border-radius:24px;background:linear-gradient(180deg,rgba(5,50,112,.98),rgba(4,29,75,.98));box-shadow:0 24px 65px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.08);}
.login-header{min-height:74px;padding:14px 24px;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#063a88,#042968);}
.login-brand-icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#143e82,#0a78c8);border:1px solid rgba(255,255,255,.12);box-shadow:0 6px 12px rgba(0,0,0,.20);}
.login-brand-text{color:#fff;font-weight:1000;}
.login-step{background:rgba(255,255,255,.10);border:1px solid rgba(255,214,31,.45);color:#ffd21f;}
.login-intro{padding:32px 34px 10px;}
.login-kicker{color:#58c8ff;}
.login-intro h1{color:#fff;font-size:clamp(32px,5vw,46px);text-shadow:0 5px 18px rgba(0,0,0,.28);}
.login-intro p{color:#b9d2f1;}
.login-form{padding:22px 34px 34px;}
.form-field label{color:#edf6ff;}
.input-wrapper{min-height:54px;border-color:rgba(69,187,255,.42);border-radius:14px;background:rgba(4,38,92,.90);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
.input-wrapper:focus-within{border-color:#31b9ff;background:rgba(5,44,105,.98);box-shadow:0 0 0 4px rgba(49,185,255,.12),inset 0 1px 0 rgba(255,255,255,.06);}
.input-icon{color:#cfe8ff;}
.input-wrapper input{height:52px;color:#fff;}
.input-wrapper input::placeholder{color:#8fb0d8;}
.password-toggle{color:#dcecff;}
.forgot-password-link,.register-link-area a{color:#ffd21f;}
.login-message{border-color:rgba(255,255,255,.12);background:rgba(0,0,0,.14);color:#f7fbff;}
.login-button{min-height:56px;border-radius:14px;background:linear-gradient(180deg,#ffe84a,#ffbf00);color:#062458;box-shadow:0 12px 26px rgba(255,191,0,.24),inset 0 1px 0 rgba(255,255,255,.45);font-weight:1000;}
.login-button:hover{background:linear-gradient(180deg,#ffef73,#ffc515);transform:translateY(-1px);box-shadow:0 15px 30px rgba(255,191,0,.28),inset 0 1px 0 rgba(255,255,255,.45);}
.login-button:disabled{opacity:.72;}
.back-home-button{border-color:rgba(69,187,255,.45);background:rgba(6,37,88,.72);color:#edf7ff;}
.back-home-button:hover{border-color:#45bbff;background:rgba(8,50,112,.90);}
.register-link-area p{color:#b6ccea;}
@media (max-width:560px){.login-page{padding:12px 10px 26px}.login-card{border-radius:20px}.login-header{padding:13px 17px}.login-intro{padding:27px 20px 8px}.login-form{padding:18px 20px 26px;}}
@media (max-width:400px){.login-page{padding:0}.login-card{min-height:100vh;border:0;border-radius:0;box-shadow:none}.login-header{background:linear-gradient(180deg,#063a88,#042968)}.login-intro{padding:24px 16px 8px}.login-form{padding:17px 16px 24px;}}
