body {
    --q-color-accent: #19b;
    --q-color-info: #095191;
    --q-color-info-contrast-medium: #1183bb;
    --q-color-danger: red;
    --q-color-danger-contrast-medium: #ff3e59;
    --q-color-success: green;
    --q-color-success-contrast-medium: #7cc68d;
}

.ellipsis::after {
    content: '...';
    display: inline-block;
    width: 1em;
    animation: ellipsis 1.5s infinite;
}

@keyframes ellipsis {
    0% {
        content: '';
    }
    33% {
        content: '.';
    }
    66% {
        content: '..';
    }
    100% {
        content: '...';
    }
}

/* vertical list spacing */
.q-stack>*:not([type="hidden"])+* {
    margin-top: 1em;
    margin-top: 1rem;
}

.q-stack--gap-large>*:not([type="hidden"])+* {
    margin-top: 3em;
    margin-top: 3rem;
}

.engineering-btn--disabled {
    opacity: 0.5 !important;
}

.q-stack--gap-large>*:not([type="hidden"])+.q-stack__item--gap-larger {
    margin-top: 5em;
    margin-top: 5rem;
}

.q-cluster>* {
    display: inline-block;
    margin-right: 2em;
}

.q-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20em, 1fr));
    grid-gap: 2em;
}

.q-grid--columns-small {
    grid-template-columns: repeat(auto-fill, minmax(10em, 1fr));
}

.q-heading {
    padding-bottom: 0;
}

