/*---------------------------------------
                VARIABLES
----------------------------------------*/
[data-theme="light"]{
    --body-bdg-color: rgb(255, 255, 255);
    --main-color: rgba(26, 26, 26, 0.964);
    --faded-text-color: rgb(116, 112, 130);
    --input-bdg-color: rgba(0, 119, 255, 0.047);
    --input-border-color: rgba(128, 127, 130, 0.414);
    --icons-color: rgb(26, 26, 26);
    --toggle-icon-color: rgb(4, 236, 4);
    --hover-faded-white: rgba(0, 0, 0, 0.056);
    --CTA-btn-bdg: rgb(0, 123, 255);
    --CTA-btn-bdg-hover: rgb(27, 143, 228);
    --CTA-btn-text-color: rgb(255, 255, 255);
    --modal-bg-color: rgb(233, 232, 232);
    --modal-box-shadow-color: rgba(28, 28, 28, 0.442);
    --minor-btn-bdg: transparent;
    --minor-btn-bdg-hover: rgba(17, 131, 218, 0.197);
    --minor-btn-border-color: rgba(128, 127, 130, 0.47);
}

[data-theme="dark"]{
    --body-bdg-color: rgb(1, 1, 16);
    --main-color: rgb(215, 215, 215);
    --faded-text-color: rgb(149, 149, 158);
    --input-bdg-color: rgba(62, 173, 228, 0.114);
    --input-border-color: rgba(128, 127, 130, 0.62);
    --icons-color: rgb(231, 234, 238);
    --toggle-icon-color: rgb(4, 236, 4);
    --hover-faded-white: rgba(255, 255, 255, 0.075);
    --CTA-btn-bdg: rgb(0, 123, 255);
    --CTA-btn-bdg-hover: rgb(27, 143, 228);
    --CTA-btn-text-color: rgb(255, 255, 255);
    --modal-box-shadow-color: rgba(210, 206, 206, 0.344);
    --minor-btn-bdg: rgba(17, 131, 218, 0.07);
    --minor-btn-bdg-hover: rgba(17, 131, 218, 0.173);
    --minor-btn-border-color: rgba(128, 127, 130, 0.47);
}

/*----------------------------------------
                STYLES
-----------------------------------------*/
/*----------------------------------------
            Password Generator Page
-----------------------------------------*/

/*------- Navigation ------*/
body{
    display: flex;
    gap: 20px;
    background-color: var(--body-bdg-color);
    font-family: 'Poppins', sans-serif;
}

html{
    scroll-behavior: smooth;
}

h1{          /*------- Styles applies for all h1 ------*/
    font-size: 2rem;
    color: var(--main-color);
    margin: 20px 0;
    font-weight: 600;
}

#side-bar{
    width: 15%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
}

#side-bar h1{
    font-size: 1.5rem;
}

#menu-toggle{
    display: none;
    font-size: 1.8rem;
    color: #000000;
    cursor: pointer;
}

#nav-links{
    display: flex;
    flex-direction: column;
    gap: 10px;
    list-style: none;
    padding-left: 20px;
    width: 100%;
}

#nav-links li{
    display: flex;
    align-items: center;
    gap: 5px;
}

svg{
    width: 1.3rem;
    height: 1.3rem;
    color: var(--faded-text-color);
}

svg:hover{
    color: var(--icons-color);
}

#nav-links a{
    color: var(--faded-text-color);
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    width: max-content;
    padding: 8px;
    border-radius: 50px;
}

#nav-links a:hover:not(.active){
    color: rgb(13, 130, 255);
    background-color: var(--hover-faded-white);
}

#nav-links a.active{
    color: rgb(13, 130, 255);
    background-color: var(--hover-faded-white);
}

/*------- Main ------*/
main{
    width: 60%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-evenly;
    gap: 25px;
}

.input-container{
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    justify-content: space-between;
}

.input-container label{
    font-size: 16px;
    font-weight: bold;
    color: var(--main-color);
}

.input-container input{
    width: 80%;
    padding: 10px;
    font-size: 16px;
    outline: none;
    color: var(--main-color);
    background-color: var(--input-bdg-color);
    border: 1px solid var(--input-border-color);
    border-radius: 8px;
}

