:root{
    --1-color: #eee;
    --2-color: white;
    --3-color: #06aff2;
    --4-color: #ccc;
    --5-color: #666666;
    --6-color: red;
    --body-background: var(--1-color);
    --button-background: var(--1-color);
    --button-color: var(--3-color);
    --button-text: var(--2-color);
    --click-scale: 95%;
    --container-background: var(--2-color);
    --description-color: var(--5-color);
    --input-invalid: var(--6-color);
    --input-valid: var(--3-color);
    --language-border: var(--4-color);
    --language-position: 16px;
    --margin: 20px;
    --margin-left-back-button: 14px;
    --margin-left-right: 16px;
    --margin-right-toogle: 25px;
    --padding: 10px;
    --padding-header: 10px 0px;
    --padding-side: 0px 10px;
    --padding-instruction: 8%;
    --title-size: 22px;
}

/* imation apperance */
.slide-in-left {
    animation: slideInLeft 0.5s forwards; /* Hiệu ứng trượt vào từ trái */
}
.slide-out-left {
    animation: slideOutLeft 0.5s forwards; /* Hiệu ứng trượt ra trái */
}
.slide-in-right {
    animation: slideInRight 0.5s forwards; /* Hiệu ứng trượt vào từ phải */
}
.slide-out-right {
    animation: slideOutRight 0.5s forwards; /* Hiệu ứng trượt ra phải */
}
.fade-out {
    animation: fadeOut 0.3s forwards;
}
.fade-in {
    animation: fadeIn 0.3s forwards;
}
@keyframes slideInLeft {
    from {
        transform: translateX(-100%); /* Bắt đầu từ bên trái */
        opacity: 0; /* Bắt đầu với độ mờ */
    }
    to {
        transform: translateX(0); /* Kết thúc ở vị trí gốc */
        opacity: 1; /* Hiển thị hoàn toàn */
    }
}
@keyframes slideOutLeft {
    from {
        transform: translateX(0); /* Bắt đầu ở vị trí gốc */
        opacity: 1; /* Hiển thị hoàn toàn */
    }
    to {
        transform: translateX(-100%); /* Kết thúc ra ngoài bên trái */
        opacity: 0; /* Mờ dần */
    }
}
@keyframes slideInRight {
    from {
        transform: translateX(100%); /* Bắt đầu từ bên phải */
        opacity: 0; /* Bắt đầu với độ mờ */
    }
    to {
        transform: translateX(0); /* Kết thúc ở vị trí gốc */
        opacity: 1; /* Hiển thị hoàn toàn */
    }
}
@keyframes slideOutRight {
    from {
        transform: translateX(0); /* Bắt đầu ở vị trí gốc */
        opacity: 1; /* Hiển thị hoàn toàn */
    }
    to {
        transform: translateX(100%); /* Kết thúc ra ngoài bên phải */
        opacity: 0; /* Mờ dần */
    }
}
@keyframes fadeOut {
    from {
        transform: translateX(0);
        opacity: 1; /* Bắt đầu với độ mờ */
    }
    to {
        transform: translateX(0);
        opacity: 0; /* Hiển thị hoàn toàn */
    }
}
@keyframes fadeIn {
    from {
        transform: translateX(0);
        opacity: 0; /* Bắt đầu với độ mờ */
    }
    to {
        transform: translateX(0);
        opacity: 1; /* Hiển thị hoàn toàn */
    }
}

