/* 
 * Main Style Sheet for Willow Event System
 * (c) 2022 Willow SoundVision
 */

* {
    /* apply a traditional box layout model to all elements */
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    /* Prevent Copy and Paste by Default */
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

input {
    /** Allow Copy and Paste on Input Boxes */
    -webkit-touch-callout: text;
    -webkit-user-select: text;
    -khtml-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}


/* 
    Player slider animation styling
*/

@keyframes slider {
   0%   {transform: translateX(0%);}
   10%  {transform: translateX(0%);}
   45%  {transform: translateX(calc(-100% + var(--ani-gap)));}
   55%  {transform: translateX(calc(-100% + var(--ani-gap)));}
   90%  {transform: translateX(0%);}
   100% {transform: translateX(0%);}
}

#header-player .header-overflowing {
    animation-name: slider;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-duration: var(--ani-speed);
    display: inline-block;
}

#header-player .scrolling-parent {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    vertical-align: top;
}



/*  ==========================================================
    CORE STYLING
    ==========================================================
*/

@font-face {
    font-family: 'Novo Sans';
    src: url('font/NS-r.woff') format('woff');
}

body {
    margin: 0;
    font-family: "Novo Sans";
    font-size: 16px;
    background: #505050;
    color: white;
    height: 100%;
    width: 100%;
    min-width: 1024px;
    min-height: 768px;
    overflow: auto;
    overflow-y: hidden;
    overscroll-behavior: none;
}


/**
 * Link Styling
 */

a:link,
a:visited,
a:hover {
    color: inherit;
}


/**
 * Remove Borders from Images
 */

img {
    border-style: none;
    text-decoration: none;
    touch-action: manipulation;
}


/**
 * Converts Objects to Link
 */

.link {
    cursor: hand;
    cursor: pointer;
    touch-action: manipulation;
}


/**
 * Debug Messages
 */

.debug {
    float: left;
    background: #ff8080;
    z-index: 10000;
    opacity: 0.8;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    padding: 10px;
    position: relative;
    margin-left: 10px;
}

h1,
h2,
h3 {
    margin-top: 0px;
    margin-bottom: 0px;
}

p {
    margin-top: 5px;
}


/*  ==========================================================
    SCROLLBARS
    ==========================================================
*/

::-webkit-scrollbar {
    width: 30px;
    height: 30px;
}


/* Track */

::-webkit-scrollbar-track {
    background: #f1f1f1;
}


/* Handle */

::-webkit-scrollbar-thumb {
    background: #3c3c3c;
    border: 1px black solid;
}


/* Handle on hover */

::-webkit-scrollbar-thumb:hover {
    background: #555;
}




/*  ==========================================================
    HEADER
    ==========================================================
*/

#header {
    height: 100px;
    position: absolute;
    top: 0px;
    min-width: 1024px;
    width: 100%;
    background: #3c3c3c;
    z-index: 5;
}

#header.error, #header.error div.inherit {
    background: #6c2828;
}


#header-progress-bar {
    position: absolute;
    height: 15px;
    left: 25px;
    right: 0px;
    top: 76px;
}

#header-progress-container {
    position: absolute;
    background: grey;
    height: 15px;
    left: 70px;
    right: 70px;
    bottom: 0px;
    overflow: hidden;
}

#header-progress-carat {
    position: absolute;
    background-color: orange;
    left: 0px;
    top: 0px;
    bottom: 0px;
    width: 0%;
}

.music-player-progress-jingle {
    background-color: red !important;
}

.music-player-progress-advert {
    background-color: greenyellow !important;
}

#header-player-controls {
    position: absolute;
    right: 10px;
    top: 10px;
    width: 140px;
    height: 65px;
    text-align: right;
}


/**
 * SMALLER SCREENS (BELOW 1280)
 */
