/*
|--------------------------------------------------------------------------
| TTS Ludo — Account Registration Styles
|--------------------------------------------------------------------------
|
| STEP 1 — Registration Foundation
|
| এই file:
|   - Registration page UI
|   - Profile picture area
|   - Form fields
|   - Password controls
|   - Validation states
|   - Responsive mobile layout
|
| IMPORTANT:
|   Existing Robot / Ludo CSS-এর সঙ্গে কোনো dependency নেই।
|--------------------------------------------------------------------------
*/


/*
|--------------------------------------------------------------------------
| 1) Root Variables
|--------------------------------------------------------------------------
*/

:root
{
    --register-bg:
        #f7f9fc;

    --register-card:
        #ffffff;

    --register-primary:
        #ff0000;

    --register-primary-dark:
        #d80000;

    --register-navy:
        #0b2348;

    --register-text:
        #111827;

    --register-muted:
        #667085;

    --register-border:
        #d9e1ec;

    --register-border-soft:
        #e9eef5;

    --register-input-bg:
        #fbfcfe;

    --register-success:
        #138a4b;

    --register-warning:
        #d88b00;

    --register-error:
        #d92d20;

    --register-shadow:
        0 22px 55px
        rgba(
            15,
            23,
            42,
            0.10
        );

    --register-radius-lg:
        24px;

    --register-radius-md:
        14px;

    --register-radius-sm:
        10px;

    --register-transition:
        180ms ease;
}


/*
|--------------------------------------------------------------------------
| 2) Reset
|--------------------------------------------------------------------------
*/

*
{
    box-sizing:
        border-box;
}


html
{
    margin:
        0;

    padding:
        0;

    scroll-behavior:
        smooth;
}


body
{
    margin:
        0;

    padding:
        0;

    min-height:
        100vh;

    background:
        var(--register-bg);

    color:
        var(--register-text);

    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    -webkit-font-smoothing:
        antialiased;

    text-rendering:
        optimizeLegibility;
}


button,
input
{
    font:
        inherit;
}


button,
a
{
    -webkit-tap-highlight-color:
        transparent;
}


a
{
    color:
        inherit;
}


/*
|--------------------------------------------------------------------------
| 3) Main Page
|--------------------------------------------------------------------------
*/

.register-page
{
    width:
        100%;

    min-height:
        100vh;

    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        center;

    padding:
        36px 20px 60px;
}


/*
|--------------------------------------------------------------------------
| 4) Registration Card
|--------------------------------------------------------------------------
*/

.register-card
{
    width:
        min(
            100%,
            760px
        );

    background:
        var(--register-card);

    border:
        1px solid
        rgba(
            211,
            220,
            233,
            0.92
        );

    border-radius:
        var(--register-radius-lg);

    box-shadow:
        var(--register-shadow);

    overflow:
        hidden;
}


/*
|--------------------------------------------------------------------------
| 5) Header
|--------------------------------------------------------------------------
*/

.register-header
{
    min-height:
        72px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        16px;

    padding:
        16px 28px;

    border-bottom:
        1px solid
        var(--register-border-soft);

    background:
        #ffffff;
}


.register-brand
{
    display:
        inline-flex;

    align-items:
        center;

    gap:
        10px;

    text-decoration:
        none;
}


.register-brand-icon
{
    width:
        42px;

    height:
        42px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        12px;

    background:
        #eef5ff;

    font-size:
        22px;
}


.register-brand-text
{
    font-size:
        19px;

    font-weight:
        800;

    letter-spacing:
        -0.02em;

    color:
        var(--register-navy);
}


.register-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:
        11px;

    font-weight:
        800;

    letter-spacing:
        0.09em;
}


/*
|--------------------------------------------------------------------------
| 6) Intro
|--------------------------------------------------------------------------
*/

.register-intro
{
    padding:
        32px 34px 8px;
}


.register-kicker,
.field-kicker
{
    display:
        inline-block;

    margin-bottom:
        8px;

    font-size:
        10px;

    line-height:
        1.2;

    font-weight:
        800;

    letter-spacing:
        0.13em;

    text-transform:
        uppercase;

    color:
        #6a7890;
}


.register-intro h1
{
    margin:
        0;

    color:
        #0a2146;

    font-size:
        clamp(
            28px,
            4vw,
            38px
        );

    line-height:
        1.12;

    letter-spacing:
        -0.035em;
}


.register-intro p
{
    margin:
        11px 0 0;

    max-width:
        610px;

    color:
        var(--register-muted);

    font-size:
        14px;

    line-height:
        1.6;
}


