:root {
    --goodState: #15a33b;
    --goodStateOpaque: rgba(21, 163, 59, 0.1);
    --warnState: #bf7b04;
    --warnStateOpaque: rgba(191, 123, 4, 0.1);
    --errorState: #c22a04;
    --errorStateOpaque: rgba(194, 42, 4, 0.1);
    --background: #0d0d0d;
    --subBackground: #212121;
    --darkGrey: #1c1b1b;
    --lightGrey: #7d7d7d;
    --lighterGrey: #bfbfbf;
    --white: #FFFFFF;
    --blue: #1548a0;
    --s3cyellow: #fdcc00;
    --s3cyellowRGBA: 253, 204, 0;
}

.warnIcon {
    width: 45px;
    height: 45px;
    background: var(--warnState);
    -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'45\' height=\'45\' viewBox=\'0 0 16 16\'%3E %3Cpath d=\'M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\'/%3E %3E%3Cpath d=\'M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z\' /%3E%3C/svg%3E');
    mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'45\' height=\'45\' viewBox=\'0 0 16 16\'%3E %3Cpath d=\'M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\'/%3E %3E%3Cpath d=\'M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z\' /%3E%3C/svg%3E');
}

.errorIcon {
    width: 45px;
    height: 45px;
    background: var(--errorState);
    -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'45\' height=\'45\' viewBox=\'0 0 16 16\'%3E %3Cpath d=\'M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\'/%3E %3E%3Cpath d=\'M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708\' /%3E%3C/svg%3E');
    mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'45\' height=\'45\' viewBox=\'0 0 16 16\'%3E %3Cpath d=\'M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\'/%3E %3E%3Cpath d=\'M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708\' /%3E%3C/svg%3E');
}

.successIcon {
    width: 45px;
    height: 45px;
    background: var(--goodState);
    -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'45\' height=\'45\' viewBox=\'0 0 16 16\'%3E %3Cpath d=\'M2.5 8a5.5 5.5 0 0 1 8.25-4.764.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0 5.5 5.5 0 1 1-11 0\'/%3E %3E%3Cpath d=\'M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293 5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0z\' /%3E%3C/svg%3E');
    mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'45\' height=\'45\' viewBox=\'0 0 16 16\'%3E %3Cpath d=\'M2.5 8a5.5 5.5 0 0 1 8.25-4.764.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0 5.5 5.5 0 1 1-11 0\'/%3E %3E%3Cpath d=\'M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293 5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0z\' /%3E%3C/svg%3E');
}

.chipIcon {
    width: 45px;
    height: 45px;
    background: var(--warnState);
    -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'45\' height=\'45\' viewBox=\'0 0 16 16\'%3E %3Cpath d=\'M5 0a.5.5 0 0 1 .5.5V2h1V.5a.5.5 0 0 1 1 0V2h1V.5a.5.5 0 0 1 1 0V2h1V.5a.5.5 0 0 1 1 0V2A2.5 2.5 0 0 1 14 4.5h1.5a.5.5 0 0 1 0 1H14v1h1.5a.5.5 0 0 1 0 1H14v1h1.5a.5.5 0 0 1 0 1H14v1h1.5a.5.5 0 0 1 0 1H14a2.5 2.5 0 0 1-2.5 2.5v1.5a.5.5 0 0 1-1 0V14h-1v1.5a.5.5 0 0 1-1 0V14h-1v1.5a.5.5 0 0 1-1 0V14h-1v1.5a.5.5 0 0 1-1 0V14A2.5 2.5 0 0 1 2 11.5H.5a.5.5 0 0 1 0-1H2v-1H.5a.5.5 0 0 1 0-1H2v-1H.5a.5.5 0 0 1 0-1H2v-1H.5a.5.5 0 0 1 0-1H2A2.5 2.5 0 0 1 4.5 2V.5A.5.5 0 0 1 5 0m-.5 3A1.5 1.5 0 0 0 3 4.5v7A1.5 1.5 0 0 0 4.5 13h7a1.5 1.5 0 0 0 1.5-1.5v-7A1.5 1.5 0 0 0 11.5 3zM5 6.5A1.5 1.5 0 0 1 6.5 5h3A1.5 1.5 0 0 1 11 6.5v3A1.5 1.5 0 0 1 9.5 11h-3A1.5 1.5 0 0 1 5 9.5zM6.5 6a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5z\' /%3E%3C/svg%3E');
    mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'45\' height=\'45\' viewBox=\'0 0 16 16\'%3E %3Cpath d=\'M5 0a.5.5 0 0 1 .5.5V2h1V.5a.5.5 0 0 1 1 0V2h1V.5a.5.5 0 0 1 1 0V2h1V.5a.5.5 0 0 1 1 0V2A2.5 2.5 0 0 1 14 4.5h1.5a.5.5 0 0 1 0 1H14v1h1.5a.5.5 0 0 1 0 1H14v1h1.5a.5.5 0 0 1 0 1H14v1h1.5a.5.5 0 0 1 0 1H14a2.5 2.5 0 0 1-2.5 2.5v1.5a.5.5 0 0 1-1 0V14h-1v1.5a.5.5 0 0 1-1 0V14h-1v1.5a.5.5 0 0 1-1 0V14h-1v1.5a.5.5 0 0 1-1 0V14A2.5 2.5 0 0 1 2 11.5H.5a.5.5 0 0 1 0-1H2v-1H.5a.5.5 0 0 1 0-1H2v-1H.5a.5.5 0 0 1 0-1H2v-1H.5a.5.5 0 0 1 0-1H2A2.5 2.5 0 0 1 4.5 2V.5A.5.5 0 0 1 5 0m-.5 3A1.5 1.5 0 0 0 3 4.5v7A1.5 1.5 0 0 0 4.5 13h7a1.5 1.5 0 0 0 1.5-1.5v-7A1.5 1.5 0 0 0 11.5 3zM5 6.5A1.5 1.5 0 0 1 6.5 5h3A1.5 1.5 0 0 1 11 6.5v3A1.5 1.5 0 0 1 9.5 11h-3A1.5 1.5 0 0 1 5 9.5zM6.5 6a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5z\' /%3E%3C/svg%3E');
}