.q-row {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.q-row--inline {
    display: inline-flex;
}

.q-row--centered {
    align-items: center;
    ;
}

.q-row>.q-row,
.q-row>* {
    display: inline-block;
    /* fallback */
}

.q-row>.q-row {
    display: flex;
    /* HACK fallback fix */
}

.q-row>.q-row--inline {
    display: inline-flex;
    /* HACK fallback fix */
}

.q-row>*+* {
    margin-left: 1em;
}

.q-row--overflow {
    overflow-x: hidden;
}

.q-row--wrap {
    flex-wrap: wrap;
    margin-right: -1em;
    margin-bottom: -1em;
}

.q-row--wrap>* {
    margin-right: 1em;
    margin-bottom: 1em;
}

.q-row--wrap>*+* {
    margin-left: 0;
}

.q-breadcrumbs {
    display: flex;
}

.q-breadcrumbs>*+* {
    margin-left: 1em;
}

.q-breadcrumbs>*+*:before {
    content: '>';
    margin-right: 1em;
}

.q-summary>* {
    vertical-align: middle;
}

.q-summary__heading {
    padding-bottom: 0;
}

.q-heading--inline {
    display: inline-block;
}

.projectStatus {
    padding: .3em 1em;
    border: 2px solid;
    border-radius: 3px;
    font-weight: 500;
    line-height: 1.7em
}

.q-details-menu__summary,
.q-button {
    position: relative;
    padding: .3em 1em;
    border: 2px solid;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
    font-weight: 500;
    line-height: 1.7em;
    -webkit-transition: all .2s;
    -moz-transition: all .2s;
    transition: all .2s;
    white-space: nowrap;
    cursor:pointer;
}

.q-button--primary {
    background: linear-gradient(to bottom, #19b, #19b, #fff);
    border-color: #19b;
    background: linear-gradient(to bottom, var(--q-color-accent), var(--q-color-accent), #fff);
    border-color: var(--q-color-accent);
}

.q-button--danger {
    background: linear-gradient(to bottom, red, red, #fff);
    border-color: red;
    background: linear-gradient(to bottom, var(--q-color-danger), var(--q-color-danger), #fff);
    border-color: var(--q-color-danger);
}

.q-button--danger,
.q-button--primary {
    font-size: 1.1em;
    background-size: auto 1000%;
    color: #fff;
}

.q-details-menu__summary:focus,
.q-button:focus,
.q-button:active,
.q-button:hover {
    color: #fff;
}

.q-details-menu__summary:focus,
.q-button:focus,
.q-button:hover {
    background-color: #555;
    border-color: #555;
}

.q-button:active {
    background-color: #333;
    border-color: #333;
}

.q-button--primary:active,
.q-button--primary:hover {
    color: #19b;
    border-color: #19b;
    color: var(--q-color-accent);
    border-color: var(--q-color-accent);
}

.q-button--danger:active,
.q-button--danger:hover {
    color: red;
    border-color: red;
    color: var(--q-color-danger);
    border-color: var(--q-color-danger);
}

.q-button--danger:hover,
.q-button--primary:hover {
    background-position: center 85%;
}

.q-button--danger:active,
.q-button--primary:active {
    background-position: center bottom;
}

.q-img-container {
    display: inline-block;
    background-color: rgba(0, 0, 0, 0.1);
    min-height: 8em;
    min-width: 19em;
    text-align: center;
}

.q-table {
    width: 100%;
}

.q-table__heading,
.q-table__cell {
    padding: 0.5em 1em;
}

.q-table__cell {
    padding-bottom: 1.5em;
}

.q-inline--skeleton,
.q-table__cell--skeleton {
    color: transparent;
    position: relative;
}

.q-inline--skeleton::after,
.q-table__cell--skeleton::after {
    background-color: #f3f3f3;
    content: ' ';
    display: inline-block;
    text-align: center;
    min-width: 4em;
    height: 1em;
    position: absolute;
    left: 0;
    top: calc(50% - 0.5em);
    animation: skeletonBgPulse ease-in-out infinite 500ms;
}

.q-inline--skeleton::after {
    min-width: 8em;
}

.q-inline--skeleton:nth-child(2n)::after {
    min-width: 6em;
}

@keyframes skeletonBgPulse {
    0% {
        background-color: #f3f3f3;
    }

    50% {
        background-color: #e3e3e3;
    }

    100% {
        background-color: #f3f3f3;
    }
}



.q-table__row:nth-child(2n)>.q-table__cell--skeleton::after {
    min-width: 6em;
}

.q-table__heading--skeleton {
    color: #ddd;
    animation: skeletonColorPulse ease infinite 500ms;
}

@keyframes skeletonColorPulse {
    0% {
        color: #ddd;
    }

    50% {
        color: #aaa;
    }

    100% {
        color: #ddd;
    }
}

.q-table__heading--underlined {
    border-bottom: 1px solid currentcolor;
}

.q-table-body__row:first-child>.q-table__cell {
    padding-top: 3em;
}

.q-main-content {
    min-height: 85vh;
    padding-top: 4em;
    padding-bottom: 4em;
}

.q-field>.acf-label {
    margin-bottom: 0;
}

.q-field>.acf-input {
    /* fixes select2 fields being too small */
    min-width: 10em;
}

.q-field {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
}

.q-field--table-like {
    display: grid;
    grid-gap: 1em;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

/* TODO remove if unused */
.q-field--row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    grid-auto-rows: 1fr;
}

.q-field-group {
    /* display: flex; */
    flex-direction: row;
    flex-wrap: wrap;
    align-content: flex-start;
}

.q-field-group--inline {
    display: inline-flex;
}

.q-field-group__label {
    max-width: 10em;
    min-width: 4em;
    margin-right: 1em;
    margin-bottom: 0.5em;
}

.q-field-group__field {
    /* max-width: 10em; */
    min-width: 4em;
}

.q-field-group--reponsive-table thead {
    display: none;
}

.q-field-group--reponsive-table .acf-field {
    display: block;
}

.q-field-group--reponsive-table .acf-field:before {
    content: attr(data-name);
}

.q-input--large {
    max-width: initial;
    width: 20em;
}

.q-field__prepend {
    background-color: #F4F4F4;
    border: #DFDFDF solid 1px;
    border-right-width: 0;
    border-radius: 3px 0 0 3px;
    padding: 3px 7px;
}

.q-field__input {
    /* HACK fixes input busting out of table column */
    max-width: 100%;
}

.q-notification {
    --notification-color: #ccc;
    --notification-color-contrast-medium: #eee;
    background-color: #eee;
    border: 1px solid #ccc;
    color: #fff;
    font-size: 1.5em;
    padding: 1em;
    border-radius: 2px;
}

.q-notification--success {
    --notification-color: var(--q-color-success);
    ;
    --notification-color-contrast-medium: var(--q-color-success-contrast-medium);
    ;
    border-color: green;
    background-color: #7cc68d;
}

.q-notification--info {
    --notification-color: var(--q-color-info);
    ;
    --notification-color-contrast-medium: var(--q-color-info-contrast-medium);
    border-color: #095191;
    background-color: #1183bb;
}

.q-notification--danger {
    --notification-color: var(--q-color-danger);
    --notification-color-contrast-medium: var(--q-color-danger-contrast-medium);
    border-color: red;
    background-color: #ff3e59;
}

q-notification {
    background-color: var(--notification-color);
    border: 1px solid var(--notification-color-contrast-medium);
}

.q-notification--small {
    background-color: transparent;
    border: none;
    color: rgba(0, 0, 0, 0.6);
    color: var(--notification-color);
    font-size: 1em;
    padding: 0.1em;
}

.q-times-indicator {
    margin-left: 1em;
}

/* TODO replace save-status with action-status */
.action-status,
.save-status {
    background-color: transparent;
    border-radius: 100%;
    display: inline-block;
    height: 1em;
    transition: background-color 0.3s;
    width: 1em;
}

.action-status--processing,
.save-status--saving {
    background-color: #ccc;
    animation: saving 0.3s infinite;
}

@keyframes saving {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.3);
    }

    100% {
        transform: scale(1);
    }
}

.action-status--error,
.save-status--error {
    background-color: red;
    background-color: var(--q-color-danger);
}

.action-status--success,
.save-status--success {
    background-color: green;
    background-color: var(--q-color-success);
}


.q-row--pull-right,
.q-last-price, #sync-status {
    flex: 1 auto;
    text-align: right;
    justify-content: flex-end;
    /* NOTE ony valid if this is a flex element*/
}

.q-section-footer,
.q-section-header {
    background-color: #fff;
    background-color: var(--q-background-color, #fff);
    padding: 1em 0;
}

.q-section-footer {
    border-top: solid 0.1em #aaa;
}

.q-section-header {
    border-bottom: solid 0.1em #aaa;
}

.q-sticky--footer {
    position: -webkit-sticky;
    position: sticky;
    bottom: 0;
    z-index: 100;
}

.q-sticky--header {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    top: var(--q-header-offset, 0);
    z-index: 100;
}

.q-details-menu {
    position: relative;
    background-color: #fff;
}

.q-details-menu__summary {
    width: initial;
    z-index: 20;
    background-color: #fff;
}

.q-details-menu__items {
    background-color: #fff;
    border: 0.1em #aaa solid;
    box-shadow: 0 5px 5px rgba(0, 0, 0, 0.3);
    display: none;
    max-height: 50vh;
    overflow-y: scroll;
    padding: 1em;
    position: absolute;
    right: 0;
    text-align: initial;
    top: 100%;
    top: calc(100% - 5px);
    z-index: 10;
    min-width: 100%;
}

.q-details-menu[open] .q-details-menu__items {
    display: block;
}

@media (min-width: 30em) {
    .q-field-group--reponsive-table thead {
        display: table-header-group;
    }

    .q-field-group--reponsive-table .acf-field {
        display: table-cell;
    }

    .q-field-group--reponsive-table .acf-field:before {
        display: none;
    }

    .q-sticky--header {
        top: 3.8em;
        top: var(--q-header-offset, 3.8em);
    }
}

.q-main-content {
    min-height: 85vh;
    padding-top: 4em;
    padding-bottom: 4em;
}

.q-icon {
    border-radius: 99%;
    display: inline-block;
    height: 1.5em;
    /* can use font-size to scale icon */
    font-style: normal;
    font-weight: bolder;
    line-height: 1.5em;
    text-align: center;
    width: 1.5em;
}

.q-icon--info {
    color: #fff;
    background-color: #095191;
    background-color: var(--q-color-info);
}

.q-icon--info:after {
    content: 'i';
}

.q-icon--margin-right {
    margin-right: 0.75em;
}

.q-def-list__item {
    display: flex;
    flex-wrap: wrap;
}

.q-def-list__term {
    flex-grow: 1;
    padding-right: 2em;
}

@media (min-width: 30em) {
    .q-def-list {
        display: table;
    }

    .q-def-list__item {
        display: table-row;
    }

    .q-def-list__term,
    .q-def-list__def {
        display: table-cell;
    }
}

/* utility */

.q-hidden {
    display: none;
}

.q-fade {
    animation: fade 500ms ease;
    animation-fill-mode: forwards;
}

@keyframes fade {
    0% {
        opacity: 1;
    }

    99% {
        opacity: 0;
    }

    100% {
        opacity: 0;
        display: none;
    }
}

.q-saving-screen {
    background: rgba(0, 0, 0, 0.7);
    position: fixed;
    top: 0;
    bottom: 0px;
    right: 0px;
    left: 0px;
    z-index: 99999;
    height: 100vh;
    display: none;
}

.q-saving-screen--active {
    display: block !important;
}

.q-saving-screen--content {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    text-align: center;
}

.q-saving-screen--content h1,
.q-saving-screen--content p {
    color: #fff;
}

.q-saving-screen--body {
    overflow: hidden;
}

.q-saving-screen--main-content {
    filter: blur(5px);
}

.spinner {
    margin-top: 20px;
    -webkit-animation: rotate 2s linear infinite;
    animation: rotate 2s linear infinite;
    z-index: 2;
    width: 60px;
    height: 60px;
}

.spinner .path {
    stroke: #fff;
    stroke-linecap: round;
    -webkit-animation: dash 1.5s ease-in-out infinite;
    animation: dash 1.5s ease-in-out infinite;
}

@-webkit-keyframes rotate {
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes rotate {
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@-webkit-keyframes dash {
    0% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: 0;
    }

    50% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -35;
    }

    100% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -124;
    }
}

@keyframes dash {
    0% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: 0;
    }

    50% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -35;
    }

    100% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -124;
    }
}


.customDoorSubmit {
    float: right;
    margin: 10px 0;
}

.remove-pdf {
    border: none;
    background-color: transparent;
    padding: 0;
    color: red;
    cursor: pointer;
    /* font-size: 1em; */
}

.remove-pdf:hover, .download-pdf:hover {
    text-decoration: underline;
}