/*
|--------------------------------------------------------------------------
| 7) Form
|--------------------------------------------------------------------------
*/

.register-form
{
    padding:
        24px 34px 30px;
}


.form-section,
.profile-picture-section
{
    padding:
        22px 0;

    border-top:
        1px solid
        var(--register-border-soft);
}


.profile-picture-section
{
    border-top:
        0;
}


.form-section-heading,
.profile-picture-heading
{
    margin-bottom:
        18px;
}


.form-section-heading h2,
.profile-picture-heading h2
{
    margin:
        0;

    color:
        #17233d;

    font-size:
        20px;

    line-height:
        1.25;

    letter-spacing:
        -0.02em;
}


.profile-picture-heading p
{
    margin:
        7px 0 0;

    color:
        var(--register-muted);

    font-size:
        13px;

    line-height:
        1.55;
}


/*
|--------------------------------------------------------------------------
| 8) Profile Picture Area
|--------------------------------------------------------------------------
*/

.profile-upload-area
{
    display:
        flex;

    align-items:
        center;

    gap:
        20px;

    padding:
        18px;

    border:
        1px solid
        var(--register-border-soft);

    border-radius:
        18px;

    background:
        #fbfcfe;
}


.profile-preview
{
    position:
        relative;

    flex:
        0 0 auto;

    width:
        112px;

    height:
        112px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    overflow:
        hidden;

    border:
        2px dashed
        #c8d3e2;

    border-radius:
        50%;

    background:
        #eef3f9;
}


.profile-preview.has-image
{
    border-style:
        solid;

    border-color:
        #dce5ef;

    background:
        #ffffff;
}


.profile-preview-image
{
    width:
        100%;

    height:
        100%;

    display:
        block;

    object-fit:
        cover;
}


.profile-preview-icon
{
    font-size:
        34px;
}


.profile-upload-content
{
    min-width:
        0;

    flex:
        1;
}


.profile-upload-button
{
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    min-height:
        42px;

    padding:
        10px 17px;

    border:
        1px solid
        #d7e0eb;

    border-radius:
        11px;

    background:
        #ffffff;

    color:
        #18253d;

    font-size:
        13px;

    font-weight:
        800;

    cursor:
        pointer;

    transition:
        transform var(--register-transition),
        border-color var(--register-transition),
        box-shadow var(--register-transition);
}


.profile-upload-button:hover
{
    border-color:
        #9fb0c8;

    box-shadow:
        0 8px 20px
        rgba(
            15,
            23,
            42,
            0.06
        );

    transform:
        translateY(-1px);
}


.profile-upload-button:active
{
    transform:
        translateY(0);
}


#profilePicture
{
    position:
        absolute;

    width:
        1px;

    height:
        1px;

    opacity:
        0;

    pointer-events:
        none;
}


.profile-upload-help
{
    margin:
        9px 0 0;

    color:
        #738197;

    font-size:
        11px;

    line-height:
        1.5;
}


.remove-picture-button
{
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    margin-top:
        8px;

    padding:
        0;

    border:
        0;

    background:
        transparent;

    color:
        #c0392b;

    font-size:
        11px;

    font-weight:
        700;

    cursor:
        pointer;
}


.remove-picture-button:hover
{
    text-decoration:
        underline;
}


/*
|--------------------------------------------------------------------------
| 9) Form Fields
|--------------------------------------------------------------------------
*/

.form-field
{
    margin-bottom:
        18px;
}


.form-field:last-child
{
    margin-bottom:
        0;
}


.form-field label
{
    display:
        block;

    margin-bottom:
        8px;

    color:
        #26324a;

    font-size:
        13px;

    font-weight:
        750;
}


.form-field label span
{
    color:
        var(--register-primary);
}


.input-wrapper
{
    position:
        relative;

    display:
        flex;

    align-items:
        center;

    min-height:
        50px;

    border:
        1px solid
        var(--register-border);

    border-radius:
        var(--register-radius-sm);

    background:
        var(--register-input-bg);

    transition:
        border-color var(--register-transition),
        box-shadow var(--register-transition),
        background var(--register-transition);
}


.input-wrapper:focus-within
{
    border-color:
        #7aa7ee;

    background:
        #ffffff;

    box-shadow:
        0 0 0 4px
        rgba(
            58,
            134,
            255,
            0.10
        );
}


.input-icon
{
    flex:
        0 0 42px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    color:
        #6d7b90;

    font-size:
        16px;
}