.characters-container{
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 50%;
}

.characters-container h2{
    margin-top: 0;
    margin-bottom: 0;
    color: var(--main-color);
}

.checkbox-container{
    width: 50%;
    cursor: pointer;
}

.checkbox-container input{
    cursor: pointer;
}

.checkbox-container label{
    cursor: pointer;
    color: var(--main-color);
}

.buttons-container{
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#generate-btn{
    padding: 12px;
    width: 55%;
    font-size: 18px;
    font-weight: bold;
    color: rgb(255, 255, 255);
    background-color: var(--CTA-btn-bdg);
    border: none;
    border-radius: 50px;
    outline: none;
    transition: transform 0.5s ease;
    cursor: pointer;
}

#generate-btn:hover{
    transform: scale(1.05);
    background-color: var(--CTA-btn-bdg-hover);
}

#reset-btn{
    padding: 12px;
    width: 35%;
    font-size: 18px;
    font-weight: bold;
    color: var(--main-color);
    background-color: var(--minor-btn-bdg);
    border: 1px solid var(--minor-btn-border-color);
    border-radius: 50px;
    cursor: pointer;
    transition: transform 0.5s ease;
}

#reset-btn:hover{
    transform: scale(1.05);
    background-color: var(--minor-btn-bdg-hover);
}

.result-container{
    width: 80%;
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
}

.result-container h2{
    color: var(--main-color);
}

.passwords-list{
    width: 100%;
    min-height: 200px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    border-radius: 5px;
    color: var(--faded-text-color);
    background-color: var(--hover-faded-white);
}

.output-container{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 96%;
    height: 30px;
    padding: 10px;
    border-radius: 10px;
    border: 1px solid var(--input-border-color);
}

#password-output{
    font-size: 16px;
    color: var(--main-color);
    padding: 20;
    width: 50%;
    border: none;
}

.output-buttons-wrapper{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 25%;
}

.output-buttons-wrapper button{
    padding: 10px;
    font-size: 1rem;
    color: var(--faded-text-color);
    border: none;
    border-radius: 50px;
    background-color: transparent;
    cursor: pointer;
}

.output-buttons-wrapper button:hover {
    color: var(--icons-color);
    background-color: var(--hover-faded-white);
}

#pre-content {
    padding: 20px;
    font-size: 16px;
    color: var(--faded-text-color);
    text-align: center;
}

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6); 
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.tag-container {
    width: 300px;
    height: 300px;
    padding: 20px;
    border-radius: 10px;
    z-index: 99999;
    background-color: rgba(255, 252, 252, 0.952);
    box-shadow: 4px 4px 16px rgba(255, 255, 255, 0.388);
}

.tag-container.active{
    transform: scale(1);
    opacity: 1;
}

.title-wrapper {
    width: 105%;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0;
    margin-bottom: 20px;
}

.title-wrapper i{
    padding: 10px;
    font-size: 1.3rem;
    border-radius: 50px;
    color: rgb(0, 0, 0);
    cursor: pointer;
    transition: 0.3s ease-in-out;
}

.title-wrapper i:hover {
    border: none;
    background-color: rgba(207, 205, 205, 0.552);
}

.tag-container h3 {
    font-size: 1.3rem;
    color: #1a1a1a;
}

.tag-container label {
    font-weight: bold;
    font-size: 0.9rem;
    color: #1a1a1a;
}

#tag-input{
    width: 95%;
    padding: 10px;
    border: 1px solid var(--input-border-color);
    border-radius: 5px;
    outline: none;
    font-size: 16px;
    background-color: var(--input-bdg-color);
    margin-top: 5px;
}

#tag-submit-btn {
    width: 100%;
    padding: 15px;
    font-size: 16px;
    font-weight: bold;
    border: none;
    border-radius: 50px;
    color: var(--CTA-btn-text-color);
    background-color: var(--CTA-btn-bdg);
    margin-top: 20px;
    margin-bottom: 20px;
    cursor: pointer;
}
#tag-submit-btn:hover {
    background-color: var(--CTA-btn-bdg-hover);
}

.tag-container p {
    font-size: 14px;
    color: var(--faded-text-color);
    width: 100%;
}



