:root {
    --font-color-main: white;
    --link-color-main: #0099ff;
    --link-hover-color-main: #67bfff;
    --link-active-color-main: #005385;
    --space-tiny: 2px;
    --space-small: 8px;
    --space-medium: 16px;
    --space-large: 32px;
    --table-border-color: rgba(0, 0, 0, 0.5);
    --table-head-border-color: rgba(4, 8, 13, 0.5);
    --table-head-background-color: rgba(8, 17, 26, 0.5);
    --table-head-text-color: #ffffff;
    --table-even-row-background-color: rgba(0, 0, 0, 0.3);
    --table-odd-row-background-color: rgba(0, 0, 0, 0.4);
}

@font-face {
    font-family: 'gentium-book-basic'; /*a name to be used later*/
    src: url('../font/gentium-book-basic.ttf'); /*URL to font*/
}

html {
    overflow: hidden;
    position: absolute;
    width: 100vw;
    height: 100vh;
}

body {
    position: absolute;
    width: 100vw;
    height: 100vh;
    margin: 0;
    padding: 0;
    overflow: hidden;
    font-family: 'gentium-book-basic', serif;
    background-color: #000;
    color: var(--font-color-main);
    cursor: url("../img/cursor/cursor_default.png"), auto;
}

label {
    cursor: url("../img/cursor/cursor_default.png"), auto;
}

a {
    cursor: url("../img/cursor/cursor_default.png"), auto;
}

a:link, a:visited {
    color: var(--link-color-main);
    text-shadow: 1px 1px 2px rgba(0,0,0);
}

a:hover {
    color: var(--link-hover-color-main);
}

a:active {
    color: var(--link-active-color-main);
}

/* Positioning helpers */

