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

:root {
    --font-family: "EB Garamond", serif;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.25rem;
    --font-size-xl: 1.7rem;
    --color-primary: #F6EEE3;
    --color-secondary: #EDE6D6;
    --color-dark: #202124;
    --color-light: #FFFFFF;
    --color-green: #00635d;
}

body {
    min-height: 100vh;
    line-height: 1.5;
    font-family: var(--font-family);
    background-color: var(--color-primary);
    padding-top: 54px;
}

nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    flex-wrap: wrap;
    min-height: 50px;
    padding: 2px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
    z-index: 1;

    .header-logo {
        font-size: var(--font-size-xl);
        font-weight: bold;
    }

    ul {
        display: flex;
        align-items: center;
        gap: 30px;
    }

    li {
        list-style-type: none;
        font-size: var(--font-size-lg);
    }

    a {
        text-decoration: none;
        color: var(--color-dark);
    }

    .nav-link {
        padding: 5px;

        &:hover {
            color: var(--color-primary);
            background-color: var(--color-dark);
        }
    }

    .search-bar {
        background-color: var(--color-light);
        width: 400px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 2px;
        border: #DCD6CC 2px solid;
    }

    input[type="text"] {
        height: 30px;
        width: 100%;
        border: none;
        padding-left: 5px;

        &:focus {
            outline: none;
        }
    }

    .searchIcon {
        cursor: pointer;
    }

    .header-right {
        display: flex;
        align-items: center;
        margin-top: 4px;
        gap: 40px;
    }

    svg {
        height: 25px;
        width: 25px;
    }
}

main {
    max-width: 1400px;
    min-width: 300px;
    min-height: 580px;
    margin: auto;
    margin-top: 10px;
    margin-bottom: 10px;
    background-color: var(--color-light);
    padding: 5px;
    border-radius: 10px;
}

.main-wrapper {
    display: grid;
    grid-template-columns: 1fr 5fr;
    height: 100%;
    position: relative;

    &::before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        width: 17%;
        min-height: 570px;
        height: 100%;
        border-right: 1px solid #D8D8D8;
    }
}

aside {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 10px;
    z-index: 0;

    > h1 {
        color: var(--color-green);
        font-size: var(--font-size-xl);
        margin-top: 10px;
        margin-bottom: 20px;
    }

    #showAllBooks, #showWantToRead, #showCurrentlyReading, #showRead {
        text-decoration: underline;
        width: max-content;
        background: none;
        border: none;
        padding: 0;
        cursor: pointer;
        font: var(--font-family);
        color: var(--color-green);

        &:hover {
            color: var(--color-dark);
        }
    }

    #addBook {
        margin-top: 20px;
        width: 40%;
        padding: 8px;
        background-color: var(--color-primary);
        border: 1px solid #D6D0C4;
        cursor: pointer;

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

    #addBookDialog, #editBookDialog {
        position: absolute;
        width: 40vw;
        top: 3%;
        left: 30%;
        border-color: var(--color-green);
        border-radius: 15px;
        min-width: 400px;
        
        &::-webkit-scrollbar {
            display: none;
        }

        &::backdrop {
            backdrop-filter: blur(2px);
        }

        #addNewBookForm, #editBookForm {
            display: flex;
            flex-direction: column;
            gap: 10px;
            padding: 10px 20px 10px 20px;

            > h1 {
                color: var(--color-green);
                font-size: var(--font-size-xl);
                text-align: center;
            }

            > input {
                padding: 0.8em;

                &::-webkit-outer-spin-button, 
                &::-webkit-inner-spin-button {
                    display: none;
                }
            }

            > select {
                padding: 0.6em;
            }

            & .bookRatingContainer {
                display: flex;
                gap: 10px;
                align-items: center ;

                & #bookRating {
                    padding: 0.4em;
                    min-width: 10%;
                }
            }

            .buttonContainer {
                display: flex;
                gap: 20px;
                margin: auto;
                margin-top: 10px;
            
                > button {
                background-color: var(--color-primary);
                padding: 0.8em;
                width: 5em;
                cursor: pointer;
                
                    &:hover {
                        background-color: var(--color-secondary);
                    }
                }
            }            
        }
    }
}

.book-container {
    margin-left: 20px;
    padding: 10px 10px 10px 0px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    grid-auto-rows: 250px;
    column-gap: 50px;
    row-gap: 10px;

    article {
        font-size: var(--font-size-base);
        position: relative;
        display: flex;
        gap: 20px;
        padding: 10px;
        height: max-content;
        border: 1px solid black;

        img {
            width: 125px;
            height: 200px;
            -webkit-user-drag: none;
        }

        .removeBook {
            width: 30px;
            height: 30px;
            padding: 5px;
            border: 1px solid black;
            border-radius: 50%;
            position: absolute;
            top: -10px;
            right: -10px;
            cursor: pointer;

            &:hover {
                background-color: #F76464;
            }
        }
    }
}

footer {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    font-size: var(--font-size-base);
    background: var(--color-primary);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    padding: 2.5rem;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.15);

    > a {
        height: 30px;

        > .github-logo {
            width: 30px;
            height: 30px;
        }
    }
}
