@import "titillium-web.css";
@import "color-palette.css";
@import "typography.css";
@import "size-spacing.css";
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined');

html {
    --lumo-font-family: "Titillium Web", sans-serif;
    --vaadin-checkbox-size: calc(var(--lumo-size-m) / 1.367);
    --vaadin-app-layout-drawer-overlay: true !important;
    --vaadin-app-layout-drawer-width: 300px;
    --cobra-header-element-height: 56px;
    --cobra-black-color: #000000;
    --cobra-white-color: #FFFFFF;
    --cobra-layout-background-color: var(--cobra-black-color);
    --cobra-footer-element-height: 42px;
    --cobra-header-buttons-hover-color: rgba(203, 229, 241, 0.2);
    --cobra-link-color: #3677D4;
    --cobra-border-default-color: #DBDEDF;
    --cobra-border-dark-gray: #404245;
    --cobra-default-border: 1px solid var(--cobra-border-default-color);
    --cobra-dialog-box-shadow: 0px 6px 4px 0px #00000040;
    --vaadin-checkbox-background: var(--lumo-primary-contrast);
    --vaadin-checkbox-border-radius: 2px;
    --vaadin-checkbox-background-hover: var(--vaadin-checkbox-background);
    --vaadin-input-field-background: var(--lumo-base-contrast);
    --vaadin-button-background: var(--lumo-base-contrast);
    --vaadin-button-text-color: var(--cobra-black-color);
    --vaadin-button-font-weight: var(--lumo-font-weight-600);
    --vaadin-button-font-size: var(--lumo-font-size-xs);
    --vaadin-button-border-radius: 100px;
    --vaadin-button-padding: 8px 16px 8px 16px;
    --vaadin-button-tertiary-text-color: var(--cobra-black-color);
    --vaadin-input-field-border-radius: 2px;
    --vaadin-input-field-label-font-size: var(--lumo-font-size-m);
    --vaadin-button-tertiary-font-weight: var(--lumo-font-weight-600);
    --vaadin-button-tertiary-padding: var(--lumo-space-s);
    --vaadin-grid-cell-padding: var(--lumo-space-s);
    --lumo-text-field-size: 32px;
    --cobra-scrollbar-width: auto;
    --cobra-scrollbar-track-background: #DCDEE0;
    scrollbar-color: #00000080 var(--cobra-scrollbar-track-background);
    scrollbar-width: var(--cobra-scrollbar-width);
}

@supports (scrollbar-width: thin) {
    html {
        --cobra-scrollbar-width: thin !important;
        scrollbar-width: thin !important;
    }
}

[theme~="dark"] {
    --cobra-link-color: #95CCFF;
    --vaadin-input-field-invalid-background: var(--lumo-error-color-50pct);
    --vaadin-input-field-background: var(--lumo-contrast-20pct);
    --vaadin-button-background: var(--lumo-contrast-20pct);
    --vaadin-button-text-color: var(--lumo-primary-contrast);
    --vaadin-button-tertiary-text-color: var(--lumo-primary-contrast);
    --vaadin-input-field-placeholder-color: var(--lumo-contrast-70pct);
    --vaadin-input-field-disabled-background: var(--lumo-base-color);
    --cobra-scrollbar-track-background: #F3F4F4;
}

body {
    --lumo-font-family: "Titillium Web", sans-serif;
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-s);
    font-weight: var(--lumo-font-weight-400);

    --cobra-ui-black: hsl(210, 4%, 26%);
    --cobra-ui-darker-grey: hsl(213, 29%, 21%);
    --cobra-ui-dark-grey: hsl(216, 13%, 41%);
    --cobra-ui-dark: hsl(210, 4%, 46%);
    --cobra-ui-grey: hsl(214, 4%, 63%);
    --cobra-ui-grey-light: hsl(210, 4%, 76%);
    --cobra-ui-grey-little-lighter: hsl(210, 4%, 91%);
    --cobra-ui-grey-lighter: hsl(210, 4%, 96%);
    --cobra-ui-grey-ultralight: hsl(210, 4%, 98%);
    --cobra-ui-white: #FFFFFF;

    --cobra-ui-lightening: 6%;
    --cobra-ui-darkening: -12%;

    --cobra-orange-base: 35;
    --cobra-orange-base-light: 46%;
    --cobra-ui-orange: hsl(var(--cobra-orange-base), 100%, var(--cobra-orange-base-light));
    --cobra-ui-orange-dark: hsl(var(--cobra-orange-base), 100%, calc(var(--cobra-orange-base-light) - 2%));
    --cobra-ui-orange-light: hsl(var(--cobra-orange-base), 100%, calc(var(--cobra-orange-base-light) + var(--cobra-ui-lightening)));
    --cobra-ui-orange-lighter: hsl(var(--cobra-orange-base), 100%, 86%);
    --cobra-ui-orange-ultralight: hsl(var(--cobra-orange-base), 100%, 91%);

    --cobra-blue-base: 205;
    --cobra-blue-base-light: 46%;
    --cobra-ui-blue: hsl(var(--cobra-blue-base), 100%, var(--cobra-blue-base-light));
    --cobra-ui-blue-dark: hsl(var(--cobra-blue-base), 100%, calc(var(--cobra-blue-base-light) + var(--cobra-ui-darkening)));
    --cobra-ui-blue-light: hsl(var(--cobra-blue-base), 100%, calc(var(--cobra-blue-base-light) + var(--cobra-ui-lightening)));
    --cobra-ui-blue-lighter: rgba(0, 137, 237, 0.1);
    --cobra-ui-blue-ultralight: rgba(0, 137, 237, 0.05);

    --cobra-green-base: 145;
    --cobra-green-base-light: 42%;
    --cobra-ui-green: hsl(var(--cobra-green-base), 63%, var(--cobra-green-base-light));
    --cobra-ui-green-dark: hsl(var(--cobra-green-base), 63%, calc(var(--cobra-green-base-light) + var(--cobra-ui-darkening)));
    --cobra-ui-green-light: hsl(var(--cobra-green-base), 63%, calc(var(--cobra-green-base-light) + var(--cobra-ui-lightening)));
    --cobra-ui-green-lighter: hsl(var(--cobra-green-base), 63%, 82%);
    --cobra-ui-green-ultralight: hsl(var(--cobra-green-base), 63%, 87%);

    --cobra-red-base: 0;
    --cobra-red-base-light: 63%;
    --cobra-ui-red: hsl(var(--cobra-red-base), 79%, var(--cobra-red-base-light));
    --cobra-ui-red-dark: hsl(var(--cobra-red-base), 79%, calc(var(--cobra-red-base-light) + var(--cobra-ui-darkening)));
    --cobra-ui-red-light: hsl(var(--cobra-red-base), 79%, calc(var(--cobra-red-base-light) + var(--cobra-ui-lightening)));
    --cobra-ui-red-lighter: hsl(var(--cobra-red-base), 79%, 82%);
    --cobra-ui-red-ultralight: hsl(var(--cobra-red-base), 79%, 87%);

    --cobra-font-s: var(--lumo-font-size-s);
    --cobra-font-m: var(--lumo-font-size-m);
    --cobra-font-l: var(--lumo-font-size-l);
    --cobra-font-xl: var(--lumo-font-size-xl);
    --cobra-font-xxl: var(--lumo-font-size-xxl);
    --cobra-font-xxxl: var(--lumo-font-size-xxxl);

    --cobra-box-shadow-checked: 0px 1px 4px rgba(237, 139, 0, 0.5);
    --cobra-box-shadow-checked-disabled: 0px 1px 4px #C4C4C4;
    --cobra-box-shadow-unchecked: 0px 1px 4px rgba(0, 0, 0, 0.15);

    --vaadin-select-toggle-button-color: var(--lumo-contrast-60pct);
    --cobra-select-color: var(--cobra-ui-orange);
    --cobra-select-box-shadow: var(--cobra-select-color) 0 0 0 1px inset !important;

    --cobra-ui-status-blue-background: rgba(0, 137, 237, 0.1);
    --cobra-ui-status-blue-border: rgba(0, 137, 237, 0.4);
    --cobra-ui-status-green-background: rgba(5, 160, 12, 0.1);
    --cobra-ui-status-green-background-lighter: rgba(5, 160, 12, 0.04);
    --cobra-ui-status-green-border: rgba(5, 160, 12, 0.4);
    --cobra-ui-status-red-background: rgba(235, 87, 87, 0.1);
    --cobra-ui-status-red-border: rgba(235, 87, 87, 0.4);
    --cobra-ui-status-orange-background: rgba(237, 139, 0, 0.1);
    --cobra-ui-status-orange-border: rgba(237, 139, 0, 0.4);
    --cobra-ui-status-yellow-background: rgba(255, 192, 102, 0.1);
    --cobra-ui-status-yellow-border: rgba(255, 192, 102, 0.4);
    --cobra-ui-status-grey-background: var(--cobra-ui-grey-lighter);
    --cobra-ui-status-grey-border: #BFC2C4;
}

/* Font sizes */
body,
p {
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-s);
    font-weight: var(--lumo-font-weight-400);
}


h1 {
    margin-top: 0;
    font-size: var(--lumo-font-size-xxxl);
    line-height: var(--lumo-line-height-m);
    font-weight: var(--lumo-font-weight-700);
}

h2 {
    margin-top: 0;
    font-size: var(--lumo-font-size-xxl);
    line-height: var(--lumo-line-height-m);
    font-weight: var(--lumo-font-weight-700);
    margin-bottom: 0.5em;
}

h3 {
    margin-top: 0;
    font-size: var(--lumo-font-size-xl);
    line-height: var(--lumo-line-height-m);
    font-weight: var(--lumo-font-weight-600);
    margin-bottom: 0.5em;
}

h4 {
    margin-top: 0;
    font-size: var(--lumo-font-size-l);
    line-height: var(--lumo-line-height-s);
    font-weight: var(--lumo-font-weight-600);
}

h5 {
    font-size: var(--lumo-font-size-s);
    margin-top: 0;
    margin-bottom: 0.25em;
}

a {
    color: var(--cobra-link-color);
    text-decoration: underline;
    font-weight: bold;
}

a:hover {
    color: var(--cobra-ui-blue-dark);
}

/****
UTILS
****/

/* Font Size */
.cobra-font-s {
    font-size: var(--cobra-font-s);
    line-height: 1.25em;
    letter-spacing: 0;
}

.cobra-font-m {
    font-size: var(--cobra-font-m);
    line-height: 22px;
}

.cobra-font-l {
    font-size: var(--cobra-font-l);
}

.cobra-font-xl {
    font-size: var(--cobra-font-xl);
}

.cobra-font-xxl {
    font-size: var(--cobra-font-xxl);
}

/* Font colors */
.cobra-font-color-black {
    color: var(--cobra-ui-black);
}

.cobra-font-color-grey-light {
    color: var(--cobra-ui-grey-light);
}

.cobra-font-color-dark {
    color: var(--cobra-ui-dark);
}

.cobra-font-color-white {
    color: var(--cobra-ui-white);
}

.cobra-font-color-white-important {
    color: var(--cobra-ui-white) !important;
}

.cobra-font-color-blue {
    color: var(--cobra-ui-blue);
}

.cobra-font-color-green {
    color: var(--cobra-ui-green);
}

.cobra-font-color-orange {
    color: var(--lumo-primary-color);
}

.cobra-font-color-red {
    color: var(--cobra-ui-red);
}

/* Margins */
.cobra-margin-zero {
    margin: 0 !important;
}

.cobra-margin-bottom-zero {
    margin-bottom: 0 !important;
}

.cobra-margin-s {
    margin-bottom: 8px !important;
}

.cobra-margin-m {
    margin-bottom: 16px !important;
}

.cobra-margin-l {
    margin-bottom: 24px !important;
}

.cobra-margin-xl {
    margin-bottom: 32px !important;
}

.cobra-margin-right-zero {
    margin-right: 0 !important;
}