@media screen and (max-width: 1279px) {
    
    #header-text {
        height: 100px;
        font-size: 2.7em;
        line-height: 100px;
        text-transform: uppercase;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        position: absolute;
        left: 15px; top: 0px; right: 0px;
    }

    #header-controls {
        height: 100px;
        position: absolute;
        right: 5px;
        padding-left: 5px;
        background-color: #3c3c3c;
    }

    #header .option {
        width: 60px;
        height: 60px;
        float: right;
        margin-right: 5px;
        margin-top: 10px;
    }

    #header-settings img {
        width: 60px;
    }

    #header-player {
        float: right;
        width: 500px;
        height: 100px;
        text-align: center;
        position: relative;
        background: #3c3c3c;
        overflow: hidden;
    }

    #header-player-expand {
        position: absolute;
        left: 0px; right: 120px;
        height: 100px;
    }
    
    #header-player.expanded {
        height: 275px;
        border: 1px white solid;
    }

    #header-player.notify.expanded {
        height: 295px;
        border: 1px white solid;
    }

    #header-player .notification, #header-player .zone-number {
        display: none;
        margin-right: 3px;
    }

    #header-player.notify .notification {
        display: inline-block;
        margin-top: -3px;
        margin-right: 3px;
    }

    #header-player .music-player-request-notification {
        background: #096d07;
        position: absolute;
        height: 25px;
        left:0px; right: 0px; top: 273px;
        font-size: 0.8em;
        font-weight: bold;
        padding-left: 8px;
        padding-right: 8px;
    }
    
    #header-player-scrub {
        -webkit-appearance: none;   /* Hides the slider so that custom slider can be made */
        position: absolute;
        top: 115px;
        left: 15px;
        right: 20px;
        width: 460px;
        height: 15px;
        background: #3d3644; /* Otherwise white in Chrome */
        border-radius: 10px;
        border: 1px white solid;
    }

    #header-player-shortcuts {
        text-align: left;
        position: absolute;
        top: 160px;
        left: 10px;
        right: 10px;
        font-size: 12px;
    }
    
    #header-player-shortcuts img {
        width: 64px;
    }

    #header-player-shortcuts .header-player-shortcut {
        display: inline-block;
        width: 75px;
        height: 105px;
        text-align: center;
        overflow: hidden;
    }

    #header-progress-current {
        position: absolute;
        top: 3px;
        left: 5px;
        right: 110px;
        font-size: 1em;
        white-space: nowrap;
        overflow: hidden;
        text-align: left;
        display: flex;
    }
    
    #header-progress-next {
        position: absolute;
        top: 26px;
        left: 5px;
        right: 110px;
        font-size: .9em;
        white-space: nowrap;
        overflow: hidden;
        text-align: left;
        display: flex;
        column-gap: 3px;
    }

    #header-progress-selected {
        position: absolute;
        top: 46px;
        left: 5px;
        right: 110px;
        font-size: .9em;
        white-space: nowrap;
        overflow: hidden;
        text-align: left;
        display: flex;
        column-gap: 3px;
    }

    #header-player-controls {
        position: absolute;
        right: 10px;
        top: 10px;
        width: 120px;
        height: 45px;
        text-align: right;
    }

    #header-player-controls img {
        width: 45px;
        margin-left: 5px;
    }

}

/**
 * LARGER SCREENS (ABOVE 1280PX)
 */
@media screen and (min-width: 1280px) {


    #header-text {
        height: 100px;
        font-size: 3.5em;
        line-height: 100px;
        text-transform: uppercase;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        position: absolute;
        left: 15px; top: 0px; right: 0px;
    }

    #header-controls {
        height: 100px;
        position: absolute;
        right: 10px;
        padding-left: 5px;
        background-color: #3c3c3c;
    }

    #header .option {
        width: 80px;
        height: 80px;
        float: right;
        margin-right: 5px;
        margin-top: 10px;
    }

    #header-settings img {
        width: 80px;
    }

    #header-player {
        display: inline-block;
        float: right;
        width: 560px;
        height: 100px;
        text-align: center;
        position: relative;
        background: #3c3c3c;
        overflow: hidden;
    }
    
    #header-player-expand {
        position: absolute;
        left: 0px; right: 140px;
        height: 100px;
    }

    #header-player.expanded {
        height: 285px;
        border: 1px white solid;
    }

    #header-player.notify.expanded {
        height: 310px;
        border: 1px white solid;
    }

    #header-player .notification {
        display: none;
        margin-right: 3px;
        font-size: 0.9em;
    }

    #header-player.notify .notification {
        display: inline-block;
        margin-right: 3px;
        
    }

    #header-player .music-player-request-notification {
        background: #096d07;
        position: absolute;
        height: 25px;
        left:0px; right: 0px; top: 285px;
        font-size: 0.8em;
        font-weight: bold;
        padding-left: 8px;
        padding-right: 8px;
    }
    

    #header-player-scrub {
        -webkit-appearance: none;           /* Hides the slider so that custom slider can be made */
        position: absolute;
        top: 115px;
        left: 20px;
        right: 20px;
        width: 520px;
        height: 15px;
        background: #3d3644;              /* Otherwise white in Chrome */
        border-radius: 10px;
        border: 1px white solid;
    }

    #header-player-shortcuts {
        text-align: left;
        position: absolute;
        top: 155px;
        left: 10px;
        right: 10px;
        font-size: 15px;
    }

    #header-player-shortcuts img {
        width: 70px;
    }

    #header-player-shortcuts .header-player-shortcut {
        display: inline-block;
        width: 85px;
        text-align: center;
        height: 120px;
        overflow:hidden;
    }
    
    #header-progress-current {
        position: absolute;
        top: 3px;
        left: 5px;
        right: 130px;
        font-size: 1.2em;
        white-space: nowrap;
        overflow: hidden;
        text-align: left;
        display: flex;
    }
    
    #header-progress-next {
        position: absolute;
        top: 30px;
        left: 5px;
        right: 130px;
        font-size: 0.9em;
        white-space: nowrap;
        overflow: hidden;
        text-align: left;
        display: flex;
        column-gap: 5px;
    }

    #header-progress-selected {
        position: absolute;
        top: 50px;
        left: 5px;
        right: 130px;
        font-size: 0.9em;
        white-space: nowrap;
        overflow: hidden;
        text-align: left;
        display: flex;
        column-gap: 5px;
    }

    #header-player-controls img {
        width: 55px;
        margin-left: 5px;
    }
    
}

