body {
    width: 100vw;
    margin: 0px;
    padding: 0px 0px 30px 0px;

    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -o-user-select: none;
    user-select: none;
}

.window-holder {
    width: 100%;
    height: auto;
    margin: 0px;
}

/* ======================= Toast Styles =======================*/
#toast {
    visibility: hidden;
    min-width: 250px;
    margin-left: -125px;
    background-color: #333;
    color: #fff;
    text-align: center;
    border-radius: 2px;
    position: fixed;
    bottom: 30px;
    left: 50%;
    z-index: 1;
    font-size: 17px;
    padding: 16px;
    box-shadow: 0px 0px 10px 0px #000;
    opacity: 0;
    transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
}

#toast.show {
    visibility: visible;
    opacity: 1;
}

/* ======================= Tab Styles =======================*/
.tab {
    width: 100%;
    overflow: hidden;
    display: flex;
    justify-content: left;
    align-items: center;
    background-color: none;
}

/* Buttons inside the tab */
.tab button {
    background-color: inherit;
    border: none;
    outline: none;
    cursor: pointer;
    color: black;

    padding: 1vmin 1vmax;

    font-size: 3vmin;
    font-family:'Times New Roman', Times, serif;
}

.tab button img{
    max-width: 60px;
    display: inline-flex;
    vertical-align: middle;
    object-fit: contain;
}

/* Hover over tab class */
.tab button:hover {
    background-color: #ccc;
}

.tab button.pizzaTab:hover {
    background-image: url('images/pizza-image.jpg');
    background-size: cover;
    background-position: center;
    color: white;
}

/* Active tab class */
.tab button.active {
    background-color: #ccc;
    font-weight: bold;
}

/* Tab content */
.tabcontent {
    display: none;
    padding: 1vmin 3vmax;
    border: 1px solid #ccc;
    border-top: none;
}

.error {
    background: red !important;
}

/* ======================= Logo Styles ======================= */
/* Black Gold logo class */
.Logo {
    max-width: 80px;
    display: inline-flex;
    vertical-align: middle;
    object-fit: contain;
}

/* ======================= Header Styles ======================= */
.TopContainer {
    width: 50vmax;
    margin: auto;
    white-space: nowrap;
    display: flex;
    justify-content: space-around;
    align-items: center;
}

.HeaderLabel {
    font-size: 3vmin;
    font-weight: bold;
    font-family:'Times New Roman', Times, serif;
}

.RangeHeader {
    font-size: 3vmin;
    font-weight: bold;
    font-family:'Times New Roman', Times, serif;
}

/* ======================= Select Options Styles ======================= */
.custom-select {
    display: flex;
    align-items: center;
    background-color: inherit;
    color: black;
    border: 1px solid #ccc;
    margin-left: 10px;
    font-size: 2.5vmin;
    font-weight: bold;
    font-family:'Times New Roman', Times, serif;
}
/* ======================= Side Panel Styles =======================*/
/* Panel onclick tooltip class */
.tooltiptext {
    visibility: hidden;
    background-color: white;
    border: 3px solid black;
    box-shadow: 10px 10px 20px gray;
    color: black;
    font-size: 150%;
    border-radius: 6px;
    padding: 1%;
    position: absolute;
    z-index: 1;
    right: 20%;
}

/* Panel Class */
.PanelBox {
    width: 95%;
    padding: 10px 0px;
    height: fit-content;
    border-radius: 15px;
}

/* Panel text/label class */
.InputType {
    font-size:  15px;
    text-align: center;
    color: white;
    white-space: nowrap;
}

/* Panel text/number class */
.InputValue {
    font-size: 15px;
    text-align: center;
    color: white;
    font-weight: bold;
}

/* Panel container classes */
.InnerPanelData {
    width: 100%;
    display: inline-flex;
}

/* Panel container classes */
.DisplayPanelToggle {
    width: 15%;
    padding: 10px;

    display: flex;
    justify-content: center;

    margin: 0px 2px;
    border-radius: 15px;
    border: 3px solid black;
    background-color: white;
}

.PanelInformation {
    width: 90%;
    justify-content: space-around;
}

/* Panel container classes */
.CompressorDataContainer {
    width: 90%;
    justify-content: space-around;
    display: inline-flex;
}

.StatusDataContainer {
    width: 100%;
    display: inline-flex;
    justify-content: space-around;
}

/* ======================= Error Styles =======================*/
.error {
    color: red;
    font-weight: bold;
}

.MainAlert {
    position:fixed;
    display: none;
    top:30%;
    left: 10%;
    opacity:0.5;
    z-index:99;
    font-weight: bold;
    font-size: 300%;
    white-space: pre-wrap;
    color:RED;
}

/* ======================= Graph Styles =======================*/
.data-graph {
    width: 100%;
    height: 100%;
}

/* ======================= Table Container Styles =======================*/
.graph-table {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.canvas-container, .panel-container {
    box-sizing: border-box;
}

.canvas-container {
    width: 80%;
    display: flex;
    flex-direction: column;
}

.panel-container {
    width: 20%;
    height: fit-content;
    display: grid;
    grid-template-columns: auto;
    gap: 5px 0px;
}

.canvas-item {
    flex-grow: 1;
}

.main {
    height: 500px;
}

.pump {
    height: 40px;
}

/* ======================= Responsive Styles ======================= */
@media (max-width: 768px) {
    .Logo { max-width: 65px; }
    .tab { max-width: 768px; }
    .tab button { font-size: 20px; padding: 8px}
    .HeaderLabel { font-size: 18px; }
    .RangeHeader { font-size: 20px; }
    .custom-select { font-size: 15px; }

    .window-holder { max-width: 768px; }
    .InputType { font-size: 12px; }
    .InputValue { font-size: 12px; }

    .PanelBox {padding: 5px 0px;}

    .main { height: 225px; }
    .pump { height: 30px; }
}

@media (max-width: 425px) {
    .Logo { max-width: 55px; }
    .tab { max-width: 425px; }
    .tab button { font-size: 15px; padding: 5px}
    .HeaderLabel { font-size: 13px; }
    .RangeHeader { font-size: 15px; }
    .custom-select { font-size: 10px; }

    .window-holder { max-width: 425px; }

    .PanelBox {padding: 5px 0px;}

    .panel-container { 
        width: 100%; 
        grid-template-columns: auto auto;
    }
    .InputType { font-size: 15px; }
    .InputValue { font-size: 15px; }

    .graph-table { flex-direction: column; }
    .canvas-container  { width: 100%; height: 70%; } 
    .canvas-item { flex-grow: 0; height: auto; }

    .main { height: 275px; }
    .pump { height: 25px; }
}

@media (max-width: 375px) {
    .Logo { max-width: 45px; }
    .tab { max-width: 375px; }
    .tab button { font-size: 15px; padding: 2px}
    .HeaderLabel { font-size: 15px; }
    .RangeHeader { font-size: 15px; }
    .custom-select { font-size: 10px; }

    .window-holder { max-width: 375px; }

    .PanelBox {padding: 5px 0px;}

    .panel-container {
        width: 100%; 
        grid-template-columns: auto auto;
    }
    .InputType { font-size: 15px; }
    .InputValue { font-size: 15px; }

    .graph-table { flex-direction: column; }
    .canvas-container  { width: 100%; height: 70%; }
    .canvas-item { flex-grow: 0; height: auto; }

    .main { height: 225px; }
    .pump { height: 20px; }
}