.logoutIcon {
    background-color: inherit;
    -webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M10 12.5a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 .5.5v2a.5.5 0 0 0 1 0v-2A1.5 1.5 0 0 0 9.5 2h-8A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h8a1.5 1.5 0 0 0 1.5-1.5v-2a.5.5 0 0 0-1 0z"/><path fill-rule="evenodd" d="M15.854 8.354a.5.5 0 0 0 0-.708l-3-3a.5.5 0 0 0-.708.708L14.293 7.5H5.5a.5.5 0 0 0 0 1h8.793l-2.147 2.146a.5.5 0 0 0 .708.708z"/></svg>');
    mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M10 12.5a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 .5.5v2a.5.5 0 0 0 1 0v-2A1.5 1.5 0 0 0 9.5 2h-8A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h8a1.5 1.5 0 0 0 1.5-1.5v-2a.5.5 0 0 0-1 0z"/><path fill-rule="evenodd" d="M15.854 8.354a.5.5 0 0 0 0-.708l-3-3a.5.5 0 0 0-.708.708L14.293 7.5H5.5a.5.5 0 0 0 0 1h8.793l-2.147 2.146a.5.5 0 0 0 .708.708z"/></svg>');
    background: inherit;
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
}

.show {
    display: flex !important;
}

.hide {
    display: none !important;
}

.spacer25 {
    width: 100%;
    height: 25;
}

.spacer50 {
    width: 100%;
    height: 50px;
}

.spacer100 {
    width: 100%;
    height: 100px;
}

.divider50 {
    width: 100%;
    padding: 1px;
    background-color: var(--s3cyellow);
    margin: 25px 0px;
}

.quantityBubble {
    padding: 5px;
    border-radius: 50%;
    width: 25px;
    height: 25px;
    justify-content: center;
    align-items: center;
}

.quantityBubble.red {
    background-color: var(--errorState);
}

.quantityBubble.grey {
    background-color: var(--lightGrey);
}

* {
    margin: 0;
    padding: 0;
}

