@charset "UTF-8";

@media only screen and (max-width: 780px) {
    #headerImagesAlignment > a > h1{
        font-size: 2rem !important;
    }

    .servicesGrid{
        grid-template-columns: repeat(2, 1fr) !important;
        width: 100% !important;
        margin-left: 0 !important;
    }

    .flexContainerDetails{
        grid-column: 1 / span 3;
    }

    /* panelGrids for login, register and reset password*/
    .panelGridLogin, .panelGridRegister, .panelGridResetCredentialsLoggedIn{
        width: 100% !important;
    }
}

@media only screen and (max-width: 1060px) {
    .accountInfoDiv{
        display: flex !important;
        flex-direction: column;
        align-items: center;
    }

    .accountInfoDiv > div > div{
        margin-bottom: 2rem;
    }

    .flexServicesPage{
        width: 100% !important;
        margin-left: 0 !important;
        grid-gap: 0 !important;
    }

    .servicePriceTag{
        padding: unset !important;
    }
}

@media only screen and (max-width: 1380px) {
    .accountInfoDiv{
        width: unset !important;
        margin-left: unset !important;
    }

    .accountInfoCustomerManagement{
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    .accountInfoCustomerManagement > div{
        margin-bottom: 1em;
    }

    .ui-confirm-popup-no{
        background-color: red;
    }
}

:root {
    /*font-size: 0.8em;*/
    box-sizing: border-box;
    --main-font: "helvetica, sans-serif";
    --ptb-blue: #009CD1;

    --primary: var(--ptb-blue);
    --secondary: #007198;
    --highlight: #009bce;

    /* High-contrast colors */
    --ptb-contrast-blue: #004F95;
    --ptb-contrast-grey: #58595B;

    --tracim-dark-blue: #7D97BF;
    --ptb-blue-60: #6576A6;
    --ptb-blue-30: #B0B5D1;
    --ptb-blue-15: #D6D8E7;
    --ptb-blue-7: #f7f8ff;
    --input-color: #ECEDF4;
    --input-frame-color: #A8A8A8;
    --input-width: 20em;
    --input-padding: 0.2em 0.5em 0.2em 0.5em;
    --button-color: #5177A6;
    --button-color-disabled: #4391d0;
    --menu-hover: #007198;
    --very-dark-gray: #777;
    --icon-color-no: #F25A46;
    --icon-color-yes: #8DD86A;

    /* Most important colors for usability */
    --button-primary: var(--primary);
    --button-primary-hover: #03B0EB;
    --button-secondary: #FFF;
    --button-secondary-border: #CCC;
    --button-secondary-hover: #EEE /*#026385*/;
    --button-secondary-text: #000;
    --header-and-footer-background: var(--primary);
    --header-and-footer-foreground: #FFF;

    --drop-shadow: 0px 1rem 2rem 0px rgba(0,0,0,0.1);

    --animation-speed: 0.25s;
}

*,
::before,
::after {
    box-sizing: inherit;
}

html {
    font-family: var(--main-font);
}

/* Structural HTML elements */

/* HEADER */
header {
    position: sticky;
    top: 0;
    background: var(--header-and-footer-background);
    border-color: var(--header-and-footer-background);
    text-align: center;
}

#headerImagesAlignment{
    display: flex;
    justify-content: space-between;
    height: 4rem;
    z-index: 100;
}

#headerImagesAlignment > a{
    display: flex;
    text-decoration: none;
    color: var(--primary);
    text-decoration: none;
    font-weight: bold;
}

#headerImagesAlignment > a > h1{
    margin: auto -0.5rem;
    transform: skewX(-5deg);
    font-size: 2.5rem;
    transition: all var(--animation-speed);
}

#headerImagesAlignment > a > img{
    margin: 0.5rem 1.5rem;
}

/* BODY */
body {
    height: 100%;
    margin: auto;
    font-family: Arial, Helvetica, sans-serif;
    /*
    min-width: 300px;
    -moz-box-shadow: 0 0 5px #888;
    -webkit-box-shadow: 0 0 5px #888;
    box-shadow: 0 0 5px #888;
    */
}

/* SECTION */
section {
    border: none;
    padding: 1em 1em 4em 1em;
    overflow: auto;
}

/* FOOTER */
footer {
    z-index: 100;
    position: fixed;
    bottom: 0;
    width: 100%;
    background-color: var(--primary);
    text-align: center;
    padding: 0.5em;
}

/* Color adjustments */
.ui-button-primary, .ui-button{
    background-color: var(--button-primary) !important;
    border-color: var(--button-primary) !important;
    color: white !important;
}
.ui-button-primary:hover, .ui-button:hover{
    background-color: var(--button-primary-hover) !important;
    border-color: var(--button-primary-hover) !important;
    color: white !important;
}
.ui-button-secondary{
    background-color: var(--button-secondary) !important;
    border-color: var(--button-secondary-border) !important;
    color: var(--button-secondary-text) !important;
}
.ui-button-secondary:hover{
    background-color: var(--button-secondary-hover) !important;
    border-color: var(--button-secondary-hover) !important;
    color: var(--button-secondary-text) !important;
}
.ui-message.ui-message-info{
    background: #009CD155 !important; /* Slightly transparent (HEX with alpha) */
    border-color: var(--primary) !important;
}
.ui-wizard-step-title.ui-state-highlight{
    background: #009CD155 !important;
}