#header-player-scrub:focus {
    outline: none;                      /* Removes the blue border */
}

#header-player-scrub::-webkit-slider-thumb {
    -webkit-appearance: none;
    border: 1px solid #000000;
    height: 30px;
    width: 30px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    margin-top: 0px;                    /* You need to specify a margin in Chrome, but in Firefox and IE it is automatic */
}

#header-player-scrub::-moz-range-thumb {
    border: 1px solid #000000;
    height: 30px;
    width: 30px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
}

#header-player-scrub::-ms-track {
    width: 100%;
    cursor: grab;
    background: transparent; 
    border-color: transparent;
    color: transparent;
}

#header-progress-status {
    position: absolute;
    bottom: 0px;
    left: 0px;
    right: 0px;
    text-align: center;
    font-size: 0.8em;
    font-weight: bold;
    text-align: center;
    color: black;
}

#header-progress-elapsed {
    position: absolute;
    bottom: 0px;
    left: 5px;
    font-size: 0.8em;
}

#header-progress-duration {
    position: absolute;
    bottom: 0px;
    right: 10px;
    font-size: 0.8em;
}

#header-player-controls .control {
    display: none;
}

#header-player-expand-icon {
    background-image: url("../images/expand.png");
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    left: 5px;
    top: 72px;
    width: 20px;
    height: 20px;
}

#header-player.expanded > #header-player-expand-icon {
    background-image: url("../images/collapse.png");
}

.settings-text, .button-text {
    display: none;
}






/*  ==========================================================
    HEADER POPOUT
    ==========================================================
*/

#header-modal {
    position: fixed;
    left: 0px;
    right: 0px;
    top: 0px;
    bottom: 0px;
    z-index: 950;
    background-color: rgb(0, 0, 0);
    /* Fallback color */
    background-color: rgba(0, 0, 0, 0.5);
    /* Black w/ opacity */
    cursor: not-allowed;
    display: none;
}

/**
 * SMALLER SCREENS (BELOW 1280)
 */
@media screen and (max-width: 1279px) {
    #header-popout {
        position: absolute;
        background: #585858;
        z-index: 950;
        top: 50px;
        right: 50px;
        width: 540px;
        max-height: calc(100% - 100px);
        padding: 15px;
        border: 2px black solid;
        box-shadow: 5px 5px #404040;
        text-align: center;
        cursor: default;
        overflow: auto;
    }
}

/**
 * LARGER SCREENS (ABOVE 1280PX)
 */
@media screen and (min-width: 1280px) {
    #header-popout {
        position: absolute;
        background: #585858;
        z-index: 950;
        top: 50px;
        left: 50px;
        width: 540px;
        max-height: calc(100% - 100px);
        padding: 15px;
        border: 2px black solid;
        box-shadow: 5px 5px #404040;
        text-align: center;
        cursor: default;
        overflow: auto;
    }
}

#header-popout .header-settings-title {
    font-weight: bold;
    position: absolute;
    left: 60px;
    right: 60px;
    text-align: center;
    font-size: 1.5em;
    font-weight: bold;
}

#header-popout p {
    font-size: 1.2em;
    font-weight: bold;
    margin-top: 50px;
}

#header-settings-close {
    float: left;
    width: 40px;
}

#header-select-mode {
    margin: 10px;
    text-align: center;
}

#header-default-mode {
    width: 380px;
    height: 70px;
}

#header-volume-slider {
    width: 350px;
    font-size: 30px;
    position: relative;
    left: 35px;
}

#header-select-zone {
    padding: 10px;
    overflow: hidden;
}

#header-select-zone .zone {
    background-color: #3c3838;
    border: 1px black solid;
    padding: 5px;
}

