@font-face {
    font-family: 'Poppins';
    src        : url('/fonts/poppins/Poppins-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style : normal;
}

@font-face {
    font-family: 'Poppins';
    src        : url('/fonts/poppins/Poppins-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style : normal;
    font-display: swap;
}

@font-face {
    font-family: 'Poppins';
    src        : url('/fonts/poppins/Poppins-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style : normal;
}

/* CSS Variables */
:root {
    --font-primary    : 'Poppins', Arial, sans-serif;
    --font-medium     : 'Poppins', Arial, sans-serif;
    --font-bold       : 'Poppins', Arial, sans-serif;
    --font-regular    : 'Poppins', Arial, sans-serif;
    --color-primary   : #c50552;
    --color-background: #f0f0f0;
    --color-text      : #212529;
    --color-input     : #737373;
    --color-border    : #bfbfbf;
    --color-error     : #ff0000;
    --color-link      : #999999;
    --border-radius   : 8px;
    --letter-spacing  : -1.7%;
}

/* Base Layout */
body {
    font-family     : var(--font-primary);
    background-color: var(--color-background);
    margin          : 0;
    padding         : 0;
    display         : flex;
    flex-direction  : column;
    min-height      : 100vh;
}

.container {
    flex           : 1;
    display        : flex;
    justify-content: center;
    align-items    : center;
    padding        : 0;
    margin         : 0;
    letter-spacing : var(--letter-spacing);
}

.login-container {
    width    : 100%;
    max-width: 600px;
}

.login-body {
    background-color: white;
    padding         : 64px;
    border-radius   : var(--border-radius);
    box-shadow      : 0 4px 6px rgba(0, 0, 0, 0.1);
    max-width       : 472px;
}

/* Logo */
.logo {
    display      : block;
    height       : 24px;
    margin-bottom: 64px;
}

/* Typography */
h1 {
    font-family   : var(--font-medium);
    font-size     : 33.18px;
    font-weight   : 500;
    letter-spacing: var(--letter-spacing);
    margin        : 0 0 16px;
    color         : var(--color-text);
}

.login-body-desc {
    font-family   : var(--font-regular);
    font-size     : 13.33px;
    color         : var(--color-text);
    margin        : 0 0 32px;
    letter-spacing: var(--letter-spacing);
}

/* Form Elements */
.input-group label {
    font-family  : var(--font-regular);
    display      : block;
    font-size    : 13.33px;
    margin-bottom: 4px;
    color        : var(--color-text);
}

.email-input {
    box-sizing   : border-box;
    width        : 100%;
    height       : 44px;
    max-height   : 44px;
    max-width    : 472px;
    padding      : 0px;
    padding-left : 16px;
    border       : 1px solid var(--color-border);
    border-radius: var(--border-radius);
    font-size    : 13.33px;
    color        : var(--color-input);
    margin-bottom: 16px;
    font-family  : var(--font-regular);
    outline      : none;
    background-color: white;
}

/* Select Element Styling */
select.email-input {
    appearance       : none;
    -webkit-appearance: none;
    -moz-appearance   : none;
    background-image : url("../icons/dropdown-arrow.svg");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right    : 40px;
    cursor           : pointer;
}

.password-input {
    box-sizing   : border-box;
    width        : 100%;
    height       : 44px;
    max-height   : 44px;
    max-width    : 472px;
    padding      : 0px;
    padding-left : 16px;
    border       : 1px solid var(--color-border);
    border-radius: var(--border-radius);
    font-size    : 13.33px;
    color        : var(--color-input);
    margin-bottom: 4px;
    font-family  : var(--font-regular);
    outline      : none;
    background   : none;
}

.password-input-wrapper {
    position: relative;
}

.toggle-password {
    right     : 0;
    margin    : 12px 16px 12px 0px;
    padding   : 0px;
    background: none;
    border    : none;
    cursor    : pointer;
    position  : absolute;
    top       : 0;
}

input::placeholder {
    color: var(--color-input);
}

/* Error States */
.error-input,
.email-error-input,
.email-error-input:focus {
    border-color    : var(--color-error);
    background-color: #f9e6e6;
}

.field-error-msg {
    color      : var(--color-error);
    font-size  : 12px;
    margin-top : -8px;
    font-family: var(--font-regular);
    display    : none;
}

.no-margin-bottom {
    margin-bottom: 0;
}

/* Buttons */
.submit-btn {
    box-sizing      : border-box;
    width           : 100%;
    height          : 40px;
    padding         : 10px 0px 12px 0px;
    background-color: var(--color-primary);
    color           : white;
    border          : 1px solid transparent;
    border-radius   : var(--border-radius);
    cursor          : pointer;
    font-size       : 16px;
    font-weight     : 500;
    margin-bottom   : 32px;
    font-family     : var(--font-medium);
}

.secondary-btn {
    width           : 100%;
    height          : 40px;
    padding         : 10px 0px 12px 0px;
    background-color: white;
    color           : var(--color-input);
    border          : none;
    border-radius   : var(--border-radius);
    cursor          : pointer;
    font-size       : 16px;
    font-weight     : 500;
    margin-bottom   : 16px;
    font-family     : var(--font-medium);
    box-shadow      : none;
}

.secondary-btn:focus,
.secondary-btn:hover {
    background-color: #f0f0f0;
    color           : var(--color-input);
    outline         : none;
}

.disabled-btn {
    background-color: #cccccc !important;
    color           : #888888 !important;
    border          : 1px solid #cccccc !important;
    cursor          : not-allowed !important;
    opacity         : 0.7;
    pointer-events  : none;
}

/* Links */
.create-account {
    text-align : center;
    font-size  : 13.33px;
    margin     : 0;
    color      : var(--color-input);
    font-family: var(--font-regular);
}

.create-account a {
    color          : var(--color-primary);
    text-decoration: none;
    font-weight    : 500;
    font-family    : var(--font-medium);
}

/* Footer */
.login-footer {
    margin         : 32px 0 0;
    padding        : 0;
    display        : flex;
    justify-content: space-between;
    align-items    : center;
}

.login-footer nav a {
    color          : var(--color-input);
    text-decoration: none;
    margin-left    : 16px;
    font-size      : 13.33px;
    font-weight    : 500;
    font-family    : var(--font-medium);
}

.login-footer nav a:first-child {
    margin-left: 0;
}

/* Language Dropdown */
.dropdown {
    position: relative;
    display : inline-block;
}

.dropbtn {
    height          : 36px;
    background-color: var(--color-background);
    color           : var(--color-input);
    padding         : 0 16px;
    border          : none;
    width           : 177px;
    max-width       : 177px;
    border-radius   : var(--border-radius);
    display         : flex;
    justify-content : space-between;
    align-items     : center;
    font-size       : 13.33px;
    font-family     : var(--font-regular);
}

.dropbtn:hover {
    background-color: #EAEAEA;
}

.dropbtn-icon {
    width : 20px;
    height: 20px;
}

.dropdown-content {
    display         : none;
    position        : absolute;
    top             : auto;
    bottom          : 100%;
    background-color: #EAEAEA;
    box-shadow      : 0 8px 16px 0 rgba(0, 0, 0, 0.2);
    z-index         : 1;
    border-radius   : var(--border-radius);
    width           : 177px;
    margin-bottom   : 4px;
    overflow-y      : scroll;
    max-height      : 500px;
    padding         : 4px 0px;
}

.dropdown-content.show {
    display: block;
}

.language-item {
    color           : var(--color-input);
    background-color: #EAEAEA;
    height          : 32px;
    padding         : 0 0 0 16px;
    text-decoration : none;
    display         : flex;
    align-items     : center;
    border-radius   : var(--border-radius);
    cursor          : pointer;
}

.language-item:hover {
    color: var(--color-primary);
}

.language-icon {
    width       : 21.33px;
    height      : 16px;
    margin-right: 10px;
}

/* Hide password reveal icons */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
    display: none;
}

/* Responsive */
@media (max-width: 768px) {
    .container {
        background-color: white;
    }

    .login-container {
        width           : 100%;
        max-width       : 100%;
        height          : 100%;
        max-height      : 100%;
        background-color: white;
        display         : flex;
        flex-direction  : column;
        justify-content : center;
        align-items     : center;
        padding-left    : 32px;
        padding-right   : 32px;
    }

    .login-body {
        box-shadow   : none;
        max-width    : 472px;
        width        : 100%;
        padding-right: 0px;
        padding-left : 0px;
        margin       : 0px;
    }

    .login-footer {
        max-width      : 472px;
        width          : 100%;
        padding-right  : 0px;
        padding-left   : 0px;
        flex-direction : column;
        align-items    : start;
        justify-content: center;
        margin         : 0px;
    }

    .dropbtn {
        background-color: white;
        padding-left    : 0px;
    }

    .dropdown {
        padding-bottom: 32px;
    }
}

@media (max-width: 320px) {
    .create-account a {
        display: block;
    }
}