/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
.karavan .tools-section {
    padding-top: 0px;
    padding-bottom: 0px;
    padding-right: 0;
    border-bottom: 1px solid #eee;
}

.karavan .tools-section .dsl-title {
    display: flex;
    flex-direction: row;
}

.karavan .tools-section .dsl-title .title {
    margin-right: 16px;
}

.karavan .brand {
    height: 36px;
}

.karavan .header-button {
    margin-left: var(--pf-c-page__header-tools--MarginRight);
}

.karavan .page-header {
    display: flex;
    justify-content: space-between;
}

.karavan .page-header .top-toolbar .pf-c-page__header-tools{
    margin-right: 0;
}
.karavan .page-header .top-toolbar {
    width: 100%;
}

.karavan .page-header .pf-c-page__header-brand {
    padding-right: 16px;
}

.karavan .main-alert {
    position: fixed;
    width: 500px;
    height: 90px;
    left: 50%;
    margin-top: 20px;
    margin-left: -250px;
}

.filler {
    width: 100%;
}

.modal-footer {
    width: 100%;
}

.modal-footer .deploy-buttons .pf-c-form__actions {
    justify-content: flex-end;
    margin-top: 16px;
}

.modal-footer .deploy-buttons .pf-c-button {
    margin-left: 16px;
}

.action-buttons .pf-c-form__actions {
    justify-content: flex-end;
    margin-top: 16px;
}

.action-buttons .pf-c-button {
    margin-left: 16px;
}

.pf-c-modal-box__footer .hidden {
    display: none;
}

.upload-buttons .pf-c-form__actions {
    margin-top: 20px;
    justify-content: flex-end;
}

/*integration page*/
.integration-page .integration-card {
    cursor: pointer;
    height: 160px;
}

.integration-page .integration-card .pf-c-card__header {
    padding-right: 6px;
}

.integration-page .integration-card .icon {
    height: 24px;
}

.integration-page .integration-card .delete-button {
    font-size: 17px;
    line-height: 1;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    color: #b1b1b7;
    visibility: hidden;
}

.integration-page .integration-card:hover .delete-button {
    visibility: visible;
}

/*kamelets*/
.kamelets-page .kamelet-card {
    cursor: pointer;
    height: 160px;
}

.kamelets-page .kamelet-card .pf-c-card__header {
    padding-right: 6px;
}

.kamelets-page .kamelet-card .pf-c-card__body {
    overflow: hidden;
    position: relative;
}

.kamelets-page .kamelet-card .icon {
    height: 24px;
    margin-top: auto;
    margin-bottom: auto;
    border: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}

/*kamelet modal*/
.kamelet-modal-card .pf-c-card__header {
    padding-right: 6px;
    display: flex;
    justify-content: space-between;
}

.kamelet-modal-card .pf-c-card__title {
    font-weight: 600;
}

.kamelet-modal-card .description {
    overflow: hidden;
    position: relative;
    max-width: 600px;
}

.kamelet-modal-card .icon {
    height: 36px;
    margin-top: auto;
    margin-bottom: auto;
    border: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}

