style.css
/* Sorry the CSS is such a mess. -DS */

/* ============= WHOLE PAGE STYLES ================== */

/* Handle vertical screens */
@media screen and (max-width: 1400px) and (orientation: portrait) {
    #cameraControlsContainer {
        width: 100vw!important;
    }

    #cameraControlsContainerExpanded {
        display: none!important;
    }

    body {
        font-size: 125%;
    }
}

@media screen and (max-width: 1400px) and (orientation: landscape) {
    #cameraControlsContainer {
        width: 30vw!important;
    }

    #headerContainer {
        height: 5vh!important;
    }
    
    body {
        font-size: 70%;
    }
}

/* Load NotoSansDisplay Font from resources */
@font-face {
    font-family: 'NotoSansDisplay';
    src: url('resources/NotoSansDisplay-VariableFont_wdth\,wght.woff') format('woff'), /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
         url('resources/NotoSansDisplay-VariableFont_wdth\,wght.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5, Opera 10+, Safari 3—5 */
}

.dNone {
    display: none;
}

body {
    font-family: 'NotoSansDisplay', sans-serif;
    font-weight: 100;
    margin: 0px;
    overflow: hidden;
    background: #181818;
    color: white;
}

/* Page Body Flexboxes */
.flexContainerH {
    display: flex;
}

.flexContainerV {
    display: inline-flex;
}

/* Inputs */

input[type=text] {
    border-radius: 0.5vh;
    background: rgb(30, 30, 30);
    color: white;
    height: 2em;
    width: 10vw;
    border: 1px solid rgb(20, 20, 20);
    text-align: center;
    font-family: 'NotoSansDisplay', sans-serif;
    outline: none;
    margin: 0px 0.5vw;
}

input[type=text]:focus {
    border: 1px solid rgb(150, 58, 0);
}

input[type=number] {
    border-radius: 0.5vh;
    background: rgb(30, 30, 30);
    color: white;
    height: 2em;
    width: 4.666vw;
    border: 1px solid rgb(20, 20, 20);
    text-align: center;
    font-family: 'NotoSansDisplay', sans-serif;
    outline: none;
}

input[type=number]:focus {
    border: 1px solid rgb(150, 58, 0);
}

input[type=range][orient=vertical] {
    writing-mode: vertical-lr; direction: rtl;
    width: 2vw;
    height: 80%;
}

select {
    border-radius: 0.5vh;
    background: rgb(30, 30, 30);
    color: white;
    height: 2em;
    width: 5vw;
    border: 1px solid rgb(20, 20, 20);
    text-align: center;
    font-family: 'NotoSansDisplay', sans-serif;
    outline: none;
}

select:focus {
    border: 1px solid rgb(150, 58, 0);
}

button {
    font-family: 'NotoSansDisplay', sans-serif;
    background: #181818;
    background: linear-gradient(0deg, #232323 0%, #404040 100%);
    border: 0.3vh solid black;
    outline: 0.3vh solid #404040;
    color: white;
    height: fit-content;
    width: fit-content;
    border-radius: 0.4em;
    padding: 0.5vh 1vw;
    margin: 1vh;
}

button:hover {
    background: #313131;
    background: linear-gradient(0deg, #313131 0%, #4d4d4d 100%);
}

button:active {
    background: #181818;
    box-shadow: inset 0 0 1em #090909;
}

input[type=file]:focus {
    border: 1px solid rgb(150, 58, 0);
}

#secureCheckboxLabel {
    margin-right: 1vw;
}

/* Horizontal Container Styles */
#headerContainer {
    background: #181818;
    background: linear-gradient(0deg, #181818 0%, #303030 100%);
    border-bottom: 1px solid black;
    width: 100%;
    height: 7.77vh;
    flex-wrap: wrap;
    align-content: center;
}

#headerContainer h1 {
    color: white;
    margin-left: 1.3vw;
    font-weight: 100;
}

#cameraSelectContainer {
    background: #222222;
    border: 1px solid black;
    width: 100%;
    height: 3.53vh;
    color: #474747;
    font-size: 1em;
    align-items: center;
    justify-content: center;
}

#cameraSelectContainer span {
    height: fit-content;
}

#cameraSelectContainer .camSelectSeparator {
    margin: 0px 0.5em;
}

.cameraSwitchLabel a {
    text-decoration: none;
    color: #474747;
}

.cameraSwitchLabel.selectedCam a {
    color: #e66c01;
}

#allCamerasContainer {
    width: 100%;
    height: 83.1vh;
    
    overflow-x: scroll;
    overflow-y: hidden;

    scrollbar-color: #202020 #151515;
}

#formatDisplay span {
    margin: 0px 1em;
}

#footerContainer {
    background: #181818;
    background: linear-gradient(0deg, #181818 0%, #303030 100%);
    border: 1px solid black;
    width: 100%;
    height: 5vh;
    position: fixed;
    bottom: 0;
    align-items: center;
    justify-content: space-between;
}

