/* Reset padding and margins to 0 for all elements.
   box-sizing: border-box; Makes sizing more predictable by including padding and border in the element's total width/height.*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-align: left;
}

/* #region: Body basics */
html,
body {
    height: 100%;
    overflow: hidden;
    /* Prevent body from scrolling */
    font-family: Arial, Helvetica, sans-serif;
}

/* Display hourglass while data is loading */
body.loading {
    cursor: wait;
}

/* Bullets inside the container */
ul {
    list-style-position: inside;
}

/* #endregion: Body basics */

/* #region: Alignments */
.vertical-center {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: calc(100dvh - (var(--titlebar_height, 0px) + var(--headerbar_height, 0px) + var(--footerbar_height, 0px) + var(--buttonbar_height, 0px)));
    justify-content: center;
    padding: 0;
    margin: 0;
    /* border: 1px solid;     */
}

.body-center {
    text-align: center;
}

.horizontal-center {
    display: flex;
    height: 100%;
    flex-direction: column;
    align-items: center;
    padding: 0;
    margin: 0;
    /* border: 1px solid;     */
}

/* Centers content inside the container
   To center on viewport, the container must fill the viewport. */
.center-content {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    /* Main axis: column: justify-content is vertical; row: justify-content is horizontal */
    justify-content: center;
    /* Cross-axis:  column: align-items is horizontal; row: align-items is vertical */
    align-items: center;
}

/* #endregion: Alignments */