.cobra-margin-left-zero {
    margin-left: 0 !important;
}

.cobra-margin-left-s {
    margin-left: 8px !important;
}

.cobra-margin-right-xs {
    margin-right: 4px !important;
}

.cobra-margin-left-xs {
    margin-left: 4px !important;
}

.cobra-margin-bottom-s {
    margin-bottom: 8px !important;
}

.cobra-margin-bottom-xxs {
    margin-bottom: 2px !important;
}

.cobra-margin-top-s {
    margin-top: 8px !important;
}

.cobra-margin-top-zero {
    margin-top: 0 !important;
}

.cobra-margin-y-m {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
}

.cobra-font-weight-bold {
    font-weight: bold;
}

.cobra-mix-blend-mode-darken {
    mix-blend-mode: darken;
}

/* Padding */
[has-label] {
    padding-bottom: var(--lumo-space-m);
}

.cobra-padding-zero {
    padding: 0 !important;
}

.cobra-padding-vertical-s {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

.cobra-padding-top-s {
    padding-top: 8px !important;
}

.cobra-padding-bottom-s {
    padding-bottom: 8px !important;
}

.cobra-padding-bottom-m {
    padding-bottom: 16px !important;
}

.cobra-padding-horizontal-s {
    padding-left: 8px !important;
    padding-right: 8px !important;
}

.cobra-padding-right-s {
    padding-right: 8px !important;
}

.cobra-padding-bottom-xs {
    padding-bottom: 4px !important;
}

.cobra-padding-top-zero {
    padding-top: 0 !important;
}

/* Cursors */
.cobra-cursor-pointer {
    cursor: pointer;
}

/* Display */
.cobra-display-flex {
    display: flex;
}

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

.cobra-flex-item-expanded {
    flex-grow: 1;
}

.cobra-display-none {
    display: none;
}

.cobra-box-shadow-none {
    box-shadow: none;
}

/* Text Align */
.cobra-text-align-center {
    text-align: center !important;
}

.cobra-text-align-start {
    text-align: start !important;
}

.cobra-align-baseline {
    align-items: baseline;
}

.cobra-align-self-normal {
    align-self: normal;
}

.cobra-justify-content-space-around {
    justify-content: space-between;
}

/* Widths */
.cobra-width-fit-content {
    width: fit-content;
}

/* Heights */
.cobra-height-fit-content {
    height: fit-content;
}

/*********
COMPONENTS
*********/

/* CobraIcon TODO calc*/
.cobra-icon {
    display: inline-block;
    box-sizing: border-box;
    position: relative;
    line-height: 100%;
    opacity: 0.8 !important;
}

.cobra-material-icon {
    display: flex;
    align-items: center;
}

.cobra-material-icon.large .material-symbols-outlined {
    font-size: 32px;
}

.cobra-material-icon.medium .material-symbols-outlined {
    font-size: 24px;
}

.cobra-material-icon.small .material-symbols-outlined {
    font-size: 20px;
}

.cobra-material-icon.extra-small .material-symbols-outlined {
    font-size: 18px;
}

.cobra-icon vaadin-icon {
    position: absolute;
    top: var(--cobra-icon-padding);
    left: var(--cobra-icon-padding);
}

.cobra-icon.extra-small {
    --cobra-icon-padding: 1px;
    height: 12px;
    width: 12px;
}

.cobra-icon.extra-small vaadin-icon {
    height: 12px;
    width: 12px;
}

.cobra-icon.small {
    --cobra-icon-padding: 1px;
    height: 16px;
    width: 16px;
}

.cobra-icon.small vaadin-icon {
    height: 16px;
    width: 14px;
}

.cobra-icon.medium {
    --cobra-icon-padding: 3px;
    height: 24px;
    width: 24px;
}

.cobra-icon.medium vaadin-icon {
    height: 20px;
    width: 20px;
}

.cobra-icon.large {
    --cobra-icon-padding: 4px;
    height: 40px;
    width: 40px;
}

.cobra-icon.large vaadin-icon {
    height: 32px;
    width: 32px;
}


.copy-button-on-hover-container .copy-button {
    visibility: hidden;
    position: relative;
    cursor: pointer;
    color: var(--lumo-primary-text-color);
}

.copy-button-on-hover-container:hover .copy-button {
    visibility: visible;
}

/*CobraMenuTileContainer*/
.cobra-menu-tile-container {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}

/*CobraMenuTile*/
.cobra-menu-tile {
    display: flex;
    width: 268px;
    height: 100px;
    box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    padding: 16px;
    box-sizing: border-box;
    cursor: pointer;
    margin-right: 24px;
    margin-bottom: 24px;
}

.cobra-menu-tile-subtitle {
    color: var(--lumo-secondary-text-color);
}

[theme~="dark"] .cobra-menu-tile {
    background-color: var(--lumo-contrast-20pct);
    box-shadow: 0px 0px 1px white;
}

.cobra-menu-tile:hover {
    background-color: var(--cobra-ui-grey-ultralight);
}

[theme~="dark"] .cobra-menu-tile:hover {
    background-color: var(--lumo-contrast-30pct);
}

.cobra-menu-tile .icon-container {
    margin-right: 16px;
}

.cobra-checkbox {
    font-size: var(--cobra-font-m);
}

.cobra-white-background vaadin-menu-bar-button {
    background-color: inherit;
}

.cobra-user-profile-dropdown-user-line {
    max-width: 250px;
    overflow: hidden;
}

.cobra-user-profile-dropdown-user-item {
    color: var(--lumo-primary-contrast);
    max-width: 300px;
}

.cobra-user-profile-dropdown-user-item .cobra-icon {
    height: 26px;
}

.cobra-user-profile-dropdown-user-item .cobra-material-icon .material-symbols-outlined {
    font-size: 28px;
}

.cobra-user-profile-dropdown-user-profile-item {
    cursor: pointer;
}

.cobra-user-profile-dropdown-text {
    text-decoration: underline;
}

.cobra-user-profile-dropdown-item .cobra-material-icon {
    margin-right: 8px;
}

.cobra-user-profile-dropdown-icon .material-symbols-outlined {
    font-size: 22px !important;
}

.cobra-user-profile-dropdown-item {
    display: flex;
    align-items: center;
}

.cobra-user-profile-dropdown-selected-org {
    border: 2px solid var(--cobra-ui-orange);
    border-radius: 4px;
}

/*CobraButton*/
.cobra-button {
    height: 32px;
    margin: 0 var(--lumo-space-s) 0 0;
    cursor: pointer;
}

.cobra-button:not([theme~="tertiary"]):not([theme~="tertiary-inline"]):not(:has(cobra-icon)) {
    --vaadin-button-font-size: var(--lumo-font-size-m);
}

.cobra-button.bg-transparent::after,
.cobra-button.bg-transparent::before {
    background-color: transparent;
}

.cobra-button[disabled]:not(.available) {
    opacity: 1;
}

[theme~="dark"] .cobra-button[disabled]:not(.available) {
    opacity: 0.5;
}

.cobra-button[theme~="primary"] {
    height: 31px;
}

.cobra-button[theme~="primary"]:hover {
    background-color: var(--cobra-ui-orange-dark);
}

.cobra-button:not([theme~="primary"]):hover {
    opacity: 0.8;
}

.cobra-button:not([theme~="primary"]):not([theme~="tertiary"]) {
    border: 1px solid var(--cobra-border-default-color);
}

[theme~="dark"] .cobra-button:not([theme~="primary"]):not([theme~="tertiary"]):hover {
    background-color: var(--lumo-contrast-30pct);
}

.cobra-button .cobra-icon {
    margin-right: 3px !important;
}

.cobra-button.back {
    font-size: var(--cobra-font-l);
    font-weight: bold;
    margin-right: 8px !important;
    color: var(--cobra-ui-orange);
    padding-left: 0;
}

.cobra-button.back-v2 {
    font-weight: var(--lumo-font-weight-600);
    margin-right: 8px !important;
    color: var(--lumo-body-text-color);
}

.cobra-button.back:hover {
    color: var(--cobra-ui-orange-dark);
}

.cobra-button.back .cobra-icon {
    margin-right: 1px !important;
}

.cobra-button.back-v2 .cobra-material-icon .material-symbols-outlined {
    font-size: var(--lumo-font-size-s);
}

.cobra-button.navigation {
    color: #3677D4;
    padding: 0;
    font-weight: var(--lumo-font-weight-400);
    font-size: var(--lumo-font-size-m);
}

[theme~="dark"] .cobra-button.navigation {
    color: #95CCFF;
}

.cobra-button-text {
    text-align: left !important;
}

.address-book-button {
    color: var(--cobra-white-color);
    font-size: var(--lumo-font-size-l);
}

.address-book-button > vaadin-icon {
    width: calc(var(--lumo-icon-size-m) + 4px);
    height: calc(var(--lumo-icon-size-m) + 4px);
}

vaadin-button {
    --lumo-button-size: calc(var(--lumo-size-m) * 1.5);
}

vaadin-button[theme~="tertiary"]:hover::part(label) {
    text-decoration: underline;
}

vaadin-button[theme="tertiary"]::part(prefix) {
    margin-right: 4px !important;
}

vaadin-button.always-underlined::part(label) {
    text-decoration: underline !important;
}

vaadin-button.available::part(label) {
    color: var(--lumo-success-text-color);
}

vaadin-button.not-available::part(label) {
    color: var(--lumo-error-text-color) !important;
}

vaadin-button[theme~='primary'][disabled] {
    background-color: var(--lumo-primary-color-50pct);
    color: var(--cobra-ui-white);
}

vaadin-button.multi-line::part(label) {
    overflow: unset;
    word-break: break-word;
    width: 100%;
    white-space: initial;
    text-align: left;
}

vaadin-button.copy-button {
    --lumo-button-size: none;
    padding: 0;
    margin: 0;
}

/*CobraDivider*/
.cobra-line-divider {
    margin: 0;
    --cobra-divider-color: #D2D2D2;
}

.cobra-line-divider.horizontal {
    height: 24px;
    width: 100%;
    margin-bottom: 23px;
    border-bottom: solid var(--cobra-divider-color) 1px;
}

.cobra-line-divider.vertical {
    width: 8px;
    border-right: solid var(--cobra-divider-color) 1px;
    margin-right: 7px;
}

/*CobraMainActionsBar*/
.cobra-main-actions-bar {
    display: flex;
    flex-direction: row;
}

/*CobraUtilActionsBar*/
.cobra-util-actions-bar {
    display: flex;
    flex-direction: row;
    row-gap: var(--lumo-space-s);
    column-gap: var(--lumo-space-m);
}

.cobra-util-actions-bar * {
    margin: 0;
}

.cobra-util-actions-bar > * {
    margin-right: 0 !important;
}

/*CobraSearchComponent*/
.cobra-search-component {
    display: flex;
    flex-direction: column;
}

/* Checkbox */
vaadin-checkbox:not([checked])::part(checkbox) {
    box-shadow: inset 0 0 0 1px var(--lumo-contrast-30pct);
}

vaadin-checkbox:not([checked])::part(checkbox):hover {
    background: none !important;
}

vaadin-checkbox.label-36[has-label] ::slotted(label) {
    width: 36px;
}

vaadin-checkbox.label-48[has-label] ::slotted(label) {
    width: 48px;
}

vaadin-checkbox.label-72[has-label] ::slotted(label) {
    width: 72px;
}

vaadin-checkbox.label-16[has-label] ::slotted(label) {
    width: 16px;
}

vaadin-checkbox[has-label] {
    cursor: pointer;
}

vaadin-checkbox[has-label] ::slotted(label) {
    margin: 0 0.875em 0 0.375em;
    padding: 0;
    cursor: pointer;
}

vaadin-checkbox {
    font-size: var(--lumo-font-size-m);
}

vaadin-checkbox.switch {
    --lumo-size-xs: 1.625rem;
}

vaadin-checkbox.switch label {
    align-items: center;
}

vaadin-checkbox.switch[theme~="label-left"] label {
    flex-direction: row-reverse;
}

vaadin-checkbox.switch::part(checkbox) {
    border-radius: 10px;
    position: relative;
    cursor: pointer;
    width: 40px;
    height: 20px;
}

vaadin-checkbox.switch::part(checkbox)::after {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    margin-left: 2px;
    top: 0;
    left: 0;
    opacity: 1;
    transform: none;
    border-width: 1px;
    border-radius: 50%;
    transition: transform .2s ease-in;
    border-color: var(--cobra-ui-grey-light);
    background-color: var(--cobra-ui-grey-light);
    content: "";
}

vaadin-checkbox.switch[checked]::part(checkbox)::after {
    transform: translatex(20px);
    transition: transform .2s ease-in;
    background-color: var(--cobra-ui-orange);
    border-color: var(--cobra-ui-orange);
}

vaadin-checkbox.switch[checked]::part(checkbox) {
    background-color: var(--cobra-ui-white) !important;
    box-shadow: inset 0 0 0 1px var(--cobra-ui-orange-light);
}

vaadin-checkbox.switch[checked][disabled]::part(checkbox) {
    background-color: var(--lumo-primary-color) !important;
    opacity: 0.3;
}

vaadin-checkbox-group::part(label) {
    color: var(--lumo-secondary-text-color) !important;
    -webkit-text-fill-color: var(--lumo-secondary-text-color) !important;
    font-weight: bold;
}

vaadin-checkbox-group::part(label)::after {
    color: var(--lumo-primary-text-color);
}

vaadin-checkbox-group::part(group-field) {
    padding-top: 0.3em;
}

.fitting-day-checkbox {
    --vaadin-checkbox-size: 30px;
    margin-top: 3px;
}

.fitting-day-checkbox::part(checkbox) {
    margin-left: 0;
    margin-top: 5px;
    align-self: center;
    border: var(--cobra-default-border);
}

.fitting-day-checkbox[checked]::part(checkbox) {
    background-color: var(--cobra-white-color);
    border: 1px solid var(--cobra-select-color);
}

.fitting-day-checkbox:not([checked])::part(checkbox) {
    box-shadow: none;
}

.fitting-day-checkbox::part(checkbox)::before {
    content: "";
    background: url('icons/Fitting-day-badge.svg') no-repeat center center;
    background-position: 58% 62%;
    background-size: 62%;
    width: 2em;
    height: 2em;
    mask: none;
    opacity: 0;
    transition: opacity 120ms ease-in-out;
}

.fitting-day-checkbox[checked]::part(checkbox)::before {
    opacity: 1;
}

.fitting-day-checkbox::part(checkbox)::after {
    content: "";
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
            -135deg,
            transparent 47%,
            var(--lumo-primary-color) 49%,
            var(--lumo-primary-color) 52%,
            transparent 53%
    );
    opacity: 0;
    transition: opacity 120ms ease-in;
}