.input-wrapper input
{
    width:
        100%;

    min-width:
        0;

    height:
        48px;

    padding:
        0 14px 0 0;

    border:
        0;

    outline:
        0;

    background:
        transparent;

    color:
        #172033;

    font-size:
        14px;
}


.input-wrapper input::placeholder
{
    color:
        #9aa7b9;
}


.input-wrapper.input-error
{
    border-color:
        rgba(
            217,
            45,
            32,
            0.72
        );

    background:
        #fffafa;
}


.input-wrapper.input-success
{
    border-color:
        rgba(
            19,
            138,
            75,
            0.62
        );

    background:
        #fbfffd;
}


.input-help
{
    margin:
        7px 0 0;

    color:
        #7a879a;

    font-size:
        11px;

    line-height:
        1.5;
}


.field-error
{
    min-height:
        0;

    margin:
        5px 0 0;

    color:
        var(--register-error);

    font-size:
        11px;

    line-height:
        1.45;
}


.field-error:empty
{
    display:
        none;
}


/*
|--------------------------------------------------------------------------
| 10) Password Toggle
|--------------------------------------------------------------------------
*/

.input-wrapper-password input
{
    padding-right:
        48px;
}


.password-toggle
{
    position:
        absolute;

    top:
        50%;

    right:
        9px;

    width:
        36px;

    height:
        36px;

    display:
        inline-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;
}


/*
|--------------------------------------------------------------------------
| 11) Password Strength
|--------------------------------------------------------------------------
*/

.password-strength
{
    display:
        grid;

    grid-template-columns:
        minmax(
            120px,
            1fr
        )
        auto;

    align-items:
        center;

    gap:
        10px;

    margin-top:
        9px;
}


.password-strength-track
{
    height:
        5px;

    overflow:
        hidden;

    border-radius:
        999px;

    background:
        #e6ebf2;
}


.password-strength-bar
{
    display:
        block;

    width:
        0;

    height:
        100%;

    border-radius:
        inherit;

    background:
        #cbd5e1;

    transition:
        width 180ms ease,
        background 180ms ease;
}


.password-strength-text
{
    color:
        #7c899b;

    font-size:
        10px;

    font-weight:
        700;

    white-space:
        nowrap;
}


.password-strength.weak
.password-strength-bar
{
    width:
        25%;

    background:
        #e05454;
}


.password-strength.medium
.password-strength-bar
{
    width:
        55%;

    background:
        #e39b2b;
}


.password-strength.strong
.password-strength-bar
{
    width:
        80%;

    background:
        #39a86b;
}


.password-strength.very-strong
.password-strength-bar
{
    width:
        100%;

    background:
        #15803d;
}


/*
|--------------------------------------------------------------------------
| 12) Registration Notice
|--------------------------------------------------------------------------
*/

.registration-notice
{
    display:
        flex;

    align-items:
        flex-start;

    gap:
        11px;

    margin-top:
        6px;

    padding:
        14px 15px;

    border:
        1px solid
        #dbe7f8;

    border-radius:
        12px;

    background:
        #f6f9ff;
}


.registration-notice-icon
{
    flex:
        0 0 auto;

    width:
        23px;

    height:
        23px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        50%;

    background:
        #e4efff;

    color:
        #3366b3;

    font-size:
        12px;

    font-weight:
        900;
}


.registration-notice p
{
    margin:
        1px 0 0;

    color:
        #64748b;

    font-size:
        11px;

    line-height:
        1.55;
}


/*
|--------------------------------------------------------------------------
| 13) Registration Message
|--------------------------------------------------------------------------
*/

.register-message
{
    margin-top:
        16px;

    padding:
        12px 14px;

    border:
        1px solid
        #d7e0eb;

    border-radius:
        11px;

    font-size:
        12px;

    line-height:
        1.5;
}


.register-message.success
{
    border-color:
        #b7e5cb;

    background:
        #f3fff8;

    color:
        #166534;
}


.register-message.error
{
    border-color:
        #f3c3be;

    background:
        #fff8f7;

    color:
        #a02820;
}


/*
|--------------------------------------------------------------------------
| 14) Buttons
|--------------------------------------------------------------------------
*/

.register-actions
{
    display:
        grid;

    gap:
        10px;

    margin-top:
        22px;
}