#header-select-zone .icon {
    margin-left: 5px;
    margin-right: 10px;
    vertical-align:middle;
}

#header-select-zone .text {
    display: inline-block;
    margin-top: 10px;
}


/*  ==========================================================
    CONTENT
    ==========================================================
*/

#content {
    position: absolute;
    top: 100px;
    bottom: 30px;
    left: 0px;
    right: 0px;
    min-width: 1024px;
    overflow: auto;
    padding: 20px;
}
#lock-page > #login-container > .user-holder {
    display: flex;
}


/*  ==========================================================
    SUB MENU
    ==========================================================
*/

.sub-menu {
    position: sticky;
    z-index: 2;
    top: -20px;
    margin-left: -20px;
    margin-right: -20px;
    margin-top: -20px;
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, auto));
    border-collapse: collapse;
    grid-gap: 1px;
    overflow: hidden;
    border: 1px solid black;
    background: #3c3c3c;
}

/** SMALLER SCREENS (BELOW 1280) */
@media screen and (max-width: 1279px) {
    .sub-menu .item {
        text-align: center;
        height: 35px;
        line-height: 35px;
        display: table-cell;
        box-shadow: 0 0 0 1px black;
        background: #3c3c3c;
        cursor: pointer;
    }
}

/** LARGER SCREENS (ABOVE 1280) */
@media screen and (min-width: 1280px) {
    .sub-menu .item {
        text-align: center;
        height: 42px;
        line-height: 42px;
        display: table-cell;
        box-shadow: 0 0 0 1px black;
        background: #3c3c3c;
        cursor: pointer;
        font-size: 24px;
    }
}

.sub-menu .selected {
    background: #5e5d5d;
}


/*  ==========================================================
    MAIN MENU
    ==========================================================
*/

.grid-container,
.grid-container-main {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(18vw, auto));
    grid-template-rows: repeat(auto-fill, minmax(18vw, auto));
    width: auto;
    min-width: 950px;
}



.grid-container-main .item:first-of-type {
    grid-row: span 2 / 2;
    grid-column: span 2;
    min-height: 36vw;
    min-width: 36vw;
    font-size: 3em;
    line-height: 36vw;
}


/** SMALLER SCREENS (BELOW 1280) */
@media screen and (max-width: 1279px) {
    .grid-container .item,
    .grid-container-main .item {
        position: relative;
        min-height: 18vw;
        min-width: 18vw;
        text-transform: uppercase;
        text-decoration: none !important;
        text-align: center;
        font-size: 2em;
    }
}

/** LARGER SCREENS (ABOVE 1280) */
@media screen and (min-width: 1280px) {
    .grid-container .item,
    .grid-container-main .item {
        position: relative;
        min-height: 18vw;
        min-width: 18vw;
        text-transform: uppercase;
        text-decoration: none !important;
        text-align: center;
        font-size: 3em;
    }
}

.grid-container .menu-new,
.grid-container-main .menu-new {
    background-image: url("../images/flag-new.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0px;
    left: 0px;
}

.grid-container .menu-updated,
.grid-container-main .menu-updated {
    background-image: url("../images/flag-updated.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0px;
    left: 0px;
}

.grid-container .menu-development,
.grid-container-main .menu-development {
    background-image: url("../images/flag-development.png");
    background-repeat: no-repeat;
    background-size: contain;
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0px;
    left: 0px;
}


.grid-container .navigation,
.grid-container-main .navigation {
    position: absolute;
    left: 5px;
    right: 5px;
    top: 5px;
    bottom: 5px;
    background-image: url("../images/b-logo.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position-y: center;
    overflow: hidden;
    display:flex;
    align-items: center;
    justify-content: center;
}

.navigation.has-text .displayname {
    display:block;
    font-size: 80%;
}
.navigation.has-text.has-image .displayname {
    display:none;
}

.grid-container .back {
    background-image: url("../images/back-icon.png");
    background-size: contain;
}

.grid-container .navigation a,
.grid-container-main .navigation a {
    text-decoration: none;
}



/*  ==========================================================
    STANDARD MENU
    ==========================================================
*/

.menu {
    float: right
}

.menu a {
    text-decoration: none;
}

/** SMALLER SCREENS (BELOW 1280) */
@media screen and (max-width: 1279px) {
    .menu .menu-item {
        float: left;
        text-align: center;
        width: 68px;
        margin-bottom: 10px;
    }
    .menu .icon {
        width: 48px;
    }
}

/** LARGER SCREENS (ABOVE 1280) */
@media screen and (min-width: 1280px) {
    .menu .menu-item {
        float: left;
        text-align: center;
        width: 85px;
        margin-bottom: 10px;
    }
    .menu .icon {
        width: 60px;
    }
}


/*	=================================================================================
	DIALOGUES
	================================================================================= */

.form_message {
    border: 1px solid #000;
    padding: 8px;
    margin-bottom: 25px;
    min-height: 80px;
}

.form_message .message_icon {
    height: 64px;
    width: 64px;
    display: inline-block;
    margin-right: 10px;
    vertical-align: top;
}

.form_message .message_panel {
    display: inline-block;
}

.form_message .message_header {
    font-weight: bold;
    margin-bottom: 5px;
}

.form_notice {
    background: #eee8f3;
}

.form_info {
    background: #e6ffcc;
}

.form_error {
    background: #ff8080;
}


/*	=================================================================================
	FULL SCREEN DIALOG
    ================================================================================= */

#full-screen-frame,
#full-screen-inner-frame {
    position: fixed;
    top: 110px;
    bottom: 40px;
    left: 10px;
    right: 10px;
    z-index: 3;
    border: 2px black solid;
    background: #505050;
    color: white;
    padding: 10px;
}

.full-screen-frame .close-full-screen-frame {
    float: right;
    margin-left: 15px;
    width: 48px;
    height: 48px;
}

#full-screen-frame-controls {
    float: right;
    left: 15px;
    right: 68px;
    height: 48px;
    top: 10px;
}

#full-screen-frame-controls .control {
    float: right;
    width: 48px;
    height: 48px;
    margin-left: 15px;
}