/*----------------------------------------
            Strength Checker Page
-----------------------------------------*/
.input-wrapper{
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    justify-content: space-between;
}

.input-wrapper label{
    font-weight: bold;
    color: var(--main-color);
}

#password-input{
    margin-top: 5px;
    padding: 10px;
    width: 80%;
    font-size: 16px;
    color: var(--main-color);
    border: 1px solid rgba(128, 127, 130, 0.414);
    border-radius: 10px;
    outline: none;
    background-color: var(--input-bdg-color);
}

.strength-checker-buttons{
    width: 50%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-top: 20px;
    margin-bottom: 20px;
}

#check-strength-btn{
    padding: 12px;
    width: 50%;
    font-size: 18px;
    font-weight: bold;
    color: rgb(255, 255, 255);
    background-color: var(--CTA-btn-bdg);
    border: none;
    border-radius: 50px;
    transition: transform 0.5s ease;
    cursor: pointer;
}

#check-strength-btn:hover{
    transform: scale(1.05);
    background-color: var(--CTA-btn-bdg-hover);
}

#clear-btn{
    padding: 12px;
    width: 35%;
    font-size: 18px;
    font-weight: bold;
    color: var(--main-color);
    background-color: var(--minor-btn-bdg);
    border: 1px solid var(--minor-btn-border-color);
    border-radius: 50px;
    cursor: pointer;
    transition: transform 0.5s ease;
}

#clear-btn:hover{
    transform: scale(1.05);
    background-color: var(--minor-btn-bdg-hover);
}

.strength-indicator-container{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    width: 80%;
}

.sub-strength-indicator-container{
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sub-strength-indicator-container label{
    margin-left: 2px;
    color: var(--main-color);
    font-weight: bold;
}

#result-percent{
    color: var(--main-color);
}

#result-range{
    margin: 0;
    margin-bottom: 0;
}

#result{
    background-color: var(--hover-faded-white);
    padding: 10px;
    width: max-content;
    font-size: 16px;
    border-radius: 5px;
    margin-top: 0;
    box-shadow: 2px 4px 6px var(--modal-box-shadow-color);
    display: none;
}

.entropy-score-container h3{
    color: var(--main-color);
}

.entropy-score-container p{
    color: var(--faded-text-color);
    font-size: 16px;
}

#entropy-score{
    color: #0180ff;
    font-size: 1.1rem;
}