.fitting-day-checkbox.disabled::part(checkbox)::after {
    opacity: 1;
}

.fitting-day-checkbox-info-icon {
    position: absolute;
    top: -4px;
    right: -6px;
    width: 12px;
    height: 12px;
    cursor: pointer;
}

.order-id-with-badge-wrapper {
    display: flex;
    margin-right: var(--lumo-space-xs);
    align-items: center;
}

/*CobraViewHeader*/
.cobra-view-header {
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.cobra-view-header h1, .cobra-view-header h2, .cobra-view-header h3 {
    margin: 0;
    color: var(--lumo-primary-contrast);
    max-height: var(--cobra-header-element-height);
    line-height: calc(var(--cobra-header-element-height) / 2);
    white-space: normal;
    overflow: hidden;
}

.cobra-view-header > div:not(:empty) {
    margin-right: var(--lumo-space-m);
}

.cobra-view-header-subtitle {
    align-items: center;
}

.cobra-view-header-subtitle h1,
.cobra-view-header-subtitle h2,
.cobra-view-header-subtitle h3 {
    color: var(--lumo-primary-color) !important;
    line-height: 28px;
    margin: 0;
}

.cobra-view-header .cobra-view-header-tooltip-container {
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
}

.cobra-view-header .header-and-subtitle {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

/*CobraPage*/
.cobra-page {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 24px 40px 16px;
}

.cobra-page-header {
    margin-bottom: 24px;
    align-items: baseline;
}

.cobra-page-actions-container {
    display: flex;
    flex-wrap: wrap;
}

.cobra-page-actions-container > div:not(:empty) {
    margin-bottom: var(--lumo-space-m);
}

/*CobraOverviewPage*/
.overview-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.above-grid-container {
    display: flex;
    justify-content: space-between;
    font-size: var(--lumo-font-size-m);
    margin-bottom: var(--lumo-space-s);
    align-items: end;
}

.above-grid-container .cobra-util-actions-bar {
    flex-wrap: wrap;
}

/*CobraSection*/
.cobra-section-limited-width {
    max-width: 768px;
    width: 100%;
}

/*CobraDialog*/
[theme~="light"] vaadin-dialog::part(overlay) {
    background-color: var(--cobra-white-color);
}

vaadin-dialog::part(overlay) {
    box-shadow: var(--cobra-dialog-box-shadow) !important;
}

.cobra-dialog-content {
    width: 400px;
    box-sizing: border-box;
    padding: 16px 16px 48px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

/*CobraDialog*/
.cobra-edit-dialog-content {
    width: 560px;
    box-sizing: border-box;
    padding: 16px 16px 16px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.cobra-info-dialog-content {
    width: 560px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.cobra-action-result-dialog-content {
    width: 650px;
    box-sizing: border-box;
    padding: 16px 16px 16px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.cobra-history-details-dialog-content {
    box-sizing: border-box;
    padding: 16px 16px 16px;
    display: flex;
    justify-content: center;
}

.cobra-action-result-dialog-content .cobra-successful-text {
    background-color: var(--lumo-success-color-50pct);
    padding: 16px 16px 16px;
    border-radius: 4px;
}

.cobra-action-result-dialog-content .cobra-error-text {

    background-color: var(--lumo-error-color-50pct);
    padding: 16px 16px 16px;
    border-radius: 4px;
}

.cobra-info-dialog-content .cobra-info-text {

    padding: 16px 16px 16px;
    border-radius: 4px;
    max-height: 572px;
    overflow-y: auto;
}

.cobra-dialog-content .cobra-dialog-title h3 {
    margin-top: 8px;
    margin-bottom: 16px;
}

.cobra-dialog-footer {
    background-color: var(--lumo-contrast-5pct);
    box-sizing: border-box;
    padding-top: 16px;
    padding-bottom: 16px;
    padding-left: 16px;
}

[theme~="dark"] .cobra-dialog-footer {
    background-color: var(--lumo-contrast-30pct);
}

/*CobraGridCollectionCell*/
.cobra-grid-collection-cell {
    margin: 0 0 0 15px;
    padding: 0;
    white-space: normal;
}

/*CobraDropdownMenu*/
.cobra-dropdown-overlay {
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 200;
}

.cobra-dropdown {
    position: relative;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cobra-dropdown-menu {
    position: absolute;
    margin-top: var(--lumo-space-xs);
    background-color: var(--cobra-white-color);
    border-radius: 4px;
    display: none;
    box-sizing: border-box;
    -moz-box-shadow: 0 0 3px #ccc;
    -webkit-box-shadow: 0 0 3px #ccc;
    box-shadow: 0 0 3px #ccc;
    flex-direction: column;
}

[theme~="dark"] .cobra-dropdown-menu {
    background-color: var(--lumo-contrast-20pct);
}

.cobra-dropdown-menu .cobra-dropdown-item {
    height: 32px;
    width: 100%;
    margin-left: 8px;
    margin-right: 48px;
    font-size: var(--cobra-font-m);
    cursor: pointer;
    display: flex;
    align-items: center;
}

.cobra-dropdown-item[disabled] {
    opacity: 0.4;
    pointer-events: none;
}

.cobra-dropdown-item:hover {
    text-decoration: underline;
}

.cobra-dropdown-menu.opened {
    display: flex;
    z-index: 3;
}


/*CobraTooltip*/
.cobra-tooltip-clickable {
    position: relative;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cobra-white-color);
}

.cobra-tooltip-clickable-content::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;

    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-right: 7px solid var(--cobra-ui-black);
    left: -5px;

    top: 2px;
}

.cobra-tooltip-clickable-content {
    background-color: var(--cobra-ui-black);
    color: var(--cobra-ui-white);
    font-size: var(--lumo-font-size-s);
    padding: 0 8px;
    position: absolute;
    border-radius: 4px;
    display: none;
    box-sizing: border-box;
}

.cobra-tooltip-clickable-content.opened {
    display: block;
    z-index: 3;
}

/*CobraTabs*/
.cobra-tabs:not([orientation="vertical"]) {
    margin-bottom: 24px;
}

.cobra-tabs::part(tabs-container) {
    box-shadow: none;
}

.cobra-tabs vaadin-tabs::part(tabs) {
    box-shadow: inset 0 -1px 0 0 var(--lumo-primary-color);
    max-width: fit-content;
    padding-left: var(--lumo-space-m);
    padding-right: var(--lumo-space-m);
    gap: 20px;
    -ms-overflow-style: none; /* hide scrollbar in IE and Edge */
    scrollbar-width: none; /* hide scrollbar */
}

.cobra-tabs::part(content) {
    padding: var(--lumo-space-m) 0;
}

.cobra-tabs vaadin-tabs::part(tabs)::-webkit-scrollbar {
    display: none; /* hide scrollbar on Safari */
}

.cobra-tab {
    border: none;
    border-radius: 4px 4px 0 0;
    padding: 10px var(--lumo-space-xs) 6px var(--lumo-space-xs);
    border-bottom: solid 4px transparent;
    transition: none;
}

.cobra-tab[active]:not([selected]) {
    color: inherit;
}

.cobra-tab::after, .cobra-tab::before {
    width: 100%;
    height: 4px;
    top: 0 !important;
    background-color: unset;
    display: none;
}

.cobra-tab[selected] {
    border-bottom: solid 4px var(--lumo-primary-color);
    font-weight: var(--lumo-font-weight-600);
    color: var(--lumo-primary-color);
}

.status-tabs {
    margin-bottom: var(--lumo-space-m);
}

[theme~='dark'] .status-tabs::part(tabs) {
    box-shadow: inset 0 -1px 0 0 var(--lumo-contrast-30pct);
}

.status-tabs::part(tabs)::-webkit-scrollbar {
    display: none;
}

.status-tabs::part(tabs) {
    justify-content: flex-end;
    box-shadow: inset 0 -1px 0 0 var(--lumo-contrast-10pct);
    display: flex;
    gap: var(--lumo-space-s);
    height: var(--lumo-space-xl);
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none;
}

@media screen and (max-width: 768px) {
    .status-tabs::part(tabs) {
        justify-content: flex-start;
    }
}

.status-tab {
    padding: 0;
    cursor: pointer;
}

.status-tab::after,
.status-tab::before {
    width: 25px;
    height: 2px;
}

.status-counter {
    margin-left: var(--lumo-space-xs);
    font-size: var(--lumo-font-size-xs);
    font-weight: var(--lumo-font-weight-700);
    color: var(--cobra-info-status-color-50pct);
    border: var(--cobra-info-status-color-50pct) solid 1px;
    background-color: var(--cobra-info-status-color-5pct);
}

.status-tab-label {
    font-size: var(--lumo-font-size-m);
    font-weight: var(--lumo-font-weight-600);
    color: var(--lumo-contrast-50pct);
}

.status-tab[selected] .status-tab-label,
.status-tab-label:hover {
    color: var(--lumo-contrast-90pct);
}

[theme~='dark'] .status-tab-label {
    color: var(--lumo-contrast-60pct);
}

[theme~='dark'] .status-tab[selected] .status-tab-label,
[theme~='dark'] .status-tab-label:hover {
    color: var(--lumo-contrast);
}


/*CobraInputLink*/
.cobra-input-link-wrapper {
    position: relative;
}

.cobra-input-link-wrapper .cobra-input-link-container {
    position: absolute;
    right: 0;
    top: 6px;
}

.cobra-input-link-wrapper[has-label] .cobra-input-link-container {
    top: 6px;
}

/*CobraNotification*/

vaadin-notification-card {
    --cobra-notification-background: #FEF9F2;
    --cobra-notification-border: var(--cobra-ui-orange-dark);
    --cobra-notification-header-color: var(--cobra-ui-orange-dark);
    --cobra-notification-content-color: var(--cobra-ui-orange);
}

vaadin-notification-card[theme="success"] {
    --cobra-notification-background: #F4FBF7;
    --cobra-notification-border: var(--cobra-ui-green-dark);
    --cobra-notification-header-color: var(--cobra-ui-green-dark);
    --cobra-notification-content-color: var(--cobra-ui-green);
}

vaadin-notification-card[theme="error"] {
    --cobra-notification-background: #FFF2F2;
    --cobra-notification-border: var(--cobra-ui-red-dark);
    --cobra-notification-header-color: var(--cobra-ui-red-dark);
    --cobra-notification-content-color: var(--cobra-ui-red);
}

.cobra-notification-content {
    color: var(--cobra-notification-content-color);
    padding: var(--lumo-space-wide-l);
}

.cobra-notification-content h3 {
    color: var(--cobra-notification-header-color);
    margin-top: 0;
}

/*History*/
.cobra-event-info {
    margin-right: 24px;
}

.cobra-event-info .cobra-icon {
    margin-right: 8px;
}

.cobra-history-component {
    position: relative;
    padding-left: 5px;
}

.cobra-history-entry-author {
    color: var(--cobra-ui-black);
}

.cobra-history-entry-value-text {
    color: var(--cobra-ui-black);
    font-weight: var(--lumo-font-weight-700);
}

[theme~="dark"] .cobra-history-entry-value-text {
    color: var(--lumo-contrast);
}

[theme~="dark"] .cobra-history-entry-author {
    color: var(--lumo-contrast);
}

.cobra-history-tracker-line {
    width: 1px;
    height: calc(100% - 10px);
    background: var(--cobra-ui-orange-light);
    position: absolute;
    bottom: 0;
    left: 4px;
}

.cobra-history-entry {
    position: relative;
    margin-left: 10px;
    color: var(--cobra-ui-dark);
}

[theme~="dark"] .cobra-history-entry {
    color: var(--lumo-contrast-70pct)
}

.cobra-history-entry-by-separator {
    color: var(--cobra-ui-dark);
}

[theme~="dark"] .cobra-history-entry-by-separator {
    color: var(--lumo-contrast-70pct);
}


.cobra-history-entry::before {
    height: 9px;
    width: 9px;
    content: "";
    border-radius: 50%;
    display: inline-block;
    background-color: var(--cobra-ui-orange-light);
    position: absolute;
    left: -15px;
    top: 0.5em;
}

.cobra-history-entry-changes-container {
    padding-top: 8px;
}

.cobra-history-entry-change {
    margin-bottom: 8px;
    padding-left: 8px;
}


/*Utils*/
span.vertical-centering-span {
    vertical-align: middle;
}


/*PanelButton*/
.cobra-panel-button-container {
    display: flex;
    flex-wrap: wrap;
    padding-bottom: 0;
}

.cobra-panel-button {
    text-align: center;
    min-width: 112px;
    border-radius: var(--vaadin-button-border-radius);
    padding: var(--vaadin-button-padding);
    height: 32px;
    box-sizing: border-box;
    margin-right: var(--lumo-space-s);
    cursor: pointer;
    background: var(--cobra-white-color);
    border: var(--cobra-default-border);
}

.cobra-panel-button:not(:has(cobra-icon)) .cobra-panel-button-text {
    font-size: var(--lumo-font-size-m);
}

[theme="dark"] .cobra-panel-button {
    background: var(--lumo-contrast-20pct);
    border: 1px solid var(--lumo-primary-contrast);
}

.cobra-panel-button-text {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--lumo-font-size-xs);
    font-weight: var(--lumo-font-weight-600);
    line-height: var(--lumo-line-height-xs);
}

vaadin-radio-button[checked] > label .cobra-panel-button {
    background: var(--lumo-primary-color);
    border: 1px solid var(--lumo-primary-color);
}

vaadin-radio-button[checked] > label .cobra-panel-button-text {
    color: var(--cobra-white-color);
}

vaadin-radio-button[disabled] > label .cobra-panel-button {
    pointer-events: auto;
    cursor: not-allowed !important;
    background: var(--lumo-base-color);
    border: 1px dashed var(--lumo-contrast-30pct);
}

vaadin-radio-group[readonly] > vaadin-radio-button[checked] > label .cobra-panel-button {
    background: var(--lumo-primary-color-10pct);
}

[theme="dark"] vaadin-radio-group[readonly] > vaadin-radio-button[checked] > label .cobra-panel-button {
    border: var(--cobra-default-border);
}

vaadin-radio-group[readonly] > vaadin-radio-button[checked] > label .cobra-panel-button-text {
    color: var(--lumo-secondary-text-color);
    opacity: 0.8;
}


vaadin-radio-button.radio-button-without-radio-part > label {
    margin: 0 !important;
    padding: 0;
}

.radio-button-shaft-flex {
    min-width: 140px;
}

.cobra-field-label {
    font-size: var(--cobra-font-s);
    color: var(--cobra-ui-dark-grey);
    line-height: 1.25em;
    letter-spacing: 0;
}

.cobra-field-label:hover {
    font-size: var(--cobra-font-s);
    color: var(--cobra-ui-darker-grey);
    line-height: 1.25em;
    letter-spacing: 0;
}

/******
LOGIN FORM
******/
vaadin-login-form::part(form-title) {
    color: var(--cobra-ui-white);
    line-height: var(--lumo-line-height-m);
    margin: 0;
}

vaadin-login-form::part(form) {
    padding: var(--lumo-space-m);
    max-width: 100%;
    width: 100%;
}

vaadin-login-form::part(error-message) {
    background-color: var(--cobra-ui-red-ultralight);
    color: var(--cobra-ui-red-dark);
}

vaadin-login-form [slot="forgot-password"] {
    cursor: pointer;
    color: var(--cobra-ui-white);
}

vaadin-login-form [slot="forgot-password"]::after,
vaadin-login-form [slot="forgot-password"]::before {
    background-color: transparent !important;
}

.logo-image {
    margin: auto;
    display: block;
    width: 100%;
}

.header-logo-image {
    padding-bottom: 0px;
}

.login-main-layout {
    background-color: var(--cobra-ui-white);
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position: bottom;
    background-size: cover;
    padding: 0;
}

.cobra-login-container {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    width: 100vw;
    height: 100vh;
    background: linear-gradient(180deg, #000000 0%, rgba(0, 0, 0, 0) 49.48%);
    padding-top: 0;
}


.login-form-wrapper {
    max-width: 312px;
    padding: 0 64px;
    width: 100%;
}

@media (max-width: 576px) {
    .login-form-wrapper {
        padding: 0 32px;
    }

    .cobra-login-container {
        justify-content: center;
        align-items: flex-start;
    }
}

.login-form-wrapper vaadin-login-form::part(form), .login-form-wrapper .forgot-password-form {
    background: rgba(64, 66, 69, 0.5);
}

.request-help-login-button {
    margin: auto;
    display: block;
    background-color: Transparent;
    color: white !important;
    color: var(--cobra-ui-white) !important;
    border: 0;
}

#login-form-style {
    background: none;
    width: 312px !important;
}


vaadin-login-form vaadin-button[theme~="submit"][disabled] {
    background-color: var(var(--lumo-primary-color));
}

vaadin-login-form vaadin-button[theme~="submit"] {
    font-size: var(--lumo-font-size-m);
}

/******
HEADER
******/
.navbar-top-left-corner-container {
    position: relative;
    display: flex;
    align-items: center;
    height: var(--cobra-header-element-height);
}

.cobra-drawer-toggle {
    --drawer-toggle-size: 40px;
    color: var(--cobra-ui-white);
    margin-left: 0;
    margin-right: var(--lumo-space-xs);

    cursor: pointer;
    transition: .1s all;
    height: var(--drawer-toggle-size);
    width: var(--drawer-toggle-size);
    border-radius: var(--lumo-border-radius-m);
}

.cobra-drawer-toggle:hover {
    background-color: var(--cobra-header-buttons-hover-color);
}

.cobra-drawer-toggle .cobra-material-icon .material-symbols-outlined {
    font-size: 32px;
}

#cobra-header {
    box-sizing: border-box;
    width: 100%;
    background-color: var(--cobra-layout-background-color);
}

#cobra-header h1 {
    color: var(--cobra-ui-white);
}

#header-upper-part {
    justify-items: right;
    align-items: center;
    display: grid;
    grid-template-columns: 1fr 30fr 1fr;
    width: 100%;
    justify-content: space-between;
    box-sizing: border-box;
    padding: 0 var(--lumo-space-m) 0 var(--lumo-space-s);
}

#header-secondary-part {
    padding: 0 24px;
    background-color: var(--cobra-ui-grey-lighter);
}