.ui-button-danger{
    background-color: #D32F2F !important;
    border-color: #D32F2F !important;
    color: #FFF !important;
}

.ui-button-danger:hover{
    background-color: #C02929 !important;
    border-color: #C02929 !important;
}

.ui-button-help{
    border-color: #9c27b0 !important;
    background-color: #9c27b0 !important;
}

.ui-button-help.ui-state-hover{
    border-color: #8c239e !important;
    background-color: #8c239e !important;
}

.ui-button-help.ui-state-active{
    border-color: #7d1f8d !important;
    background-color: #7d1f8d !important;
}



/* All kinds of Popups */

/* "Customer management" popup */
.customerManagementPopup{
    width: 40% !important;
    left: 30% !important;
}

/* Popup "Session will expire..." */
#sessionReminderPopup{
    position: fixed;
    top: -10em;
    left: 50%;
    transform: translateX(-50%);
    background: #ffecb3;
    border: 1px solid #ffc107;
    border-width: 0 0 0 6px;
    border-radius: 4px;
    transition: all var(--animation-speed);
    z-index: 10000;
    padding: 1em;
    display: flex;
    flex-direction: row;
    align-items: center;
}

#sessionReminderPopup > i{
    margin-right: 0.5em;
    font-size: 2em;
}

#sessionReminderPopup > p, #sessionReminderPopup > i{
    color: #7f6003;
}

#sessionReminderPopup.idle{
    top: 0.5em;
}

/* Confirmation popup arrow fix*/
.ui-confirm-popup:before, .ui-confirm-popup:after{
    left: calc(var(--overlayArrowLeft) + 1.25rem) !important;
}

.activationPopup:before, .activationPopup:after{
    left: calc(var(--overlayArrowLeft) + .7rem) !important;
}




/* Remove margin to align the message box properly and add flex, so the icon would have its own "column" */
.ui-message{
    margin: 0 !important;
    display: flex !important;
}

textarea{
    min-height: 42px;
}


/* Table */
table {
    width: 100%;
    border: 1px solid #EBEBEB;
    padding: 1em;
}

/* remove outline when a table column is clicked */
td:focus{
    outline-width: 0px !important;
}

.ui-datatable-data > tr > td{
    padding: 0.35rem 0.5rem !important;
    border: none !important;
}

.ui-datatable-data > tr:nth-child(even){
    background: #F8F9FA !important;
}

.ui-datatable-data > tr:nth-child(even).rowOrderInactive{
    background: #eef0d4 !important;
}

.ui-datatable-data > tr:nth-child(odd).rowOrderInactive{
    background: #fdffe1 !important;
}

.ui-datatable-data > tr:nth-child(even).rowOrderMissingPayment {
    background: #ffd1c2 !important;
}

.ui-datatable-data > tr:nth-child(odd).rowOrderMissingPayment {
    background: #ffc2af !important;
}

tr.ui-datatable-state-hover > td{
    background: rgba(255,255,255,0.3);/*#e9ecef;*/
}

.tableButton, .tableButtonIconOnly{
    background-color: #E8E8E8 !important;
    border-color: #E8E8E8 !important;
    color: black !important;
}
.tableButton:hover, .tableButtonIconOnly:hover{
    background-color: #F2F4F5 !important;
    border-color: #F2F4F5 !important;
    color: #6E8A91 !important;
}

.tableButtonIconOnly{
    width: 1.75rem !important;
    height: 1.75rem !important;
    margin-right: .5rem !important;
}

.tableButtonTextCombo{
    display: flex;
    align-items: center;
    margin-top: .2rem;
}



.accountInfoDiv{
    width: 80%;
    margin-left: 10%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 1em;
    transition: all var(--animation-speed);
}

.accountInfoDiv > .leftRow > div > div:last-of-type > div{
    margin-bottom: 3.5rem;
}

