* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --variant: [font-weight] [font-size]/[line-height] [font-family];
    --gray-100: #1F2523;
    --gray-200: #4D5C57;
    --gray-300: #CDD5D2;
    --gray-400: #E4ECE9;
    --gray-500: #F9FBFA;
    --white: #FFFFFF;

    --green-100: #1F8459;
    --green-200: #2CB178;
    --danger: #B51919;

    --ff: "Open Sans", sans-serif;
    --label: 400 .625rem/1.4 var(--ff);
    --bd-sm: 400 .75rem/1.3 var(--ff);
    --bd-md: 400 .875rem/1.2 var(--ff);
    --bd-lg: 400 1rem/1.25 var(--ff);
    --sub-hd: 600 .875rem/1.2 var(--ff);
    --hd-sm: 700 .875rem/1.2 var(--ff);
    --hd-md: 700 1rem/1.25 var(--ff);
    --hd-lg: 700 1.25rem/1.2 var(--ff);
}

body {
    font-family: var(--ff);
    color: var(--gray-200);
    background-color: var(--gray-400);

    display: flex;
    flex-direction: column;
    align-items: center;

    width: 100%;
    height: 100vh;
}

.logo {
    margin: 3rem 0 2rem;
}

main section {
    display: flex;
    gap: 1.25rem;

    padding: 1.5rem;
}

form {
    background-color: var(--gray-500);
    border-radius: 1rem;

    padding: 2.5rem;
    max-width: 462px;
    max-height: 428px;
}

form header {
     margin-bottom: 2.5rem;

    h1 {
        font: var(--hd-lg);
        color: var(--gray-100);

        margin-bottom: .75rem;
    }

    p {
         font: var(--bd-md);
        color: var(--gray-200);
    }
}

fieldset {
    border: none;
    display: flex;
}

fieldset legend {
    font: var(--label);
    color: var(--gray-200);
    margin-bottom: .5rem;
}

fieldset:focus-within legend {
    color: var(--green-100);
    font-weight: 700;
}

.input-rows {
    margin: 1rem 0 2rem;
    display: flex;
    flex: 1;
    gap: 1rem;

    fieldset:first-child {
        flex: 1;
    }

    fieldset:last-child input {
        max-width: 154px;
    }
}

input, select {
    flex: 1;
    padding: .93rem 1rem;
    border-radius: .5rem;
    border: 1px solid var(--gray-300);

    &:hover, &:focus, &:focus-within {
        border: 1px solid var(--green-100);
        outline: none;
    }
}

input::placeholder, select:invalid {
    color: var(--gray-200);
} 

button {
    border: none;
    border-radius: .5rem;

    background-color: var(--green-100);
    color: var(--white);

    width: 100%;
    padding: .93rem 1.25rem;

    transition: background-color .2s;

    &:hover {
        background-color: var(--green-200);
    }
}

aside {
    background-color: var(--gray-500);

    border-radius: 1rem;
    padding: 2.5rem;
    display: flex;
    flex-direction: column;

    max-width: 28.875rem;

    min-width: 37.5rem;
}

aside header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--gray-400);
    margin-bottom: 1.5rem;

    p {
        font: var(--bd-lg);
        color: var(--gray-200);
        align-items: center;
        display: flex;

        i {
            color: var(--gray-300);
            margin-left: .5rem;
            margin-right: .3125rem;
        }

        span {
            font: var(--label);
        }
    }

    h2 {
        font: var(--hd-md);
        color: var(--gray-100);

        display: flex;
        align-items: center;

        small {
            font: var(--bd-sm);
            color: var(--gray-200);

            margin-right: .25rem;
        }
    }
}

ul {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.expense {
    display: flex;
    align-items: center;

    list-style: none;

    .expense-info {
        margin-left: .75rem;

        display: flex;
        flex: 1;
        flex-direction: column;

        strong {
            font: var(--hd-sm);
            color: var(--gray-100);
        }

        span {
            font: var(--bd-sm);
            color: var(--gray-200);
        }
    }

    .expense-amount {
    font: var(--sub-hd);
    color: var(--gray-100);

    small {
        font: var(--bd-sm);
        color: var(--gray-200);

        margin-right: 1px;
    }

    .remove-icon {
        margin-left: .5rem;
    }
}
}

@media (width <= 1100px) {
    main section {
        flex-direction: column;
        max-width: 54rem;
    }

    main, aside, form {
        min-width: 100%;
    }
}

@media (width <= 620px) {

}