#cobra-header-left-part {
    align-self: flex-start;
    justify-self: center;
    height: var(--cobra-header-element-height);
    display: flex;
    padding-top: 0;
    align-items: center;
}

#cobra-header-right-part {
    width: 154px;
    align-self: flex-end;
    display: flex;
    align-content: center;
    align-items: center;
    justify-content: flex-end;
    height: var(--cobra-header-element-height);
    margin-left: 16px;
    justify-self: end;
}

.header-menu-bar {
    min-width: 120px;
}

/* DISABLE MENU BAR OVERFLOW */
.header-menu-bar vaadin-menu-bar-button[slot="overflow"] {
    display: none !important;
}

/* DISABLE MENU BAR OVERFLOW */
.header-menu-bar::part(container) {
    white-space: nowrap !important;
    overflow: visible !important;
}

.header-menu-bar vaadin-menu-bar-button:hover {
    background: var(--cobra-header-buttons-hover-color);
}

.header-menu-bar vaadin-menu-bar-button {
    padding: 0;
    margin: 0;
    width: 38px;
    height: 38px;
    border-radius: 20px;

    /* DISABLE MENU BAR OVERFLOW */
    flex: 0 0 auto;
}

.notification-menu-item::part(label) {
    overflow: visible;
}

#cobra-header-right-part vaadin-button {
    background: transparent;
}

#cobra-header .account-dropdown-label {
    font-size: var(--cobra-font-m);
    display: flex;
    align-items: center;
}

#cobra-header .account-icon {
    margin-right: 8px;
    color: var(--cobra-ui-white);
    background-color: var(--cobra-ui-black);
    text-align: center;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    box-sizing: border-box;
    padding-top: 3px;
}

#cobra-header .account-icon .cobra-icon {
    margin: 0 !important;
}

#cobra-header .account-icon vaadin-icon {
    padding: 0;
}

/******
FOOTER
******/
.cobra-footer {
    position: fixed;
    display: flex;
    align-items: center;
    bottom: 0;
    inset-inline: 0;
    background-color: var(--cobra-layout-background-color);
    height: var(--cobra-footer-element-height);
    justify-content: space-between;
    padding-left: var(--lumo-space-s);
    padding-right: var(--lumo-space-s);
    column-gap: var(--lumo-space-l);
    z-index: 150;
}