.recommendations-container{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.recommendations-container h3{
    margin-bottom: 0;
    color: var(--main-color);
}

.recommendations{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.recommendations p{
    color: var(--faded-text-color);
}

/*----------------------------------------
            Saved Password / History Page
-----------------------------------------*/
.sub-title-container{
    margin-bottom: 0;
}

.sub-title-container p{
    color: var(--faded-text-color)
}

.history-container{
    width: 100%;
    margin-top: 0;
}

.heading-container{
    display: flex;
    width: 80%;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px 0 5px;
    border-radius: 5px;
}

.headings{
    color: var(--main-color);
    font-weight: bold;
}

.saved-passwords-container{
    width: 80%;
    min-height: 200px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 20px 0 10px;
    color: var(--faded-text-color);
    background-color: var(--hover-faded-white);
    border-radius: 5px;
}

.saved-pw-container{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 101%;
    border: 1px solid var(--input-border-color);
    border-radius: 5px;
    background-color: var(--hover-faded-white);
}

.password-tag {
    color: var(--main-color);
    padding: 5px;
    font-size: 1rem;
}

.saved-pw-holder {
    font-size: 1rem;
    color: var(--main-color);
    padding: 8px;
    border: none;
    outline: none;
    background-color: transparent;
}

.date-saved {
    font-size: 16px;
    color: var(--main-color);
}

.hidden-btn-container {
    display: none;
}

.hidden-btn-container i {
    font-size: 1.2rem;
    color: var(--icons-color);
}

.hidden-btn-container:hover {
    background-color: var(--hover-faded-white);
}

.action-btn-container{
    width: 20%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    margin-top: 0;
    margin-right: 10px;
    transition: transform 0.3s ease;
}

.action-btn-container button{
    color: var(--faded-text-color);
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50px;
    background-color: transparent;
    font-size: 1rem;
    cursor: pointer;
}

.action-btn-container button:hover{
    transform: scale(1.08);
    color: var(--main-color);
    background-color: var(--hover-faded-white);
}

/*----------------------------------------
            Settings Page
-----------------------------------------*/

.appearance-container{
    display: flex;
    flex-direction: column;
    width: 80%;
}

.appearance-sub-container{
    display: flex;
}

.appearance-container h2{
    color: var(--main-color);
}

.title-container{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
}

.title-container label{
    color: var(--main-color);
}

.title-container p {
    color: var(--faded-text-color);
    width: 80%;
}

.appearance-container p{
    font-size: 16px;
    margin-top: 5px;
    color: var(--faded-text-color);
}

.security-container{
    width: 80%;
}

.security-container h2,
.security-container label{
    color: var(--main-color);
}

.title-container p{
    margin-top: 5px;
}

.data-container{
    width: 80%;
}

.data-container h2{
    margin-bottom: 5px;
    color: var(--main-color);
}

.sub-data-container{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 0;
}

.sub-data-container label{
    color: var(--faded-text-color);
}

.sub-data-container svg{
    width: 1.2rem;
    cursor: pointer;
    padding: 10px;
    color: var(--faded-text-color);
    border-radius: 50px;
    transition: transform 0.3s ease;
}

.sub-data-container svg:hover{
    transform: scale(1.08);
    color: var(--icons-color);
    background-color: var(--hover-faded-white);
}

.privacy-container{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 80%;
    margin-top: 150px;
}

.privacy-container p{
    font-size: 12px;
    color: var(--faded-text-color);
}

#theme-toggle-wrapper,
#encrypt-toggle-wrapper{
    position: relative;
    width: 70px;
    height: 35px;
    padding: 0;
    border: 1px solid var(--input-border-color);
    border-radius: 50px;
    background-color: #cccccc50;
    cursor: pointer;
}

.path{
    position: absolute;
    width: 32px;
    height: 32px;
    margin: 1.5px;
    border-radius: 50%;
    background-color: rgb(0, 0, 0);
    transition: 0.3s ease-in-out;
}

#theme-toggle-wrapper.active .path{
    background-color: rgb(7, 210, 7);
    transform: translateX(30px);
}

#encrypt-toggle-wrapper.active .path{
    background-color: rgb(7, 210, 7);
    transform: translateX(30px);
}

/*------------------- Modal CSS -------------------*/
.pass-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.671); 
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.pass-modal{
    width: 300px;
    height: auto;
    padding: 20px;
    border-radius: 10px;
    z-index: 99999;
    background-color: rgba(255, 252, 252, 0.989);
    box-shadow: 4px 4px 16px rgba(255, 255, 255, 0.388);
}

.pass-modal.active{
    transform: scale(1);
    opacity: 1;
}

.header-wrapper{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 105%;
    margin-bottom: 20px;
}

.close{
    text-align: center;
}

#close-icon{
    font-size: 1.2rem;
    padding: 10px;
    border-radius: 50px;
    color: #1a1a1a;
    cursor: pointer;
}

#close-icon:hover{
    color: var();
    background-color: rgba(207, 205, 205, 0.552);
}

.pass-modal h3{
    color: rgb(26, 26, 26);
}

.sub-wrapper{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 5px;
    width: 100%;
    margin-bottom: 10px;
}

.pass-modal label{
    color: rgb(26, 26, 26);
}

.pass-modal input{
    width: 90%;
    padding: 10px;
    font-size: 16px;
    color: var(--main-color);
    border: 1px solid var(--input-border-color);
    border-radius: 5px;
    outline: none;
    background-color: var(--input-bdg-color);
}

.pass-modal button{
    width: 100%;
    padding: 15px;
    font-size: 16px;
    font-weight: bold;
    border: none;
    border-radius: 50px;
    color:var(--CTA-btn-text-color);
    background-color: var(--CTA-btn-bdg);
    margin-bottom: 20px;
    margin-top: 20px;
    cursor: pointer;
}

.pass-modal button:hover{
    background-color: var(--CTA-btn-bdg-hover);
}

.pass-modal p{
    margin: 0;
    font-size: 14px;
    color: var(--faded-text-color);
}