#full-screen-inner-frame {
    top: 120px;
    bottom: 50px;
    left: 20px;
    right: 20px;
    z-index: 4;
}

.full-screen-frame h2 {
    margin-left: 5px;
    margin-top: 5px;
    padding: 5px;
    float: left;
}

#full-screen-frame-notification {
    float: right;
    right: 70px;
    margin-top: 10px;
    width: 400px;
    height: 25px;
    text-align: right;
    font-size: 1.2em;
}

.full-screen-frame .full-screen-frame-content {
    position: absolute;
    top: 70px;
    bottom: 0px;
    left: 0px;
    right: 0px;
    width: 100%;
    height: calc(100% - 70px);
    overflow: scroll;
}

.full-screen-frame-inner-content {
    padding: 15px;
}

.full-screen-frame .full-screen-frame-loader {
    position: absolute;
    top: calc(50% - 50px);
    left: calc(50% - 150px);
    background: #3a3535;
    border: 1px white solid;
    width: 300px;
    height: 100px;
    padding: 20px;
    text-align: center;
    line-height: 60px;
}

#event-dialog {
    padding: 15px;
}



/*	=================================================================================
	INPUT STYLINGS
	================================================================================= */

select,
textarea,
input[type="text"],
input[type="password"],
input[type="email"],
input[type=button],
input[type=submit] {
    padding: 4px 6px;
    margin-bottom: 3px;
    margin-top: 3px;
    color: #555555;
    vertical-align: middle;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    border: 1px solid #cccccc;
    font-family: inherit;
}

button {
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
}

input[type="text"],
input[type="password"] {
    height: 30px;
}

input[type=checkbox].cb,
input[type=radio].cr {
    position: absolute;
    z-index: -1000;
    left: -1000px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
}

input[type=checkbox].cb+label.cb-label,
input[type=radio].cr+label.cr-label {
    padding-left: 35px;
    height: 30px;
    display: inline-block;
    line-height: 30px;
    background-repeat: no-repeat;
    background-position: 0 0;
    vertical-align: middle;
    cursor: pointer;
    width: 35px;
    overflow: hidden;
}

input[type=checkbox].cb:checked+label.cb-label,
input[type=radio].cr:checked+label.cr-label {
    background-position: 0 -30px;
}

label.cb-label {
    background-image: url(../images/checkbox.png);
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

label.cr-label {
    background-image: url(../images/radio.png);
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}


/*  ==========================================================
    FOOTER
    ==========================================================
*/

#footer {
    position: absolute;
    bottom: 0px;
    width: 100%;
    height: 30px;
    background: #505050;
    z-index: 2;
    min-width: 1024px;
}

#footer-left {
    float: left;
    line-height: 30px;
    margin-left: 5px;
}

#footer-right {
    float: right;
    line-height: 30px;
    margin-right: 5px;
}

#footer-clock {
    position: absolute;
    right: 50%;
    transform: translateX(50%);
    text-align: center;
    line-height: 30px;
    width: 30%;
}


/*  ==========================================================
    TABLE
    ==========================================================
*/

table.data_table {
    width: 100%;
    color: black;
}

table.data_table .icon,
table.info_table .icon {
    width: 24px;
}