@media (max-width: 650px) {

    .cobra-footer {
        justify-content: center;
        display: grid;
        box-sizing: border-box;
        grid-template-rows: 24px 1fr;
        row-gap: var(--lumo-space-xs);
        padding-top: var(--lumo-space-s);
        padding-bottom: var(--lumo-space-xs);
    }

    .social-media-link-component {
        justify-self: center;
    }

    .footer-item {
        font-size: var(--lumo-font-size-xs);
        gap: 0;
    }

    .footer-item .cobra-icon {
        display: none;
    }

    html {
        --cobra-footer-element-height: 72px;
    }
}

.footer-item {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    color: var(--cobra-ui-white);
    cursor: pointer;
}

.footer-item div {
    display: flex;
    align-items: center;
}

vaadin-popover-overlay.get-help-popover::part(overlay) {
    border-radius: calc(var(--lumo-border-radius-l) + 5px);
}

vaadin-popover-overlay.get-help-popover::part(content) {
    /*background-color: var(--lumo-contrast-80pct);*/
    background-color: var(--lumo-base-color);
    padding: var(--lumo-space-m);
    border-radius: var(--lumo-border-radius-l);
}

vaadin-popover-overlay.get-help-popover::part(arrow) {
    /*border-top: var(--vaadin-popover-arrow-size) solid var(--lumo-contrast-80pct);*/
    border-top: var(--vaadin-popover-arrow-size) solid var(--lumo-base-color);
}

[theme~='dark'] vaadin-popover-overlay.get-help-popover::part(content) {
    background-color: var(--lumo-contrast-20pct);
}

[theme~='dark'] vaadin-popover-overlay.get-help-popover::part(arrow) {
    border-top: var(--vaadin-popover-arrow-size) solid var(--lumo-contrast-20pct);
}

vaadin-popover-overlay.get-help-popover .footer-item {
    min-width: 160px;
    border-radius: var(--lumo-border-radius-l);
    padding-left: var(--lumo-space-s);
    color: var(--lumo-body-text-color);
    margin-top: var(--lumo-space-s);
}

vaadin-popover-overlay.get-help-popover .footer-item:hover {
    background-color: var(--lumo-primary-color-50pct);
}

[theme~='dark'] vaadin-popover-overlay.get-help-popover .footer-item:hover {
    background-color: var(--lumo-primary-color-10pct);
}


/** notifications
**/
.cobra-badge-container {
    display: flex;
    justify-content: center;
    color: var(--cobra-ui-white);
    position: relative;
    cursor: pointer;
}

.badge {
    height: 14px;
    border-radius: 10px;
    color: var(--cobra-ui-white);
    background: rgb(237, 139, 0);
    font-size: 11px !important;
    font-weight: bold;
    padding: 0 5px;
    position: absolute;
    left: 5px;
    top: -5px;
    text-align: center;
}

.status {
    height: 8px;
    width: 8px;
    border-radius: 50%;
    display: inline-block;
}

.status-new {
    background-color: var(--cobra-ui-orange);
    border: 2px solid var(--cobra-ui-orange);
}

.status-read {
    background-color: white;
    border: 2px solid var(--cobra-ui-orange);
}

.header-upper-part {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
    gap: var(--lumo-space-m);
    padding: 0 24px;
}

/*********
SIDE MENU
*********/
.sidebar-menu-window {
    --cobra-side-menu-font-color: var(--lumo-primary-contrast);
    --cobra-side-menu-font-color-selected: var(--lumo-primary-contrast);
    --cobra-side-menu-background-color-hover: var(--cobra-ui-black);

    height: calc(100vh - var(--cobra-footer-element-height));
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 1px;
    transition: 1s;
    background: var(--cobra-layout-background-color) url('img/cobra-side-menu.png') no-repeat -13% 100%;
    background-blend-mode: lighten;
    background-size: 360px 170px;
}

.sidebar-menu {
    font-size: var(--lumo-font-size-m);
    line-height: calc(var(--lumo-line-height-s) + 2px);
}

.sidebar-menu vaadin-side-nav-item {
    position: relative;
    color: var(--cobra-side-menu-font-color);
}

.sidebar-menu vaadin-side-nav-item::part(link) {
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: calc(var(--lumo-space-s) + .4rem);
    gap: var(--lumo-space-m);
}

.sidebar-menu vaadin-side-nav-item::part(link):hover {
    color: var(--lumo-primary-color);
}

.sidebar-menu vaadin-side-nav-item::part(link):active {
    color: var(--lumo-primary-color);
}

.sidebar-menu vaadin-side-nav-item::part(link):active:focus {
    background-color: unset;
}

.sidebar-menu vaadin-side-nav-item::part(link):focus-visible,
.sidebar-menu vaadin-side-nav-item::part(toggle-button):focus-visible {
    box-shadow: unset;
}

.sidebar-menu .cobra-material-icon,
.sidebar-menu vaadin-side-nav-item::part(toggle-button) {
    color: var(--cobra-side-menu-font-color);
}

.sidebar-menu vaadin-side-nav-item::part(content) {
    border-radius: unset;
    font-weight: var(--lumo-font-weight-600);
}

.sidebar-menu vaadin-side-nav-item[has-children]::part(content) {
    border-radius: unset;
    font-weight: var(--lumo-font-weight-600);
    padding-inline-end: var(--lumo-space-l);
}

.sidebar-menu vaadin-side-nav-item[slot="children"]::part(content) {
    font-weight: var(--lumo-font-weight-400);
}

.sidebar-menu vaadin-side-nav-item[slot="children"]::part(link) {
    padding-left: calc(var(--lumo-space-xl) + 1.09rem);
}


.sidebar-menu vaadin-side-nav-item[current]::part(content) {
    background-color: rgba(128, 139, 147, 0.7);
    color: var(--lumo-primary-contrast);
}


.sidebar-menu vaadin-side-nav-item[current] > [slot="prefix"] {
    color: var(--lumo-primary-color);
}

.sidebar-menu vaadin-side-nav-item[current]::before {
    content: "";
    display: block;
    width: 4px;
    height: 100%;
    background-color: var(--cobra-ui-orange);
    position: absolute;
    top: 0;
    left: 0;
}

.social-media-link-component {
    display: flex;
    justify-content: start;
    box-sizing: border-box;
}

.social-media-icon {
    margin-right: 16px;
    cursor: pointer;
}

.social-media-icon:last-child {
    margin-right: 0;
}

.social-media-icon:hover .cobra-icon {
    opacity: 1 !important;
}

.social-media-icon .cobra-icon {
    display: block;
}

.social-media-icon img {
    height: 24px;
    width: 24px;
}

#logo-thin {
    margin-top: 9px;
    max-width: 47px;
    height: 34px;
    align-self: baseline;
    margin-right: var(--lumo-space-m);
}

#logo-wide {
    margin-top: 8px;
    height: 34px;
    align-self: baseline;
}

#cobra-header-select {
    --vaadin-select-toggle-button-color: var(--cobra-ui-white);
    --cobra-select-box-shadow: none !important;
    padding: 4px 0 12px 0;
    border-radius: 4px;
    background-color: var(--cobra-ui-black) !important;
    width: 176px;
    border: var(--cobra-ui-grey-light) solid 1px;
}

#cobra-header-select:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.organization-select-roles {
    font-size: var(--cobra-font-s);
    opacity: 0.7;
}

#cobra-header-select > vaadin-select-value-button > vaadin-select-item {
    line-height: 10px;
    padding: 0;
}

#cobra-header-select vaadin-select-value-button > vaadin-select-item::part(content) {
    color: var(--cobra-ui-white);
}

#cobra-header-select vaadin-select-value-button > vaadin-select-item[selected] .organization-select-name {
    font-weight: bold;
}

#cobra-header-select.cobra-padding-vertical-s > vaadin-select-value-button > vaadin-select-item {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

#cobra-header-select::part(toggle-button) {
    color: var(--vaadin-select-toggle-button-color) !important;
}


@media (max-width: 1000px) {

    #cobra-header-select {
        padding: 0;
    }

    #cobra-header-select::part(toggle-button) {
        display: none;
    }

    #cobra-header-select vaadin-select-value-button > vaadin-select-item[selected] .organization-select-name {
        font-size: 10px !important;
    }

    #cobra-header-select vaadin-select-value-button > vaadin-select-item[selected] .organization-select-roles {
        font-size: 8px !important;
    }
}

/***********
MAIN LAYOUT
 ***********/
.main-layout {
    height: 100%;
    width: 100%;
    margin: 0;
    overflow: hidden;
}

.main-layout::part(navbar) > * {
    width: 100vw;
}

.main-layout::part(drawer) {
    height: calc(100vh - var(--cobra-footer-element-height));
}

/***********
CONTENT PART
 ***********/
.main-content-window {
    height: calc(100% - var(--cobra-footer-element-height));
    overflow-y: auto;
}

.public-layout main {
    box-sizing: border-box;
    height: 100%;
    padding-top: var(--cobra-header-element-height);
    padding-bottom: var(--cobra-footer-element-height);
}

.public-layout .main-content-window {
    height: 100%;
}

.public-layout header {
    position: fixed;
    top: 0;
    width: 100%;
}