.karavan .page {
    height: 100%;
    width: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/*DSL*/
.karavan .dsl-page {
    flex: 1;
    overflow: auto;
}

.karavan .dsl-page .dsl-page-columns {
    display: block;
    height: 100%;
    background: #fafafa;
}

.karavan .top-icon {
    height: 24px;
}

.karavan .main-tabs .top-menu-item {
    display: flex;
    flex-direction: row;
}

.karavan .main-tabs .top-menu-item .count {
    background: var(--pf-global--active-color--100);
    color: white;
    height: fit-content;
    margin-top: auto;
    margin-bottom: auto;
    min-width: 0px;
}

.karavan .main-tabs .pf-c-tabs__link .pf-c-tabs__item-icon {
    height: 24px;
    margin-right: 0;
}

.karavan .main-tabs .pf-c-tabs__item-text {
    font-size: 14px;
    font-weight: bold;
    margin-top: auto;
    margin-bottom: auto;
    margin-right: 6px;
}

/*Properties*/
.karavan .properties {
    border: 1px solid #eee;
    padding: 10px 10px 10px 10px;
    font-size: 14px;
    background: #fcfcfc;
    width: 100%;
    height: 100%;
    overflow: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.karavan .pf-c-drawer__splitter {
    width: 2px;
    background-color: #fcfcfc;
}

.karavan .pf-c-drawer__splitter-handle {
    display: none;
}

.karavan .properties .headers {
    grid-row-gap: 10px;
    row-gap: 10px;
    display: contents;
}

.karavan .properties .headers .top {
    width: 100%;
    display: flex;
    flex-direction: row;
}

.karavan .properties .headers .top h1{
    width: 100%;
    margin-top: auto;
    margin-bottom: auto;
}

.karavan .properties .footer {
    height: 100%;
    display: contents;
}

.karavan .properties .pf-c-form {
    row-gap: 10px;
}

.karavan .properties .pf-c-form__group-label {
    padding-bottom: 3px;
    display: flex;
    justify-content: space-between;
}

.karavan .properties .pf-c-form__label {
    font-size: 14px;
}

.karavan .properties .text-field {
    font-size: 14px;
    height: auto;
}

.karavan .properties .pf-c-select {
    --pf-c-select__toggle--FontSize: 14px;
    --pf-c-select__menu-item--FontSize: 14px;
}

.karavan .properties .input-group .pf-c-text-input-group__text {
    width: 100%;
}

.karavan .properties .input-group .pf-c-chip-group,
.karavan .properties .input-group .pf-c-text-input-group__main,
.karavan .properties .input-group .pf-c-chip-group .pf-c-chip-group__list,
.karavan .properties .input-group .pf-c-chip-group .pf-c-chip-group__list .pf-c-chip-group__list-item,
.karavan .properties .input-group .pf-c-chip-group .pf-c-chip-group__main {
    display:block;
}

.karavan .properties .input-group .pf-c-chip-group {
    margin-left: 0;
}

.karavan .properties .input-group .pf-c-chip-group .pf-c-chip .pf-c-chip__text{
    max-width: inherit;
}
.karavan .properties .input-group .pf-c-chip-group .pf-c-chip {
    width: 100%;
}

.karavan .properties .input-group .pf-c-text-input-group__utilities {
    align-items: end;
    margin-top: auto;
}

.karavan .properties .chip .pf-c-button{
    position:absolute;
    right: 0;
}

.karavan .properties .expression-title {
    font-size: 17px;
    font-weught: bold;
}

.karavan .properties .text-area {
    font-size: 13px;
}

.karavan .properties .pf-c-select__menu-search {
    padding: 0px 6px 6px 6px;
}

.karavan .properties .pf-c-select__toggle-typeahead {
    font-size: 14px;
    height: auto;
}

.karavan .properties .pf-c-select__menu-item {
    /*width: 280px;*/
}

.karavan .properties .pf-c-select__menu-item-description {
    overflow-wrap: anywhere;
}

.karavan .properties .number {
    display: flex;
    justify-content: space-between;
}

.karavan .properties .number .number-property {
    width: 100%;
}

.karavan .properties .number .clear-button {
    color: #b1b1b7;
    --pf-c-button--BorderRadius: var(--pf-c-button--m-control--BorderRadius);
    --pf-c-button--disabled--BackgroundColor: var(--pf-c-button--m-control--disabled--BackgroundColor);
    --pf-c-button--after--BorderWidth: var(--pf-c-button--m-control--after--BorderWidth);
    --pf-c-button--after--BorderColor: var(--pf-c-button--m-control--after--BorderTopColor) var(--pf-c-button--m-control--after--BorderRightColor) var(--pf-c-button--m-control--after--BorderBottomColor) var(--pf-c-button--m-control--after--BorderLeftColor);
    color: var(--pf-c-button--m-control--Color);
    background-color: var(--pf-c-button--m-control--BackgroundColor);
    padding-left: 5px;
    padding-right: 5px;
}

.karavan .properties .help-button {
    font-size: 12px;
}

.karavan .properties .component-selector {
    border-width: var(--pf-global--BorderWidth--sm);
    border-top-color: var(--pf-global--BorderColor--300);
    border-right-color: var(--pf-global--BorderColor--300);
    border-bottom-color: var(--pf-global--BorderColor--200);
    border-left-color: var(--pf-global--BorderColor--300);
    border-style: solid;
}

.karavan .properties .object-value {
    display: flex;
    flex-direction: row;
    margin-bottom: 3px;
}

.karavan .properties .object-key-value .object {
    padding-top: 0;
}

.karavan .properties .object-value .delete-button {
    margin: 0;
    padding: 5px 3px 0px 6px;
    height: 16px;
    color: #909090;
}

.karavan .properties .object-key-value,
.karavan .properties .object-key-value .object-field {
    display: flex;
    flex-direction: row;
    gap: 3px;
}

.karavan .properties .object-key-value .delete-button {
    margin: auto 0 22px 0;
    padding: 0px 0px 0px 3px;
    height: 16px;
    color: #909090;
}

.karavan .properties .expression,
.karavan .properties .object,
.karavan .properties .dataformat,
.karavan .properties .parameters {
    padding-top: 6px;
    padding-left: 16px;
    row-gap: 6px;
    display: grid;
    width: 100%;
}

.karavan .properties .expression .pf-c-form__group-label,
.karavan .properties .object .pf-c-form__group-label,
.karavan .properties .dataformat .pf-c-form__group-label,
.karavan .properties .parameters .pf-c-form__group-label {
    font-weight: 100;
}

.karavan .properties .expression .pf-c-form__group,
.karavan .properties .object .pf-c-form__group,
.karavan .properties .dataformat .pf-c-form__group,
.karavan .properties .parameters .pf-c-form__group {
    margin-bottom: 10px;
}

.karavan .properties .expression .pf-c-select__menu-wrapper,
.karavan .properties .object .pf-c-select__menu-wrapper,
.karavan .properties .dataformat .pf-c-select__menu-wrapper,
.karavan .properties .parameters .pf-c-select__menu-wrapper{
    width: 350px;
}

.karavan .properties .add-button {
    font-size: 15px;
    height: 15px;
    line-height: 1;
    border: 0;
    padding: 0;
    margin: auto auto auto 6px;
    background: transparent;
}

.karavan .properties .add-button svg {
    margin-right: 6px;
}


/*Graph*/
.karavan .dsl-page .graph {
    display: block;
    flex-direction: column;
    font-size: 14px;
    height: 100%;
    width: 100%;
    position: relative;
    overflow-y: auto;
}

.karavan .dsl-page .flows {
    width: 100%;
    position: relative;
    margin-bottom: 80px;
}

.karavan .dsl-page .flows .add-flow {
    margin-top: 16px;
    display: flex;
    justify-content: center;
}

/*connections*/
.karavan .dsl-page .graph .connections {
    position: absolute;
    top: 0;
    left: 0;
    background: transparent;
}

.karavan .dsl-page .graph .connections .icon {
    height: 20px;
}

.karavan .dsl-page .graph .connections .arrow {
    stroke: var(--pf-global--Color--200);
    fill: var(--pf-global--Color--200);
}

.karavan .dsl-page .graph .connections .path {
    stroke: var(--pf-global--Color--200);
    stroke-width: 1;
    fill: transparent;
}

.karavan .dsl-page .graph .connections .circle-outgoing,
.karavan .dsl-page .graph .connections .circle-incoming {
    stroke: var(--pf-global--Color--200);
    stroke-width: 1;
    fill: white;
}

.karavan .dsl-page .graph .connections .path-incoming {
    stroke-dasharray: 5;
    -webkit-animation: dashdraw .5s linear infinite;
    animation: dashdraw .5s linear infinite;
    stroke: var(--pf-global--Color--200);
    stroke-width: 1;
    fill: transparent;
}

.karavan .dsl-page .graph .connections .path-direct {
    stroke-dasharray: 0;
    stroke: var(--pf-global--Color--200);
    stroke-width: 0.7;
    stroke-opacity: 0.7;
    fill: transparent;
}

.karavan .dsl-page .graph .connections .path-direct-selected {
    stroke-dasharray: 0;
    stroke: var(--pf-global--active-color--100);
    stroke-width: 1;
    stroke-opacity: 1;
    fill: transparent;
}

.karavan .dsl-page .graph .connections .path-seda {
    stroke-dasharray: 2;
    stroke: var(--pf-global--Color--200);
    -webkit-animation: dashdraw .5s linear infinite;
    animation: dashdraw .5s linear infinite;
    stroke-width: 1;
    fill: transparent;
}

@keyframes dashdraw{0%{stroke-dashoffset:10}}

.karavan .dsl-page .flows .step-element {
    align-items: center;
    text-align: center;
    display: flex;
    flex-direction: column;
    width: fit-content;
    border-color: var(--pf-global--Color--200);
    border-radius: 16px;
    border-width: 1px;
    min-width: 120px;
    padding: 3px 4px 4px 4px;
    margin: 3px auto 0 auto;
    position: relative;
}

.karavan {
    --step-border-color: var(--pf-global--Color--200);
    --step-border-color-selected: var(--pf-global--active-color--100);
}

.karavan .dsl-page .flows .children {
    display: flex;
    flex-wrap: wrap;
    flex-wrap:nowrap;
    gap: 6px;
}

.karavan .dsl-page .flows .has-child {
    display: flex;
    flex-direction: column;
    flex-wrap:nowrap;
    gap: 6px;
}

.karavan .dsl-page .flows .step-element .header-route {
    display: block;
    border: none;
    background: transparent;
    padding: 0px 0px 0px 0px;
    margin-bottom: 10px;
    min-width: 160px;
    z-index: 101;
}

.karavan .step-element .header-route .delete-button {
    position: absolute;
    top: 4px;
    right: 4px;
    font-size: 14px;
    line-height: 1;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    color: #909090;
    visibility: hidden;
}

.karavan .step-element .header .delete-button,
.element-builder .header .delete-button {
    position: absolute;
    top: -5px;
    font-size: 14px;
    line-height: 1;
    border: 0;
    padding: 0;
    margin: 0 0 0 10px;
    background: transparent;
    color: #909090;
    visibility: hidden;
}

/*.karavan .step-element:hover .delete-button,*/
/*.karavan .step-element:hover .delete-button,*/
.karavan .step-element .header:hover .delete-button,
.karavan .step-element .header-route:hover .delete-button,
.element-builder .header:hover .delete-button {
    visibility: visible;
}

.modal-delete {
    width: 350px !important;
}

.karavan .step-element .header {
    height: 50px;
}

.karavan .step-element-selected {
    background-color: rgba(var(--pf-global--palette--blue-50), 1);
}

.karavan .step-element .selected .header-icon {
    border-color: var(--pf-global--primary-color--100);
    background-color: var(--pf-global--palette--blue-50);
    border-width: 2px;
}

.karavan .step-element .header .header-text {
    position: absolute;
    top: 8px;
    left: 0;
    width: 100%;
    display: flex;
    flex-direction: row;
}
.karavan .step-element .header .spacer {
    width: 50%
}
.karavan .step-element .header .text-bottom {
    background-color: rgba(255, 255, 255, 0.5);
}
.karavan .step-element .header .text-right {
    padding-left: 17px;
    width: 50%;
    text-align:start;
}

.karavan .step-element .header .header-text-required {
    color: var(--pf-global--danger-color--100);
    font-weight: bold;
}

.karavan .step-element .header-icon {
    border-color: var(--pf-global--Color--200);
    border-style: solid;
    border-radius: 30px;
    border-width: 1px;
    background: white;
    width: 30px;
    height: 30px;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.karavan .step-element .header .icon,
.element-builder .header .icon {
    height: 20px;
    width: auto;
    border: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}

.karavan .step-element .add-element-button {
    top: 5px;
    left: 5px;
    font-size: 15px;
    height: 15px;
    line-height: 1;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--pf-global--primary-color--100);
    visibility: hidden;
    z-index: 100;
    position: absolute;
}

.karavan .step-element .insert-element-button {
    position: absolute;
    top: -5px;
    /*right: 10px;*/
    font-size: 14px;
    line-height: 1;
    border: 0;
    padding: 0;
    margin: 0 0 0 -25px;
    background: transparent;
    background: transparent;
    color: var(--pf-global--primary-color--100);
    visibility: hidden;
    z-index: 100;
}

.karavan .step-element .header:hover .insert-element-button {
    visibility: visible;
}

.karavan .step-element .add-button-bottom {
    position: relative;
}

.karavan .step-element .add-button-left {
    position: absolute;
    top: 4px;
    left: 4px;
}

.karavan .step-element .add-button {
    font-size: 15px;
    height: 15px;
    line-height: 1;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    color: var(--pf-global--primary-color--100);
    visibility: hidden;
    z-index: 100;
}

.element-builder .add-button {
    top: 0;
    right: 5px;
    font-size: 15px;
    line-height: 1;
    border: 0;
    padding: 0;
    margin: 3px auto 0 auto;
    background: transparent;
    color: var(--pf-global--primary-color--100);
    visibility: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    width: 16px;
}

.element-builder .add-button svg {
    margin: 0 auto 3px auto;
}


.element-builder:hover .add-button,
.karavan .step-element:hover .add-element-button,
.karavan .step-element:hover .add-button {
    visibility: visible;
}

.dsl-gallery {
    margin-top: 16px;
}

.dsl-modal {
    height: 80%;
    color: var(--pf-global--Color--100);
}

.dsl-modal .dsl-card {
    cursor: pointer;
}

.dsl-modal .dsl-card .icon {
    height: 20px;
    width: auto;
    border: none;
    margin-right: 6px;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}

.dsl-modal .search {
    width: 300px;
    position: absolute;
    top: 24px;
    right: 72px;
}


.dsl-modal .search .pf-c-form__group-label{
    padding: 0;
    margin: auto;
}

.dsl-modal .search .text-field {
    font-size: 14px;
    height: auto;
}

.dsl-modal .pf-c-form.pf-m-horizontal .pf-c-form__group {
    display: contents;
}

.dsl-modal .pf-c-card__body {
    padding-bottom: 0;
}

.dsl-modal .pf-c-card__footer {
    padding-bottom: 1em;
}

.dsl-modal .footer {
    display: flex;
    flex-direction: row;
    margin-top: 6px;
    flex-wrap: wrap;
}

.dsl-modal .version {
    text-align: right;
    opacity: 0.5;
    white-space: nowrap;
    margin-left: auto;
}

.dsl-modal .labels {
    opacity: 0.5;
}

.yaml-code {
    overflow: auto;
    height: 100%;
    width: 100%;
    padding-bottom: 100px;
}

.pf-c-popover__footer {
    overflow-wrap: anywhere;
}

/*REST Page*/
.karavan .rest-page {
    flex: 1;
    overflow: auto;
}

.karavan .rest-page .rest-page-columns {
    display: block;
    height: 100%;
    background: #fafafa;
}

.karavan .rest-page .graph {
    display: block;
    flex-direction: column;
    font-size: 14px;
    height: 100%;
    width: 100%;
    position: relative;
    overflow-y: auto;
}

.karavan .rest-page .flows {
    width: 800px;
    margin: 0 auto;
}

.karavan .rest-page .flows .add-flow {
    margin-top: 16px;
    display: flex;
    justify-content: center;
}

.karavan .rest-page .rest-config-card,
.karavan .rest-page .rest-card,
.karavan .rest-page .method-card {
    border-style: dotted;
    border-radius: 4px;
    border-width: 1px;
    padding: 0 6px 0 6px;
    margin-bottom: 6px;
    position: relative;
}

.karavan .rest-page .rest-card-unselected,
.karavan .rest-page .rest-config-card-unselected,
.karavan .rest-page .method-card-unselected {
    border-color: var(--pf-global--Color--200);
    background-color: transparent;
}

.karavan .rest-page .rest-card-selected,
.karavan .rest-page .rest-config-card-selected,
.karavan .rest-page .method-card-selected {
    border-color: var(--pf-global--primary-color--100);
}

.karavan .rest-page .rest-card-selected .title {
    color: var(--pf-global--primary-color--100);
}

.karavan .rest-page .rest-config-card,
.karavan .rest-page .rest-card {
    display: flex;
    flex-direction: column;
    margin-top: 16px;
}

.karavan .rest-page .header {
    display: flex;
    flex-direction: row;
    gap: 16px;
    height: 44px;
    margin-left: 6px;
    cursor: pointer;
    ustify-content: space-between;
}

.karavan .rest-page .rest-config-card,
.karavan .rest-page .method-card {
    display: flex;
    flex-direction: row;
    gap: 16px;
    height: 44px;
    cursor: pointer;
}

.karavan .rest-page .method-card .method {
    margin: auto 0 auto 0;
    border-radius: 3px;
    color: #fff;
    font-family: sans-serif;
    font-size: 14px;
    font-weight: 700;
    min-width: 80px;
    padding: 6px 0;
    text-align: center;
    text-shadow: 0 1px 0 rgb(0 0 0 / 10%);
}

.karavan .rest-page .method-card-unselected .method {
    background: var(--pf-global--Color--400);
}

.karavan .rest-page .method-card-selected .method {
    background: var(--pf-global--primary-color--100);
}

.karavan .rest-page .rest-card .title,
.karavan .rest-page .rest-config-card .title,
.karavan .rest-page .method-card .title {
    margin: auto 0 auto 0;
    font-weight: bold;
    white-space: nowrap;
}

.karavan .rest-page .rest-card .description,
.karavan .rest-page .rest-config-card .description,
.karavan .rest-page .method-card .description {
    margin: auto 0 auto 0;
    width: 100%;
}

.karavan .rest-page .rest-config-card .delete-button,
.karavan .rest-page .rest-card .delete-button,
.karavan .rest-page .method-card .delete-button {
    position: absolute;
    top: 3px;
    right: 3px;
    font-size: 14px;
    line-height: 1;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    color: #909090;
    visibility: hidden;
    z-index: 100;
}

.karavan .rest-page .rest-config-card:hover .delete-button,
.karavan .rest-page .rest-card:hover .delete-button,
.karavan .rest-page .method-card:hover .delete-button {
    visibility: visible;
}

.karavan .rest-page .rest-card .add-button {
    font-size: 15px;
    border: 0;
    background: transparent;
    color: var(--pf-global--primary-color--100);
    z-index: 100;
}

.karavan .rest-page .add-rest {
    display: flex;
    flex-direction: row;
    justify-content: center;
    margin-top: 16px;
    gap: 6px;
}

/*Beans*/
.karavan .rest-page .properties .bean-properties .pf-c-form__group-control {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.karavan .rest-page .properties .bean-property {
    display: flex;
    flex-direction: row;
    gap: 3px;
}

.karavan .rest-page .properties .bean-property .delete-button {
    padding: 3px;
    color: #b1b1b7;
    font-size: 14px;
}

/*YAML*/
.karavan .yaml-page {
    height: 100px;
}
/*Exception*/
/*Template*/
/*Error*/

.karavan .templates-page,
.karavan .exception-page,
.karavan .error-page{
    flex: 1;
    overflow: auto;
}

.karavan .templates-page-columns,
.karavan .exception-page-columns,
.karavan .error-page-columns {
    height: 100%;
    background: #fafafa;
}

.karavan .templates-page-columns .pf-c-empty-state,
.karavan .exception-page-columns .pf-c-empty-state,
.karavan .error-page-columns .pf-c-empty-state {
    margin: auto;
    height: 100%;
}

/* Help */
.dont-show {
    margin-right: auto;
}

/*Tour*/

reactour-portal .reactour__popover button {
    top: 1px;
    right: 7px;
}
reactour-portal .reactour__popover button:focus-visible {
    outline: none;
}

/*Catalogues*/
.karavan .kamelets-page .kamelet-card .pf-c-card__footer {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.karavan .tools-section .tools .header {
    display: flex;
    flex-direction: row;
}
.karavan .tools-section .tools .header .labels {
    height: fit-content;
    margin-left: 3px;
}

/* Project Tools */
.karavan .project-builder {
    height: 100%;
    font-size: 14px;
}

.karavan .project-builder .tools-section {
    padding-left: 10px;
    padding-right: 10px;
}

.karavan .project-builder .pf-c-toolbar__content {
    padding: 0;
}

.karavan .project-builder .pf-c-tabs__link,
.karavan .project-builder .pf-c-card__title,
.karavan .project-builder .profile-caption
{
    font-size: 14px;
}

.karavan .project-builder .card-header svg {
    margin-right: 6px;
}

.karavan .project-builder .card-disabled {
    opacity: 0.4;
}

.karavan .project-builder .pf-c-form__label {
    font-size: 14px;
}

.karavan .project-builder .pf-c-check__label {
    font-size: 14px;
}

.karavan .project-builder .text-field {
    font-size: 14px;
    height: auto;
}

.karavan .project-builder .pf-c-input-group button {
    font-size: 14px;
    height: auto;
}

.karavan .project-builder .pf-c-form {
    --pf-c-form--GridGap: 1em;
}

.karavan .project-builder .pf-c-card__body {
    --pf-c-card--child--PaddingRight: 0.5em;
    --pf-c-card--child--PaddingBottom: 1em;
    --pf-c-card--child--PaddingLeft: 1em;
}

.karavan .project-builder .pf-c-card__header {
    --pf-c-card--first-child--PaddingTop: 0.5em;
}

.karavan .project-builder .center {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: row;
    gap: 10px;
    padding: 10px;
}
.karavan .project-builder .center-column {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.karavan .project-builder .footer {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    padding: 10px;
}

.karavan .project-builder .footer .progress {
    flex-grow: 4;
}

.karavan .project-builder .footer .buttons {
    height: 60px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
}
.karavan .project-builder .project-properties td {
    padding: 0;
    margin: 0;
}
.karavan .project-builder .project-properties td,
.karavan .project-builder .project-properties tr {
    border: none;
}
.karavan .project-builder .project-properties .delete-button {
    padding: 0 0 0 6px;
    margin: 0;
}
.karavan .project-builder .add-button {
    width: fit-content;
    margin-top: 6px;
}