.create-account-button
{
    width:
        100%;

    min-height:
        52px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        9px;

    padding:
        0 20px;

    border:
        0;

    border-radius:
        11px;

    background:
        var(--register-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(--register-transition),
        background var(--register-transition),
        box-shadow var(--register-transition),
        opacity var(--register-transition);
}


.create-account-button:hover
{
    background:
        var(--register-primary-dark);

    transform:
        translateY(-1px);

    box-shadow:
        0 12px 24px
        rgba(
            255,
            0,
            0,
            0.22
        );
}


.create-account-button:active
{
    transform:
        translateY(0);
}


.create-account-button:disabled
{
    opacity:
        0.68;

    cursor:
        wait;

    transform:
        none;
}


.create-account-button-icon
{
    font-size:
        15px;
}


.back-home-button
{
    width:
        100%;

    min-height:
        46px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    border:
        1px solid
        var(--register-border);

    border-radius:
        11px;

    background:
        #ffffff;

    color:
        #36445c;

    font-size:
        12px;

    font-weight:
        800;

    text-decoration:
        none;

    transition:
        border-color var(--register-transition),
        background var(--register-transition),
        transform var(--register-transition);
}


.back-home-button:hover
{
    border-color:
        #b6c1d0;

    background:
        #f9fbfd;

    transform:
        translateY(-1px);
}


/*
|--------------------------------------------------------------------------
| 15) Footer
|--------------------------------------------------------------------------
*/

.register-footer
{
    padding:
        20px 34px 28px;

    border-top:
        1px solid
        var(--register-border-soft);

    text-align:
        center;

    background:
        #fbfcfe;
}


.register-footer p
{
    margin:
        0;

    color:
        #758298;

    font-size:
        12px;
}


.register-footer a
{
    color:
        #d60000;

    font-weight:
        800;

    text-decoration:
        none;
}


.register-footer a:hover
{
    text-decoration:
        underline;
}


/*
|--------------------------------------------------------------------------
| 16) Loading State
|--------------------------------------------------------------------------
*/

.create-account-button.is-loading
{
    pointer-events:
        none;
}


.create-account-button.is-loading
.create-account-button-icon
{
    animation:
        registerSpin 800ms linear infinite;
}


@keyframes registerSpin
{
    from
    {
        transform:
            rotate(0deg);
    }

    to
    {
        transform:
            rotate(360deg);
    }
}


/*
|--------------------------------------------------------------------------
| 17) Responsive
|--------------------------------------------------------------------------
*/

@media (
    max-width: 700px
)
{
    .register-page
    {
        padding:
            18px 12px 34px;
    }


    .register-card
    {
        border-radius:
            18px;
    }


    .register-header
    {
        min-height:
            64px;

        padding:
            13px 17px;
    }


    .register-brand-text
    {
        font-size:
            17px;
    }


    .register-step
    {
        font-size:
            9px;
    }


    .register-intro
    {
        padding:
            25px 20px 6px;
    }


    .register-form
    {
        padding:
            18px 20px 24px;
    }


    .register-footer
    {
        padding:
            18px 20px 23px;
    }


    .profile-upload-area
    {
        align-items:
            flex-start;

        gap:
            15px;

        padding:
            14px;
    }


    .profile-preview
    {
        width:
            88px;

        height:
            88px;
    }


    .profile-preview-icon
    {
        font-size:
            28px;
    }
}


@media (
    max-width: 460px
)
{
    .register-page
    {
        padding:
            0;
    }


    .register-card
    {
        width:
            100%;

        min-height:
            100vh;

        border:
            0;

        border-radius:
            0;

        box-shadow:
            none;
    }


    .register-header
    {
        padding:
            12px 15px;
    }


    .register-intro
    {
        padding:
            24px 16px 6px;
    }


    .register-form
    {
        padding:
            17px 16px 24px;
    }


    .register-footer
    {
        padding:
            18px 16px 24px;
    }


    .profile-upload-area
    {
        flex-direction:
            column;

        align-items:
            center;

        text-align:
            center;
    }


    .profile-upload-content
    {
        width:
            100%;

        display:
            flex;

        flex-direction:
            column;

        align-items:
            center;
    }


    .profile-upload-help
    {
        text-align:
            center;
    }


    .password-strength
    {
        grid-template-columns:
            1fr;
    }


    .password-strength-text
    {
        white-space:
            normal;
    }
}


/*
|--------------------------------------------------------------------------
| 18) Reduced Motion
|--------------------------------------------------------------------------
*/

@media (
    prefers-reduced-motion: reduce
)
{
    *
    {
        scroll-behavior:
            auto !important;

        transition:
            none !important;

        animation:
            none !important;
    }
}