.accountInfoDiv > .centerRow{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.accountInfoDiv > .centerRow.stretch > div > div:last-of-type{
    padding-bottom: 7.2rem;
}

.accountInfoDiv > div:last-of-type{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.accountInfoDiv > .rightRow > div:last-of-type > div:last-of-type{
    min-height: 8rem;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
}

.accountInfoCustomerManagement{
    display: flex;
    justify-content: space-between;
}

.accountInfoCustomerManagement > div{
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.accountInfoCustomerManagement > div > label{
    margin-right: 1em;
}

/* Fix to remove the asterisks of some optional fields */
label.removeAsterisk > .ui-outputlabel-rfi {
    display: none;
}

/* Button centered in a table field */
.centeredButton, .centeredButtons{
    margin-left: 50% !important;
    transform: translateX(-50%);
    width: 10rem;
}

.centeredButtons{
    width: 20%;
    display: flex;
    height: 2.5em;
}

/* Everything about inputs (text fields, country selector etc.) */
.form-input-group{
    margin: 1rem;
}

.form-input-group:first-of-type{
    margin: 0;
}

.form-input-group > input{
    color: #495057;
    background: #FFF;
    padding: 0.5rem;
    border: 1px solid #CED4DA;
    outline: none;
    font-size: 1rem;
    border-radius: 4px;
    transition: 0.2s;
    -webkit-appearance: none;
    appearance: none;
}

.form-input-group > input:hover, .form-input-group > input:focus{
    border-color: #2196F3;
}

.form-input-group > input:focus{
    outline: none;
    box-shadow: 0 0 0 0.2em #A6D5FA;
}

.form-input-group > input:disabled{
    opacity: 0.6;
    cursor: default !important;
    border-color: #CED4DA;
    pointer-events: none;
}

.form-input-group > *{
    display: block;
}

.selectOneLabel{
    display: block;
}

.form-input-group > .ui-selectonemenu{
    margin-bottom: 1.25rem;
}

input {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: 0;
    border: 1px solid var(--input-frame-color);
    width: var(--input-width);
    background-color: var(--ptb-blue-15);
}

select{
    padding: 0.25rem;
    border-radius: 0.25rem;
    border: 0px;
    background-color: #E3F2FD;
    margin-top: 2px !important;
    height: 2.286em;
}

option {
    background: white;
    font-size: 90% !important;
    border-top: 1px solid #444;
    padding: .3em 1em .3em 1em;
}

input[type=checkbox] {
    width: 1.2em;
    height: 1.2em;
}

input[type=checkbox]:checked::after {
    content: '\2714';
    padding-left: 0.2em;
}
/*
input[type=button], input[type=submit], button {
    font-size: 100%;
    width: 8em;
    color: white;
    background-color: var(--button-color);
    border: 1px solid var(--input-frame-color);

}

input[type=button]:hover, input[type=submit]:hover {
    filter: brightness(120%);
}*/

input[type=file]{
    height: 3.5rem;
    display: flex;
    background: transparent;
    border: none;
    font-size:  1rem;
    padding-left: 1rem;
    padding-top: 1rem;
    cursor: pointer;
}

input[type=file]:after{
    content:"\1F5CB\ Choose file";
    position: relative;
    top: -1.9rem;
    width: 8.4rem;
    color: #FFF;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    text-align: center;
    font-size: 1rem;
    background-color: #2196F3;
    border: 0.2rem solid #2196F3;
    transition: all 0.2s;
}

input[type=file]:hover:after{
    content:"\1F5CB\ Choose file";
    background-color: #0D89EC;
    border: 0.2rem solid #0D89EC;
}

input[type=file]:active:after{
    content:"\1F5CB\ Choose file";
    background-color: #0B89EC;
    border: 0.2rem solid #0B89EC;
    box-shadow: 0 0 0 0.2em #A6D5FA;
}

/* Line height of large text boxes to make it easier on the eyes */
.ui-widget{
    line-height: 1.5rem;
}

.serviceInfo .serviceInfoText {
    display: flex;
}
.serviceInfo .serviceInfoText .serviceInfoImg {
    max-width: 150px;
}
.serviceInfo .serviceInfoText .serviceInfoImg img {
    display: block;
    width: 100%;
    height: auto;
}
.serviceInfo .serviceInfoDownloadTable {
    width: 100%;
    padding: 0;
}
.serviceInfo .serviceInfoDownloadTable td {
    font-size: medium;
    border: 1px solid var(--secondary);
}

.footerLinks{
    text-decoration: none;
    vertical-align: middle;
    color: white;
    font-size: 0.9em;
}

.footerLinkSpacer{
    display: inline-block;
    width: 2rem;
    font-size: 5px !important;
    vertical-align: middle;
    color: white;
}

.servicesPagePriceIcon{
    font-size: 2em;
    vertical-align: middle;
}

.servicesPagePriceIcon.pi-check, .servicesPagePriceIcon.pi-eye{
    color: var(--icon-color-yes);
}

.servicesPagePriceIcon.pi-times, .servicesPagePriceIcon.pi-eye-slash{
    color: var(--icon-color-no);
}

.servicePriceTag{
    display: flex;
    justify-content: space-around;
    padding: 0 37%;
}

servicesPagePriceText{
    padding-left: 1em;
    vertical-align: middle;
    color: black;
}
.ui-paginator-bottom{
    border: none;
}

/* Needs to be applied on any element or on a column to make the underlying span and its password's input field stretch to full width */
.fullWidth, .fullWidth > span.ui-password, .fullWidth > span.ui-password > .ui-password-panel, .fullWidth > span.ui-password > .ui-inputfield, .fullWidth > input.ui-inputfield, span:has(> input.fullWidth){
    width: 100% !important;
    margin: 0;
}

/* panelGrids for login, register and reset password*/
.panelGridLogin, .panelGridRegister, .panelGridResetCredentialsLoggedIn{
    margin: auto;
    transition: width var(--animation-speed);
}

.panelGridLogin{
    width: 35% !important;
}
.panelGridResetCredentialsLoggedIn{
    width: 55%;
}

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

/* Forgot pw/login buttons and register button are closer together*/
.panelGridLogin > table > tbody > tr:nth-last-child(2) > td{
    padding-bottom: 0;
}

.panelGridRegister{
    width: 60%;
}

.registerLastStep > table{
    width: auto !important;
    margin: auto !important;
}

.panelGridLogin > table, .panelGridRegister > table, .panelGridResetCredentialsLoggedIn > table, .cookiePolicyBorderRemoval > table, .removePanelGridBorders > table{
    border: none;
}

.panelGridLogin > table > tbody > tr > td, .panelGridRegister > table > tbody > tr > td, .panelGridResetCredentialsLoggedIn > table > tbody > tr > td, .cookiePolicyBorderRemoval > table > tbody > tr > td, .removePanelGridBorders > table > tbody > tr > td{
    border: none !important;
}

.cookiePolicyBackground{
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 100;
    background-color: rgba(0, 0, 0, 0.5);
}

.loadingDialog > div.ui-dialog-titlebar{
    font-size: 1rem;
    font-weight: normal;
}

.loadingDialog > div.ui-dialog-content{
    display: flex;
    align-items: center;
    justify-content: center;
}

.loadingDialog > div.ui-dialog-content > i{
    font-size: 4rem;
    color: var(--primary);
    margin: auto;
}

.wizardPanel > div:first-child{
    display: none !important;
}

.wizardPanel > div:last-child{
    border-top: 1px solid #DEE2E6 !important;
    border-top-right-radius: 4px;
}

.ui-wizard-step-titles{
    cursor: default;
}

/* The following makes the wizard steps move closer to the content box */
.ui-wizard-step-title{
    border-bottom: 0px !important;
}

.ui-wizard-step-title:first-child{
    border-bottom-left-radius: 0 !important;
}

.ui-wizard-step-title:last-child{
    border-bottom-right-radius: 0 !important;
}

.ui-wizard-content{
    margin-top: 0 !important;
}

.legalInlineButton{
    margin-left: 0.5rem !important;
}

.gtcDownloadButton{
    min-width: 19rem;
    margin: 1rem auto auto auto !important;
    left: 50%;
    transform: translateX(-50%);
}

.ui-icon{
    line-height: 1rem !important;
}

.ui-fieldset{
    margin: auto;
    margin-top: 1.5rem;
    max-width: 40rem;
}

.ui-fieldset:last-of-type{
    margin-bottom: 1.5rem;
}

.ui-fieldset-legend{
    padding: 0.25rem 0.5rem !important;
}

.primefacesButton{
    padding: 0.5rem 1rem 0.5rem 2rem;
    color: #FFF;
    cursor: pointer;
    background-color: #2196F3;
    border: 1px solid #2196F3;
    margin: 0;
    outline: 0 none;
    border-radius: 4px;
    transition: all 0.2s;
    font-size: 1rem;
}

.primefacesButton:hover{
    background-color: #0D89EC;
    border: 1px solid #0D89EC;
}

.primefacesButton:active{
    background-color: #0B7AD1;
    border: 1px solid #0B7AD1;
    box-shadow: 0 0 0 0.2em #A6D5FA;
}

.wizardButtons{
    margin-top: 2rem;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
}

.wizardButtons > button{
    min-width: 10rem;
}

.fieldsetCommunicationCard{
    width: 27rem;
    margin: auto;
    margin-top: 1rem;
}
.fieldsetCommunicationCard > legend{
    text-align: center;
}

.communicationCardLarge{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(6, 1fr);
}

.communicationCardLarge > span:nth-child( 1){ grid-area: 1/1/2/2;}
.communicationCardLarge > span:nth-child( 2){ grid-area: 1/2/2/3;}
.communicationCardLarge > span:nth-child( 3){ grid-area: 2/2/3/3;}
.communicationCardLarge > span:nth-child( 4){ grid-area: 3/1/4/2;}
.communicationCardLarge > span:nth-child( 5){ grid-area: 3/2/4/3;}
.communicationCardLarge > span:nth-child( 6){ grid-area: 4/1/5/2;}
.communicationCardLarge > span:nth-child( 7){ grid-area: 4/2/5/3;}
.communicationCardLarge > span:nth-child( 8){ grid-area: 5/1/6/2;}
.communicationCardLarge > span:nth-child( 9){ grid-area: 6/1/7/2;}
.communicationCardLarge > span:nth-child(10){ grid-area: 5/2/6/3;}

.communicationCardSmall{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
}

.communicationCardSmall > span:nth-child(1){grid-area: 1/1/2/2;}
.communicationCardSmall > span:nth-child(2){grid-area: 1/2/2/3;}
.communicationCardSmall > span:nth-child(3){grid-area: 2/1/3/2;}
.communicationCardSmall > span:nth-child(4){grid-area: 2/2/3/3;}

.communicationCardTiny{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(1, 1fr);
}

.communicationCardSmall > span:nth-child(1){grid-area: 1/1/2/2;}
.communicationCardSmall > span:nth-child(2){grid-area: 1/2/2/3;}

.instructionButton{
    margin: 0 !important;
    border: none !important;
    color: var(--secondary) !important;
    background: transparent !important;
    padding-right: 0.5rem !important;
}

.instructionButton:hover{
}

.ui-button-text-icon-left.instructionButton > span:last-of-type{
    padding: 0 0 0 2rem !important;
}

.ui-button-text-icon-right.instructionButton > span:last-of-type{
    padding: 0 2rem 0 0 !important;
}

.ui-state-disabled.instructionButton{
    color: #3E3E3E !important;
}

.ui-button:disabled {
    background-color: var(--button-color-disabled);
    border-color: var(--button-color-disabled);
}

.textInfoButton{
    font-size: 0.7rem;
    color: var(--primary);
}

.dataTableRemoveBorder{
    border: none;
}

.linkButtonNoDecoration > *{
    text-decoration: none;
}

.flatLinkButtonBackground:hover{
    background-color: rgba(96, 125, 139, .04) !important;
    color: #607d8b !important;
    border-color: transparent !important;
}

.flatLinkButtonBackground:active{
    background-color: rgba(96, 125, 139, .16) !important;
    color: #607d8b !important;
    border-color: transparent !important;
}

/* Tooltip header and footer paragraphs */

p.tooltipContentHeader{
    padding: 0 0.5rem 0.5rem 0.5rem;
}

p.tooltipContentFooter{
    padding: 0.5rem;
}

p.tooltipContentFooter > *{
    vertical-align: middle;
}

p.tooltipContentFooter > *:first-child{
    margin-right: 0.4rem;
}

/* LEGACY: Table inside tooltip */

div.tooltipContentTable > div.ui-tooltip-text > table.ui-panelgrid > tbody > tr.ui-widget-content > td.ui-panelgrid-cell.label {
    width: 2rem;
    height: auto;
}

div.tooltipContentTable > div.ui-tooltip-text > table.ui-panelgrid > tbody > tr.ui-widget-content > td.ui-panelgrid-cell{
    background: transparent !important;
    border: 1px solid transparent;
    border-bottom-color: rgba(255, 255, 255, 0.2);
    color: #FFF !important;
    padding: 0.3rem 0.75rem !important;
    font-size: 0.9rem;
}

/* PanelGrid inside tooltip */

div.tooltipContentTable > div.ui-tooltip-text > div.ui-panelgrid > div.ui-panelgrid-content > div.ui-g > div.ui-panelgrid-cell.label{
    width: 2rem;
    height: auto;
}

div.tooltipContentTable > div.ui-tooltip-text > div.ui-panelgrid > div.ui-panelgrid-content > div.ui-g > div.ui-panelgrid-cell{
    background: transparent !important;
    border: 1px solid transparent;
    border-bottom-color: rgba(255, 255, 255, 0.2);
    color: #FFF !important;
    padding: 0.3rem 0.75rem !important;
    font-size: 0.9rem;
}

.customerInfoTableContainer{
    padding: 0 2rem;
}

.customerInfoTableContainer > table > tbody > tr > td{
    border: 1px solid transparent !important;
    border-bottom-color: rgba(0, 0, 0, 0.1) !important;
}

/* Curly brace */
.curly-bracket-container{
    position: relative;
    margin: 20px 0;
}

.curly-bracket-container .brace-right{
    top: 0;
    left: 0;
    float: left;
    width: 20px;
    height: 100%;
    position: absolute;
}

.curly-bracket-container .brace-right .brace-top, .curly-bracket-container .brace-right .brace-bottom{
    position: absolute;
    width: 10px;
    height: 50%;
    left: 10px;
}

.curly-bracket-container .brace-right .brace-top{
    top: 0;
}

.curly-bracket-container .brace-right .brace-bottom{
    top: 50%;
}

.curly-bracket-container .brace-right .brace-top:before, .curly-bracket-container .brace-right .brace-top:after, .curly-bracket-container .brace-right .brace-bottom:before, .curly-bracket-container .brace-right .brace-bottom:after{
    content: "";
    height: 50%;
    width: 10px;
    display: block;
    position: absolute;
    border-color: #999 !important;
}

.curly-bracket-container .brace-right .brace-top:before{
    top: 0;
    left: -7px;
    border-right: 3px solid black;
    -webkit-border-top-right-radius: 10px;
    -moz-border-radius-topright: 10px;
    border-top-right-radius: 10px;
}

.curly-bracket-container .brace-right .brace-top:after{
    bottom: 0;
    border-left: 3px solid black;
    -webkit-border-bottom-left-radius: 10px;
    -moz-border-radius-bottomleft: 10px;
    border-bottom-left-radius: 10px;
}

.curly-bracket-container .brace-right .brace-bottom:before{
    top: 0;
    border-left: 3px solid black;
    -webkit-border-top-left-radius: 10px;
    -moz-border-radius-topleft: 10px;
    border-top-left-radius: 10px;
}

.curly-bracket-container .brace-right .brace-bottom:after{
    bottom: 0;
    left: -7px;
    border-right: 3px solid black;
    -webkit-border-bottom-right-radius: 10px;
    -mod-border-radius-bottomright: 10px;
    border-bottom-right-radius: 10px;
}

.curly-bracket-container .content{
    display: flex;
    margin-left: 3rem;
    height: 100%;
    justify-content: space-around;
    flex-direction: column;
}

.viewTestDataInBrowserPanel{
    width: 50%;
}

.viewTestDataInBrowserPanel > div:nth-child(2){
    padding: 0;
}

.sidebarContainerRight, .sidebarContainerLeft{
    padding: 0;
    width: 50%;
    display: flex;
    flex-direction: row;
    align-content: stretch;
}

/*
.sidebarContainerUpper > .viewTestDataInBrowserPanel, .sidebarContainerLower > .viewTestDataInBrowserPanel{
}
*/

.sidebarContainerUpper, .sidebarContainerLower{
    display: flex;
    flex-direction: row;
    overflow: hidden;
    transition: all var(--animation-speed);
}

.sidebarContainerUpper > .viewTestDataInBrowserPanel > div:nth-child(2), .sidebarContainerLower > .viewTestDataInBrowserPanel > div:nth-child(2){
    overflow-y: scroll;
    height: calc(100% - 3.6rem);
}

.sidebarContainerUpper > .viewTestDataInBrowserPanel > span, .sidebarContainerLower > .viewTestDataInBrowserPanel > span{
    /*overflow-y: scroll;*/
    margin: 0;
    padding: 0.5rem;
}

.selectableDataTableNoPointer > tbody > tr{
    cursor: auto !important;
}

.servicesGrid{
    width: 80%;
    margin-left: 10%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 8px;
    grid-row-gap: 8px;
    transition: all var(--animation-speed);
}

/*.servicesGrid > .ui-card > .ui-card-body > .ui-card-content{
    height: 6em;
}*/

.servicesGrid > div > .ui-card{
    height: 100%;
}

.servicesGrid > .ui-card > .ui-card-body > .ui-card-title, .servicesGrid > div > .ui-card > .ui-card-body > .ui-card-title{
    display: flex;
    align-items: center;
    height: 3em;
}

.cardHidden, .cardShown{
    border: 2px solid #b71c1c;
}

.cardShown{
    border-color: #01579b;
}

.cardHidden > .ui-card-body > .ui-card-title > i, .cardShown > .ui-card-body > .ui-card-title  > i{
    position: relative;
    top: -2.25em;
    left: -1em;
    padding: 0.5em;
    border-radius: 0 0 .25em 0;
    background-color: #b71c1c;
    color: #FFF;
}

.cardShown > .ui-card-body > .ui-card-title  > i{
    background-color: #01579b;
}

.ui-card-body{
    border-radius: 0.25em;
    padding: 1rem;
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: space-between;
}

/* Service detail page */
.flexServicesPage{
    width: 80%;
    margin: 1em 10% 4em 10%;
    padding-bottom: 0px;
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    grid-template-rows: repeat(2, 1fr);
    grid-column-gap: 8px;
    grid-row-gap: 8px;
    align-items: stretch;
    transition: all var(--animation-speed);
}

.flexContainer, .flexContainerDetails{
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: flex-start;
    padding: 1em;
    margin: 0.5em;
    box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);
    border-radius: .25em;
    transition: all var(--animation-speed);
}

.flexContainerLoginOrRegister{
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.flexContainerLoginOrRegister > span{
    padding: 0.5em;
    font-size: 1.25em;
    text-align: center;
}

.imageContainerCenter {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: stretch;
}

.imageContainerCenter > img{
    max-height: 10rem;
    object-fit: contain;
    padding: 0.5em;
    flex: 2;
    min-width: 0;
    min-height: 0;
}

h1.flexContainerTextCentered{
    text-align: center;
    vertical-align: middle;
}

p.flexContainerTextCentered{
    text-align: center;
    vertical-align: middle;
    line-height: 1.5rem;
}

.flexContainerText > a.ui-button{
    padding: 0.4em;
}

p.flexContainerText{
    line-height: 1.3rem;
    padding: 0 2rem 0 2rem;
}

.downloadMenu{
    display: flex;
    flex-direction: column;
}

.downloadMenu > a{
    border-radius: 0;
}

.downloadMenu > a:first-child{
    border-top-left-radius: 0.25em;
    border-top-right-radius: 0.25em;
}

.downloadMenu > a:last-child{
    border-bottom-left-radius: 0.25em;
    border-bottom-right-radius: 0.25em;
}

.downloadMenu > a.ui-button-primary:hover{
    background-color: #0D89EC;
}

.downloadMenu > a.ui-button-primary:focus{
    background-color: #0B7AD1;
}

.tableCenteredCheckbox, .tableCenteredCheckbox > div, .tableCenteredButton{
    display: block !important;
    margin: auto !important;
}

.tableCenteredButton{
    width: 2.5rem;
    height: 2.5rem;
}

.ui-column-title{
    text-wrap: wrap;
    text-align: center;
}

.ui-column-resizer{
    width: 0 !important;
    padding: 0.25em !important;
    border-right: 1px solid #E9ECEF !important;
}

.ui-resizable-column, .tableContentCentered, .tableColumnNarrow, .tableColumnResult{
    text-align: center !important;
}

.rowOrderActive{
    background: red;
}

.tableContentKey{
    display: flex;
    align-items: center;
}

.tableContentKey > span{
    display: inline-block;
    width: 8ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tableColumnDate, .tableColumnNarrow, .tableColumnResult, .tableColumnNarrowDoubleButton{
    border-right: 1px solid #E9ECEF !important;
}

.tableColumnNarrow{
    min-width: 6rem;
    max-width: 6rem;
    width: 6rem !important;
}

.tableColumnNarrowDoubleButton{
    min-width: 7rem;
    max-width: 7rem;
    width: 7rem !important;
}

.tableColumnDate{
    min-width: 6rem;
    max-width: 6rem;
    width: 6rem !important;
}

tableColumnNarrow:last-of-type{
    border: none !important;
}

.tableColumnResult{
    min-width: 9rem;
    max-width: 9rem;
    width: 9em !important;
}

.orderType > i{
    vertical-align: middle;
    margin-right: 0.5em;
}
.orderType > span{
    font-variant: all-small-caps;
}

/* Subtle animation for draggable columns */
.ui-droppable-active {
    animation: 2s draggable infinite;
}

@keyframes draggable{
    0% {background-color: #f8f9fa;}
    50% {background-color: #bed6f8;}
    100% {background-color: #f8f9fa;}
}

.ui-datatable-empty-message{
    text-align: center;
    font-size: 1.5em;
}

.ui-datatable-empty-message > td{
    padding: 1em !important;
}

.ui-datatable-empty-message > td:before {
    font-family: 'primeicons';
    content: '\e964';
    padding-bottom: 0.5em;
    display: block;
}

.floatingNavButtons{
    position: fixed;
    background: #FFF;
    border-radius: 0.5em 0 0 0.5em;
    right: 0;
    border: 2px solid var(--primary);
    /* border-color: #8abe97; */
    border-right: none;
    bottom: 50%;
    box-shadow: 0 0 1em 2px rgba(0,0,0,0.2);
    /* box-shadow: 0 15px 20px -1px rgba(0, 0, 0, .2), 0 10px 15px 10px rgba(0, 0, 0, .14), 0 10px 15px 5px rgba(0, 0, 0, .12); */
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    padding: .5em;
}

.floatingNavButtons > *{
    margin: .5em !important;
}

.lowercase{
    text-transform: lowercase !important;
}

.orderPrice{
    color: red;
    font-weight: bold;
}

.iconFalse{
    color: #b71c1c;
}

.iconTrue{
    color: green;
}

/*.orderSummary {
    padding: 0.5em 1em;
    border-radius: 0.25em;
    border: 2px solid var(--ptb-blue);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}*/

.orderSummaryHeader {
    display: flex;
    align-content: center;
    flex-wrap: wrap;
}

.orderSummaryTitle{
    margin: auto;
}

.orderSummaryPrice{
    margin: auto 0 auto 1rem;
}

.anotherOrder{
    border-top: 1px solid #A9A9A9;
    margin-top: 5rem;
}

.anotherOrder > p{
    font-size: 1.25rem;
    text-align: center;
}

div#placeOrderButtonContainer{
    display: flex;
    justify-content: space-around;
}

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

.chipResultPassed, .chipResultFailed, .chipResultOpen{
    color: #FFF !important;
    width: 90%;
    font-size: .75em !important;
    justify-content: space-between;
    text-transform: uppercase;
    cursor: default;
}

.chipResultPassed{
    background-color: #689f38 !important;
}
.chipResultFailed{
    background-color: #d32f2f !important;
    color: #FFF !important;
}
.chipResultOpen{
    background-color: var(--primary) !important;
    color: #FFF !important;
}

#messageProcess{
    width: 38ch;
}

#messageProcess > div{
    margin: 0;
    padding: 0;
}

/* Full-page message */
.fullPageMessage {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.fullPageMessage > i {
    text-align: center;
    font-size: 2em;
}

.fullPageMessage.info > i, .fullPageMessage.info > p{
    color: #01579b;
}

.fullPageMessage.warn > i, .fullPageMessage.warn > p{
    color: #7f6003;
}

.fullPageMessage.error > i, .fullPageMessage.error > p{
    color: #b71c1c;
}

.fullPageMessage > p {
    text-align: center;
    color: #000;
    font-size: 1.25em;
}

.fullPageMessage > p:first-of-type{
    margin-bottom: 0;
}

span.bold{
    font-weight: 600;
}

.createOrderMainContainer{
    display: flex;
    flex-direction: column;
}

.createOrderMainContainer > *{
    margin-bottom: 0.5rem;
}

.createOrderMainContainer:last-child{
    margin-bottom: 0;
}

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

.createOrderSelectionGroup > *:last-child{
    max-width: 70%;
}

div#placeOrderButtonContainer > *{
    margin: 0.75rem;
}

div#orderForm\:orderButtonsFree > *:first-child, div#orderForm\:orderButtonsPaid > *:first-child{
    margin-right: 1.5rem;
}

/* Admin customer tooltips */
.tooltipAboutCustomerContainer{
    min-width: 25rem;
}

.tooltipAboutCustomerContainer > div{
    display: flex;
    flex-direction: row;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

/* Add a margin to the icon inside the first 2 divs */
.tooltipAboutCustomerContainer > div:nth-child(1) > i,
.tooltipAboutCustomerContainer > div:nth-child(2) > i,
.tooltipAboutCustomerContainer:not(.tooltipAboutCustomerContainer:has(div:nth-child(4))) > div:nth-child(3) > i{
    margin: 0 .5rem 0 .5rem;
}

/* Recolor the elements inside the first 2 (3) divs */
.tooltipAboutCustomerContainer > div:nth-child(1) > *{
    color: #82DFFF;
}
.tooltipAboutCustomerContainer > div:nth-child(2) > *{
    color: #82FFA1;
}
.tooltipAboutCustomerContainer:not(.tooltipAboutCustomerContainer:has(div:nth-child(4))) > div:nth-child(3) > *{
    color: #fff682;
}

/* Add margin to the second child to separate them from the other costomer information*/
.tooltipAboutCustomerContainer:has(div:nth-child(4)) > div:nth-child(2){
    margin-bottom: 2rem;
}
.tooltipAboutCustomerContainer:last-child{
    margin-bottom: .5rem;
}

.tooltipAboutCustomerContainer > div:nth-child(4) > p:first-child,
.tooltipAboutCustomerContainer > div:nth-child(5) > p:first-child,
.tooltipAboutCustomerContainer > div:nth-child(6) > p:first-child,
.tooltipAboutCustomerContainer > div:nth-child(7) > p:first-child,
.tooltipAboutCustomerContainer > div:nth-child(8) > p:first-child,
.tooltipAboutCustomerContainer > div:nth-child(9) > p:first-child{
    margin: 0 .5rem 0 .5rem;
    width: 44%;
}

.tooltipAboutCustomerContainer:has(div:nth-child(4)) {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 3rem 5rem repeat(7, 2.5rem);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
}

.tooltipAboutCustomerContainer:not(.tooltipAboutCustomerContainer:has(div:nth-child(4))) {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 3rem);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
}

/* Grid areas */
.tooltipAboutCustomerContainer > div:nth-child(1) { grid-area: 1 / 1 / 2 / 4; }
.tooltipAboutCustomerContainer > div:nth-child(2) { grid-area: 2 / 1 / 3 / 4; }
.tooltipAboutCustomerContainer:has(div:nth-child(4)) > div:nth-child(3) { grid-area: 3 / 2 / 4 / 3; }
.tooltipAboutCustomerContainer:not(.tooltipAboutCustomerContainer:has(div:nth-child(4))) > div:nth-child(3) { grid-area: 3 / 1 / 3 / 4; }
.tooltipAboutCustomerContainer > div:nth-child(4) { grid-area: 4 / 1 / 5 / 3; }
.tooltipAboutCustomerContainer > div:nth-child(5) { grid-area: 5 / 1 / 6 / 3; }
.tooltipAboutCustomerContainer > div:nth-child(6) { grid-area: 6 / 1 / 7 / 3; }
.tooltipAboutCustomerContainer > div:nth-child(7) { grid-area: 7 / 1 / 8 / 3; }
.tooltipAboutCustomerContainer > div:nth-child(8) { grid-area: 8 / 1 / 9 / 3; }
.tooltipAboutCustomerContainer > div:nth-child(9) { grid-area: 9 / 1 / 10 / 3; }
.tooltipAboutCustomerContainer > div:nth-child(10) { grid-area: 3 / 3 / 4 / 4; }
.tooltipAboutCustomerContainer > div:nth-child(11) { grid-area: 5 / 3 / 6 / 4; }
.tooltipAboutCustomerContainer > div:nth-child(12) { grid-area: 6 / 3 / 7 / 4; }
.tooltipAboutCustomerContainer > div:nth-child(13) { grid-area: 7 / 3 / 8 / 4; }
.tooltipAboutCustomerContainer > div:nth-child(14) { grid-area: 8 / 3 / 9 / 4; }
.tooltipAboutCustomerContainer > div:nth-child(15) { grid-area: 9 / 3 / 10 / 4; }
.tooltipAboutCustomerContainer > div:nth-child(16) { grid-area: 3 / 1 / 4 / 1; }
.tooltipAboutCustomerContainer > div:nth-child(17) { grid-area: 4 / 3 / 5 / 4; }