#footerContainer button {
    padding: 0.4em 0.8em;
    font-size: x-small;
}

#refreshingText.refreshing {
    color: #606060ff;
}

#refreshingText {
    color: #60606000;
}

#footerLinks span {
    margin-right: 1.25vw;
}

#footerLeft span {
    margin-left: 1.25vw;
}

#footerLinks a {
    text-decoration: none;
    color: #e66c01;
}

/* Camera Controls Container */
#cameraControlsContainer {
    width: 15vw;
    height: 100%;
    background: #282828;
    flex-direction: column;
    border: 1px solid black;
    flex-shrink: 0;
}

.liveCam {
    background: rgb(184,3,16);
    background: linear-gradient(90deg, rgba(184,3,16,1) 0%, rgba(255,0,19,1) 15%, rgba(255,0,19,1) 85%, rgba(184,3,16,1) 100%);
}

#cameraControlHeadContainer {
    width: 100%;
    height: 5vh;
    border-bottom: 2px solid black;
    align-items: center;
    color: white;
}

h2 {
    margin-inline-start: 0.6em;
    margin-inline-end: 0.6em;
    font-weight: 100;
}

#cameraName {
    
}

/* Color Correction Section */
#cameraControlColorCorrectionContainer {
    width: 100%;
    height: 33vh;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
}

#cameraControlLGGTabs {
    margin-top: 2vh;
    border: 1px solid #101010;
    border-radius: 2.5vh;
    overflow: hidden;
}


#cameraControlLGGTabs a {
    background: #181818;
    background: linear-gradient(0deg, #181818 0%, #303030 100%);

    padding: 0.1vh 1.25vw 0.25vh 1.25vw;

    border-left: 1px solid #101010;
    
    text-decoration: none;
    color: #474747;
}

#cameraControlLGGTabs a.selectedTab {
    color: #e66c01;
}

.ccExposureSettingValueContainer .expAdjArr {
    text-decoration: none;
    color: #60606000;
}

.ccExposureSettingValueContainer:hover .expAdjArr {
    color: #606060ff;
}

.ccExposureSettingValueContainer:hover .expAdjArr:hover {
    color: #474747;
}

.ccExposureSettingValueContainer:hover .expAdjArr:active {
    color: #e66c01;
}

#cameraControlColorCorrectionBottomContainer {
    margin-bottom: 1em;
    display: inline-flex;
    align-items: center;
}

#cameraControlColorCorrectionBottomContainer button {
    margin: 0px 0.5em;
}

#cameraControlColorCorrectionNumbersContainer span {
    margin: 0px 0.5em;
    text-decoration: underline 3px;
}

/* Exposure Section */
#cameraControlExposureContainer {
    width: 100%;
    height: 4.7vh;
    background-color: #171717;
    border-top: 1px solid #2d2d2d;
    border-bottom: 1px solid #2d2d2d;
    display: inline-flex;
    justify-content: space-evenly;
    overflow: hidden;
}

.ccExposureSettingContainer {
    display: flex;
    color: white;
    font-size: 0.86em;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    align-items: center;
    padding-bottom: 0.5vh;
    padding-top: 0.25vh;
}

.exposureControlLabel {
    color: #6e6e6e;
    font-size: 0.666em;
    display: block;
}

/* Lens Stuff */
#cameraControlLensContainer {
    width: 100%;
    height: 41.9vh;
    border-bottom: 1px solid black;
    justify-content: space-evenly;
}

.lensSliderContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.lensSliderContainer span {
    margin-top: 1em;
    margin-bottom: 1em;
}

.circleButton {
    width: 2em;
    height: 2em;
    border-radius: 1em;
    padding: 0;
    margin: 1em 0;
}

.activated {
    background: #181818;
    box-shadow: inset 0 0 1em #090909;
}

#transportControls .circleButton {
    margin: 0 0.5em;
}

/* Right side (expanded) */
#cameraControlsContainerExpanded {
    width: 84.75vw;
    height: 100%;
    background: #282828;
    flex-direction: column;
    border: 1px solid black;
    flex-shrink: 0;
}

#cameraControlExpandedHeadContainer {
    width: 100%;
    height: 5vh;
    border-bottom: 2px solid black;
    align-items: center;
    justify-content: space-between;
}

#cameraControlExpandedBodyContainer {
    flex-direction: column;
    display: inline-flex;
    height: inherit;
    justify-content: space-around;
}

#timecodeLabel {
    
}

#connectionErrorSpan {
    color: #e64b3d;
}

#manualRequestResponseP {
    color: #6e6e6e;
}

/* Table Controls */

.tableControl {
    margin-left: 1.5vw;
}

.tableControl h3 {
    font-weight: 100;
    margin: 0.5vh 0vw;
}

table, td {
    margin-left: 0.5vw;
    /* border: 1px solid white; */
    border-collapse: collapse;
    padding: 0.1vw 1vw;
}

td, tr {
    align-items: center;
}