.main-content-container { /*delete?*/
    min-height: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/***********
FORGOT PASSWORD VIEW
 ***********/

.front-page-link {
    background-color: rgba(0, 0, 0, 0);
    box-sizing: border-box;
    color: white;
    cursor: default;
    display: block;
    font-family: -apple-system, BlinkMacSystemFont, "Titillium Web", "Roboto", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    font-size: 14px;
    font-weight: 500;
    height: 30px;
    min-width: 0px;
    outline-color: rgb(73, 74, 77);
    outline-style: none;
    outline-width: 0px;
    position: relative;
    transition-delay: 0s;
    transition-duration: 0.2s;
    transition-property: opacity;
    transition-timing-function: ease;
    white-space: nowrap;
}

.front-page-textfield {
    color: rgba(24, 39, 57, 0.94);
    display: inline-flex;
    font-family: -apple-system, BlinkMacSystemFont, "Titillium Web", "Roboto", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    font-size: 16px;
    line-height: 26px;
    outline-color: rgba(24, 39, 57, 0.94);
    outline-style: none;
    outline-width: 0px;
    padding-top: 16px;
    width: 264px;
}

.front-page-button {
    background-color: rgb(237, 139, 0);
    box-sizing: border-box;
    color: rgb(255, 255, 255);
    cursor: default;
    display: inline-block;
    font-family: -apple-system, BlinkMacSystemFont, "Titillium Web", "Roboto", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    font-size: var(--lumo-font-size-m);
    font-weight: 600;
    height: 36px;
    line-height: 26px;
    margin-bottom: 8px;
    margin-top: 16px;
    min-width: 90px;
    outline-color: rgb(255, 255, 255);
    outline-style: none;
    outline-width: 0;
    position: relative;
    white-space: nowrap;
    width: 264px;
}

.front-page-anchor-layout {
    align-items: center;
    width: 100%;
}

/*****
COMMON
******/
vaadin-details.form-dropdown-section vaadin-details-summary {

    background: var(--cobra-black-color);
    padding: var(--lumo-space-s) var(--lumo-space-m);
    border-radius: unset;
    height: 52px;
}

vaadin-details.form-dropdown-section vaadin-details-summary span {
    color: var(--cobra-white-color);
    font-size: var(--lumo-font-size-l);
    text-transform: uppercase;
    font-weight: var(--lumo-font-weight-600);

}

vaadin-details.form-dropdown-section vaadin-details-summary::part(toggle) {
    color: var(--cobra-white-color);
    font-weight: var(--lumo-font-weight-400);
    margin-right: var(--lumo-space-s);
}

.summary-form {
    position: sticky;
    align-self: flex-start;
    top: 10px;
    border-radius: var(--lumo-border-radius-s);
    overflow: hidden;
    box-sizing: border-box;
    border: 2px solid var(--cobra-black-color);
}

.summary-components-section {
    box-shadow: inset 0 -1px 0 0 var(--cobra-border-default-color);
}

[theme="dark"] .summary-components-section {
    background: var(--cobra-black-color);
}

[theme="dark"] summary-components-section {
    background: var(--cobra-black-color);
}

.summary-section-header {
    color: var(--cobra-white-color);
    background: var(--cobra-black-color);
    font-size: var(--lumo-font-size-l);
    padding: var(--lumo-space-m);
    border-radius: unset;
    text-transform: uppercase;
    font-weight: var(--lumo-font-weight-600);
    height: 20px;
    box-shadow: inset 0 -1px 0 0 var(--cobra-border-default-color);
}

.summary-component-image {
    height: 140px;
    width: 140px;
    border-radius: 4px;
}

.summary-single-component-section {
    padding: var(--lumo-space-s) var(--lumo-space-m) 0px var(--lumo-space-m);
    border-radius: unset;
    display: flex;
}

.summary-component-details-section {
    margin-left: 12px;
}

.summary-component-details-header {
    color: var(--lumo-primary-color);
    text-transform: uppercase;
    font-weight: var(--lumo-font-weight-600);
    margin-bottom: var(--lumo-space-s);
    margin-top: var(--lumo-space-xs);
}

.summary-component-details-line {
    margin-bottom: 6px;
}

.summary-price-section {
    background: var(--cobra-black-color);
    padding: var(--lumo-space-m);
    border-radius: unset;
    display: block;
}

.summary-price-line {
    display: flex;
    justify-content: space-between;
    width: 100%;
    padding-bottom: var(--lumo-space-m);
}

.summary-total-price-label {
    color: var(--lumo-primary-color);
    text-transform: uppercase;
    font-weight: var(--lumo-font-weight-700);
    font-size: var(--lumo-font-size-l);
    align-self: flex-start;
}

.summary-total-price-value {
    color: var(--lumo-primary-color);
    align-self: flex-end;
    font-weight: var(--lumo-font-weight-700);
    font-size: 24px;
}

.summary-upcharge-label {
    align-self: flex-start;
    color: var(--cobra-white-color);
    font-weight: var(--lumo-font-weight-600);
    font-size: var(--lumo-font-size-l);
}

.summary-upcharge-value {
    align-self: flex-end;
    color: var(--cobra-white-color);
    font-weight: var(--lumo-font-weight-600);
    font-size: var(--lumo-font-size-l);
}

.summary-how-many-items-line vaadin-integer-field {
    padding-top: 0;
    width: 100%;
}

.summary-how-many-items-line vaadin-integer-field::part(label) {
    color: var(--cobra-white-color);
    font-weight: var(--lumo-font-weight-600);
    font-size: var(--lumo-font-size-l);
}

.summary-how-many-items-line vaadin-integer-field input[type="number"] {
    border: 1px solid var(--lumo-primary-color);
    margin-right: var(--lumo-space-m);
    margin-left: var(--lumo-space-m);
    --_lumo-text-field-overflow-mask-image: auto;
    color: var(--lumo-primary-color);
}

.summary-how-many-items-line vaadin-integer-field::part(input-field) {
    background-color: black !important;
    border: none !important;
    width: 140px;
}

.summary-how-many-items-line vaadin-integer-field::part(decrease-button) {
    border: 1px solid var(--cobra-ui-white);
    background-color: black;
    color: white;
}

.summary-how-many-items-line vaadin-integer-field::part(increase-button) {
    border: 1px solid var(--cobra-ui-white);
    background-color: black;
    color: white;
}

.summary-action-button-section .primary-button-container {
    width: 100%;
}

.summary-action-button-section vaadin-button {
    margin-bottom: var(--lumo-space-m);
    font-weight: var(--lumo-font-weight-600);
    width: 100%;
    font-size: 16px;
}

/* Label of form input */
[required][readonly]::part(required-indicator),
[required][has-value]::part(required-indicator) {
    visibility: hidden;
}

:not([focused]):not([readonly])::part(input-field) {
    border: 1px solid var(--cobra-border-default-color);
}

[focused]:not([readonly])::part(input-field) {
    border: 1px solid var(--cobra-select-color)
}

[theme~="dark"] [disabled]::part(input-field) {
    background-color: var(--lumo-base-color);
}

vaadin-month-calendar {
    height: 290px;
}


vaadin-button[theme~="tertiary"]:hover::before {
    background-color: transparent;
}

vaadin-button {
    cursor: pointer;
}

vaadin-combo-box-item {
    line-height: var(--lumo-line-height-s);
}

vaadin-select-overlay::part(overlay),
vaadin-multi-select-combo-box-overlay::part(overlay),
vaadin-combo-box-overlay::part(overlay) {
    margin-top: var(--lumo-space-l);
}

vaadin-upload::part(primary-buttons) {
    display: flex;
    align-items: center;
    gap: var(--lumo-space-m);
}

[theme~="dark"] vaadin-upload {
    border: 1px dashed var(--cobra-border-default-color);
}

vaadin-upload > [slot="drop-label-icon"] vaadin-icon {
    height: 20px;
    width: 20px;
}

vaadin-multi-select-combo-box {
    --vaadin-input-field-hover-highlight: none;
}

vaadin-multi-select-combo-box-chip {
    font-size: var(--lumo-font-size-xs);
}

[theme~="light"] vaadin-multi-select-combo-box-chip {
    background: #DBDFE5;
}

[theme~="dark"] vaadin-multi-select-combo-box-chip {
    background: var(--lumo-contrast-40pct);
}

vaadin-radio-group.flex-nowrap::part(group-field) {
    flex-wrap: nowrap;
}


vaadin-radio-group.label-font-size-l::part(label) {
    font-size: var(--lumo-font-size-l);
}

/* Grids */
vaadin-grid td {
    white-space: normal !important;
}

/*
This part is needed so that on grids, in the Google Chrome browser, no unnecessary scroll is added.
 */
vaadin-grid.cobra-grid-fix #table {
    overflow: hidden;
}

vaadin-grid #table {
    scrollbar-width: var(--cobra-scrollbar-width);
}

.cobra-grid-details-container {
    background-color: var(--cobra-ui-grey-ultralight);
    box-sizing: border-box;
    padding: 16px;
}

[theme~="dark"] .cobra-grid-details-container {
    background-color: var(--lumo-contrast-30pct);
}

.cobra-grid-details-cell {
    font-size: 12px;
    line-height: 20px;
    margin-bottom: 16px;
}

.cobra-grid-header {
    font-weight: bold;
    white-space: normal;
    display: inline-block;
}


vaadin-grid-cell-content {
    font-size: var(--lumo-font-size-m);
    letter-spacing: 0.01875em !important;
}

vaadin-grid vaadin-button.grid-button-fixed-to-top {
    margin-top: -8px;
}

vaadin-grid::part(header-cell) {
    min-height: 48px;
}

.info-text {
    background-color: var(--cobra-white-color);
    padding: 8px;
}

[theme~="dark"] .info-text {
    background-color: var(--lumo-contrast-20pct);
    padding: 8px;
}

.cobra-grid-selected-items-counter {
    width: 200px;
    text-align: end;
    margin-left: auto;
}

vaadin-grid.cobra-grid-header-overflow-visible vaadin-grid-cell-content {
    overflow: visible;
}

vaadin-grid vaadin-grid-cell-content .whitespace-nowrap {
    white-space: nowrap;
}

vaadin-grid {
    border-radius: unset !important;
    --lumo-contrast-5pct: var(--lumo-base-color);
    --vaadin-grid-cell-background: var(--cobra-white-color);
}

vaadin-grid::part(cobra-grid-center-shifted-cell) {
    align-items: center !important;
}

vaadin-grid::part(cobra-grid-draggable-cell) ::slotted(vaadin-grid-cell-content:is([draggable='true'])) {
    cursor: move;
}


vaadin-grid::part(cobra-grid-two-parts-cell) {
    align-items: flex-start !important;
    white-space: normal !important;
}

vaadin-grid::part(cobra-grid-top-shifted-cell) {
    align-items: flex-start !important;
}

[theme~="dark"] vaadin-grid {
    --cobra-border-default-color: #8f8f8f;
    --_lumo-grid-border-color: var(--cobra-border-default-color);
    --_lumo-grid-secondary-border-color: var(--cobra-border-default-color);
    --lumo-contrast-5pct: var(--lumo-contrast-40pct);
    --vaadin-grid-cell-background: var(--lumo-contrast-40pct);
}

[theme="dark"] vaadin-grid::part(header-cell) {
    --vaadin-grid-cell-background: var(--lumo-contrast-30pct);
}

[theme="dark"] vaadin-grid::part(odd-row) {
    --vaadin-grid-cell-background: var(--lumo-contrast-30pct);
}

[theme="dark"] vaadin-grid::part(selected-row) {
    --_lumo-grid-selected-row-color: #3C3E3F;
}

/* Checkbox */
vaadin-checkbox {
    --vaadin-input-field-background: var(--lumo-primary-contrast);
}

/* Input and Texta area placeholder*/
textarea::placeholder,
input::placeholder {
    opacity: 0.7;
}

.grid-status-info {
    --dot-color: var(--cobra-ui-blue);
    line-height: 20px;
    display: flex;
    align-items: center;
}

.grid-status-info.green {
    --dot-color: var(--cobra-ui-green);
}

.grid-status-info.red {
    --dot-color: var(--cobra-ui-red);
}

.grid-status-info.orange {
    --dot-color: var(--cobra-ui-orange);
}

.grid-status-info.yellow {
    --dot-color: #FFC066;
}

.grid-status-info.grey {
    --dot-color: var(--cobra-ui-grey);
}

.grid-status-info::before {
    height: 8px;
    width: 8px;
    min-width: 8px;
    content: "";
    background-color: var(--dot-color);
    border-radius: 50%;
    display: inline-block;
    margin-right: 8px;
}

[theme~="dark"] .grid-status-info::before {
    border: 1px solid white;
}

.status-tag {

    margin: 0;
    padding: 4px 16px;
    color: var(--cobra-info-status-color-50pct);
    border: var(--cobra-info-status-color-50pct) solid 1px;
    background-color: var(--cobra-info-status-color-5pct);
    font-weight: var(--lumo-font-weight-600);
    border-radius: 4px;
    display: inline-block;
    font-size: var(--lumo-font-size-s);
    text-align: center;
    box-sizing: border-box;
    height: 28px;
    line-height: 18px;
}

[theme~='dark'] .status-counter,
[theme~='dark'].status-tag {
    color: var(--cobra-white-color);
    border-color: var(--cobra-white-color);
    background-color: var(--cobra-info-status-color-50pct);
}

.status-counter.green,
.status-tag.green {
    color: var(--cobra-green-status-color-50pct);
    border-color: var(--cobra-green-status-color-50pct);
    background-color: var(--cobra-green-status-color-5pct);
}

[theme~='dark'] .status-counter.green,
[theme~='dark'].status-tag.green {
    color: var(--cobra-white-color);
    border-color: var(--cobra-white-color);
    background-color: var(--cobra-green-status-color-50pct);
}

.status-counter.red,
.status-tag.red {
    color: var(--cobra-red-status-color-50pct);
    border-color: var(--cobra-red-status-color-50pct);
    background-color: var(--cobra-red-status-color-5pct);
}

[theme~='dark'] .status-counter.red,
[theme~='dark'].status-tag.red {
    color: var(--cobra-white-color);
    border-color: var(--cobra-white-color);
    background-color: var(--cobra-red-status-color-50pct);
}

.status-counter.orange,
.status-tag.orange {
    color: var(--cobra-orange-status-color-50pct);
    border-color: var(--cobra-orange-status-color-50pct);
    background-color: var(--cobra-orange-status-color-5pct);
}

[theme~='dark'] .status-counter.orange,
[theme~='dark'].status-tag.orange {
    color: var(--cobra-white-color);
    border-color: var(--cobra-white-color);
    background-color: var(--cobra-orange-status-color-50pct);
}

