/* CSS */
@import './reset.css';
@import './colors.css';
/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital,wght@0,400;0,700;1,400;1,700&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

/* General Styles */
body {
    font-family: "Roboto", sans-serif;
    font-weight: 400;
    font-style: normal;
    background-color: var(--bg-color);
    color: var(--main-color);
}

main {
    margin: .5rem;
}

.container {
    display: grid;
    grid-template-areas:
        "title"
        "photo"
        "form";
    align-items: center;
    border: 1px solid var(--accent-color);
    border-radius: 10px;
    box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
    padding: 10px;
    max-width: max(1000px, 500px);
    margin: 0 auto;
}

p {
    margin: 0;
}

.small-txt {
    font-size: .8rem;
}

/* Title Styles */
.title {
    grid-area: title;
    margin-bottom: 1rem;
}

.title h1 {
    font-family: "Anonymous Pro", monospace;
    font-weight: 700;
    font-style: normal;
    margin: 0;
}

.title p {
    color: var(--secondary-text);
}

/* Photo Container Styles */
.photo-container {
    grid-area: photo;
}

.photo-container img {
    border-radius: 8px;
}

.photo-container p {
    margin-top: .5rem;
}

/* Form Styles */
.form-container {
    grid-area: form;
    width: 100%;
}

.form-container h2 {
    margin: 1rem 0;
}

.form-row {
    margin-bottom: 1rem;
}

label {
    display: block;
    margin-bottom: .25rem;
    font-size: .75rem;
    text-transform: uppercase;
}

.password-desc {
    font-size: .75rem;
    color: var(--accent-color);
    margin: 0;
}

input {
    width: 100%;
    border: none;
    border-bottom: 1px solid var(--accent-color);
    background-color: transparent;
    padding: .5rem 0;
}

input:focus {
    outline: none;
    border-bottom: 1px solid transparent;
    box-shadow: 0 2px 0 0 var(--main-color); 
    transition: .25s;
}

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

input:valid {
    border-bottom: 1px solid transparent;
    box-shadow: 0 2px 0 0 var(--valid-form); 
}

input:not(:placeholder-shown):not(:focus):invalid {
    border-bottom: 1px solid transparent;
    box-shadow: 0 2px 0 0 var(--invalid-form);
}

.password-error {
    color: var(--invalid-form);
}

button {
    width: 100%;
    padding: .75rem;
    background-color: var(--main-color);
    color: var(--bg-color);
    border: none;
    border-radius: 6px;
    cursor: pointer;
}

button:disabled {
    opacity: .25;
    cursor: auto;
}

@media screen and (min-width: 1024px) {
    main {
        margin-top: 2rem;
    }

    .container {
        padding: 1rem;
        column-gap: 2rem;
        grid-template-areas:
            "title form"
            "photo form";
    }
}