.fill {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.is-top-left {
    position: absolute;
    left: 0;
    top: 0;
}

.is-bottom-left {
    position: absolute;
    left: 0;
    bottom: 0;
}

.is-top-right {
    position: absolute;
    right: 0;
    top: 0;
}

.is-bottom-right {
    position: absolute;
    right: 0;
    bottom: 0;
}

.is-top-center {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
}

.is-left-center {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.is-centered {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

/* Info Table */

.info-table {
    border-collapse: collapse;
    border: 1px solid var(--table-border-color);
    box-shadow: rgba(0, 0, 0, 0.25) 2px 2px 3px;
}

.info-table thead {
    border: 1px solid var(--table-head-border-color);
    background-color: var(--table-head-background-color);
    color: var(--table-head-text-color);
}

.info-table tbody tr:nth-child(2n) {
    background-color: var(--table-even-row-background-color);
}

.info-table tbody tr:nth-child(2n+1) {
    background-color: var(--table-odd-row-background-color);
}

.info-table tfoot {
    border: 1px solid var(--table-head-border-color);
    background-color: var(--table-head-background-color);
    color: var(--table-head-text-color);
}

.info-table th:not([scope="row"]) {
    text-align: left;
    font-size: small;
    padding: var(--space-tiny);
    padding-left: var(--space-small);
}

.info-table th[scope="row"] {
    text-align: right;
    font-size: small;
    padding-left: var(--space-small);
}

.info-table td {
    padding-left: var(--space-small);
    padding-right: var(--space-small);
}

/* Notifications */

.notification {
    border-radius: var(--space-small);
    padding: var(--space-small);
    border: 1px solid var(--table-border-color);
    margin-bottom: var(--space-small);
}

.notification:empty {
    display: none;
}

.error {
    color: var(--error-text);
    background-color: var(--error-background);
    border: 1px solid var(--error-border);
}

/* BACKGROUND */

.layout-background {
    position: absolute;
    width: 100vw;
    height: 100vh;
    background-color: var(--background-darkest);
    background-image: url('../img/title-menu-background.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
}

/* THEMED CONTAINERS */

.menu-box {
    border: 25px solid transparent;
    border-image-source: url('../img/mm_box_body.png');
    border-image-slice: 25 25 25 25 fill;
    border-image-repeat: stretch;
    border-image-outset: 0;
    font-family: 'gentium-book-basic', 'Times New Roman', serif !important;
    color: var(--font-color-main);
    transform: translate(-50%, -50%);
    will-change: transform;
    backface-visibility: hidden;
    transform-style: preserve-3d;
    box-shadow: 0 0 12px -5px rgba(0,0,0,1);
}

.menu-box hr {
    border: 0;
    height: 1px;
    background-image: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0));
}

.menu-box-label {

    white-space: nowrap;
    border: 16px solid transparent;
    border-image-source: url('../img/mm_label.png');
    border-image-slice: 16 16 16 16 fill;
    border-image-repeat: stretch;
    border-image-outset: 0;
    transform: translate(-50%, -85%);
    will-change: transform;
    backface-visibility: hidden;
    transform-style: preserve-3d;
    position: absolute;
    top: 0;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 12px -5px rgba(0,0,0,1);
}

.menu-box-label > label {
    transform: translate(0px, 2px);
    color: black !important;
}

/* BUTTONS */

.button-standard,
.button-small,
.button-small-2,
.button-wider,
.button-wider-2 {
    border: 0;
    display: inline-flex;
    flex-flow: row;
    align-items: center;
    justify-content: center;
    color: #fde6a0 !important;
    font-family: 'gentium-book-basic', 'Times New Roman', serif;
    text-decoration: none;
    text-shadow: 0 -1px 3px black, 0 0 2px #fde6a0;
    cursor: url("../img/cursor/cursor_default.png"), auto;
    background: transparent;
}

.button-standard:hover,
.button-small:hover,
.button-small-2:hover,
.button-wider:hover,
.button-wider-2:hover {
    color: #FFF0CD !important;
    text-shadow: 0 -1px 3px black, 0 0 5px #FFF0CDFF;
}

.button-standard:active,
.button-small:active,
.button-small-2:active,
.button-wider:active,
.button-wider-2:active {
    color: #c5a33c !important;
    text-shadow: none;
}

.button-standard:disabled,
.button-small:disabled,
.button-small-2:disabled,
.button-wider:disabled,
.button-wider-2:disabled {
    color: #A8A8A8 !important;
    text-shadow: none;
}

.button-standard { background-image: url('../img/button/button-standard-n.png'); width: 108px; height: 38px; }
.button-standard:hover { background-image: url('../img/button/button-standard-h.png'); }
.button-standard:active { background-image: url('../img/button/button-standard-p.png'); }
.button-standard:disabled { background-image: url('../img/button/button-standard-d.png'); }

.button-small { background-image: url('../img/button/button-small-n.png'); width: 101px; height: 32px; }
.button-small:hover { background-image: url('../img/button/button-small-h.png'); }
.button-small:active { background-image: url('../img/button/button-small-p.png'); }
.button-small:disabled { background-image: url('../img/button/button-small-d.png'); }

.button-small-2 { background-image: url('../img/button/button-small-2-n.png'); width: 90px; height: 36px; }
.button-small-2:hover { background-image: url('../img/button/button-small-2-h.png'); }
.button-small-2:active { background-image: url('../img/button/button-small-2-p.png'); }
.button-small-2:disabled { background-image: url('../img/button/button-small-2-d.png'); }

.button-wider { background-image: url('../img/button/button-wider-n.png'); width: 149px; height: 38px; }
.button-wider:hover { background-image: url('../img/button/button-wider-h.png'); }
.button-wider:active { background-image: url('../img/button/button-wider-p.png'); }
.button-wider:disabled { background-image: url('../img/button/button-wider-d.png'); }

.button-wider-2 { background-image: url('../img/button/button-wider-2-n.png'); width: 239px; height: 36px; }
.button-wider-2:hover { background-image: url('../img/button/button-wider-2-h.png'); }
.button-wider-2:active { background-image: url('../img/button/button-wider-2-p.png'); }
.button-wider-2:disabled { background-image: url('../img/button/button-wider-2-d.png'); }

.button-left {
    width: 25px;
    height: 27px;
    border: 0;
    background: transparent url('../img/button/left_n.png');
    cursor: url("../img/cursor/cursor_default.png"), auto;
}

.button-left:hover {
    background-image: url('../img/button/left_h.png');
}

.button-left:active {
    background-image: url('../img/button/left_p.png');
}

.button-right {
    width: 25px;
    height: 27px;
    border: 0;
    background: transparent url('../img/button/right_n.png');
    cursor: url("../img/cursor/cursor_default.png"), auto;
}

.button-right:hover {
    background-image: url('../img/button/right_h.png');
}

.button-right:active {
    background-image: url('../img/button/right_p.png');
}

/* SELECT ELEMENTS */

.select-standard {
    border: 0;
    background: transparent url('../img/button/button-standard-n.png');
    appearance: none;
    width: 108px;
    height: 38px;
    color: #fde6a0 !important;
    font-family: 'gentium-book-basic', 'Times New Roman', serif;
    text-shadow: 0 -1px 3px black, 0 0 2px #fde6a0;
    text-align: center;
    cursor: url("../img/cursor/cursor_default.png"), auto;
}

.select-standard:hover {
    color: #FFF0CD !important;
    background-image: url('../img/button/button-standard-h.png');
    text-shadow: 0 -1px 3px black, 0 0 5px #FFF0CDFF;
}

.select-standard:active {
    color: #c5a33c !important;
    background-image: url('../img/button/button-standard-p.png');
    text-shadow: none;
}

.select-standard:disabled {
    color: #A8A8A8 !important;
    background-image: url('../img/button/button-standard-d.png');
    text-shadow: none;
}

.select-standard > option {
    color: white !important;
    background: rgb(0, 0, 0);
}

.select-standard > option:nth-child(even) {
    background: rgb(16, 16, 16);
}

.option-selector {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
}

/* CATEGORIES */

.categoryButtonList {
    display: flex;
    flex-flow: column nowrap;
}

.categoryOptionsList {
    width: 256px;
    padding: 8px;
}

.categoryOptions > header {
    font-weight: bold;
    font-size: 1.2em;
}

/* INPUTS */

.slider {
    accent-color: #a80300;
    width: 100%;
}