.status-counter.yellow,
.status-tag.yellow {
    color: var(--cobra-yellow-status-color-50pct);
    border-color: var(--cobra-yellow-status-color-50pct);
    background-color: var(--cobra-yellow-status-color-5pct);
}

[theme~='dark'] .status-counter.yellow,
[theme~='dark'].status-tag.yellow {
    color: var(--cobra-white-color);
    border-color: var(--cobra-white-color);
    background-color: var(--cobra-yellow-status-color-50pct);
}

.status-counter.grey,
.status-tag.grey {
    color: var(--cobra-grey-status-color-50pct);
    border-color: var(--cobra-grey-status-color-50pct);
    background-color: var(--cobra-grey-status-color-5pct);
}

[theme~='dark'] .status-counter.grey,
[theme~='dark'].status-tag.grey {
    color: var(--cobra-white-color);
    border-color: var(--cobra-white-color);
    background-color: var(--cobra-grey-status-color-50pct);
}

.grid-status-tag {
    padding: 2px 10px;
    border-radius: 4px;
    font-size: var(--lumo-font-size-m);
    display: inline-block;
    font-weight: var(--lumo-font-weight-600);
}

.grid-status-tag.green {
    background-color: var(--cobra-green-status-color-5pct);
    border: 1px solid var(--cobra-green-status-color-50pct);
    color: var(--cobra-green-status-color-50pct);
}

.grid-status-tag.orange {
    background-color: var(--cobra-orange-status-color-5pct);
    border: 1px solid var(--cobra-orange-status-color-50pct);
    color: var(--cobra-orange-status-color-50pct);
}

[theme~="dark"] .grid-status-tag.green {
    background-color: var(--cobra-green-status-color-50pct);
    border-color: var(--cobra-white-color);
    color: var(--cobra-white-color);
}

[theme~="dark"] .grid-status-tag.orange {
    background-color: var(--cobra-orange-status-color-50pct);
    border-color: var(--cobra-white-color);
    color: var(--cobra-white-color);
}

.status-label {
    margin: 0;
    color: var(--cobra-ui-blue);
    display: inline-block;
    text-align: center;
}

.status-label.green {
    color: var(--cobra-ui-green);
}

.status-label.red {
    color: var(--cobra-ui-red);
}

.status-label.orange {
    color: var(--cobra-ui-orange);
}

.status-label.yellow {
    color: var(--cobra-ui-orange);
}

.status-label.grey {
    color: var(--cobra-ui-dark);
}

[theme~="dark"] .status-label.grey {
    color: var(--lumo-contrast-80pct);
}

/* Availability Check Component */
.availability-icon-red {
    color: var(--lumo-error-text-color);
}

.availability-icon-green {
    color: var(--lumo-success-text-color);
}

.cobra-checkbox-container {
    display: grid;
}

.cobra-error-message {
    margin-left: calc(var(--lumo-border-radius-m) / 4);
    font-size: var(--lumo-font-size-xs);
    line-height: var(--lumo-line-height-xs);
    color: var(--lumo-error-text-color);
    will-change: max-height;
    transition: 0.4s max-height;
    max-height: 5em;
}

.component-hidden {
    visibility: hidden;
    position: absolute;
    overflow: hidden;
    left: -999em;
}

.cobra-status-related-info {
    display: flex;
    justify-content: space-between;
}

/**********
Number Circle
***********/
.process-stepper {
    position: relative;
    max-width: 800px;
    padding: 8px 0;
}

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

.number-circle {
    border-radius: 50%;
    width: 24px;
    height: 24px;

    border: 1px solid var(--cobra-ui-grey-light);
    color: var(--cobra-ui-black);
    text-align: center;
    margin-right: 4px;
    line-height: 150%;
    box-sizing: border-box;
}

.number-circle.current {
    border: 1px solid var(--cobra-ui-orange-dark);
    color: var(--cobra-ui-orange-dark);
}

.number-circle.next {
    border: 1px solid var(--cobra-ui-black);
}

.step-finished {
    color: var(--cobra-ui-green);
    margin-right: 3px;
}

.step-finished.cobra-icon vaadin-icon {
    top: 1px;
    padding: 0;
}

.step-button {
    padding: 0;
    font-weight: bold;
    display: flex;
    align-items: center;
    font-size: 14px;
}

[theme~="dark"] .step-button {
    color: var(--cobra-black-color);
}

.step-button.clickable {
    cursor: pointer;
}

.step-button[disabled] {
    font-weight: normal;
}

.step-button.clickable .step-label:hover {
    text-decoration: underline;
}

.step-wrapper {
    padding: 0 8px;
    z-index: 2;
    background-color: var(--cobra-ui-grey-lighter);
    margin: 0 16px;
}

.step-wrapper:first-child {
    margin-left: 0;
}

.step-wrapper:last-child {
    margin-right: 0;
}

.stepper-line {
    width: 100%;
    border-bottom: 1px solid var(--cobra-ui-grey-light);
    position: absolute;
    top: 50%;
}

/******
RULE
******/
.cobra-selected-rule {
    padding: 18px;
}

.cobra-rule-selected-items-layout {
    overflow: auto;
    height: 380px;
}

.cobra-selected-rule-list {
    display: block;
}

.cobra-rule-selected-button {
    text-decoration: underline;
}

.cobra-rule-radiobutton {
    padding: 0;
}

/******
PISA Image
******/
.cfo-head-image {
    align-self: flex-start;
    top: 0;
    max-width: 100%;
    padding-left: 16px;
    position: sticky;
}

.cfo-head-image img {
    border-radius: 4px;
    box-shadow: rgba(0, 0, 0, 0.35) 0 0 1px;
    width: 100%;
    max-height: 500px;
}

.form-with-image-on-right-container {
    display: flex;
}

.form-with-image-on-right-form-part {
    flex-shrink: 0;
}

/**
CFO
 */
.line-item-thumbnail {
    mix-blend-mode: darken;
    max-height: 80px;
    max-width: 80px;
}

[theme~='dark'] .line-item-thumbnail {
    mix-blend-mode: unset;
}

[theme~='dark'] .line-item-thumbnail-container {
    background-color: var(--cobra-ui-white);
}

.line-item-thumbnail-container {
    display: flex;
    align-content: baseline;
    height: 80px;
    width: 80px;
    justify-content: center;
    align-items: center;
}

.cfo-head-submodel-select {
    min-width: fit-content;
    --vaadin-checkbox-background: var(--lumo-base-color);
    --vaadin-checkbox-border-radius: 2px;
    --vaadin-checkbox-background-hover: var(--cobra-white-color);
}

.cfo-head-submodel-select > vaadin-checkbox > label {
    margin-left: var(--lumo-space-xs);
    margin-right: var(--lumo-space-xs);
}

[theme~="dark"] .cfo-head-submodel-select {
    --vaadin-checkbox-background-hover: var(--lumo-contrast-20pct);
}

.cfo-head-submodel-select > vaadin-checkbox::part(checkbox) {
    box-shadow: inset 0 0 0 2px var(--lumo-primary-color);
}

.line-item-configuration-layout {
    display: flex;
    gap: 40px;
    margin-bottom: var(--lumo-space-m);
}

.line-item-configuration-layout .summary-form {
    flex-basis: 448px;
    flex-grow: 0;
    flex-shrink: 0;
}

.line-item-configuration-layout .line-item-content {
    flex-grow: 1;
    flex-shrink: 1;
}

.grid-cell-padding-m {
    --vaadin-grid-cell-padding: var(--lumo-space-m);
}

/**
Dialog
 */
.legal-documents-acceptance-dialog::part(overlay) {
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    border: 1px solid var(--lumo-primary-text-color);
    border-radius: var(--lumo-border-radius-m);
}

.legal-documents-acceptance-dialog::part(message) {
    white-space: wrap;
    line-height: var(--lumo-line-height-s);
}


.legal-documents-acceptance-dialog::part(content) {
    min-width: unset;
    padding-bottom: 0;
}

@media screen and (max-width: 275px) {

    .legal-documents-acceptance-dialog-checkbox > label,
    .legal-documents-acceptance-dialog::part(message) {
        font-size: var(--lumo-font-size-xs);
    }

    .legal-documents-acceptance-dialog-checkbox > label {
        align-self: center;
    }

    .legal-documents-acceptance-dialog-checkbox::part(checkbox) {
        width: 13px;
        height: 13px;
        --vaadin-checkbox-checkmark-size: 15px;
        margin-top: -2px
    }

    .legal-documents-acceptance-dialog-checkbox::part(checkbox)::before {
        margin-top: -2px;
    }
}

vaadin-dialog::part(content) {
    padding: 0;
}

vaadin-dialog.zoomed-component-dialog::part(overlay) {
    overflow: unset;
}

[theme~='dark'] vaadin-dialog::part(header) {
    background-color: var(--lumo-contrast-30pct);
}

vaadin-dialog.cobra-selection-dialog::part(overlay) {
    border: 3px solid var(--cobra-border-dark-gray);
    background: var(--cobra-black-color);
    height: fit-content;
    max-height: 750px;
    border-radius: 2px;
}

vaadin-dialog.cobra-selection-dialog::part(content) {
    background: var(--lumo-base-color);
}

[theme~='dark'] vaadin-dialogcobra-selection-dialog::part(content) {
    background: var(--cobra-black-color);
}

vaadin-dialog.cobra-selection-dialog::part(header) {
    background: var(--cobra-black-color);
    box-shadow: 0 -0.128rem 0 0 var(--cobra-border-dark-gray) inset;
    color: var(--cobra-white-color);
}

[theme~="dark"] vaadin-dialog.cobra-selection-dialog::part(overlay) {
    box-shadow: 0 -0.128rem 0 0 var(--cobra-border-dark-gray) inset;
}

vaadin-dialog.cobra-selection-dialog::part(footer) {
    background: var(--cobra-black-color);
    box-shadow: 0 0.128rem 0 0 var(--cobra-border-dark-gray) inset;
    padding: var(--lumo-space-m);
    border-radius: unset;
}

vaadin-dialog.cobra-selection-dialog .select-button,
vaadin-dialog.cobra-selection-dialog .cancel-button {
    width: 90px;
}

vaadin-dialog.cobra-selection-dialog .select-button {
    background-color: var(--lumo-primary-color);
    color: var(--cobra-white-color);
    margin: 0;
}

vaadin-dialog.cobra-selection-dialog .cobra-selection-dialog-title,
vaadin-dialog.cobra-selection-dialog .close-button {
    color: var(--cobra-white-color);
    margin-right: 0;
}

vaadin-radio-group.cobra-address-select::part(label) {
    font-size: var(--lumo-font-size-l);
    font-weight: var(--lumo-font-weight-600);
    margin-bottom: var(--lumo-space-s);
}


vaadin-radio-group.cobra-address-select > vaadin-radio-button::part(radio) {
    width: 20px;
    height: 20px;
    --vaadin-radio-button-dot-size: 5px;
    align-self: flex-start;
    margin-right: var(--lumo-space-m);
    margin-left: 0;
}

vaadin-radio-group.cobra-address-select > vaadin-radio-button > label {
    padding: 0;
}

vaadin-radio-group.cobra-address-select .cobra-panel-button {
    background: var(--lumo-base-color);
    padding-left: var(--lumo-space-s);
    padding-right: var(--lumo-space-s);
}

vaadin-radio-group.cobra-address-select > vaadin-radio-button .cobra-panel-button {
    background: var(--cobra-white-color);
    border-color: var(--cobra-border-dark-gray);
    flex-direction: column;
    border-radius: 0;
    gap: var(--lumo-space-xs);
}

vaadin-radio-group.cobra-address-select > vaadin-radio-button[checked] .cobra-panel-button {
    border: 2px solid var(--lumo-primary-color);
}

vaadin-radio-group.cobra-address-select > vaadin-radio-button[checked] > label span {
    color: var(--lumo-primary-color) !important;
}