/* general setting */
body {
    font-family: Arial, sans-serif;
    text-align: center;
    background-color: var(--body-background);
}
.container {
    max-width: 400px;
    margin: auto;
    padding: 0px 0px var(--margin) 0px;
    background: var(--container-background);
    border-radius: 16px;
    position: relative;
}
.options{
    margin: var(--margin);
}
.link {
    color: var(--button-color);
    padding: var(--padding-side);
    cursor: pointer;
    display: inline-block;
}
.link:active {
    scale: var(--click-scale);
}
.language {
    color: var(--button-color);
    position: absolute;
    top: var(--language-position);
    right: var(--language-position);
    cursor: pointer;
}
.language:active {
    scale: var(--click-scale);
}
.language-bottom {
    color: var(--button-color);
    position: absolute;
    bottom: var(--language-position);
    right: var(--language-position);
    cursor: pointer;
}
.language-bottom:active {
    scale: var(--click-scale);
}
.welcome-text {
    font-weight: bold;
    font-size: var(--title-size);
    color: var(--description-color);
    margin: var(--margin) 0 var(--padding);
    height: 50px;
}
.instruction {
    padding: var(--padding-instruction);
}
button {
    background-color: var(--button-color);
    color: var(--button-text);
    padding: var(--padding) var(--margin);
    border: none;
    border-radius: 20px;
    margin: auto;
    cursor: pointer;
    display: block;
    font-size: 16px;
}
button:active {
    scale: var(--click-scale);
}
input {
    width: 90%;
    padding: var(--padding);
    margin: var(--padding-header);
    /* border: 1px solid var(--body-background); */
    border-radius: 5px;
    box-sizing: border-box;
}
input[name="password"] {
    padding-right: 40px;
}
input:valid {
    border: 2px solid var(--input-valid); /* Viền màu xanh cho trường hợp hợp lệ */
}
input:invalid {
    border: 2px solid var(--input-invalid); /* Viền màu đỏ cho trường hợp không hợp lệ */
}
input:focus:valid {
    outline: none; /* Bỏ viền ngoài khi trường hợp lệ được chọn */
    box-shadow: 0 0 5px var(--input-valid); /* Thêm bóng xanh cho trường hợp hợp lệ */
}
input:focus:invalid {
    outline: none; /* Bỏ viền ngoài khi trường không hợp lệ được chọn */
    box-shadow: 0 0 5px var(--input-invalid); /* Thêm bóng đỏ cho trường không hợp lệ */
}
.password-container {
    position: relative;
}
#toggle-password {
    position: absolute;
    right: var(--margin-right-toogle);
    /* top: 48%; */
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    color: var(--button-background);
    /* font-size: 30px; */
    font-size: 20px;
    width: 30px;
}
#toggle-password:hover {
    color: var(--button-color);
}

.or-section {
    margin: 20px auto;
    font-size: 14px;
    color: var(--description-color);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90%;
    max-width: 400px;
}
.or-section::before,
.or-section::after {
    content: "";
    flex: 1;
    border-bottom: 1px solid var(--body-background);
}
.or-section:not(:empty)::before {
    margin-right: var(--padding);
}
.or-section:not(:empty)::after {
    margin-left: var(--padding);
}
.social-btn {
    width: 40px;
    padding: 0 var(--padding);
    cursor: pointer;
}
.social-btn:active {
    scale: var(--click-scale);
}

/* Header Screen */
.header {
    display: flex;
    padding: var(--padding);
    align-items: center;
    background-color: var(--button-color);
    color: var(--button-text);
    border-radius: 16px 16px 0px 0px;
}
.back-button {
    height: 30px;
    cursor: pointer;
    position: relative;
    left: var(--padding);
}
.back-button:active {
    scale: var(--click-scale);
}
.header-title {
    font-size: var(--title-size);
    margin: 0 auto;
    padding: var(--padding);
    text-align: center;
}
.white-header {
    display: flex;
    padding: var(--padding-header);
    align-items: center;
    background-color: var(--container-background);
    border-radius: 16px 16px 0px 0px;
}
.back-blue-button {
    height: 30px;
    cursor: pointer;
    position: relative;
    left: var(--margin-left-back-button);
}
.back-blue-button:active {
    scale: var(--click-scale);
}

/* Flash Screen */
#welcome-image {
    margin-top: var(--margin);
    height: 250px;
}
#welcome-text {
    font-weight: bold;
    margin: var(--margin) 0 var(--padding);
    height: 30px;
}
#description {
    color: var(--description-color);
    margin-bottom: var(--margin);
    height: 50px;
}
.pagination {
    display: flex;
    justify-content: center;
    margin-bottom: var(--margin);
}
.pagination-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background-color: var(--button-background);
    margin: 0 4px;
    cursor: pointer;
}
.pagination-dot:active{
    scale: 80%;
}
.pagination-dot.active {
    background-color: var(--button-color);
}

/* Language List */
.language-list {
    list-style-type: none;
    padding: 0;
    margin: 0;
}
.language-item {
    display: flex;
    align-items: center;
    padding: var(--margin-left-right);
    border-bottom: 1px solid var(--language-border);
    cursor: pointer;
}
.flag {
    height: 60px;
    margin-right: var(--margin);
    border-radius: 2px;
}
.language-item:hover {
    background-color: var(--language-border);
    border-radius: 0px 0px 16px 16px;
}
.language-info {
    flex: 1;
    text-align: left;
}
.language-name {
    height: 16px;
}
.language-subtext {
    margin-top: var(--padding);
    color: var(--description-color);
}
.checkmark {
    height: 20px;
}

/* Login screen */
.logo-welcome {
    width: 90px;
}
