/*
 * 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-v5-c-page__header-tools--MarginRight);
}

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

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

.karavan .page-header .top-toolbar {
    width: 100%;
}

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

.filler {
    width: 100%;
}

.modal-footer {
    width: 100%;
}

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

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

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

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

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

.upload-buttons .pf-v5-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-v5-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-v5-c-card__header {
    padding-top: var(--pf-v5-global--spacer--sm);
}

.kamelets-page .kamelet-card .pf-v5-c-card__header .custom {
    margin-left: auto;
}

.kamelets-page .kamelet-card .pf-v5-c-card__header .pf-v5-c-card__header-main {
    display: flex;
    flex-direction: row;
}

.kamelets-page .kamelet-card .pf-v5-c-card__title {
    font-size: 15px;
    font-weight: 400;
}

.kamelets-page .kamelet-card .pf-v5-c-card__body {
    overflow: hidden;
    position: relative;
    line-height: 1.6em;
}

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

.kamelets-page .kamelet-card .header-labels {
    padding: 5px;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
}

.kamelets-page .kamelet-card .footer-labels {
    padding: 5px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.kamelets-page .kamelet-card .version,
.kamelets-page .kamelet-card .support-type,
.kamelets-page .kamelet-card .support-level {
    white-space: nowrap;
}

.kamelets-page .kamelet-card .labels {
    opacity: 0.5;
    font-weight: 200;
}

.kamelets-page .kamelet-card:hover .labels {
    opacity: 1;
}

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

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

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

.kamelet-modal-card .icon {
    height: 36px;
    width: 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-v5-global--active-color--100);
    color: white;
    height: fit-content;
    margin-top: auto;
    margin-bottom: auto;
    min-width: 0px;
}

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

.karavan .main-tabs .pf-v5-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;
    margin-bottom: 70px;
}

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

.karavan .pf-v5-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-v5-c-form {
    row-gap: 10px;
}

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

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

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

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

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

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

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

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

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

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

.karavan .properties .chip .pf-v5-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-v5-c-select__menu-search {
    padding: 0px 6px 6px 6px;
}

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

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

.karavan .properties .pf-v5-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-v5-c-button--BorderRadius: var(--pf-v5-c-button--m-control--BorderRadius);
    --pf-v5-c-button--disabled--BackgroundColor: var(--pf-v5-c-button--m-control--disabled--BackgroundColor);
    --pf-v5-c-button--after--BorderWidth: var(--pf-v5-c-button--m-control--after--BorderWidth);
    --pf-v5-c-button--after--BorderColor: var(--pf-v5-c-button--m-control--after--BorderTopColor) var(--pf-v5-c-button--m-control--after--BorderRightColor) var(--pf-v5-c-button--m-control--after--BorderBottomColor) var(--pf-v5-c-button--m-control--after--BorderLeftColor);
    color: var(--pf-v5-c-button--m-control--Color);
    background-color: var(--pf-v5-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-v5-global--BorderWidth--sm);
    border-top-color: var(--pf-v5-global--BorderColor--300);
    border-right-color: var(--pf-v5-global--BorderColor--300);
    border-bottom-color: var(--pf-v5-global--BorderColor--200);
    border-left-color: var(--pf-v5-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-v5-c-form__group-label,
.karavan .properties .object .pf-v5-c-form__group-label,
.karavan .properties .dataformat .pf-v5-c-form__group-label,
.karavan .properties .parameters .pf-v5-c-form__group-label {
    font-weight: 100;
}

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

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

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

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

.karavan .properties .add-button {
    color: var(--pf-v5-global--active-color--100);
}

.karavan .properties .delete-button {
    color: #909090;
}

.karavan .properties .pf-v5-c-expandable-section__toggle {
    margin: 0;
    padding: 0;
}

.karavan .properties .pf-v5-c-expandable-section__content {
    margin: 0;
}

.karavan .properties .pf-v5-c-expandable-section__content p {
    min-height: 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;
    gap: 6px;
}

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

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

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

.karavan .dsl-page .graph .connections .path {
    stroke: var(--pf-v5-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-v5-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-v5-global--Color--200);
    stroke-width: 1;
    fill: transparent;
}

.karavan .dsl-page .graph .connections .path-direct {
    stroke-dasharray: 0;
    stroke: var(--pf-v5-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-v5-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-v5-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-v5-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-v5-global--Color--200);
    --step-border-color-selected: var(--pf-v5-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-v5-global--palette--blue-50), 1);
}

.karavan .step-element .selected .header-icon {
    border-color: var(--pf-v5-global--primary-color--100);
    background-color: var(--pf-v5-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-v5-global--danger-color--100);
    font-weight: bold;
}

.karavan .step-element .header-icon {
    border-color: var(--pf-v5-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-v5-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-v5-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-v5-global--primary-color--100);
    visibility: hidden;
    z-index: 100;
}

.karavan .dsl-page .flows .hidden-step {
    display: none;
}

.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-v5-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-v5-global--Color--100);
}

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

.dsl-modal .dsl-card .pf-v5-c-card__header-main {
    display: flex;
    flex-direction: row;
}

.dsl-modal .dsl-card .header-labels .pf-v5-c-card__header-main {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.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-v5-c-form__group-label {
    padding: 0;
    margin: auto;
}

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

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

.dsl-modal .pf-v5-c-card__body {
    padding-bottom: 0;
    height: 54px;
}


.dsl-modal .dsl-card p {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.dsl-modal .pf-v5-c-card__footer {
    padding-bottom: 1em;
}

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

.dsl-modal .dsl-card .header-labels {
    padding: 5px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.dsl-modal .dsl-card .footer-labels {
    padding: 5px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.dsl-modal .version,
.dsl-modal .support-type,
.dsl-modal .support-level {
    white-space: nowrap;
}

.dsl-modal .labels {
    opacity: 0.5;
    font-weight: 200;
    text-wrap: nowrap;
}

.dsl-modal .dsl-card:hover .labels {
    opacity: 1;
}

.move-modal {
    width: 270px !important;
}

.move-modal .pf-v5-c-modal-box__body {
    margin-right: 0 !important;
}

.move-modal .pf-v5-m-plain {
    display: none;
}

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

.pf-v5-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 80px 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 .method-card .rest-method-desc {
    display: flex;
    flex-direction: column;
}

.karavan .rest-page .rest-card-unselected,
.karavan .rest-page .rest-config-card-unselected,
.karavan .rest-page .method-card-unselected {
    border-color: var(--pf-v5-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-v5-global--primary-color--100);
}

.karavan .rest-page .rest-card-selected .title {
    color: var(--pf-v5-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-v5-global--Color--400);
}

.karavan .rest-page .method-card-selected .method {
    background: var(--pf-v5-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: 670px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.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-v5-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-v5-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-v5-c-empty-state,
.karavan .exception-page-columns .pf-v5-c-empty-state,
.karavan .error-page-columns .pf-v5-c-empty-state {
    margin: auto;
    height: 100%;
}

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


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

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

.karavan .tools-section .knowledge-tabs {
    background-color: white;
}

/* 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-v5-c-toolbar__content {
    padding: 0;
}

.karavan .project-builder .pf-v5-c-tabs__link,
.karavan .project-builder .pf-v5-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-v5-c-form__label {
    font-size: 14px;
}

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

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

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

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

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

.karavan .project-builder .pf-v5-c-card__header {
    --pf-v5-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;
}

.root .tooltip-required-field .pf-v5-c-tooltip__content {
    text-align: start;
}

.karavan .kamelet-section {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.karavan .kamelets-page {
    overflow: auto;
    flex-shrink: unset;
    flex-grow: 1;
    background-color: var(--pf-v5-global--BackgroundColor--light-300);
}

.karavan .designer-page {
    background-color: white;
}

.karavan .designer-page .project-page-section {
    background-color: white;
}