table.data_table,
table.info_table {
    margin: 20px 0 40px 0;
    border-collapse: collapse;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    table-layout: fixed;
}

table.data_table td,
table.info_table td {
    padding: 6px 12px;
    white-space: nowrap;
    overflow: hidden;
}

table.data_table thead tr,
table.info_table thead tr {
    background: #000000;
    color: #FFFFFF;
}

table.data_table .first,
table.info_table .first {
    font-size: 1.1em;
    line-height: 25px;
    font-weight: bold;
}

table.data_table .expand,
table.info_table .expand {
    width: 20px;
    height: 20px;
    margin-right: 7px;
}

table.data_table .first.red,
table.info_table .first.red {
    background: #ea6153;
}

table.data_table .first.blue,
table.info_table .first.blue {
    background: #2980b9;
}

table.data_table .first.green,
table.info_table .first.green {
    background: #27ae60;
}

table.data_table .first.orange,
table.info_table .first.orange {
    background: #FFA500;
}

table.data_table .first.purple,
table.info_table .first.purple {
    background: rgb(118, 49, 137);
}

table.data_table .second,
table.info_table .second {
    background: #808080;
    line-height: 15px;
    color: black;
}

table.data_table .second.red,
table.info_table .second.red {
    background: #c5948f;
}

table.data_table .second.blue,
table.info_table .second.blue {
    background: #82a0b4;
}

table.data_table .second.green,
table.info_table .second.green {
    background: #97aea1;
}

table.data_table .second.orange,
table.info_table .second.orange {
    background: #ffc65e;
}

table.data_table .second.purple,
table.info_table .second.purple {
    background: #c278d7;
}

table.data_table tbody tr,
table.info_table tbody tr {
    background: #9f9f9f;
    color: black;
}

table.data_table tbody tr:nth-of-type(odd) {
    background: #c4c4c4;
}

table.data_table tbody.info-view tr {
    background: #c4c4c4 !important;
}

table.data_table .highlight,
table.info_table .highlight {
    background: #ddffcc !important;
}

table.data_table .highlight-error,
table.info_table .highlight-error {
    background: #e9c2be !important;
}

table.data_table tbody .row_disabled,
table.info_table tbody .row_disabled {
    background: #ffdcdc !important
}

table.data_table tbody tr:hover {
    background: #eeeeee !important;
}

table.data_table tbody.info-view tr:hover {
    background: #c4c4c4 !important;
}


table tbody td.section.blue,
table thead td.section.blue	{	background: #94b7cf !important; font-weight: bold; color: #404040;	}
table tbody td.section.red,
table thead td.section.red 	{	background: #e9c2be !important; font-weight: bold; color: #404040;	}
table tbody td.section.green,
table thead td.section.green {	background: #c3ddce !important; font-weight: bold; color: #404040;	}
table tbody td.section.orange,
table thead td.section.orange {	background: #fff2db !important; font-weight: bold; color: #404040;	}
table tbody td.section.purple,
table thead td.section.purple { background: #a057b5 !important; font-weight: bold; color: #ffffff;  }




/*  ==========================================================
    KEYBOARD
    ==========================================================
*/

#event-keyboard {
    background-color: rgba(0, 0, 0, 0.8);
    z-index: 999;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    min-width: 1024px;
    height: 100%;
    min-width: 1024px;
    min-height: 768px;
    display: none;
}

#event-keyboard-holder {
    background: #292929;
    z-index: 1000;
    position: absolute;
    bottom: 0px;
    width: 100%;
    height: 450px;
    text-align: center;
    padding: 15px;
    display: none;
}

#event-keyboard-field {
    width: 500px;
    height: 50px;
    text-align: center;
    margin-bottom: 10px;
    font: inherit;
    font-size: 1.2em;
    background: rgb(46, 46, 46);
    color: white;
}

#event-keyboard-close {
    width: 64px;
    height: 64px;
    position: absolute;
    top: 10px;
    right: 10px;
    background-image: url("../images/delete-icon.png");
    background-repeat: no-repeat;
    background-size: cover;
    cursor: hand;
    cursor: pointer;
}


/*  ==========================================================
    EVENT DIALOG STYLING
    ==========================================================
*/

.event.ui-dialog {
    background: #505050;
    border: 2px black solid;
    border-radius: 0px;
    font-family: inherit;
}

.event.ui-dialog .ui-widget-header {
    background: none;
    border: none;
    font-size: 1.2em;
    padding: 0px;
    margin: 3px;
    height: 35px;
    border-radius: 0px;
}

.event.ui-dialog .ui-dialog-titlebar-close {
    width: 48px !important;
    height: 48px !important;
    border-radius: 0px !important;
    background-color: transparent;
    background-image: url('../images/delete-icon.png');
    background-size: cover;
    border: none;
    top: 15px;
    outline-width: 0px !important;
}

.event.ui-dialog .ui-icon-closethick {
    display: none;
}

.event.ui-dialog .ui-dialog-content {
    margin-top: 25px;
    padding: 5px;
}

.event.ui-dialog .ui-dialog-buttonpane {
    background: transparent;
    border: none;
    padding: 0px;
    margin-top: 10px;
}

#header-settings-shortcuts {
    width: 100%;
    text-align: left;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
}