body {
    background-color: rgba(0, 0, 0, 100);
    background-image: radial-gradient(circle 1000px at 54% 10%, #333333, #000000);
    background-repeat: no-repeat;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
    font-size: 1em;
    min-height: 100vh;
    width: 100vw;
}

a.hyperlink {
    color: var(--subBackground);
    text-decoration: none;
    transition: all .2s ease-in-out;
}

a.hyperlink:hover {
    color: var(--s3cyellow);
}

.noHover {
    pointer-events: none;
}

@keyframes loadingSpinner {
    to {
        transform: rotate(1turn);
    }
}

body .loginView {
    height: fit-content;
    width: 100vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
}

.loginView .loginFormContainer {
    margin: 100px auto;
}

.loginView .studio3cineLogo {
    margin: 10px auto;
}

.linkedDevicesContainer {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
}

.linkedDevicesContainer .deviceBubble {
    display: flex;
    flex-direction: column;
    border: 2px solid var(--lightGrey);
    border-radius: 15px;
    padding: 20px;
    transition: all .2s ease-in-out;
    width: 250px;
}

.linkedDevicesContainer .deviceBubble:hover {
    cursor: pointer;
    background-color: #333333;
}

.linkedDevicesContainer .deviceBubble.online {
    border-color: var(--goodState);
    background-color: var(--goodStateOpaque);
}

.linkedDevicesContainer .deviceBubble.waiting {
    border-color: var(--warnState);
    background-color: var(--warnStateOpaque);
}

.linkedDevicesContainer .deviceBubble.offline {
    border-color: var(--lightGrey);
}


/* .deviceBubble h3.deviceModel {
    
} */

.deviceBubble h3.deviceSN {
    flex-grow: 1;
}

.deviceBubble .onlineStatus {
    display: flex;
    flex-direction: row;
    margin: 10px 0px 0px 0px;
    gap: 7px;
    align-items: center;
}

.statusCircle {
    height: 15px;
    width: 15px;
    border-radius: 50%;
    transition: all .2s ease-in-out;
    display: inline-block;
}

.statusCircle.offline {
    background-color: var(--lightGrey);
}

.statusCircle.online {
    background-color: var(--goodState);
}

.statusCircle.waiting {
    background-color: var(--warnState);
}

.statusCircle.incompatible {
    background-color: var(--warnState);
}

.statusCircle.unread {
    background-color: var(--blue);
    border: 1px solid var(--blue);
}

.statusCircle.unread:hover {
    background-color: transparent;
    border: 1px solid var(--lightGrey);
    cursor: pointer;
}

.statusCircle.read {
    background-color: transparent;
    border: 1px solid var(--lightGrey);
}

.statusCircle.read:hover {
    background-color: var(--blue);
    border: 1px solid var(--blue);
    cursor: pointer;
}

.projectSyncLogo {
    text-indent: -9999px;
    width: 250px;
    height: 70px;
    background: url('../imgs/projectSync_Logo_One_Line.svg');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 100%;
    -webkit-transition: ease-in-out opacity 0.25s;
    transition: ease-in-out opacity 0.25s;
    opacity: 1;
}

.projectSyncLogo:hover {
    opacity: 0.5;
    cursor: pointer;
}

.pSLogo {
    text-indent: -9999px;
    width: 250px;
    height: 70px;
    background: url('../imgs/pS_Logo_One_Line.svg');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 250px 70px;
    -webkit-transition: ease-in-out opacity 0.25s;
    transition: ease-in-out opacity 0.25s;
    opacity: 1;
}

.studio3cineLogo {
    text-indent: -9999px;
    width: 250px;
    height: 70px;
    background: url('../imgs/studio3cine_Logo_studio3cine_One_Line.svg');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 100%;
    -webkit-transition: ease-in-out opacity 0.25s;
    transition: ease-in-out opacity 0.25s;
    opacity: 1;
}

.studio3cineLogo.small {
    width: 150px;
    height: 30px;
}

.s3cLogo {
    text-indent: -9999px;
    width: 250px;
    height: 70px;
    background: url('../imgs/studio3cine_Logo_s3c.svg');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 250px 70px;
    -webkit-transition: ease-in-out opacity 0.25s;
    transition: ease-in-out opacity 0.25s;
    opacity: 1;
}


/* Login / Sign Up / Account Recovery Pages */

.loginFormContainer {
    height: auto;
    min-height: 450px;
    max-width: 900px;
    background-color: var(--subBackground);
    border-radius: 20px;
    display: flex;
    flex-direction: row;
    overflow: hidden;
    position: relative;
}

.loginFormContainer .logoContainer {
    display: flex;
    flex-direction: column;
    width: 350px;
    padding: 35px 20px;
    align-items: center;
    justify-content: space-between;
}

.loginFormContainer .formContainer {
    background-color: var(--white);
    display: flex;
    flex-direction: column;
    width: auto;
    flex-grow: 1;
    padding: 35px 40px;
    justify-content: space-between;
}

.loginFormContainer .formContainer h1 {
    text-align: center;
}

.loginFormContainer .formContainer label {
    color: var(--lightGrey);
    font-size: 11pt;
    margin: 10px 0px;
}

.loginFormContainer .formContainer form {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.loginFormContainer .formContainer .spacer {
    width: 100%;
    height: 20px;
}

.loginFormContainer .formContainer .spacerGrow {
    width: 100%;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: center;
}

.loginFormContainer .formContainer form .formButtons {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: baseline;
    gap: 20px;
}

.loginFormContainer .formContainer form .errorMsg {
    color: var(--errorState);
    font-size: 16px;
    padding: 15px 0px;
    height: 18px;
}

/* Signup / forgot password / account setup: messages can wrap onto several lines */
.loginFormContainer .formContainer .errorMsg.multiLine {
    height: auto;
    min-height: 18px;
    line-height: 1.4;
}

.loginFormContainer .formContainer .noticeMsg {
    color: var(--goodState);
    background-color: var(--goodStateOpaque);
    border-radius: 10px;
    font-size: 15px;
    line-height: 1.45;
    padding: 14px 16px;
}

.loginFormContainer .formContainer .formHint {
    color: var(--lightGrey);
    font-size: 10pt;
    margin-top: 6px;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type='number'],
input[type='text'],
input[type='email'],
input[type='password'],
input[type='tel'],
textarea {
    border: 2px solid var(--lightGrey);
    border-radius: 10px;
    transition: all .3s ease;
    background-color: transparent;
    color: inherit;
    font-weight: bold;
    font-size: 16px;
    padding: 0px 8px;
    height: 50px;
    outline: none;
}

.inputTextGrey {
    color: var(--lightGrey);
}

.inputTextWhite {
    color: var(--white);
}

select {
    height: 50px;
    appearance: none;
    outline: none;
    /* safari */
    -webkit-appearance: none;
    /* other styles for aesthetics */
    width: 100%;
    font-weight: bold;
    font-size: 16px;
    padding: 0px 8px;
    background-color: transparent;
    transition: all .3s ease;
    border: 2px solid var(--lightGrey);
    border-radius: 10px;
    color: var(--white);
    cursor: pointer;
}

select:focus {
    border-color: var(--s3cyellow);
}

input[type='number']:focus,
input[type='text']:focus,
input[type='email']:focus,
input[type='password']:focus,
textarea:focus {
    border-color: var(--s3cyellow);
}

input[type='number']::placeholder,
input[type='text']::placeholder,
input[type='email']::placeholder,
input[type='password']::placeholder,
textarea::placeholder {
    color: var(--lightGrey);
    opacity: .3;
}

input[type='number']:disabled,
input[type='text']:disabled,
input[type='email']:disabled,
input[type='password']:disabled,
textarea:disabled {
    color: var(--lightGrey);
    opacity: .3;
}

@-webkit-keyframes modalboxAnim_in {
    from {
        transform: translate(0px, -40px);
        opacity: 0;
    }
    to {
        transform: translate(0px, 0px);
        opacity: 1;
    }
}

@keyframes modalboxAnim_in {
    from {
        transform: translate(0px, -40px);
        opacity: 0;
    }
    to {
        transform: translate(0px, 0px);
        opacity: 1;
    }
}

@-webkit-keyframes supportMessengerAnim_in {
    from {
        transform: translate(0px, 40px);
        opacity: 0;
    }
    to {
        transform: translate(0px, 0px);
        opacity: 1;
    }
}

@keyframes supportMessengerAnim_in {
    from {
        transform: translate(0px, 40px);
        opacity: 0;
    }
    to {
        transform: translate(0px, 0px);
        opacity: 1;
    }
}

@-webkit-keyframes modalboxDropShaddowAnim_in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes modalboxDropShaddowAnim_in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@-webkit-keyframes contentBlurAnim_in {
    to {
        filter: blur(5px);
    }
    from {
        filter: blur(0px);
    }
}

@keyframes contentBlurAnim_in {
    to {
        filter: blur(5px);
    }
    from {
        filter: blur(0px);
    }
}

@-webkit-keyframes modalboxAnim_out {
    to {
        transform: translate(0px, -40px);
        opacity: 0;
    }
    from {
        transform: translate(0px, 0px);
        opacity: 1;
    }
}

@keyframes modalboxAnim_out {
    to {
        transform: translate(0px, -40px);
        opacity: 0;
    }
    from {
        transform: translate(0px, 0px);
        opacity: 1;
    }
}

@-webkit-keyframes supportMessengerAnim_out {
    to {
        transform: translate(0px, 40px);
        opacity: 0;
    }
    from {
        transform: translate(0px, 0px);
        opacity: 1;
    }
}

@keyframes supportMessengerAnim_out {
    to {
        transform: translate(0px, 40px);
        opacity: 0;
    }
    from {
        transform: translate(0px, 0px);
        opacity: 1;
    }
}

@-webkit-keyframes modalboxDropShaddowAnim_out {
    to {
        opacity: 0;
    }
    from {
        opacity: 1;
    }
}

@keyframes modalboxDropShaddowAnim_out {
    to {
        opacity: 0;
    }
    from {
        opacity: 1;
    }
}

@-webkit-keyframes contentBlurAnim_out {
    to {
        filter: blur(0px);
    }
    from {
        filter: blur(5px);
    }
}

@keyframes contentBlurAnim_out {
    to {
        filter: blur(0px);
    }
    from {
        filter: blur(5px);
    }
}


/* Orders Page */

.ordersContainer {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--lightGrey);
    border-radius: 20px;
    overflow: hidden;
    & .orderRowHead {
        display: flex;
        flex-direction: row;
        height: 50px;
        color: var(--white);
        align-items: center;
        padding: 0 15px;
        background-color: var(--background);
        & .invoiceRef {
            min-width: 70px;
        }
        & .orderType {
            min-width: 125px;
        }
        & .title {
            min-width: 400px;
        }
        & .invoiceDate {
            min-width: 100px;
            text-align: center;
        }
        & .invoiceDue {
            min-width: 130px;
            text-align: center;
        }
    }
}

.orderRow {
    display: flex;
    flex-direction: row;
    height: 40px;
    font-size: 10pt;
    color: var(--white);
    align-items: center;
    padding: 0 15px;
    transition: .1s ease-in-out;
    & .invoiceRef {
        min-width: 70px;
    }
    & .orderType {
        min-width: 125px;
    }
    & .title {
        min-width: 400px;
    }
    & .invoiceDate {
        min-width: 100px;
        text-align: center;
    }
    & .invoiceDue {
        display: flex;
        justify-content: center;
        min-width: 130px;
    }
}

.orderRow:nth-child(odd) {
    background-color: #353535;
}

.orderRow:hover {
    background-color: var(--lightGrey);
    cursor: pointer;
}

.showSupportMessenger {
    -webkit-animation-name: supportMessengerAnim_in;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-name: supportMessengerAnim_in;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.closeSupportMessenger {
    -webkit-animation-name: supportMessengerAnim_out;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-name: supportMessengerAnim_out;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.supportMessenger {
    position: fixed;
    bottom: 0;
    right: 50px;
    height: fit-content;
    width: 700px;
    background-color: rgba(0, 0, 0, 0.6);
    border-radius: 20px 20px 0 0;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    & .container {
        display: flex;
        flex-direction: column;
        padding: 20px;
        gap: 20px;
        height: 80vh;
        max-height: 900px;
        width: 100%;
        & div:nth-child(1) {
            display: flex;
            flex-direction: row;
            justify-content: space-between;
            & .closeWindow {
                color: var(--white);
                width: 30px;
                height: 30px;
                transition: all .2s ease-in-out;
            }
            & .closeWindow:hover {
                color: var(--white);
                opacity: 0.5;
                cursor: pointer;
            }
        }
        & div:nth-child(2) {
            display: flex;
            flex-direction: row;
        }
        & div:nth-child(3) {
            display: flex;
            overflow-y: scroll;
            flex-grow: 1;
            & .messageFeed {
                display: flex;
                flex-direction: column-reverse;
                gap: 20px;
                justify-content: end;
                margin: 15px;
                border-radius: 20px;
                height: min-content;
                width: 100%;
                & .messageLine {
                    display: flex;
                    gap: 10px;
                }
                & .messageLine.user {
                    flex-direction: row-reverse;
                }
                & .messageLine.support {
                    flex-direction: row;
                }
                & .avatar {
                    border-radius: 50%;
                    height: 20px;
                    width: 20px;
                    overflow: hidden;
                    margin: 10px 0;
                }
                & .avatar.support {
                    background-image: url('/imgs/favicon/s3c_favicon_32x32.png');
                    background-repeat: no-repeat;
                    background-position: center;
                    background-size: contain;
                }
                & .messageBubble {
                    padding: 11px 14px;
                    border-radius: 20px;
                    width: fit-content;
                    max-width: 70%;
                    font-weight: 400;
                    font-size: 14px;
                }
                & .messageBubble.customer {
                    background-color: var(--blue);
                    color: var(--white);
                    margin-left: auto;
                }
                & .messageBubble.customer a {
                    text-decoration: none;
                    color: var(--s3cyellow);
                    transition: color 0.2s linear;
                }
                .messageBubble.customer a:hover {
                    text-decoration: none;
                    color: var(--lightGrey);
                }
                & .messageBubble.internal {
                    background-color: var(--white);
                    color: var(--darkGrey);
                    margin-right: auto;
                }
            }
        }
        & div:nth-child(4) {
            display: flex;
            flex-direction: row;
            gap: 20px;
            align-items: end;
            & textarea {
                padding: 10px !important;
                color: var(--white) !important;
                font-weight: 300 !important;
                font-size: 14px !important;
                border: 1px solid var(--lightGrey) !important;
                width: 100%;
                height: 60px;
                box-sizing: border-box;
            }
            & button {
                width: auto !important;
                height: 40px;
            }
        }
    }
}

.vdiConsoleContainer {
    position: fixed;
    flex-direction: column;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, .4);
    overflow: scroll;
}

.vdiConsoleOnlineStatus {
    width: 100%;
    color: var(--white);
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    position: fixed;
    z-index: 2;
    transition: height .5s ease-in-out;
    & .offlineCloudIcon {
        transition: all .5s;
        transition-behavior: allow-discrete;
    }
    & h3 {
        transition: all .5s;
        transition-behavior: allow-discrete;
    }
}

.vdiConsoleOnlineStatus.online {
    height: 7px;
    background-color: var(--goodState);
    & .offlineCloudIcon {
        opacity: 0;
    }
    & h3 {
        opacity: 0;
    }
}

.vdiConsoleOnlineStatus.waiting {
    height: 7px;
    background-color: var(--warnState);
    & .offlineCloudIcon {
        opacity: 0;
    }
    & h3 {
        opacity: 0;
    }
}

.vdiConsoleOnlineStatus.offline {
    height: 50px;
    background-color: var(--errorState);
    & .offlineCloudIcon {
        height: 30px;
        width: 30px;
        opacity: .4;
    }
    & h3 {
        color: var(--white);
        opacity: .4;
    }
}

.awaitingData {
    transition: all .5s;
    transition-behavior: allow-discrete;
    & .blur {
        display: flex;
        justify-content: center;
        width: 100vw;
        height: 100vh;
        position: fixed;
        padding-top: 200px;
        backdrop-filter: blur(2.5px);
        -webkit-backdrop-filter: blur(2.5px);
        z-index: 1;
        & .awaitingDataModal {
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 35px;
            gap: 5px;
            background-color: var(--subBackground);
            width: fit-content;
            height: fit-content;
            border-radius: 20px;
            -webkit-box-shadow: 0px 0px 80px 10px #000000;
            box-shadow: 0px 0px 80px 10px #000000;
            z-index: 2;
            & .title {
                color: var(--lightGrey);
                font-size: 20pt;
                font-weight: 300;
                padding-top: 25px;
            }
            & .message {
                color: var(--lightGrey);
                font-size: 11pt;
                font-weight: 100;
            }
        }
    }
}

.awaitingData.online {
    opacity: 0;
    display: none;
    animation: none;
    & div div .spinner {
        animation: none;
    }
}

.awaitingData.waiting {
    opacity: 1;
    display: block;
    & div div .spinner {
        border: 1px solid var(--warnState);
        animation: spinner-1 0.8s infinite linear alternate, spinner-2 1.6s infinite linear;
    }
}

.awaitingData.offline {
    opacity: 1;
    display: block;
    & div div .spinner {
        border: 1px solid var(--errorState);
        animation: spinner-1 0.8s infinite linear alternate, spinner-2 1.6s infinite linear;
    }
}

.vdiConsoleMainWindow {
    display: flex;
    flex-direction: column;
    margin: 90px 50px;
    gap: 30px;
    & .topBar {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        z-index: 1;
        & .consoleTitleContainer {
            display: flex;
            flex-direction: column;
            gap: 10px;
            & .consoleTitle {
                color: var(--white);
            }
        }
        & .closeWindow {
            color: var(--white);
            width: 30px;
            height: 30px;
            transition: all .2s ease-in-out;
        }
        & .closeWindow:hover {
            color: var(--white);
            opacity: 0.5;
            cursor: pointer;
        }
    }
    & .mainConsoleView {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        width: 100%;
        height: fit-content;
        & .thirdPartyDevice {
            display: flex;
            flex-direction: column;
            background-color: var(--lightGrey);
            padding: 15px;
            border-radius: 20px;
            gap: 20px;
            & .thirdPartyLogo {
                object-fit: contain;
                object-position: left;
                width: 150px;
                height: 50px;
            }
            & .deviceInfo {
                display: flex;
                flex-direction: row;
                padding: 10px;
                gap: 10px;
                margin-bottom: 10px;
                & span {
                    display: flex;
                    flex-direction: column;
                    & h3 {
                        color: var(--subBackground);
                    }
                }
            }
            & .lineDivider {
                background-color: var(--subBackground);
                height: 1px;
                margin-left: 50px;
            }
            & .inputs {
                display: flex;
                flex-direction: row;
                gap: 10px;
                & .sectionTitle {
                    transform: rotate(270deg);
                    display: flex;
                    justify-content: center;
                    align-self: center;
                    min-width: 100px;
                    margin: -30px;
                    color: var(--subBackground);
                    font-weight: 200;
                }
                & .tiles {
                    display: flex;
                    flex-direction: row;
                    flex-wrap: wrap;
                    gap: 10px;
                    opacity: .5;
                    width: 100%;
                }
                & .tiles:hover {
                    opacity: 1;
                }
                & .tiles div {
                    display: flex;
                    flex-direction: column;
                    width: 70px;
                    height: 70px;
                    background-color: var(--subBackground);
                    border: 2px solid var(--white);
                    padding: 5px;
                    border-radius: 10px;
                    align-items: center;
                    justify-content: space-between;
                    text-align: center;
                    color: white;
                    & h2 {
                        margin: 8px 0;
                    }
                    & .title {
                        font-size: 10px;
                    }
                }
                & .tiles div:hover {
                    cursor: pointer;
                }
            }
            & .outputs {
                display: flex;
                flex-direction: row;
                gap: 10px;
                & .sectionTitle {
                    transform: rotate(270deg);
                    display: flex;
                    justify-content: center;
                    align-self: center;
                    min-width: 100px;
                    margin: -30px;
                    color: var(--subBackground);
                    font-weight: 200;
                }
                & .tiles {
                    display: flex;
                    flex-direction: row;
                    flex-wrap: wrap;
                    gap: 10px;
                    opacity: .5;
                    width: 100%;
                }
                & .tiles:hover {
                    opacity: 1;
                }
                & .tiles div {
                    display: flex;
                    flex-direction: column;
                    width: 70px;
                    height: 70px;
                    background-color: var(--subBackground);
                    border: 2px solid var(--white);
                    padding: 5px;
                    border-radius: 10px;
                    align-items: center;
                    justify-content: space-between;
                    text-align: center;
                    color: white;
                    & h2 {
                        margin: 8px 0;
                    }
                    & .title {
                        font-size: 10px;
                    }
                }
                & .tiles div:hover {
                    cursor: pointer;
                }
            }
        }
        & .customConsoleItemContainer {
            display: none;
            flex-direction: row;
            gap: 20px;
            flex-wrap: wrap;
            & .telemetry {
                display: flex;
                flex-direction: column;
                gap: 5px;
                border: 2px solid var(--lightGrey);
                border-radius: 20px;
                padding: 20px;
                width: fit-content;
                background-color: var(--darkGrey);
                & .categoryTitle {
                    color: var(--lightGrey);
                    font-size: 18pt;
                    padding: 0 0 10px 0;
                }
                & div {
                    display: flex;
                    flex-direction: row;
                    gap: 10px;
                    & .actionButtonsContainer {
                        padding-bottom: 10px;
                    }
                    & .title {
                        color: var(--white);
                        font-weight: 500;
                        flex-basis: 100%;
                        padding: 0 20px 0 0;
                    }
                    & .content {
                        color: var(--white);
                        font-weight: 200;
                        text-wrap: nowrap;
                    }
                    & .content.good {
                        color: var(--goodState);
                        font-weight: 500;
                    }
                    & .content.warn {
                        color: var(--warnState);
                        font-weight: 500;
                    }
                    & .content.error {
                        color: var(--errorState);
                        font-weight: 500;
                    }
                }
            }
        }
    }
}

.applyBlurAnim_In {
    -webkit-animation-name: contentBlurAnim_in;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-name: contentBlurAnim_in;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.applyBlurAnim_Out {
    -webkit-animation-name: contentBlurAnim_out;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-name: contentBlurAnim_out;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.modalBox-dropshaddow {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, .5);
    justify-content: center;
}

.showModalDropShaddow {
    -webkit-animation-name: modalboxDropShaddowAnim_in;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-name: modalboxDropShaddowAnim_in;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.closeModalDropShaddow {
    -webkit-animation-name: modalboxDropShaddowAnim_out;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-name: modalboxDropShaddowAnim_out;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.modalBox {
    margin: auto;
    padding: 30px;
    width: 40vw;
    min-width: 400px;
    max-width: 600px;
    height: auto;
    display: flex;
    gap: 30px;
    flex-direction: row;
    background-color: var(--subBackground);
    border-radius: 20px;
    -webkit-box-shadow: 0px 0px 80px 10px #000000;
    box-shadow: 0px 0px 80px 10px #000000;
}

.showModalWindow {
    -webkit-animation-name: modalboxAnim_in;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-name: modalboxAnim_in;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.closeModalWindow {
    -webkit-animation-name: modalboxAnim_out;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-name: modalboxAnim_out;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.modalIcon {
    height: 100%;
}

.modalContent {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.modalHeaderContainer {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.modalTitle {
    color: var(--lightGrey);
}

.modalBodyContainer {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 20px 10px 40px 0px;
    color: var(--white);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.5;
    white-space: pre-wrap;
    & ul {
        list-style: none;
        list-style-position: inside;
    }
    & li {
        text-indent: -25px;
        padding-left: 25px;
    }
    & li::before {
        display: inline-block;
        content: '';
        margin-right: 10px;
        width: 15px;
        height: 15px;
        vertical-align: text-top;
        background: var(--warnState);
        -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'15\' height=\'15\' viewBox=\'0 0 15 15\'%3E %3Cpath d=\'m12.14 8.753-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z\' /%3E%3C/svg%3E');
        mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'15\' height=\'15\' viewBox=\'0 0 15 15\'%3E %3Cpath d=\'m12.14 8.753-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z\' /%3E%3C/svg%3E');
    }
}

.modalFooterContainer {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: 15px;
}

.flex-container {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: normal;
    align-items: normal;
    align-content: normal;
    height: 100vh;
    width: 100vw;
    overflow: scroll;
}

.flex-items:nth-child(1) {
    display: block;
    flex-grow: 0;
    flex-shrink: 1;
    flex-basis: auto;
    align-self: auto;
    order: 0;
    background-color: var(--subBackground);
    padding: 35px;
    margin-bottom: 20px;
}

.flex-items:nth-child(2) {
    display: block;
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: auto;
    align-self: auto;
    order: 0;
    padding: 0px 30px;
}

.flex-items:nth-child(3) {
    display: block;
    flex-grow: 0;
    flex-shrink: 1;
    flex-basis: auto;
    align-self: auto;
    order: 0;
    padding: 25px 35px;
    color: var(--lightGrey);
    font-size: 14px;
    margin-top: 20px;
    text-align: center;
}

.header {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.pageTitle {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    flex-grow: 1;
    width: 30vw;
    max-width: 250px;
}

.body_container {
    display: flex;
    flex-direction: row;
    margin-top: 20px;
    gap: 10px;
}

.menu_side_bar {
    background-color: var(--subBackground);
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 300px;
    & div {
        display: flex;
        flex-direction: column;
        gap: 5px;
    }
    & div a {
        color: var(--white);
        font-size: 14pt;
        font-weight: 200;
        transition: .1s ease-in-out;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        padding: 18px;
        border-radius: 15px;
        height: 13px;
    }
    & div a:hover {
        background-color: var(--darkGrey);
    }
    & div a.selected {
        background-color: var(--darkGrey);
    }
    & .userInfo {
        display: flex;
        flex-direction: row;
        gap: 20px;
        align-items: center;
        transition: all .2s ease-in-out;
        border-radius: 15px;
        margin: -10px;
        padding: 15px;
    }
    & .userInfo:hover {
        background-color: var(--darkGrey);
        cursor: pointer;
    }
    & .userInfo.selected {
        background-color: var(--darkGrey);
        cursor: pointer;
    }
    & .userInfo .avatar {
        border-radius: 50%;
        height: 50px;
        width: 50px;
        border: 1px solid var(--white);
        overflow: hidden;
        object-fit: cover;
    }
    & .userInfo .user {
        display: flex;
        flex-direction: column;
    }
    & .userInfo .user .name {
        font-size: 14pt;
        font-weight: 400;
        color: var(--white);
    }
    & .userInfo .user .email {
        font-size: 12pt;
        font-weight: 200;
        color: var(--lightGrey);
    }
    & span.logout {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 8px;
        color: var(--s3cyellow);
    }
}

.main_content_area {
    padding: 20px;
    background-color: var(--subBackground);
    flex-grow: 1;
    display: flex;
    flex-basis: min-content;
    flex-direction: column;
    gap: 20px;
}

.main_content_area_vertical {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex-grow: 1;
}

.allSubscriptionServices {
    display: flex;
    flex-direction: row;
    gap: 20px;
    & .serviceOption {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        border: 2px solid var(--lightGrey);
        border-radius: 20px;
        padding: 20px;
        width: 200px;
        height: 400px;
        & h2 {
            text-align: center;
        }
        & h4 {
            text-align: center;
        }
    }
}

.outletGroups {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    width: calc(100vw - 500px);
}

.outletBubble {
    border: 2px solid var(--lightGrey);
    border-radius: 15px;
    padding: 20px;
    color: var(--white);
    font-size: 16px;
    font-weight: 700;
    display: flex;
    flex-direction: column;
    gap: 15px;
    align-items: center;
}

.highCap {
    position: relative;
    width: 0;
    height: 0;
    & svg {
        position: relative;
        top: -45px;
        right: -60px;
    }
}

.beta {
    display: none;
    width: 45px;
    text-align: center;
    font-weight: 600;
    border: 0.5px solid #3a82ff;
    margin: 15px 0px;
    padding: 5px 10px;
    border-radius: 5px;
    color: var(--white);
}

.connectionStatus {
    color: var(--lightGrey);
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 12px;
    width: 100px;
}

.connectionStatusText {
    margin-top: 10px;
}

table {
    border-spacing: 1;
    border-collapse: collapse;
    background: var(--darkGrey);
    border-radius: 10px;
    overflow: hidden;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

table * {
    position: relative
}

table td,
table th {
    padding-left: 8px
}

table thead tr {
    height: 60px;
    background: var(--background);
}

table tbody tr {
    height: 50px;
}

table tbody tr:last-child {
    border: 0
}

table td,
table th {
    text-align: left
}

table td.l,
table th.l {
    text-align: right
}

table td.c,
table th.c {
    text-align: center
}

table td.r,
table th.r {
    text-align: center
}

.table100-head th {
    font-size: 18px;
    color: var(--white);
    line-height: 1.2;
    font-weight: unset;
}

tbody tr {
    font-size: 15px;
    color: var(--lightGrey);
    line-height: 1.2;
    font-weight: unset;
    transition: .1s ease-in-out;
}

tbody tr:nth-child(even) {
    background-color: var(--subBackground);
}

tbody tr:hover {
    background-color: #2e2e2e;
    cursor: pointer
}

.tag {
    height: fit-content;
    width: fit-content;
    padding: 5px 10px;
    border-radius: 5px;
    text-align: center;
    line-height: initial;
    font-size: 12px;
}

.tag.blue {
    border: 1px solid var(--blue);
    background-color: rgba(0, 119, 255, 0.3);
    color: var(--white);
}

.tag.red {
    border: 1px solid var(--errorState);
    background-color: rgba(194, 42, 4, 0.3);
    color: var(--white);
}

.tag.green {
    border: 1px solid var(--goodState);
    background-color: rgba(21, 163, 59, 0.3);
    color: var(--white);
}

.tag.orange {
    border: 1px solid var(--warnState);
    background-color: rgba(191, 123, 4, 0.3);
    color: var(--white);
}

.column1 {
    width: 5px;
    padding-left: 40px;
    vertical-align: middle;
    line-height: 5px;
    cursor: default;
}

.column2 {
    width: 250px;
    vertical-align: middle;
}

.column3 {
    width: 150px;
    vertical-align: middle;
}

.column4 {
    width: 60px;
    text-align: right;
    vertical-align: middle;
    padding-right: 40px;
}

h1 {
    color: var(--lightGrey);
    font-weight: normal;
}

h2 {
    color: var(--white);
    font-weight: normal;
}

h3 {
    color: var(--lightGrey);
    font-weight: normal;
    font-size: 16px;
    line-height: 1.5;
}

h4 {
    color: var(--lightGrey);
    font-weight: normal;
    font-size: 12px;
    line-height: 1.5;
}

.divider {
    font-size: 17px;
    color: var(--lightGrey);
    display: flex;
    align-items: center;
}

.divider::after {
    flex: 1;
    content: '';
    padding: 0.5px;
    background-color: var(--lightGrey);
    margin: 0px 15px;
}

.settingsFields {
    margin: 20px 0px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.formElement {
    display: flex;
    align-items: stretch;
    gap: 10px;
    transition: all .2s ease;
    padding: 15px 20px 0px 0px;
}

.formElement.row {
    flex-direction: row;
}

.formElement.row.gap50 {
    gap: 50px;
}

.formElement.column {
    flex-direction: column;
}

.formElement.column.w300 {
    width: 300px;
}

.formElementLabel {
    color: var(--lightGrey);
    font-size: 15px;
    font-weight: normal;
}

.formElementLabel.subtext {
    color: var(--warnState);
    font-size: 11px;
    font-weight: normal;
    margin-top: -8px;
}

.formFloatingLabelRight {
    position: relative;
    height: 35px;
    line-height: 35px;
    border: 2px solid var(--lightGrey);
    border-radius: 0px 7px 7px 0px;
    background: var(--lightGrey);
    color: var(--white);
    font-weight: bold;
    font-size: 14px;
    padding: 0px 8px;
    transition: all .2s ease;
}

.formElement input[type='number']:focus+span {
    border: 2px solid var(--goodState);
    background-color: var(--goodState);
}

.inputWithFloatLeft {
    border-radius: 0px 7px 7px 0px;
}

.inputWithFloatRight {
    border-radius: 7px 0px 0px 7px;
}

.inputWithNoFloat {
    border-radius: 7px;
}

.radioGroupContainer {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
}

.radioGroupContainer input[type='radio'] {
    display: none;
}

.radioGroupContainer label {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border: 2px solid #0d0d0d;
    border-radius: 20px;
    color: #FFFFFF;
    font-size: 18px;
    font-weight: 600;
    padding: 20px 30px;
    width: 250px;
    cursor: pointer;
    transition: all .4s ease;
}

.radioGroupContainer label:hover {
    background-color: #1b1b1b;
}

.radioGroupContainer span {
    color: #7d7d7d;
    font-size: 16px;
    font-weight: 300;
}

.radioGroupContainer input[type='radio']:checked+label {
    background-color: #bf7b04;
    color: #1b1b1b;
    & span {
        color: #212121;
    }
}

input[type='checkbox'] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
    margin: 10px 0px;
}

input[type='checkbox']:focus {
    outline: 0;
}

.toggleSwitch {
    height: 32px;
    width: 52px;
    border-radius: 16px;
    display: inline-block;
    position: relative;
    margin: 0;
    border: 2px solid var(--errorState);
    background: var(--subBackground);
    ;
    transition: all .2s ease;
}

.toggleSwitch::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: white;
    box-shadow: 0 1px 2px var(--lightGrey);
    transition: all .2s cubic-bezier(.5, .1, .75, 1.35);
}

.toggleSwitch:checked {
    border-color: var(--goodState);
    background-color: var(--goodState);
}

.toggleSwitch:checked::after {
    transform: translatex(20px);
}

.formField {
    border: 2px solid var(--lightGrey);
    background: var(--subBackground);
    ;
    transition: all .2s ease;
    color: var(--white);
    font-weight: bold;
    font-size: 14px;
    padding: 0px 8px;
}

.formField:focus {
    border-color: var(--goodState);
}

a {
    text-decoration: none;
}

a.button {
    padding: 10px 15px;
    border-radius: 10px;
    font-size: 16px;
    transition: border 0.15s ease-in-out, color 0.15s ease-in-out, background-color 0.15s ease-in-out;
}

button {
    padding: 10px 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid;
    border-radius: 10px;
    font-size: 16px;
    background: transparent;
    transition: border 0.15s ease-in-out, color 0.15s ease-in-out, background-color 0.15s ease-in-out;
    text-decoration: none;
}

.btn_grey_outline {
    border-color: var(--lightGrey);
    color: var(--lightGrey);
}

.btn_grey_outline:hover {
    border-color: var(--white);
    color: var(--white);
    cursor: pointer;
}

.form_btn {
    background-color: rgba(var(--s3cyellowRGBA), 1);
    color: var(--subBackground);
    font-weight: 500;
    width: 100%;
    padding: 15px 25px;
    border: none;
    justify-content: center;
}

.form_btn.w200 {
    width: 200px !important;
}

.form_btn.smallpadding {
    padding: 8px 12px !important;
}

.form_btn:hover {
    background-color: rgba(var(--s3cyellowRGBA), 0.65);
    cursor: pointer;
}

.form_btn:disabled,
.form_btn[disabled] {
    background-color: rgba(var(--s3cyellowRGBA), 1);
    opacity: .3;
    cursor: default;
}

.btn_orange {
    border-color: var(--warnState);
    background-color: var(--warnState);
    color: var(--subBackground);
}

.btn_orange:hover {
    opacity: 90%;
    cursor: pointer;
}

.btn_green {
    border-color: var(--goodState);
    background-color: var(--goodState);
    color: var(--subBackground);
}

.btn_green:hover {
    opacity: 90%;
    cursor: pointer;
}

.btn_red {
    border-color: var(--errorState);
    background-color: var(--errorState);
    color: var(--subBackground);
}

.btn_red:hover {
    opacity: 90%;
    cursor: pointer;
}

.rowContainer {
    margin: 15px 0px;
    display: flex;
    flex-direction: row;
    gap: 5px;
    justify-content: space-between;
}

.columnContainer {
    margin: 15px 0px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    justify-content: space-between;
}

.liveDataIcon {
    width: 25px;
    display: flex;
}

.acMains {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--lightGrey);
    gap: 10px;
    font-weight: 400;
}

.dcInput {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--lightGrey);
    gap: 10px;
    font-weight: 400;
}

.dcOutletGroup {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--lightGrey);
    gap: 10px;
    font-weight: 400;
}

.loader {
    width: 5px;
    height: 5px;
    border: 1px solid var(--subBackground);
    border-bottom-color: var(--white);
    border-radius: 50%;
    display: block;
    box-sizing: border-box;
    animation: loadingSpinner 0.75s linear infinite;
    padding: 7px;
}

.spinner {
    width: 50px;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px solid var(--errorState);
    animation: spinner-1 0.8s infinite linear alternate, spinner-2 1.6s infinite linear;
}

@keyframes spinner-1 {
    0% {
        clip-path: polygon(50% 50%, 0 0, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%)
    }
    12.5% {
        clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%)
    }
    25% {
        clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 100% 100%, 100% 100%)
    }
    50% {
        clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%)
    }
    62.5% {
        clip-path: polygon(50% 50%, 100% 0, 100% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%)
    }
    75% {
        clip-path: polygon(50% 50%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 50% 100%, 0% 100%)
    }
    100% {
        clip-path: polygon(50% 50%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 0% 100%)
    }
}

@keyframes spinner-2 {
    0% {
        transform: scaleY(1) rotate(0deg)
    }
    49.99% {
        transform: scaleY(1) rotate(135deg)
    }
    50% {
        transform: scaleY(-1) rotate(0deg)
    }
    100% {
        transform: scaleY(-1) rotate(-135deg)
    }
}


/* Small devices such as large phones (640px and up) */

@media only screen and (max-width: 820px) {
    .loginFormContainer {
        flex-direction: column;
        margin: 10px 0px;
        width: 90%;
    }
    .loginFormContainer .logoContainer {
        flex-direction: row;
        width: auto;
        padding: 20px;
        justify-content: center;
    }
    .loginFormContainer .formContainer {
        padding: 30px;
    }
    .loginFormContainer .formContainer .spacerGrow {
        min-height: 50px;
    }
    .loginFormContainer .formContainer h1 {
        text-align: left;
    }
    .projectSyncLogo {
        width: 200px;
    }
    .loginView .loginFormContainer {
        margin: 30px;
    }
    table {
        display: block;
    }
    table>*,
    table tr,
    table td,
    table th {
        display: block;
    }
    table thead {
        display: none;
    }
    table tbody tr {
        height: auto;
        padding: 37px 0;
    }
    table tbody tr td {
        padding-left: 40% !important;
        margin-bottom: 24px;
    }
    table tbody tr td:last-child {
        margin-bottom: 0;
    }
    table tbody tr td:before {
        font-size: 14px;
        color: #999;
        line-height: 1.2;
        font-weight: unset;
        position: absolute;
        width: 40%;
        left: 30px;
        top: 0;
    }
    table tbody tr td:nth-child(1):before {
        content: "Opened";
        font-size: 14px;
        line-height: initial;
    }
    table tbody tr td:nth-child(2):before {
        content: "Subject";
        font-size: 14px;
        line-height: initial;
    }
    table tbody tr td:nth-child(3):before {
        content: "Device";
        font-size: 14px;
        line-height: initial;
        padding: 5px 0;
    }
    table tbody tr td:nth-child(4):before {
        content: "Ticket Created";
        font-size: 14px;
        line-height: initial;
    }
    table tbody tr td:nth-child(5):before {
        content: "View Ticket";
        font-size: 14px;
        line-height: initial;
    }
    .column4,
    .column5,
    .column6 {
        text-align: left;
    }
    .column4,
    .column5,
    .column6,
    .column1,
    .column2,
    .column3 {
        width: 100%;
        line-height: normal;
    }
    tbody tr {
        font-size: 14px;
    }
}


/* Medium devices such as tablets (768px and up) */

@media only screen and (min-width: 821px) {
    .loginFormContainer {
        flex-direction: row;
        width: 100%;
    }
    .loginFormContainer .logoContainer {
        flex-direction: column;
        width: 350px;
    }
}