body {
    display: flex;
    height: 100dvh;
    width: 100vw;
    background-color: var(--background-color);
    color: var(--text-color);
}
#page{
    width: 100%;
    height:100%;
    display: flex;
}
#page-content-frame{
    overflow: scroll;
    position: relative;
    flex-grow: 1;
}
#page-content-frame>header{
    position: sticky;
    top:0;
    z-index: 20;
    background-color: var(--background-color);
    box-shadow: 0 0 15px -8px var(--background-color);
    padding: var(--extra-small-padding) var(--small-padding);
}
#page-content>*:not(.without-padding){
    padding: var(--small-padding);
    margin: 0;
}
@media(max-width:480px){
    #page-content-frame>header{
        flex-direction: column;
        gap: var(--small-gap);
    }
    #page-content-frame>header .only-desktop{display: none;}
}
@media(min-width:481px){
    #page-content-frame>header .only-mobile{display:none}
}
/* PAGE layouts */

.layout-with-sidebar{
    max-width: 100%;
    flex-direction: column;
}
.layout-with-sidebar .main,
.layout-with-sidebar .sidebar{
    max-width: 100%;
    padding: var(--small-padding);
}
@media(min-width:1024px){
    .layout-with-sidebar{
        max-width: 100%;
        flex-direction: row;
    }
    .layout-with-sidebar .main{
        flex-grow:0;
        flex-basis: calc(100% - 350px);
        max-width: calc(100% - 350px);
    }
    .layout-with-sidebar .sidebar{
        flex-basis: 350px;
        flex-grow: 0;
        padding-top: calc(var(--large-gap) + (1.4 * var(--extra-large-font-size)) + var(--medium-gap));
    }
}