#header-settings-shortcuts .header-settings-shortcut {
    display: inline-block;
    min-width: 83px;
    width: 83px;
    text-align: center;
    margin-bottom: 10px;
    font-size: 12px;
    max-height: 102px;
    position: relative;
}

#header-settings-shortcuts .link {
    width: 64px;
}

#header-settings-shortcuts .text {
    display: block;
    min-height: 35px;
    max-height: 35px;
    overflow: hidden;
}


/*  ==========================================================
    NOTIFICATIONS
    ==========================================================
*/

.notification-small {    
    background-color: #05d600;
    border: 3px solid black;
    border-radius: 100%;
    background-size: contain;
    display: none;
}


/** SMALLER SCREENS (BELOW 1280) */
@media screen and (max-width: 1279px) {
    #header-settings .notification-small {
        width: 24px;
        height: 24px;
        position: relative;
        top: -24px;
        right: -40px;
    }
}

/** LARGER SCREENS (ABOVE 1280) */
@media screen and (min-width: 1280px) {
    #header-settings .notification-small {
        width: 24px;
        height: 24px;
        position: relative;
        top: -24px;
        right: -55px;
    }
}

.header-settings-shortcut .notification-small {
    width: 32px;
    height: 32px;
    position: absolute;
    top: 35px;
    right: 0px;
    color: black;
    line-height: 26px;
    font-weight: bold;
}

.grid-container .notification {
    width: 25%;
    height: 25%;
    font-size: 3vw;
    text-align: center;
    line-height: calc(25% + 3vw);
    position: relative;
    left: calc(100% - 25% - 1vw);
    top: calc(100% - 25% - 1vw);
    border: 3px solid white;
    border-radius: 15px;
    color: white;
    background-color: #581969;
    display: none;
}


/*  ==========================================================
    EVENT FUNCTIONS DIALOG STYLING
    ==========================================================
*/

.eventfunction.ui-dialog {
    background-color: rgba(60,60,60,0.7); /* Black w/ opacity */
    border: 2px black solid;
    border-radius: 25px;
    font-family: inherit;
    overflow: hidden;
    padding-bottom: 20px;
}

.eventfunction.ui-dialog .ui-widget-header {
    background: black;
    border: none;
    font-size: 3em;
    padding: 10px 10px 10px 20px;
    margin: -5px;
    height: 100px;
    border-radius: 0px;
    font-family: "Novo Sans";
}

.eventfunction.ui-dialog .ui-dialog-titlebar-close {
    width: 64px !important;
    height: 64px !important;
    border-radius: 0px !important;
    background-color: transparent;
    background-image: url('../images/delete-icon.png');
    background-size: cover;
    border: none;
    top: 30px;
    right: 20px;
    outline-width: 0px !important;
}

.eventfunction.ui-dialog .ui-icon-closethick {
    display: none;
}

.eventfunction.ui-dialog .ui-dialog-content {
    margin-top: 25px;
    padding: 5px;
}

.eventfunction.ui-dialog .ui-dialog-buttonpane {
    background: transparent;
    border: none;
    padding: 0px;
    margin-top: 10px;
}

.eventfunction .title {
    text-align: center;
    font-size: 1.3em;
    margin-bottom: 15px;
}

.eventfunction .items {
    text-align: center;
    position: absolute;
    bottom: 15px;
    left: 0px;
    right: 0px;
}

.eventfunction .items .item img {
    width: 80px;
    height: 80px;
}

.eventfunction .items .item {
    display: inline-block;
    background-color: #353535;
    width: 160px;
    height: 140px;
    text-align: center;
    border: 1px black solid;
    padding: 15px;
    margin: 10px;
    cursor: pointer;
}

.eventfunction .singer-name-container {
    width: 100%;
    text-align: center;
}


/*  ==========================================================
    EVENT FUNCTIONS
    ==========================================================
*/

#header-settings-shortcuts {
    width: 100%;
    text-align: left;
}

#header-settings-shortcuts .header-settings-shortcut {
    display: inline-block;
    width: 80px;
    text-align: center;
}

#header-settings-shortcuts .link {
    width: 64px;
}


