.page-overview {
    display: flex;
    flex-direction: column;
    gap: 5px;

    width: fit-content;
    max-width: 750px;
    padding: 5px 10px 10px;
    border-radius: 20px;

    background-color: var(--page-overview-bg-color);
    color: var(--page-overview-text-color);

    & > .header {
        display: flex;
        justify-content: end;

        & > button {
            padding: 5px 10px;
            
            border-style: solid;
            border-width: 1px;
            border-radius: 10px;
            border-color: var(--page-overview-border-color);

            background-color: inherit;
            color: var(--page-overview-text-color);
            font: inherit;

            transition: transform 0.3s ease;
        }

        & > button:hover {
            background-color: var(--page-overview-hover-color);
        }

        & > button.reverse.reversed {
            transform: scaleY(-1);
        }
    }

    & > .inner {
        display: grid;
        grid-template-columns: max-content max-content;

        row-gap: 10px;
        column-gap: 10px;

        & .element {
            display: grid;
            grid-template-columns: subgrid;
            grid-column: 1 / -1;

            border-style: solid;
            border-width: 1px;
            border-radius: 10px;
            border-color: var(--page-overview-border-color);

            & .head {
                display: grid;
                grid-template-columns: subgrid;
                grid-column: 1 / -1;

                & .title {
                    grid-column: 1;
                    align-content: center;

                    color: var(--page-overview-text-color);
                    text-decoration: none;
                    
                    padding: 10px;
                    border-radius: 5px;
                }

                & a.title:hover {
                    background-color: var(--page-overview-hover-color);
                }

                & .content {
                    display: none;
                    grid-column: 2;

                    & .topics {
                        padding-left: 5px;
                    }
                }

                & .content:has(> *) {
                    min-height: 100%;
                    padding: 10px;

                    display: grid;
                    grid-template-columns: max-content max-content;
                    align-items: center;
                    row-gap: 5px;
                    column-gap: 10px;
                }
            }

            & .children:has(> *) {
                grid-column: 1 / -1;
                display: grid;
                grid-template-columns: subgrid;
                margin-left: 20px;
                padding: 5px;
                row-gap: 5px;
                column-gap: 5px;
            }
        }
    }
}

.page-overview:not(:has(> .inner > *)) {
    display: none;
}
