:root {

    /* COLORS */

    --white: #FFFFFF;
    --black: #000000;
    --grey-950: #08070B;
    --grey-900: #14131B;
    --grey-850: #18171F;
    --grey-800: #24232C;
    --grey-700: #54535B;
    --grey-600: #817D92;
    --grey-200: #E6E5EA;
    --green-200: #A4FFAF;
    --yellow-300: #F8CD65;
    --orange-400: #FB7C58;
    --red-500: #F64A4A;

    /* FONT SIZES */

    --ts1: 2rem;
    --ts2: 1.5rem;
    --ts3: 1.125rem;
    --ts4: 1rem;
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: "JetBrains Mono", monospace;
    display: grid;
    place-items: center;
    background-color: var(--grey-950);
    padding: 4rem 1rem;
}

.container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 80%;
    max-width: 33.75rem;
    align-self: stretch;
}

h1 {
    font-size: var(--ts4);
    color: var(--grey-600);
    margin-bottom: 1rem;
}

#password-output {
    font-size: var(--ts2);
    color: var(--grey-700);
}

.label-row label,
p,
span {
    font-size: var(--ts4);
    color: var(--grey-200);
}

#generate-button {
    color: var(--grey-800);
    background-color: var(--green-200);
    border-style: none;
}

#copy-button {
    background: none;
    border: none;
}

.password-box {
    background-color: var(--grey-800);
    display: flex;
    justify-content: space-between;
    padding: 1rem;
}

.password-generator {
    background-color: var(--grey-800);
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 1rem;
}

.character-length {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

#length-value {
    font-size: var(--ts2);
    color: var(--green-200);
}

.label-row {
    display: flex;
    justify-content: space-between;
}

input[type=range] {
    background-color: var(--grey-200);
}

form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

form label {
    display: flex;
    gap: 1rem;
}

.strength-meter {
    background-color: var(--grey-900);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.625rem;
    padding: 0.875rem 1rem;
}

.label {
    color: var(--grey-600);
}

.strength-bars {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}



.bar {
    border: 2px solid var(--grey-200);
    width: 0.625rem;
    height: 1.75rem;
}

#generate-button {
    padding: 1rem 6rem;
    font-size: var(--ts4);
    font-weight: 700;
    font-family: "jetBrains Mono";
}

#generate-button:active {
    border: 2px solid var(--green-200);
    background-color: var(--grey-850);
    color: var(--green-200);
}

input[type="checkbox"] {
    width: 1.25rem;
    height: 1.25rem;
}