vaadin-radio-group.cobra-address-select > vaadin-radio-button > label span[default-caption] {
    font-style: italic;
    color: var(--lumo-secondary-text-color);
    margin-top: auto;
}

[theme~='dark'] vaadin-radio-group.cobra-address-select .cobra-panel-button {
    background: var(--lumo-contrast-20pct);
    border-color: var(--cobra-border-default-color);
}

.address-selection-dialog::part(content) {
    width: 500px;
    max-height: 525px;
}

/**
CFO Head gallery
 */
.cobra-gallery-container {
    --cfo-gallery-card-size: 235px;
}

.cobra-gallery-container,
vaadin-radio-group.cobra-gallery {
    width: 100%;
}

vaadin-radio-group[readonly].cobra-gallery > vaadin-radio-button[disabled] > label {
    cursor: not-allowed !important;
    pointer-events: visible !important;
}

vaadin-radio-group.cobra-gallery vaadin-radio-button::part(radio) {
    display: none;
}

vaadin-radio-group.cobra-gallery::part(group-field) {
    display: grid;
    justify-content: space-between;

    grid-template-columns: repeat(auto-fill, var(--cfo-gallery-card-size));
    grid-gap: var(--lumo-space-l);
}

vaadin-radio-group.cobra-gallery vaadin-radio-button[checked] .cobra-gallery-card {
    border: 2px solid var(--lumo-primary-color);
}

vaadin-radio-group.cobra-gallery vaadin-radio-button[checked] .cobra-gallery-text {
    color: var(--lumo-primary-color);
}

vaadin-radio-group.cobra-gallery vaadin-radio-button > label {
    cursor: pointer;
    padding: 0;
}

vaadin-radio-group.cobra-gallery vaadin-radio-button:nth-of-type(1n+6) {
    display: none;
}

vaadin-radio-group.cobra-gallery[showAll] vaadin-radio-button:nth-of-type(1n+6) {
    display: block;
}

.zoomed-component-dialog::part(overlay) {
    min-height: 50vh;
}

.zoomed-component-dialog::part(header) {
    background: var(--cobra-white-color);
    border-radius: var(--lumo-border-radius-l) var(--lumo-border-radius-l) 0 0;
    padding: var(--lumo-space-xs) var(--lumo-space-m);
}

.zoomed-component-dialog .cobra-material-icon {
    color: #3D4246;
}

.zoomed-component-dialog::part(content) {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--lumo-space-m);
    background-color: var(--cobra-white-color);
    border-radius: 0 0 var(--lumo-border-radius-l) var(--lumo-border-radius-l);
}

.zoomed-component-dialog-image-container {
    display: flex;
    justify-content: center;
    align-items: center;
}

.zoomed-component-dialog-image {
    max-width: 80vw;
    max-height: 70vh;
    object-fit: contain;
    width: auto;
    height: auto;
    display: block; /* important to not have empty background under the image*/
}

.cobra-gallery-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--lumo-space-s);
    background: var(--cobra-white-color);
    padding: 12px var(--lumo-space-s);
    box-shadow: var(--cobra-dialog-box-shadow);
    border-radius: 10px;
    overflow: hidden;
    box-sizing: border-box;
    width: var(--cfo-gallery-card-size);
    max-width: var(--cfo-gallery-card-size);
    height: var(--cfo-gallery-card-size);
    max-height: var(--cfo-gallery-card-size);
}

.magnifying-glass-icon {
    position: absolute;
    top: 4px;
    right: 4px;
    padding: 4px;
    color: #6E7880;

}

.cobra-gallery-image {
    width: 100%;
    height: calc(var(--cfo-gallery-card-size) - 2 * var(--lumo-space-s));
    max-height: 171px;
    box-sizing: border-box;
    padding: 0 var(--lumo-space-l);
    align-content: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

.cobra-gallery-image img {
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

.cobra-gallery-text {
    display: inline-block;
    box-sizing: border-box;
    padding-left: var(--lumo-space-xs);
    overflow: hidden;
    width: 100%;
    max-width: var(--cfo-gallery-card-size);
    height: fit-content;
    min-height: calc(2 * var(--lumo-line-height-s));
    max-height: calc(2 * var(--lumo-line-height-s));
    font-size: var(--lumo-font-size-m);
    color: #495055;
    font-weight: var(--lumo-font-weight-600);
    line-height: var(--lumo-line-height-s);
    white-space: normal;
    text-align: left;
}

vaadin-radio-group.cobra-gallery[showAll] .cobra-gallery-text {
    font-weight: var(--lumo-font-weight-600);
}

vaadin-dialog.all-heads-gallery-dialog.cobra-selection-dialog::part(overlay) {
    min-height: 100px;
    max-height: 790px;
    width: 80vw;
    max-width: 1364px;
}

/**
Document
 */
.import-file-view-layout {
    display: flex;
    flex-direction: column;
    gap: var(--lumo-space-xs);
    align-items: baseline;
}

.import-file-view-layout vaadin-upload {
    align-self: stretch;
}

.import-file-view-layout > :empty {
    display: none;
}

/**
Combobox
 */
vaadin-combo-box.cobra-font-s::part(input-field) {
    font-size: var(--cobra-font-s) !important;
}

vaadin-combo-box.cobra-padding-vertical-s::part(input-field) {
    padding-top: 8px !important;
}

vaadin-combo-box::part(input-field) {
    height: 32px;
}

vaadin-combo-box:hover:not([readonly])::part(input-field)::after {
    opacity: 0.0 !important;
}

vaadin-combo-box::part(label) {
    font-weight: bold;
}

vaadin-combo-box[readonly]::part(input-field) {
    opacity: 0.8;
    cursor: not-allowed !important;
}

vaadin-multi-select-combo-box::part(input-field) {
    height: 32px;
}

/**
Date pickers
 */
vaadin-date-picker-overlay {
    --lumo-size-m: 2.25rem;
    --lumo-space-xs: 1rem;
}

vaadin-date-picker.cobra-padding-vertical-s vaadin-text-field {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

vaadin-date-picker::part(input-field) {
    height: 32px;
}

vaadin-date-picker:hover:not([readonly])::part(input-field)::after {
    opacity: 0.0 !important;
}

vaadin-date-picker::part(label) {
    color: var(--lumo-secondary-text-color) !important;
    -webkit-text-fill-color: var(--lumo-secondary-text-color) !important;
    font-weight: bold;
}

vaadin-date-picker[readonly]::part(input-field) {
    opacity: 0.8;
    cursor: not-allowed !important;
}

vaadin-date-picker {
    line-height: 6px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

vaadin-date-time-picker::part(label) {
    color: var(--lumo-secondary-text-color) !important;
    -webkit-text-fill-color: var(--lumo-secondary-text-color) !important;
    font-weight: bold;
}


vaadin-time-picker.cobra-padding-vertical-s vaadin-text-field {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

vaadin-time-picker:hover:not([readonly])::part(input-field)::after {
    opacity: 0.0 !important;
}

vaadin-time-picker::part(label) {
    color: var(--lumo-secondary-text-color) !important;
    -webkit-text-fill-color: var(--lumo-secondary-text-color) !important;
    font-weight: bold;
}

vaadin-time-picker[readonly]::part(input-field) {
    opacity: 0.8;
    cursor: not-allowed !important;
}

vaadin-time-picker {
    line-height: 6px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}



/**
Integer field
 */
vaadin-integer-field::part(input-field) {
    height: 32px;
}

vaadin-integer-field:hover:not([readonly])::part(input-field)::after {
    opacity: 0.0 !important;
}

vaadin-integer-field::part(label) {
    font-weight: bold;
}

vaadin-integer-field[readonly]::part(input-field) {
    opacity: 0.8;
    cursor: not-allowed !important;
}


vaadin-notification-card::part(overlay) {
    background-color: var(--cobra-notification-background) !important;
    border: solid 1px var(--cobra-notification-border);
    width: 685px;
}

vaadin-notification-card::part(content) {
    padding: 0;
    display: block;
}

/**
Radio button
 */
vaadin-radio-button.radio-button-without-radio-part::part(radio) {
    display: none;
}

vaadin-radio-button.radio-button-without-radio-part::part(label):not([empty]) {
    margin: 0 !important;
}

vaadin-radio-group::part(label) {
    color: var(--lumo-secondary-text-color) !important;
    -webkit-text-fill-color: var(--lumo-secondary-text-color) !important;
    font-weight: bold;
}

vaadin-radio-group.radio-button-group-field-flex::part(group-field) {
    display: flex;
    flex-wrap: wrap;
}

/**
Tabs
 */
vaadin-tabs[orientation="horizontal"]::part(tabs) {
    margin: 0 !important;
}

vaadin-tabsheet::part(content) {
    overflow: hidden;
}

/**
Text Area
 */
vaadin-text-area::part(input-field) {
    padding-top: calc(var(--lumo-space-m) / 2);
    padding-bottom: calc(var(--lumo-space-m) / 2);
}

vaadin-text-area::part(label) {
    font-weight: bold;
}

vaadin-text-area[readonly]::part(input-field) {
    opacity: 0.8;
    cursor: not-allowed !important;
}

/**
Text Field
 */
vaadin-text-field::part(input-field) {
    height: 32px;
}

vaadin-text-field::part(label) {
    font-weight: bold;
}

vaadin-text-field:hover:not([readonly])::part(input-field)::after {
    opacity: 0.0 !important;
}

vaadin-text-field[readonly]::part(input-field) {
    opacity: 0.8;
    cursor: not-allowed !important;
}

vaadin-text-field#vaadinLoginUsername::part(label),
vaadin-password-field#vaadinLoginPassword::part(label),
vaadin-text-field.front-page-textfield::part(label) {
    color: var(--cobra-ui-white);
    font-weight: bold;
}

vaadin-text-field.front-page-textfield:hover:not([readonly]):not([focused])::part(label) {
    color: var(--cobra-ui-white);
}

vaadin-text-field.front-page-textfield[focused]::part(label) {
    color: var(--cobra-ui-white);
}

vaadin-text-field#vaadinLoginUsername::part(input-field),
vaadin-text-field#vaadinLoginPassword::part(input-field),
vaadin-text-field.front-page-textfield::part(input-field) {
    background: var(--cobra-ui-white) !important;
}

/***********
Disable Google Chrome Blue Field Outline
 **********/
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
    transition: background-color 5000s ease-in-out 0s;
}

.cobra-highlight-container {
    position: relative;
    overflow: visible;
}

.cobra-news-highlight {
    border-radius: 50%;
    margin-left: 4px;
    color: var(--cobra-ui-white);
    background: rgb(237, 139, 0);
    font-size: 14px;
    font-weight: bold;
    min-width: 18px;
    min-height: 18px;
    line-height: 16px;
}

.cobra-system-notification {
    color: var(--cobra-ui-red);
    font-weight: bold;
    background-color: var(--cobra-ui-status-red-background);
    padding: 4px 4px 4px 24px;
    border-radius: 4px;
}

.cobra-system-notification-red {
    background-color: var(--cobra-ui-status-red-background);
}

.cobra-system-notification-orange {
    background-color: var(--cobra-ui-status-orange-background);
}

.cobra-system-notification-yellow {
    background-color: var(--cobra-ui-status-yellow-background);
}

.cobra-system-announcement-component {
    color: var(--cobra-ui-black);
    font-weight: bold;
    background-color: var(--cobra-ui-status-grey-background);
    padding: 4px 4px 4px 24px;
}

.cobra-system-announcement-component .cobra-button {
    height: 24px;
    color: var(--cobra-black-color);
}

/***********
Responsiveness
 **********/
@media (max-width: 1024px) {

    #cobra-header-select {
        width: 80px;
    }

    #cobra-header .account-icon {
        margin-right: 0;
    }

    #account-label {
        display: none;
    }

    .cobra-page {
        padding: 16px 16px 24px;
    }
}

@media (max-width: 1048px) {
    .cfo-head-image {
        display: none;
    }
}