/*  ==========================================================
    EVENT HELP 
    ==========================================================
*/

@media screen and (min-width: 1350px) {
    .help-text {
        transform: scale(1.5);
        position: relative;
        width: 67% !important;
        transform-origin: 0 0;
    }
}

.help-text {
    display: inline-flex;
    flex-direction: column;
    text-align: justify;
    padding: 50px;
}

.help-text > div {
    margin-bottom: 20px;
}

.help-text > div > img {
    outline: 3px white solid;
    outline-offset: -3px;
}

.help-text > div > h3 {
    margin-bottom: 10px !important;
    color: #c278d7 !important;
}

.help-text > div > p {
    margin-top: 5px !important;
    margin-bottom: 0px !important;
}

.help-icons {
    display:inline-flex;
    flex-wrap: wrap;
    margin-top: 10px;
    border: 3px white solid;
    padding: 0px !important;
}

.help-icons > div {    
    width: 75px;
    text-align: center;
    margin: 10px;
    word-wrap: break-word;
}

.help-icons > div > img {
    margin: 5px 0px 5px 0px; 
    width: 75px;
}

/* Music Search Dialog */
#dialog-music-search {
    padding: 20px;
}
#dialog-music-search .search-container {
    position: absolute;
    top: 20px;
    height: 50px;
    left: 200px;
    right: 80px;
    padding: 10px;
}
#dialog-music-search .results-container {
    position: absolute;
    top: 60px;
    bottom: 20px;
    width: calc(50% - 20px);
    margin-top: 30px;
}
#dialog-music-search .menu-container {
    position: absolute;
    top: 60px;
    bottom: 20px;
    right: 20px;
    width: calc(50% - 40px);
    margin-top: 30px;
    overflow: auto;
}
#dialog-music-search .result-box {
    position: absolute;
    top: 55px;
    bottom: 0px;
    width: 100%;
    overflow: auto;
}
#dialog-music-search .search-cat {
    background: #173317;
}
#dialog-music-search .search-result,
#dialog-music-search .search-cat {
    height: 60px;
    border: 1px black solid;
    border-bottom: 0px;
    position: relative;
    overflow: hidden;
    background-color: #353535;
    width: 100%;
    padding: 5px;
}
#dialog-music-search .search-result:last-of-type {
    border-bottom: 1px black solid;
}
#dialog-music-search .sr-data {
    position: absolute;
    left: 60px;
    top: 10px;
    bottom: 5px;
    right: 80px;
}
#dialog-music-search .sr-title {
    overflow: hidden;
    white-space: nowrap;
    font-size: 1em;
}
#dialog-music-search .sr-artist {
    overflow: hidden;
    white-space: nowrap;
    font-size: 0.8em;
}
#dialog-music-search .sr-icons {
    position: absolute;
    left: 60px;
    top: 3px;
    bottom: 3px;
    right: 0px;
}
#dialog-music-search mark {
    color: yellow;
    background-color: transparent;
    font-weight: bold;
}
#dialog-music-search .flag {
    float: right;
    margin-top: 5px;
    margin-right: 10px;
    cursor: pointer;
    position: relative;
}
#dialog-music-search img.flag, .flag img {
    width: 40px;
}
#dialog-music-search .flag .detail {
    position: absolute;
    min-width: 18px;
    height: 16px;
    padding: 2px;
    display: inline-block;
    text-align: center;
    font-weight: bold;
    font-size: 8px;
    background-color: rgba(253, 23, 81, 0.8) !important;
    border-radius: 5px;
    right: 0px;
    bottom: 3px;
    color: white;
}
#dialog-music-search .control {
    float: right;
    width: 50px;
    height: 60px;
    padding-top: 5px;
}
#dialog-music-search .back {
    width: 40px;
    float: right;
    margin-right: 20px;
}
#dialog-music-search .search-cat {
    background-color: #104e17;
}

#dialog-music-search .add,
#dialog-music-search .play-all {
    width: 40px;
    float: left;
    margin-right: 10px;
}

.icon_error {
    width: 40px;
    height: 40px;
    margin-right: 10px;
    vertical-align:middle
}
#filter-container {
    background: #212121;
    position: absolute;
    right: 15px;
    top: 20px;
    width: 250px;
    border: 1px #212121 solid;
    height: 43px;
    overflow: hidden;
    z-index: 2;
}
#filter-container.expanded {
    height: auto;
    border: 1px white solid;
}
#filter-container .bar {
    padding: 10px;
    background: #353535;
    font-weight: bold;
    height: 42px;
}
#filter-container .filter {
    padding: 10px;
    width: 100%;
    cursor: pointer;
}
#filter-switch {
    float: right;
}