/*
 * Copyright 2026 Haulmont.
 *
 * Licensed 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.
 */

/* jmix-aura/src/components/index.css */
/* jmix-aura/src/components/button.css */
:is(jmix-value-picker-button, jmix-side-panel-layout-closer, jmix-notifications-indicator) {
  transition: scale 180ms;
  position: relative;
  --_background: var(--aura-accent-surface) padding-box;
  color: var(--vaadin-button-text-color, var(--aura-accent-text-color));
}

:is(jmix-value-picker-button, jmix-side-panel-layout-closer, jmix-notifications-indicator):where(
  :not([theme~='primary'])
) {
  outline-offset: calc(var(--vaadin-button-border-width, 1px) * -1);
}

:is(jmix-value-picker-button, jmix-side-panel-layout-closer, jmix-notifications-indicator):not(
    [disabled]
  )::before {
  content: '';
  position: absolute;
  inset: calc(var(--vaadin-button-border-width, 1px) * -1);
  pointer-events: none;
  border-radius: inherit;
  background-color: currentColor;
  opacity: 0;
  transition:
    opacity 100ms,
    background-color 100ms;
}

@supports (color: hsl(0 0 0)) {
  :is(jmix-value-picker-button, jmix-side-panel-layout-closer, jmix-notifications-indicator):not(
      [disabled]
    )::before {
    background-color: oklch(from currentColor calc(l + 0.4 - c) c h / calc(1 - l / 2));
  }
}

@media (any-hover: hover) {
  /* prettier-ignore */
  :is(jmix-value-picker-button, jmix-side-panel-layout-closer, jmix-notifications-indicator):hover:not([disabled], [active])::before {
    opacity: 0.03;
  }
}

@media (min-resolution: 2x) {
  /* prettier-ignore */
  :is(jmix-value-picker-button, jmix-side-panel-layout-closer, jmix-notifications-indicator)[active]:not([disabled], [aria-disabled='true']) {
    scale: 0.98;
    transition-duration: 50ms;
  }
}

:is(jmix-value-picker-button, jmix-side-panel-layout-closer, jmix-notifications-indicator)[active]:not(
    [disabled]
  ) {
  box-shadow: none;
}

:is(jmix-value-picker-button, jmix-side-panel-layout-closer, jmix-notifications-indicator)[active]:not(
    [disabled]
  )::before {
  transition-duration: 0s;
  opacity: 0.08;
  background: oklch(from currentColor min(c, 1 - l + c) calc(c * 0.9) h);
}

/* jmix-aura/src/components/jmix-date-range-picker.css */
.jmix-date-range-picker-root {
    gap: var(--vaadin-gap-xs);
}

/* jmix-aura/src/components/jmix-dialog-window.css */
.jmix-dialog-window-header-wrapper {
    display: flex;
    gap: var(--vaadin-gap-s);
}

.jmix-dialog-window-header-wrapper > .jmix-dialog-window-close-button {
    margin-inline-start: auto;
}

.jmix-dialog-window-header-wrapper > .jmix-dialog-window-maximize-button:not([hidden]) {
    margin-inline-start: auto;
}

.jmix-dialog-window-header-wrapper > .jmix-dialog-window-maximize-button:not([hidden]) ~ .jmix-dialog-window-close-button {
    margin-inline-start: 0;
}

vaadin-dialog[jmix-maximized]::part(overlay) {
    position: var(--jmix-dialog-maximized-position, fixed) !important;
    inset: var(--jmix-dialog-maximized-inset, 0) !important;
    width: var(--jmix-dialog-maximized-width, auto) !important;
    height: var(--jmix-dialog-maximized-height, auto) !important;

    max-width: none;
    max-height: none;
    border-radius: 0;
}

/* jmix-aura/src/components/jmix-dropdown-button.css */
.jmix-dropdown-button-item-wrapper {
    display: flex;
    align-items: center;
    gap: var(--vaadin-gap-s);
}

vaadin-menu-bar[jmix-role='jmix-dropdown-button'],
vaadin-menu-bar[jmix-role|='jmix-combo-button'] {
    flex-shrink: 0;
}

vaadin-menu-bar[jmix-role='jmix-dropdown-button'][theme~='no-dropdown-indicators'] > vaadin-menu-bar-button {
    --vaadin-button-padding: var(--vaadin-padding-block-container) var(--vaadin-padding-s);
}

vaadin-menu-bar[jmix-role='jmix-dropdown-button'][theme~='no-dropdown-indicators'] > vaadin-menu-bar-button::part(suffix) {
    display: none;
}

/* ComboButton Styles */
vaadin-menu-bar[jmix-role='jmix-combo-button-icon'] > vaadin-menu-bar-button:nth-last-of-type(2) {
    --vaadin-button-padding: var(--vaadin-padding-block-container) var(--vaadin-padding-s);
}

vaadin-menu-bar[jmix-role='jmix-combo-button-icon'] > vaadin-menu-bar-button:nth-last-of-type(2)::part(suffix) {
    display: none;
}

vaadin-menu-bar[jmix-role='jmix-dropdown-button'][theme~='small'] > vaadin-menu-bar-button > vaadin-menu-bar-item,
vaadin-menu-bar[jmix-role='jmix-combo-button-icon'][theme~='small'] > vaadin-menu-bar-button > vaadin-menu-bar-item {
    font-size: var(--aura-font-size-s);
}

vaadin-menu-bar[jmix-role='jmix-dropdown-button'][theme~='large'] > vaadin-menu-bar-button > vaadin-menu-bar-item,
vaadin-menu-bar[jmix-role='jmix-combo-button-icon'][theme~='large'] > vaadin-menu-bar-button > vaadin-menu-bar-item {
    font-size: var(--aura-font-size-l);
}

/* jmix-aura/src/components/jmix-generic-filter.css */
vaadin-details.jmix-generic-filter {
    --vaadin-details-summary-padding: var(--vaadin-padding-block-container) 0;
}

vaadin-details.jmix-generic-filter::part(content) {
    margin-inline-start: 0;
    padding-inline: 0;
}

.jmix-generic-filter-configuration-detail {
    padding: var(--vaadin-padding-s);
}

/* jmix-aura/src/components/jmix-grid-column-visibility.css */
vaadin-menu-bar[jmix-role='jmix-grid-column-visibility'] {
    flex-shrink: 0;
}

vaadin-menu-bar[jmix-role='jmix-grid-column-visibility'][theme~='icon'] > vaadin-menu-bar-button {
    --vaadin-button-padding: var(--vaadin-padding-block-container) var(--vaadin-padding-s);
}

vaadin-menu-bar[jmix-role='jmix-grid-column-visibility'][theme~='icon'] > vaadin-menu-bar-button::part(suffix) {
    display: none;
}


/* jmix-aura/src/components/jmix-grid-context-menu.css */
.jmix-grid-context-menu-item-component {
  gap: var(--vaadin-gap-s);
  align-items: center;
  width: 100%;
  display: flex;
}

.jmix-grid-context-menu-item-component .suffix-component {
  margin-inline-start: auto;
}

.jmix-grid-context-menu-item-component .text-component:not(:last-child) {
  margin-inline-end: var(--vaadin-padding-l);
}

/* jmix-aura/src/components/jmix-grid-header-filter.css */
.jmix-grid-header-filter {
    display: inline-flex;
    gap: var(--vaadin-gap-xs);
}

vaadin-button[jmix-role='column-filter-button'] {
    color: var(--vaadin-text-color);

    --vaadin-button-background: transparent;
    --vaadin-button-border-color: transparent;
    --vaadin-button-shadow: none;

    padding: 0;

    font-size: inherit;
    line-height: inherit;
}

.jmix-grid-header-filter .small-device {
    flex-grow: 1;
}

/* Styles for the column-filter button */
vaadin-button[jmix-role='column-filter-button']:not([activated]):hover {
    color: var(--vaadin-text-color);
}

vaadin-button[jmix-role='column-filter-button']:not([activated]) {
    color: var(--vaadin-text-color-disabled);
}

vaadin-button[jmix-role='column-filter-button']:is([activated]) {
    color: var(--aura-accent-text-color);
}

/* Dialog overlay style like a popup */
vaadin-dialog[class~='column-filter-popup']::part(backdrop) {
    background: unset;
}

vaadin-dialog[class~='column-filter-dialog']::part(content) {
    display: flex;
    flex-direction: row;
    gap: var(--vaadin-gap-s);
    padding: var(--vaadin-padding-block-container) var(--vaadin-padding-inline-container);
}

vaadin-dialog[class~='column-filter-popup']::part(overlay) {
    align-self: flex-start;
    position: absolute;
}

vaadin-dialog[class~='column-filter-footer-small']::slotted([slot='footer']) {
    display: flex;
    gap: var(--vaadin-gap-s);
    width: 100%;
}

/* jmix-aura/src/components/jmix-grid-layout.css */
jmix-grid-layout::part(items) {
    grid-gap: var(--_grid-layout-grid-gap, var(--vaadin-gap-s));
}

/* jmix-aura/src/components/jmix-group-filter.css */
.jmix-group-filter {
  border: 1px solid;
  border-color: var(--vaadin-border-color);
  border-radius: var(--vaadin-radius-l);
  margin-top: var(--vaadin-padding-s);
  margin-bottom: var(--vaadin-padding-s);
}

/* jmix-aura/src/components/jmix-horizontal-menu.css */
.jmix-horizontal-menu {
  color: var(--vaadin-text-color-secondary);
  --vaadin-button-shadow: none;
}

.jmix-horizontal-menu vaadin-menu-bar-button {
  color: inherit;
  background-color: transparent;
  border-color: transparent;
  border-radius: var(--vaadin-radius-m);
}

.jmix-horizontal-menu vaadin-menu-bar-button.jmix-horizontal-menu-item-wrapper[focus-ring] {
  outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
  outline-offset: calc(var(--vaadin-focus-ring-width) * -1);
}

vaadin-menu-bar-list-box vaadin-menu-bar-item[class~='jmix-horizontal-menu-item-wrapper']::part(checkmark) {
  display: none;
}

.jmix-horizontal-menu-content-item {
  gap: var(--vaadin-gap-s);
  align-items: center;
}

.jmix-horizontal-menu-content-item .suffix-component {
  margin-inline-start: auto;
}

.jmix-horizontal-menu-item {
  text-decoration: none;
}

vaadin-menu-bar-item .jmix-horizontal-menu-item {
  color: inherit;
  display: flex;
  cursor: var(--vaadin-clickable-cursor);
  width: 100%;
}

/* jmix-aura/src/components/jmix-image.css */
/* shared/src/components/jmix-image.css */
img[theme~="fill"] {
    object-fit: fill;
}

img[theme~="contain"] {
    object-fit: contain;
}

img[theme~="cover"] {
    object-fit: cover;
}

img[theme~="scale-down"] {
    object-fit: scale-down;
}



/* jmix-aura/src/components/jmix-items-per-page.css */
/* shared/src/components/jmix-items-per-page.css */
.jmix-items-per-page {
    align-items: center;
    display: flex;
    gap: var(--jmix-items-per-page-gap, 0.5em);
}

.jmix-items-per-page-select {
    width: var(--jmix-items-per-page-select-width, 6em);
}

/* jmix-aura/src/components/jmix-jpql-filter.css */
.jmix-jpql-filter {
    gap: var(--vaadin-gap-s);
}

/* jmix-aura/src/components/jmix-list-menu.css */
:where(:root),
:where(:host) {
  --jmix-list-menu-item-font-size: var(--aura-font-size-s);
  --jmix-list-menu-item-font-weight: 500;
  --jmix-list-menu-item-line-height: var(--aura-line-height-s);
}

.jmix-list-menu {
  color: var(--vaadin-text-color-secondary);
  margin: 0;
  overflow: auto;
  padding: 0 var(--vaadin-padding-s);
  list-style-type: none;
}

.jmix-list-menu .jmix-menubar-item .menubar-list {
  margin: 0;
  margin-inline-start: var(--vaadin-padding-l);
  list-style-type: none;
  padding: 0;
}

.jmix-list-menu .jmix-menubar-item .menubar-list li {
  padding: calc(var(--vaadin-padding-xs) / 2) 0;
}

.jmix-list-menu .jmix-menubar-item {
  padding: var(--vaadin-padding-xs) 0;
  margin: 0;
}

.jmix-list-menu .jmix-menubar-item::part(content) {
  margin-inline-start: 0;
  padding: 0;
}

.jmix-list-menu .jmix-menubar-item vaadin-details-summary {
  padding: var(--vaadin-padding-s);
}

.jmix-list-menu .jmix-menubar-item .jmix-menubar-summary-icon-container {
  display: flex;
  gap: var(--vaadin-gap-s);
  align-items: center;
}

.jmix-list-menu .jmix-menubar-item .menubar-summary {
  font-size: var(--aura-font-size-s);
  white-space: nowrap;
  font-weight: bold;
  text-overflow: ellipsis;
  overflow: hidden;
}

.jmix-list-menu a.jmix-menu-item .suffix-component,
.jmix-list-menu .jmix-menubar-item .jmix-menubar-summary-icon-container .suffix-component {
  margin-inline-start: auto;
  flex-shrink: 0;
}

.jmix-list-menu a.jmix-menu-item {
  display: flex;
  gap: var(--vaadin-gap-s);
  padding: var(--vaadin-padding-s);
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  align-items: center;
}

.jmix-list-menu vaadin-button.jmix-menu-item {
  --vaadin-button-background: transparent;
  --vaadin-button-border-color: transparent;
  --vaadin-button-border-width: 0;
  --vaadin-button-shadow: none;
  --vaadin-button-gap: var(--vaadin-gap-s);

  display: flex;

  color: inherit;

  font-size: var(--jmix-list-menu-item-font-size);
  font-weight: var(--jmix-list-menu-item-font-weight);
  line-height: var(--jmix-list-menu-item-line-height);

  padding: var(--vaadin-padding-s);
}

.jmix-list-menu vaadin-button.jmix-menu-item::part(label) {
  flex-grow: 1;
}

.jmix-list-menu a.jmix-menu-item .link-text {
  font-size: var(--jmix-list-menu-item-font-size);
  font-weight: var(--jmix-list-menu-item-font-weight);
  line-height: var(--jmix-list-menu-item-line-height);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.jmix-list-menu a.jmix-menu-item[highlight] {
  color: var(--aura-accent-text-color);
  background-color: color-mix(in srgb, currentColor 8%, transparent);
  border-radius: var(--vaadin-radius-m);

  outline-offset: 2px;
}

.jmix-list-menu a.jmix-menu-item[highlight] .link-text {
  font-weight: var(--aura-font-weight-semibold);
}

.jmix-list-menu .jmix-menubar-item vaadin-details-summary::part(content) {
  display: flex;
  overflow: hidden;
  width: 100%;
  align-items: center;
}

.jmix-list-menu[theme~='toggle-reverse'] vaadin-details-summary {
  justify-content: space-between;
}

.jmix-list-menu[theme~='toggle-reverse'] vaadin-details-summary::part(toggle) {
  order: 1;
  margin-inline-end: 0;
}

@supports selector(:focus-visible) {
  .jmix-list-menu a.jmix-menu-item:focus-visible {
    border-radius: var(--vaadin-radius-m);
    outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
    outline-offset: 1px;
  }
}

@media (forced-colors: active) {
  .jmix-list-menu a.jmix-menu-item[highlight] {
    border: 1px solid CanvasText;
  }
}

/* jmix-aura/src/components/jmix-login-form.css */
.jmix-login-form-additional-fields-container {
    display: flex;
    gap: var(--vaadin-gap-s);
    justify-content: end;
    padding-top: var(--vaadin-gap-s);
}

.jmix-login-form-remember-me {
    align-self: center;
    flex-grow: 1;
}

.jmix-login-form-locales-select {
    width: var(--jmix-login-form-locales-select-width, 8em);
}

vaadin-select.jmix-login-form-locales-select vaadin-select-value-button {
    width: 0;
}

/* jmix-aura/src/components/jmix-markdown-editor.css */
:where(:root),
:where(:host) {
    --jmix-markdown-editor-tab-padding: var(--vaadin-padding-s) var(--vaadin-padding-m);
}

jmix-markdown-editor {
    /* Aura standard: icons render at 90% of the icon size slot. */
    --vaadin-icon-visual-size: 90%;
}

jmix-markdown-editor:not([readonly]) {
    --vaadin-input-field-background: var(--vaadin-background-color);
}

jmix-markdown-editor::part(toolbar-button),
jmix-markdown-editor::part(toolbar-overflow) {
    transition:
            color 80ms,
            background-color 80ms,
            scale 180ms;
}

jmix-markdown-editor::part(toolbar-button):active,
jmix-markdown-editor::part(toolbar-overflow):active {
    scale: 0.95;
    transition-duration: 80ms, 80ms, 50ms;
}

/* jmix-aura/src/components/jmix-property-filter.css */
.jmix-property-filter {
  gap: var(--vaadin-gap-s);
}

.jmix-property-filter .unary-field {
  width: 6em;
}

.jmix-property-filter .filter-label {
  white-space: nowrap;
}

/* jmix-aura/src/components/jmix-twin-column.css */
jmix-twin-column > vaadin-list-box {
    --vaadin-item-border-radius: 0;

    background: var(--vaadin-input-field-background, var(--aura-surface-color));
}

jmix-twin-column[theme~="no-border"] > vaadin-list-box {
    background: transparent;
}

jmix-twin-column[theme~="no-space-between-actions"] .jmix-twin-column-actions-panel {
    gap: 0;
}

jmix-twin-column[theme~="no-space-between-actions"] vaadin-button:first-child {
    border-top-left-radius: var(--vaadin-radius-m);
    border-top-right-radius: var(--vaadin-radius-m);
}

jmix-twin-column[theme~="no-space-between-actions"] vaadin-button {
    border-radius: 0;
}

jmix-twin-column[theme~="no-space-between-actions"] vaadin-button:not(:last-child) {
    border-bottom: none;
}

jmix-twin-column[theme~="no-space-between-actions"] vaadin-button:last-child {
    border-bottom-left-radius: var(--vaadin-radius-m);
    border-bottom-right-radius: var(--vaadin-radius-m);
}

jmix-twin-column vaadin-button vaadin-icon[dir="rtl"] {
    rotate: 180deg;
}

/* jmix-aura/src/components/jmix-rich-text-editor.css */
jmix-rich-text-editor .jmix-rich-text-editor-container {
    background: var(--aura-surface-color) padding-box;
    box-shadow: var(--aura-shadow-xs);
}

jmix-rich-text-editor .jmix-rich-text-editor-toolbar [class*='toolbar-button']:active {
    scale: 0.95;
    transition-duration: 80ms, 80ms, 50ms;
}

/* jmix-aura/src/components/jmix-simple-pagination.css */
.buttons-panel .jmix-simple-pagination:not([slot]):last-child {
    margin-inline-start: auto
}

.jmix-simple-pagination {
    --_gap: var(--jmix-simple-pagination-gap, var(--vaadin-gap-xs));

    align-items: center;
    display: flex;
    gap: var(--_gap);
}

.jmix-simple-pagination-status-bar {
    margin: 0 var(--_gap);
    display: flex;
    gap: var(--_gap);
}

.jmix-simple-pagination .jmix-items-per-page {
    gap: var(--_gap);
}

.jmix-simple-pagination-total-count.link {
    color: var(--aura-accent-text-color);
    cursor: var(--vaadin-clickable-cursor);
}

.jmix-simple-pagination-navigation-button {
    padding: 0;
    margin: 0;
    height: 1.5rem;
    min-width: 1.5rem;

    font-size: var(--aura-font-size-s);
}

.jmix-simple-pagination-navigation-button vaadin-icon[dir='rtl'] {
    rotate: 180deg;
}

/* jmix-aura/src/components/jmix-switch.css */
/* Aura sets --vaadin-switch-border-width: 0 on :root for vaadin-switch, which would drop the jmix-switch track border */
:where(jmix-switch) {
    --vaadin-switch-border-width: var(--vaadin-input-field-border-width, 1px);
}

jmix-switch:is([checked]):not([readonly], [disabled])::part(switch) {
    --vaadin-switch-background: var(--aura-accent-color);
    --vaadin-switch-border-color: var(--vaadin-border-color-secondary);
    box-shadow: var(--aura-shadow-s);
}

@media (forced-colors: active) {
    jmix-switch[checked]:not([readonly]) {
        --jmix-switch-forced-colors-indicator-color:
                var(--jmix-switch-checked-indicator-color, var(--vaadin-background-color));
    }

    jmix-switch[disabled][checked]:not([readonly]) {
        --jmix-switch-disabled-indicator-color:
                var(--jmix-switch-checked-indicator-color, var(--vaadin-background-color));
    }
}

/* jmix-aura/src/components/jmix-upload-field.css */
jmix-upload-field {
    --vaadin-input-field-background: transparent;
}

jmix-upload-field:not([readonly],[disabled])::part(input-field) {
    box-shadow: none;
}

/* jmix-aura/src/components/jmix-user-indicator.css */
.jmix-user-indicator {
  overflow: hidden;
  text-align: center;
  text-overflow: ellipsis;
}

.jmix-user-indicator .jmix-user-indicator-label {
  white-space: nowrap;
}


/* jmix-aura/src/components/jmix-user-menu.css */
vaadin-menu-bar[jmix-role='jmix-user-menu'] {
    flex-shrink: 0;
}

vaadin-menu-bar[jmix-role='jmix-user-menu'] vaadin-menu-bar-button.jmix-user-menu-button {
    padding: 0;
    height: auto;
}

vaadin-menu-bar[jmix-role='jmix-user-menu'] > vaadin-menu-bar-button:nth-last-of-type(2)::part(suffix) {
    display: none;
}

vaadin-menu-bar[jmix-role='jmix-user-menu'] vaadin-menu-bar-button.jmix-user-menu-button::part(label) {
    padding: 0;
}

vaadin-menu-bar[jmix-role='jmix-user-menu'] vaadin-menu-bar-item.jmix-user-menu-button {
    padding: 0;
    margin: 0;

    height: 100%;
}

vaadin-menu-bar[jmix-role='jmix-user-menu'] vaadin-menu-bar-item::part(content) {
    display: flex;
    align-items: center;
    gap: var(--vaadin-gap-s);
}

vaadin-menu-bar[jmix-role='jmix-user-menu'] vaadin-menu-bar-item::part(checkmark):before {
    color: inherit;
}

vaadin-menu-bar[jmix-role='jmix-user-menu'] vaadin-menu-bar-item[theme~='non-checkable'] {
    padding-inline-start: var(--vaadin-gap-s);
}

vaadin-menu-bar[jmix-role='jmix-user-menu'] vaadin-menu-bar-item[theme~='non-checkable']::part(checkmark) {
    display: none;
}

/* Default Button Renderer */

.jmix-user-menu-button-content {
    display: grid;
    grid-template: "avatar username"
                   "avatar subtext";
    grid-template-columns: auto 1fr;
    column-gap: var(--vaadin-gap-s);

    width: max-content;
    box-sizing: border-box;

    color: var(--vaadin-text-color);
    padding: var(--vaadin-padding-xs) var(--vaadin-padding-s);
}

.jmix-user-menu-button-content > .jmix-user-menu-button-content-user-avatar {
    grid-area: avatar;
    align-self: center;
}

.jmix-user-menu-button-content > .jmix-user-menu-button-content-user-name {
    grid-row: username / subtext;
    align-self: center;
    text-align: start;

    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

vaadin-menu-bar[jmix-role='jmix-user-menu'][theme~='substituted'] .jmix-user-menu-button-content > .jmix-user-menu-button-content-user-name {
    grid-row: username;
}

.jmix-user-menu-button-content > .jmix-user-menu-button-content-subtext {
    grid-area: subtext;
    align-self: center;
    text-align: start;

    color: var(--vaadin-text-color-secondary);
    font-size: var(--aura-font-size-xs);

    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

vaadin-menu-bar[jmix-role='jmix-user-menu']:not([theme~='substituted']) .jmix-user-menu-button-content > .jmix-user-menu-button-content-subtext {
    display: none;
}

/* jmix-aura/src/components/jmix-side-panel-layout.css */
jmix-side-panel-layout::part(sidePanel) {
    box-shadow: var(--aura-shadow-m);
}

/* jmix-aura/src/components/jmix-side-panel-layout-closer.css */
jmix-side-panel-layout-closer {
    border: 0;
    color: var(--aura-neutral);
}

@media (forced-colors: active) {

    jmix-side-panel-layout-closer {
        border: 1px solid;
    }
}

/* jmix-aura/src/components/jmix-view-layout.css */
/* shared/src/components/jmix-view-layout.css */
vaadin-vertical-layout[jmix-role='jmix-view-layout'] {
    width: 100%;
    height: 100%;
}


vaadin-vertical-layout[jmix-role='jmix-view-layout'] {
    overflow: auto;
}

/* jmix-aura/src/components/jmix-bpmn-modeler.css */
jmix-bpmn-modeler:focus-within::part(focus-ring) {
    outline: var(--vaadin-focus-ring-width, 2px) solid var(--jmix-bpmn-modeler-focus-ring-color, var(--vaadin-focus-ring-color));
    outline-offset: calc(var(--vaadin-focus-ring-width, 2px) * -1);
}

/*
 * Popup-menu icon for the "Send Notification" service task. The modeler renders
 * its diagram-js content (incl. the replace popup) in the light DOM, so this is
 * a plain global rule. bpmn-font ships no bell glyph, so the bell is rendered as
 * a CSS mask painted with currentColor - it follows the entry's color (incl.
 * hover/selected) and scales with font-size like the built-in font glyphs. The
 * class name contains the "icon" substring on purpose, so the diagram-js popup
 * rules size and space it for free. The bell path matches
 * BpmRenderer#_drawSendNotificationTask on the canvas.
 */
.djs-popup .jmix-icon-send-notification::before {
    content: '';
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='5 5 18 18'%3E%3Cpath d='M 14 6.5 c -3.2 0 -5.2 2.3 -5.2 5.5 l 0 3.6 l -1.6 2.2 l 13.6 0 l -1.6 -2.2 l 0 -3.6 c 0 -3.2 -2 -5.5 -5.2 -5.5 z M 12.2 19.4 a 1.8 1.8 0 0 0 3.6 0'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='5 5 18 18'%3E%3Cpath d='M 14 6.5 c -3.2 0 -5.2 2.3 -5.2 5.5 l 0 3.6 l -1.6 2.2 l 13.6 0 l -1.6 -2.2 l 0 -3.6 c 0 -3.2 -2 -5.5 -5.2 -5.5 z M 12.2 19.4 a 1.8 1.8 0 0 0 3.6 0'/%3E%3C/svg%3E") center / contain no-repeat;
}


/* jmix-aura/src/components/vaadin-details.css */
vaadin-details-summary[theme~="no-padding"] {
    --vaadin-details-summary-padding: var(--vaadin-padding-block-container) 0;
}

/* jmix-aura/src/components/vaadin-form-layout.css */
vaadin-form-item[theme~='label-align-end']:not([label-position='top'])::part(label) {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* jmix-aura/src/components/vaadin-grid.css */
:where(:root),
:where(:host) {
  --_grid-border-radius: var(--vaadin-grid-border-radius, var(--vaadin-radius-m));
}

/* Header */

vaadin-grid::part(first-header-row):after {
  border-start-start-radius: var(--_grid-border-radius);
}

vaadin-grid:not([overflow~='bottom']):not([overflow~='top'])::part(first-header-row):after {
  border-start-end-radius: var(--_grid-border-radius);
}

vaadin-grid::part(first-header-row-cell first-column-cell):after {
  border-start-start-radius: var(--_grid-border-radius);
}

vaadin-grid:not([overflow~='bottom']):not([overflow~='top'])::part(first-header-row-cell last-column-cell):after {
  border-start-end-radius: var(--_grid-border-radius);
}

/* Footer */

vaadin-grid:not([overflow~='start']):not([overflow~='end'])::part(last-footer-row):after {
  border-end-start-radius: var(--_grid-border-radius);
}

vaadin-grid:not([overflow])::part(last-footer-row):after {
  border-end-end-radius: var(--_grid-border-radius);
}

vaadin-grid:not([overflow~='start']):not([overflow~='end'])::part(last-footer-row-cell first-column-cell):after {
  border-end-start-radius: var(--_grid-border-radius);
}

vaadin-grid:not([overflow])::part(last-footer-row-cell last-column-cell):after {
  border-end-end-radius: var(--_grid-border-radius);
}

/* Column Reordering */

/*
 * While a column is dragged, the base styles dim every cell with a ::after "curtain"
 * that uses backdrop-filter. When the grid sits in a scroll container with non-uniform
 * rounded corners (the main view content area), Chrome on macOS composites each curtain
 * with its own full-size clip mask and stops painting parts of the page until the drag
 * ends. A translucent background gives the same visual cue without backdrop-filter.
 */
vaadin-grid[reordering]::part(cell)::after {
  backdrop-filter: none;
  background: color-mix(in srgb, currentColor 6%, transparent);
}

vaadin-grid[reordering]::part(reorder-allowed-cell)::after {
  background: color-mix(in srgb, currentColor 3%, transparent);
}

vaadin-grid[reordering]::part(reorder-dragging-cell)::after {
  background: transparent;
}

/* Theme Variants */

vaadin-grid[theme~='no-header']::part(header-cell) {
  display: none;
}

/* jmix-aura/src/components/vaadin-notification-card.css */
.jmix-text-layout-closeable .title,
.jmix-text-layout-closeable .message,
.jmix-text-layout .title,
.jmix-text-layout .message {
  white-space: pre-wrap;
}

.jmix-text-layout-closeable .title,
.jmix-text-layout .title {
  font-size: var(--aura-font-size-l);
  font-weight: 600;
  margin: 0;
  text-align: center;
}

.jmix-text-layout-closeable .message,
.jmix-text-layout .message {
  margin-block: 0;
}

.jmix-closeable-layout {
  display: flex;
  align-items: flex-start;
  gap: var(--vaadin-gap-s)
}

.jmix-closeable-layout .close-button {
  color: inherit;

  --vaadin-button-background: transparent;

  padding: 0;

  font-size: inherit;
  line-height: inherit;

  position: absolute;
  right: 0;
  top: 0;

  margin-top: var(--vaadin-padding-s);
  margin-inline-end: var(--vaadin-padding-s);
}

vaadin-notification-card:not([slot$='stretch']) .jmix-closeable-layout {
  padding-inline-end: var(--vaadin-padding-l);
}

vaadin-notification-card::part(overlay) {
  display: flex;
  justify-content: center;
  position: relative;
}

vaadin-notification-card::part(content) {
  overflow-wrap: anywhere;
}

/* jmix-aura/src/components/vaadin-split-layout.css */
vaadin-split-layout[theme~='splitter-spacing'] {
  gap: var(--vaadin-gap-s);
}

/* jmix-aura/src/utilities/index.css */
/* shared/utility.css */
/* shared/src/utilities/misc.css */
.buttons-panel {
    width: 100%;
    flex-wrap: wrap;
}

.overflow-auto {
    overflow: auto;
}

/* jmix-aura/src/utilities/badge.css */
/* WARNING: will be removed after vaadin-badge is released */

[theme~='badge'] {
    --aura-accent-contrast-color-light: oklch(
            from var(--aura-accent-color-light) clamp(0, (0.62 - l) * 1000, 1) 0 0 / clamp(0.8, (0.62 - l) * 1000, 1)
    );
    --aura-accent-contrast-color-dark: oklch(
            from var(--aura-accent-color-dark) clamp(0, (0.62 - l) * 1000, 1) 0 0 / clamp(0.8, (0.62 - l) * 1000, 1)
    );
    --aura-accent-text-color-light: oklch(
            from var(--aura-accent-color-light) min(0.55, 0.35 - 0.05 * var(--aura-contrast-level) + c) calc(c * 0.9) h
    );
    --aura-accent-text-color-dark: oklch(
            from var(--aura-accent-color-dark) max(0.8, 0.9 + 0.1 * var(--aura-contrast-level) - c * 2) calc(c * 0.9) h
    );
    --aura-accent-color: light-dark(var(--aura-accent-color-light), var(--aura-accent-color-dark));
    --aura-accent-contrast-color: light-dark(
            var(--aura-accent-contrast-color-light),
            var(--aura-accent-contrast-color-dark)
    );
    --aura-accent-text-color: light-dark(var(--aura-accent-text-color-light), var(--aura-accent-text-color-dark));
    --_accent-surface-light: color-mix(
            in srgb,
            color-mix(
                    in srgb,
                    oklch(from var(--aura-accent-color-light) l c h / min(max(c / 0.4, 0), 1)) calc(23% - 4% * var(--aura-surface-level)),
                    var(--aura-surface-color-solid)
            ) calc(100% * var(--aura-surface-opacity)),
            transparent
    );
    --_accent-surface-dark: color-mix(
            in srgb,
            color-mix(
                    in srgb,
                    oklch(from var(--aura-accent-color-dark) l c h / min(max(c / 0.4, 0), 1)) calc(23% - 3% * var(--aura-surface-level)),
                    var(--aura-surface-color-solid)
            ) calc(100% * var(--aura-surface-opacity)),
            transparent
    );
    /* This color is very slightly semi-transparent, depending on the saturation/chroma of the accent color (only an issue in Safari 17). */
    --aura-accent-surface: light-dark(var(--_accent-surface-light), var(--_accent-surface-dark));
    @supports (color: hsl(0 0 0)) {
        /* This removes the semi-transparency */
        --aura-accent-surface: oklch(
                from light-dark(var(--_accent-surface-light), var(--_accent-surface-dark)) l c h / var(--aura-surface-opacity)
        );
    }
    --_accent-border: light-dark(
            oklch(from var(--aura-accent-color-light) 0.8 calc(c * 1.1) h / min(1, c + (1 - l) / 10)),
            oklch(from var(--aura-accent-color-dark) 0.8 calc(c * 1.1) h / min(1, c + (1 - l) / 10))
    );
    --aura-accent-border-color: color-mix(
            in srgb,
            var(--_accent-border) calc(30% - 1% * var(--aura-surface-level) + 1% * var(--aura-contrast-level)),
            var(--vaadin-border-color) 60%
    );
}

[theme~='badge'] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: baseline;
    box-sizing: border-box;
    gap: var(--vaadin-badge-gap, 0.25em);
    padding: var(--vaadin-badge-padding, 0 calc(0.5lh - 0.25em));
    font-family: var(--vaadin-badge-font-family, inherit);
    font-size: var(--vaadin-badge-font-size, --aura-font-size-s);
    font-weight: var(--vaadin-badge-font-weight, 500);
    line-height: var(--vaadin-badge-line-height, round(1em * 1.5, 0.125rem));
    color: var(--vaadin-badge-text-color, var(--aura-accent-text-color));
    background: var(--vaadin-badge-background, var(--aura-accent-surface) padding-box);
    border: var(--vaadin-badge-border-width, 1px) solid var(--vaadin-badge-border-color, var(--aura-accent-border-color));
    border-radius: var(--vaadin-badge-border-radius, var(--vaadin-radius-s));
    min-width: calc(1lh + var(--vaadin-badge-border-width, 1px) * 2);
    --vaadin-icon-size: 1em;
    /* prevent from stretching */
    flex: none;

    --aura-surface-level: 1;
}

[theme~='badge'][theme~='small'] {
    font-size: var(--aura-font-size-s);
}

/* Colors */

[theme~='badge'][theme~='contrast'] {
    --aura-accent-color-light: var(--vaadin-text-color);
    --aura-accent-color-dark: var(--vaadin-text-color);
    --aura-accent-color: light-dark(var(--aura-accent-color-light), var(--aura-accent-color-dark));

    --aura-accent-text-color-light: var(--vaadin-text-color);
    --aura-accent-text-color-dark: var(--vaadin-text-color);
    --aura-accent-text-color: light-dark(var(--aura-accent-color-light), var(--aura-accent-color-dark));
}

/* Primary */

[theme~='badge'][theme~='primary'] {
    background: var(--aura-accent-color);
    color: var(--aura-accent-contrast-color);
}

/* Pill */

[theme~='badge'][theme~='pill'] {
    --vaadin-radius-s: 100vh;
}

/* Links */

[theme~='badge'][href]:hover {
    text-decoration: none;
}

/* Icons */

[theme~='badge'] > .jmix-font-icon {
    --vaadin-icon-visual-size: var(--vaadin-icon-size, 1lh);
}

[theme~='badge'] > .jmix-font-icon:not([icon-class~="jmix-font-icon-lumo"]) {
    --vaadin-icon-visual-size: round(var(--vaadin-icon-size, 1lh) * .8, 1px);
}

/* jmix-aura/src/utilities/misc.css */
.bordered-panel {
  border: 1px solid;
  border-color: var(--vaadin-border-color-secondary);
  border-radius: var(--vaadin-radius-l);
}

.footer-panel {
  padding: var(--vaadin-gap-s) var(--vaadin-gap-m) var(--vaadin-gap-m);
}

vaadin-button.link-button,
vaadin-button.dialog-close-button,
vaadin-button.dialog-header-button {
  padding: 0;

  font-size: inherit;
  line-height: inherit;
}

vaadin-button.dialog-close-button,
vaadin-button.dialog-header-button {
  color: var(--vaadin-text-color);
}

vaadin-button.link-button {
  --vaadin-button-background: transparent;
  --vaadin-button-border-color: transparent;
  --vaadin-button-shadow: none;
}

vaadin-button.link-button:not([theme~='icon']) {
  padding-inline: var(--vaadin-padding-xs);
}

/* jmix-aura/src/icons/index.css */
/* shared/icons.css */
/* shared/src/icons/lumo-icons/lumo-icons.css */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@font-face {
  font-family: 'lumo-icons';
  src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABNcAAsAAAAAJqAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAARAAAAGBAJEuVY21hcAAAAYgAAAESAAAEAryc8p5nbHlmAAACnAAADUMAABssFN+RZGhlYWQAAA/gAAAAMQAAADZa/6SoaGhlYQAAEBQAAAAdAAAAJAbpA4RobXR4AAAQNAAAABAAAADEu4AAAGxvY2EAABBEAAAAZAAAAGSgQKfEbWF4cAAAEKgAAAAfAAAAIAFQAXBuYW1lAAAQyAAAATEAAAIuUUJZCHBvc3QAABH8AAABXQAAAimEGAW4eJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGG+wjiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgcXjG+MmAO+p/FEMUcxDANKMyIoogJAIMlDDt4nO3T13GDQBhF4YOEcs4550wpKskF+cll0YS8l+syzMy3Z9gBoZkfgAKQD+5BDNEPETq+w26U7eepZvsxX9k1sfbT5PMJa6Q1nMfZmgvXxuEXi5QoUwn31ajToEmLNh269OgzYMiIMROmzJizYMmKNRu27Nhz4MiJMxeu3MLzHzx5kYQHFPk/6lpy77+zRDOwbCo5Q82bppvGpjmlBdPk06Khlgy1bKgVQ62a3oi0Zqh1079LG4baNNSWobYNtWOoXUPtGWrfUAeGOjTUkaGODXViqFNDnRnq3FAXhro01JWhrg11Y6hbQ90Z6t5QD4Z6NNSToZ4N9WKoV0O9Gerd9BWnD0N9GurLUBMj+QW9hHPRAAB4nLVYCWxc5RF+83t33759x3p333t72LvrPbzrI16TPWM7WcdekziHnUQxIQGaA1Iol5KS0iitjKqkSYGGFFHRCoE4VClpS9qkSVsBaUQRodxVSyUgVVoh2hQBEeJI1SrCj87/v71xDoSaWLP/OW/++Wfmm/k5C4f/WkbJg5zE+bkEl+E4TzafiaR11RaLRBPe+o6rvpOs7xzQW8lkq663zhxp1Ve7JHhKcrkkYxGltfbq+lVkh6Kqbap6RGY/xj6z+6ri8bR7PFSsi8mmnVe23Hlla5XgGBPncqm1vv1FJPt/6Gy/iwqDIqEwrvr2/i+mM2Cy+eEU14qdhAJ6GPT0MBQhBU6ANqXTT5SzclQ+pxB/p3IKXpZIe1x+SxRPy/F2Ir1c4UFuJt+nPDp1BRL9kMhSHiHkQdZJpK1TekuSTkudbbhjrxI3eUrI04c8q3KQ4yYPSBSZHKoTFJRjGOAHTTzIsNLpqzLxxxmT8lmIlclhS0F+GPLpMEqhQP8sZ3mjjmk7kV+qyfE6Wch5kUchHwKbE2zRfhSjCGHA20nrGglMi2GNSMfEoOOYRLSwOK136K9sdRBvWNzvcOwXw17i2AqTTl13Vni+Z/IEb7OCzAuG7VvE+u3iFpig1wjzmr91h9ahN/FE66CWkmzUW4F83TjKeEw08YZ5eod2h8nXERRNvtWz38h4uhRAx3DxjXpMkgDg96eb9sKHlS81KYGytLF7uYUc5JxcmOvnhrkV3Ab0gUxaD4Jq68XvLIBs3hu1YVcfgnQeu4kYnddc5nzOxea9Lhubx24i5v38PHZr84du0YJBjZI8Lwh8D+9w8CfqxhwAjllG6Rguh/VB7V06jKQk8AfoxAFegHuD2sxLdJzkteCogzckOgNnecfmkGpspTNwrxoq4cxRNjPBUyW0MB34UAdBrofLoW3FXNkiZGI5alFBiKVDoLlwLIHHsWktDfEho1W0BFuW9S1PgT/qh9TyvmW5xFQi9wiq/VOqfMPSqv9r2iMXZc8hIDjf4/L5XD19E32GASSRzyeMk2iRYV0vdEget9yBImlMrgLKFcO4VOJWc9dx27hd3A+5n3BHuWe5v3D/4D6BFvBADDJQgtVwHdpGBqVGPaPc5TukYtI7HILyjMY33a65/Pz9//f6QrO1XaTfvN/6Bb/3ReVp7sP2c5LQLUhL6R3OvELpUjZwX48gyXZKds/S+vhLzNZas5HarKFeIpsLMyQ7VUGSBNXvMu3U5Wf9Y+yU5yXTX2r63KwrZ910EU6Xzr2MSyrpNbEtalMpxhYgn01EeYCiGNbFO0UMoiVR7xCNk/BVUQ/jiAijdMp4s4pLH8ARTma4hPEtUmZEtNd4xWHMdyj8a3LXied5tyy7+efl8p5xso7uQdwx42IU8UyFq6rLYAHdDifM7TUMfJCsZft4mxle0xRYyL6L7vsA8df8nhkWshQ8GmWE/9aEpFs47rN3MD/aydmphjyaN8N7C5lchAc+U/AWzn1zc+jK0kczi3MQu2F65EyO7LTfvmjtw9M5428fPnAmx1Xj6yjDmDg3t/x9xO1EkkVYrSWaTCQT2UK+kE97dZzkbbwtmS5CNgVRBdQQkMAVVO8bJEAwT1w9sXxOX9+c5RO/rTSuHt8xPr7jXkrgxivozWwQXScoxM980rCQNcbKS5GUz1iWL8llUToUppDkMQ+IoRxJ3otZhoZi4bkRwDMopbeQRNi1RlOAMIHgoCrQMrKqVZ4zNN4d9Ux50tr4cL/cOjXVKvcPLe+OOnHIPz40x2ddZRztX9Xfv2o9JXCnO+1fMjTXb71ihUvuHb5cS+tT/rR/lK1c5ZLmDI12R/27y8uRVO7xOdLPtTFJ2d2j2mheUdYqNYpsAY7vE70d0j33SB1ecV9dG9Z/bshsV/VwHHOMPuR+ngzLY6JiDVhoLzJ73nWKIppz5jCDNmKBJbPmYa0zn9KruqZK8mZegnZ+K9qdiwsgAs6hyIxfpekUSmE2EJgrI566qRTUrUnr8FI829mZjdfTPzf1kZJUgHXeC+BAJ8TZbzwOe6rDUJ2Oxyt38T68OXt+vkCi+vgj5mGvUX1IT8KLDvB2OI4LwjMs03u86hsl8gtO5DxcmvoGNf4U5ObmC56CmYUm+ZiZP2HegflXwYUGh8rHRSxPIY8VX1UWE1uLpnyUFaMBEDP3ld5m2c6kFlwWHYgaR5DgHxmY967TB7h0sRPcQxLxxuTBK5cFNeMIXf7klPGJuRAmkdTXbQc5lYug745ghLuot7LskC9nf1gnmdmkXsbPRB7OXtCDMz2CKNqtUatdlKSoXQLZzqjrgp4MJyX7Savdbj1pl4wTsj1CQ3zELlfOcD/GWh+XxzxqefkM1Eoqp0AnttFzdOr0SOkCmygkkux/lGdzvN7g8sk0BQmbqsPZ0sSihcWJieLCRRN7ak3j1o7UgpHSztLIglSHw2ZzNHbhqq5SMllaSUlXsKdnsKdnc5uvu2vNwjVd3b62uuY78Uiv1+fz9kbiDkFwNPTuKnNAsoyyGOzhrOXz/pRr5wa4UW4ZdyXFJT3TeKxC5cyxaFUVmbSXT8Sq56W6wPCCnoQGhyrLUXNLewWgAYcH6l6wd76uj9QdURLTQ0vY+Utzz1RbhSFv4yrp1COA5+bvZpQ3niIrhYBbmDmMdNv8lrrD2vlMcmqYKWJjpeFsXGHvfoTnUZvfZRSMjcjMHUBmDk+gVuP8GGv8EMaRQW4xN95c55sYitEuRYZpXLXWZtHPGp4BctaG3rRbJodlt1ueWSm7uxx+x7QgTDt8brDfcIMAAbcM2+mscZfsgfqO8UL9RrJd9ngCbvcO3CwEhGk7uPwCMgjMwRUBuvN35gL5GB3A33LsoHatYd2SwtgR0zJom7yqkF7AJnNJK94Zpv4x0zVZC8vPSC5CHpyeTk32Q+CyYnR6euy2sbHbZk6kJlPl9hidTf0cJo0jZO2K1IpUdPiywIrStju3lc5hz2zhr2WqHuPXld9RLvC609A54HORcZZGP0Hp7G2Scvt8MZ/vaZcfqyv/0y7WK+duIuzB2MkB9UQaHzH7Amur19sKf2d0t7fDi3/VWvd+8huO5zq4MW4Vt567GSXNxfhcIaPxZcxAtM9osRzGXureWP55chnT1bVYEdgSXisDTzKj6uyTl3jcu0lvX99Niflxjy+4dHdBlWWv0p3SJFn2Kd0Qn9/pUdxa18IE9Dr9Tqd8HG/SoqiqMvMppbO3ifV77Ynw4e8EIkGfEtTaSCyUdbvckiKC8UZY8oiSGAi36U6dtBDd5QuFAw5JVkX4t/nwdKbhp/5NgPoLrYgLqKvLm27Umg8RJ3svoXlcttBpTlJcSoFW6zSdv9FZyANlN6HGTt1m5p/MQai1o4e4mzqzOEvFS/xuO/Wa8bKvHDKnf1nxFIbVn71PPiZHuG6W2bDAptvoY0yY4nYIMBVmQzxNeegjUD9Fqq4eOSq2kEG73cnLolUNLux2BCXeGbUPCoLTYsmm1kfT3876lDays1MkcotlszMiWPg2ZXTdWJ/DylvtgvM6XE6Iq9Ubz+48ONn/FZSnEqMPIurHuHmo30nUcIS9NDSguzVSg35aIkCBZmKMaEmePp7xsbwHt1ShiTdRKZ3/Exk30XzmCfZLbpp5Qg2FVDKOdObZA4JfXHJQCEobtvxMaBOXb7m25e1QrpgLh5GEiuHeUKg3TB6PDEaNjdHBCP7Co/hLs4WNLLl4VAsaygGhxdb7omixl66ZfF608L1bRFgYNpkgCWthyqgub6X1h7VSt3itWLf8ynjd0a6q7Q7o8cDoIatoh2/ZReshqaPybiiS21m+G6MHG0LX02kexLyyF3LMNeHVF6i7v4CuXm0w328crr2reuAUap7rLBLMTjDpQhWjVnOFfAINIAU0XqIh0FQAouLg1GXdS4NrrYLtGcljBUG2jnZ/bXD09lUusAQ6FduZvsVdoba1Flmworn+nhfAUkr0Fq4t2tWgy179pkr+yjLrXLYKNzQjMkMzhmuzHGLgW0uy4KwgWXYLwm6LJAxuGhjY9I1NA5haI0iNlB4qjSS6urBBbtzIC5a9Qpuw1yLwOwfpooFNg/TpaRLXJKuLq7FaIfFKrIYKmGPdi8mQKRarDRs6LRZBMDZQlIbH0NkE4TRtn2bNHtpEQtqwi4sQfXHRc9g5TdunhRPY7KHNHqFWcyWwrqR5JdeJH6K2bItVzVhT+YYK8Ee7JF9U3jWykqETRaHMmkxmzfVr0uk1/9klxXwg70ohKDHsWnlLeeb6NZmy7tvK950iaEU8q4Ax7cklE9TtaVoTopGA6p384cvfdwVr9pbrF1pZYu7sMQsSRJDPNS4RQe4Lx+PFeDzc8PPQJeGEHJsXw79zDT+kMCsMVGrBX6OF9Ne9OCuQIvVPzucrBtlDNK96ZIvNfswRKpeEGxrLQTLEXqadMLnVZrE5VQ9fLQyNp1kxSO2XVYSFqs34WI6hUsSvS8YrRgNnWagbo8R4asWeh/esgPXlPhLj1MDGefM2DvwP/nc56AB4nGNgZGBgAOKLzh/vxPPbfGXgZn4BFGGoUd3QiKD/P2eeynQLyOVgYAKJAgBqTwyBAAAAeJxjYGRgYA76nwUkXzAAAfNUBkYGVGAIAFb8A3UAAAB4nGNgYGBgfjG0MQC0VCwRAAAAAABOAJoA6AEKASwBTgFwAZoBxAHuAhoCnALoBJoEvATWBPIFDgUqBUwFnAXyBiAGZga4BtoHKgeMCAQIjAj4CT4JeAmQCiQKjgrWC04LaguUC84MFAxWDIwMxg0mDXANlnicY2BkYGAwZExhEGUAASYg5gJCBob/YD4DABk2AcIAeJxtkT1OwzAYht/0D9FKCARiYfECC2r6M3ZkaPcO3dPUaVM5ceS4Fb0DJ+AQHIKBM3AIDsFb80mVUG3J3+PH7xcrCYBrfCHCcUTohvU4Grjg7o+bpBvhFvlBuI0eHoU79EPhLp4xEe7hFppPiFqXNHd4FW7gCm/CTfp34Rb5Q7iNe3wKd+i/hbtY4Ee4h6foxewK289TW9Zzvd6ZxJ3EiRba1bkt1SgenuRMl9olXq/U8qDq/XrsfaYyZws1taXXxlhVObvVqY833leTwSATH6e2gMEOBSz6yJGylqgx5/uu6Q0SuLOJc27BLseah73CCDG/57nkjMkypBN41hXTSxy41tjz5jGtR8Z9xoxlv8I09B7ThtPSVOFsS5PSx9iEror/bcCZ/cvH4fbiFyPgZJwAAAB4nG2Qa1PUMBSG+7Jp6Xa7XETECwqiqChF8B9lk2Ob2WzSOWlk8NfTy8L4wTOTM887eebkTJKdZKoi+X/dYQczCKTIsIsccxRYoMQSe9jHAQ7xAkd4iWO8wgle4w3e4h1O8R4fcIZzfMQFPuEzLvEFX/ENV/iOH7hGhRv8xC3u8CsppTW1qxS5jriYgqXf3WJCNnXTFdLVlirt790WJ2PE0cgnjm0hmf39Vh1xUkfcqiPHdr6SXKlGcidWZG2upCWnJc9VQ2q9kbwue/rD3o3jnsMwcPkUpv2eUmxTZUm6vnu1nilfp4p9CPkwwHqpF5plXTXSaUu5Zt8OF4K06VLq1+IZPVDZn0qbIFeWdGac7r9GWOPWYkMuphvjYig9a2LSlTWh2/WxG6S0bbyjoXdetFY+9C0G0Ws+YxqeXzIF85e2C2SBJKtGRKf9XnT/jsxiO/giBuIkeQSgEpzjAAAA)
    format('woff');
  font-weight: normal;
  font-style: normal;
}

:where(:root),
:where(:host) {
  --lumo-icons-align-center: '\ea01';
  --lumo-icons-align-left: '\ea02';
  --lumo-icons-align-right: '\ea03';
  --lumo-icons-angle-down: '\ea04';
  --lumo-icons-angle-left: '\ea05';
  --lumo-icons-angle-right: '\ea06';
  --lumo-icons-angle-up: '\ea07';
  --lumo-icons-arrow-down: '\ea08';
  --lumo-icons-arrow-left: '\ea09';
  --lumo-icons-arrow-right: '\ea0a';
  --lumo-icons-arrow-up: '\ea0b';
  --lumo-icons-bar-chart: '\ea0c';
  --lumo-icons-bell: '\ea0d';
  --lumo-icons-calendar: '\ea0e';
  --lumo-icons-checkmark: '\ea0f';
  --lumo-icons-chevron-down: '\ea10';
  --lumo-icons-chevron-left: '\ea11';
  --lumo-icons-chevron-right: '\ea12';
  --lumo-icons-chevron-up: '\ea13';
  --lumo-icons-clean: '\ea14';
  --lumo-icons-clock: '\ea15';
  --lumo-icons-cog: '\ea16';
  --lumo-icons-cross: '\ea17';
  --lumo-icons-download: '\ea18';
  --lumo-icons-drag-handle: '\ea19';
  --lumo-icons-dropdown: '\ea1a';
  --lumo-icons-edit: '\ea1b';
  --lumo-icons-error: '\ea1c';
  --lumo-icons-eye: '\ea1d';
  --lumo-icons-eye-disabled: '\ea1e';
  --lumo-icons-indent: '\ea1f';
  --lumo-icons-link: '\ea20';
  --lumo-icons-menu: '\ea21';
  --lumo-icons-minus: '\ea22';
  --lumo-icons-ordered-list: '\ea23';
  --lumo-icons-outdent: '\ea24';
  --lumo-icons-phone: '\ea25';
  --lumo-icons-photo: '\ea26';
  --lumo-icons-play: '\ea27';
  --lumo-icons-plus: '\ea28';
  --lumo-icons-redo: '\ea29';
  --lumo-icons-reload: '\ea2a';
  --lumo-icons-resize-handle: '\ea2b';
  --lumo-icons-search: '\ea2c';
  --lumo-icons-undo: '\ea2d';
  --lumo-icons-unordered-list: '\ea2e';
  --lumo-icons-upload: '\ea2f';
  --lumo-icons-user: '\ea30';
}

/* shared/src/icons/vaadin-icons/vaadin-icons.css */
@font-face {
    font-family: 'Vaadin-Icons';
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url("../shared/src/icons/vaadin-icons/Vaadin-Icons.woff") format("woff"), url("../shared/src/icons/vaadin-icons/Vaadin-Icons.ttf") format("truetype"), url("../shared/src/icons/vaadin-icons/Vaadin-Icons.eot") format("eot");
}

/* shared/src/icons/jmix-font-icons.css */
html {
    --jmix-font-icon-font-family: 'Vaadin-Icons';

    /* Vaadin icons */
    --jmix-font-icon-abacus: '\e682';
    --jmix-font-icon-absolute-position: '\e61e';
    --jmix-font-icon-academy-cap: '\e902';
    --jmix-font-icon-accessibility: '\e683';
    --jmix-font-icon-accordion-menu: '\e61f';
    --jmix-font-icon-add-dock: '\e620';
    --jmix-font-icon-dock: '\e620';
    --jmix-font-icon-adjust: '\e74a';
    --jmix-font-icon-contrast: '\e74a';
    --jmix-font-icon-adobe-flash: '\e648';
    --jmix-font-icon-airplane: '\e684';
    --jmix-font-icon-alarm: '\e903';
    --jmix-font-icon-align-center: '\e74b';
    --jmix-font-icon-align-justify: '\e7ae';
    --jmix-font-icon-align-left: '\e74c';
    --jmix-font-icon-align-right: '\e74d';
    --jmix-font-icon-alt-a: '\e904';
    --jmix-font-icon-alt: '\e905';
    --jmix-font-icon-ambulance: '\e906';
    --jmix-font-icon-anchor: '\e685';
    --jmix-font-icon-angle-double-down: '\e6e6';
    --jmix-font-icon-angle-double-left: '\e6e7';
    --jmix-font-icon-angle-double-right: '\e6e8';
    --jmix-font-icon-angle-double-up: '\e6e9';
    --jmix-font-icon-angle-down: '\e6ea';
    --jmix-font-icon-angle-left: '\e6eb';
    --jmix-font-icon-angle-right: '\e6ec';
    --jmix-font-icon-angle-up: '\e6ed';
    --jmix-font-icon-archive: '\e6ee';
    --jmix-font-icon-archives: '\e621';
    --jmix-font-icon-area-select: '\e806';
    --jmix-font-icon-arrow-backward: '\e622';
    --jmix-font-icon-arrow-circle-down-o: '\e6ef';
    --jmix-font-icon-arrow-circle-down: '\e6f0';
    --jmix-font-icon-arrow-circle-left-o: '\e6f1';
    --jmix-font-icon-arrow-circle-left: '\e6f2';
    --jmix-font-icon-arrow-circle-right-o: '\e6f3';
    --jmix-font-icon-arrow-circle-right: '\e6f4';
    --jmix-font-icon-arrow-circle-up-o: '\e6f5';
    --jmix-font-icon-arrow-circle-up: '\e6f6';
    --jmix-font-icon-arrow-down: '\e7af';
    --jmix-font-icon-arrow-forward: '\e623';
    --jmix-font-icon-arrow-left: '\e7b0';
    --jmix-font-icon-arrow-long-down: '\e74e';
    --jmix-font-icon-arrow-long-left: '\e74f';
    --jmix-font-icon-arrow-right: '\e7b1';
    --jmix-font-icon-arrow-up: '\e7b2';
    --jmix-font-icon-arrows-cross: '\e750';
    --jmix-font-icon-arrows-long-h: '\e751';
    --jmix-font-icon-arrows-long-right: '\e752';
    --jmix-font-icon-arrows-long-up: '\e753';
    --jmix-font-icon-arrows-long-v: '\e754';
    --jmix-font-icon-arrows: '\e755';
    --jmix-font-icon-asterisk: '\e686';
    --jmix-font-icon-at: '\e624';
    --jmix-font-icon-automation: '\e687';
    --jmix-font-icon-backspace-a: '\e907';
    --jmix-font-icon-backspace: '\e908';
    --jmix-font-icon-backwards: '\e756';
    --jmix-font-icon-ban: '\e6f7';
    --jmix-font-icon-bar-chart-h: '\e909';
    --jmix-font-icon-bar-chart-v: '\e90a';
    --jmix-font-icon-bar-chart: '\e757';
    --jmix-font-icon-barcode: '\e688';
    --jmix-font-icon-bed: '\e90b';
    --jmix-font-icon-bell-o: '\e758';
    --jmix-font-icon-bell-slash-o: '\e625';
    --jmix-font-icon-bell-slash: '\e626';
    --jmix-font-icon-bell: '\e7b4';
    --jmix-font-icon-boat: '\e627';
    --jmix-font-icon-bold: '\e6f8';
    --jmix-font-icon-bolt: '\e759';
    --jmix-font-icon-bomb: '\e689';
    --jmix-font-icon-book-dollar: '\e600';
    --jmix-font-icon-book-percent: '\e601';
    --jmix-font-icon-book: '\e6f9';
    --jmix-font-icon-bookmark-o: '\e7b5';
    --jmix-font-icon-bookmark: '\e7b6';
    --jmix-font-icon-branch: '\e670';
    --jmix-font-icon-briefcase: '\e602';
    --jmix-font-icon-browser: '\e628';
    --jmix-font-icon-bug-o: '\e68a';
    --jmix-font-icon-bug: '\e68b';
    --jmix-font-icon-building-o: '\e7b7';
    --jmix-font-icon-building: '\e7b8';
    --jmix-font-icon-bullets: '\e629';
    --jmix-font-icon-bullseye: '\e6fa';
    --jmix-font-icon-bus: '\e90c';
    --jmix-font-icon-button: '\e62a';
    --jmix-font-icon-calc-book: '\e62b';
    --jmix-font-icon-calc: '\e68c';
    --jmix-font-icon-calendar-briefcase: '\e604';
    --jmix-font-icon-calendar-clock: '\e605';
    --jmix-font-icon-calendar-envelope: '\e62c';
    --jmix-font-icon-calendar-o: '\e7b9';
    --jmix-font-icon-calendar-user: '\e606';
    --jmix-font-icon-calendar: '\e7ba';
    --jmix-font-icon-camera: '\e7bb';
    --jmix-font-icon-car: '\e62d';
    --jmix-font-icon-caret-down: '\e7bc';
    --jmix-font-icon-caret-left: '\e7bd';
    --jmix-font-icon-caret-right: '\e7be';
    --jmix-font-icon-caret-square-down-o: '\e7bf';
    --jmix-font-icon-caret-square-down: '\e7bf';
    --jmix-font-icon-caret-square-left-o: '\e7c0';
    --jmix-font-icon-caret-square-left: '\e7c0';
    --jmix-font-icon-caret-square-right-o: '\e7c1';
    --jmix-font-icon-caret-square-right: '\e7c1';
    --jmix-font-icon-caret-square-up-o: '\e7c2';
    --jmix-font-icon-caret-square-up: '\e7c2';
    --jmix-font-icon-caret-up: '\e7c3';
    --jmix-font-icon-cart-o: '\e6fb';
    --jmix-font-icon-cart: '\e6fc';
    --jmix-font-icon-cash: '\e901';
    --jmix-font-icon-chart-3d: '\e90d';
    --jmix-font-icon-chart-grid: '\e90e';
    --jmix-font-icon-chart-line: '\e68d';
    --jmix-font-icon-chart-timeline: '\e90f';
    --jmix-font-icon-chart: '\e68e';
    --jmix-font-icon-chat: '\e75a';
    --jmix-font-icon-check-circle-o: '\e7c4';
    --jmix-font-icon-check-circle: '\e7c5';
    --jmix-font-icon-check-square-o: '\e6fd';
    --jmix-font-icon-check-square: '\e62e';
    --jmix-font-icon-check: '\e75b';
    --jmix-font-icon-chevron-circle-down-o: '\e7c6';
    --jmix-font-icon-chevron-circle-down: '\e7c7';
    --jmix-font-icon-chevron-circle-left-o: '\e7c8';
    --jmix-font-icon-chevron-circle-left: '\e7c9';
    --jmix-font-icon-chevron-circle-right-o: '\e7ca';
    --jmix-font-icon-chevron-circle-right: '\e7cb';
    --jmix-font-icon-chevron-circle-up-o: '\e7cc';
    --jmix-font-icon-chevron-circle-up: '\e7cd';
    --jmix-font-icon-chevron-down-small: '\e965';
    --jmix-font-icon-chevron-down: '\e7ce';
    --jmix-font-icon-chevron-left-small: '\e966';
    --jmix-font-icon-chevron-left: '\e7cf';
    --jmix-font-icon-chevron-right-small: '\e967';
    --jmix-font-icon-chevron-right: '\e7d0';
    --jmix-font-icon-chevron-up-small: '\e968';
    --jmix-font-icon-chevron-up: '\e7d1';
    --jmix-font-icon-child: '\e62f';
    --jmix-font-icon-circle-thin: '\e75c';
    --jmix-font-icon-circle: '\e75d';
    --jmix-font-icon-clipboard-check: '\e910';
    --jmix-font-icon-clipboard-cross: '\e630';
    --jmix-font-icon-clipboard-heart: '\e631';
    --jmix-font-icon-clipboard-pulse: '\e632';
    --jmix-font-icon-clipboard-text: '\e633';
    --jmix-font-icon-clipboard-user: '\e634';
    --jmix-font-icon-clipboard: '\e635';
    --jmix-font-icon-clock: '\e7d2';
    --jmix-font-icon-close-big: '\e916';
    --jmix-font-icon-close-circle-o: '\e810';
    --jmix-font-icon-close-circle: '\e811';
    --jmix-font-icon-close-small: '\e911';
    --jmix-font-icon-close: '\e7ad';
    --jmix-font-icon-cloud-download-o: '\e75e';
    --jmix-font-icon-cloud-download: '\e75f';
    --jmix-font-icon-cloud-o: '\e760';
    --jmix-font-icon-cloud-upload-o: '\e761';
    --jmix-font-icon-cloud-upload: '\e762';
    --jmix-font-icon-cloud: '\e763';
    --jmix-font-icon-cluster: '\e912';
    --jmix-font-icon-code: '\e68f';
    --jmix-font-icon-coffee: '\e690';
    --jmix-font-icon-cog-o: '\e764';
    --jmix-font-icon-cog: '\e7d3';
    --jmix-font-icon-cogs: '\e691';
    --jmix-font-icon-coin-piles: '\e913';
    --jmix-font-icon-coins: '\e914';
    --jmix-font-icon-combobox: '\e636';
    --jmix-font-icon-command: '\e947';
    --jmix-font-icon-comment-ellipsis-o: '\e765';
    --jmix-font-icon-comment-ellipsis: '\e766';
    --jmix-font-icon-comment-o: '\e767';
    --jmix-font-icon-comment: '\e768';
    --jmix-font-icon-comments-o: '\e769';
    --jmix-font-icon-comments: '\e76a';
    --jmix-font-icon-compass: '\e727';
    --jmix-font-icon-compile: '\e915';
    --jmix-font-icon-compress-square: '\e637';
    --jmix-font-icon-compress: '\e76b';
    --jmix-font-icon-connect-o: '\e76c';
    --jmix-font-icon-connect: '\e76d';
    --jmix-font-icon-controller: '\e692';
    --jmix-font-icon-copy-o: '\e7d4';
    --jmix-font-icon-copy: '\e7d5';
    --jmix-font-icon-copyright: '\e638';
    --jmix-font-icon-corner-lower-left: '\e693';
    --jmix-font-icon-corner-lower-right: '\e694';
    --jmix-font-icon-corner-upper-left: '\e695';
    --jmix-font-icon-corner-upper-right: '\e696';
    --jmix-font-icon-credit-card: '\e76e';
    --jmix-font-icon-crop: '\e76f';
    --jmix-font-icon-cross-cutlery: '\e6fe';
    --jmix-font-icon-crosshairs: '\e7d6';
    --jmix-font-icon-css: '\e639';
    --jmix-font-icon-ctrl-a: '\e917';
    --jmix-font-icon-ctrl: '\e918';
    --jmix-font-icon-cube: '\e697';
    --jmix-font-icon-cubes: '\e698';
    --jmix-font-icon-curly-brackets: '\e63a';
    --jmix-font-icon-cursor-o: '\e919';
    --jmix-font-icon-cursor: '\e91a';
    --jmix-font-icon-cutlery: '\e6ff';
    --jmix-font-icon-dashboard: '\e700';
    --jmix-font-icon-database: '\e737';
    --jmix-font-icon-date-input: '\e63b';
    --jmix-font-icon-deindent: '\e770';
    --jmix-font-icon-del-a: '\e91b';
    --jmix-font-icon-del: '\e91c';
    --jmix-font-icon-dental-chair: '\e607';
    --jmix-font-icon-desktop: '\e7d7';
    --jmix-font-icon-diamond-o: '\e91d';
    --jmix-font-icon-diamond: '\e91e';
    --jmix-font-icon-diploma-scroll: '\e969';
    --jmix-font-icon-diploma: '\e964';
    --jmix-font-icon-disc: '\e701';
    --jmix-font-icon-doctor-briefcase: '\e608';
    --jmix-font-icon-doctor: '\e609';
    --jmix-font-icon-dollar: '\e60a';
    --jmix-font-icon-dot-circle: '\e702';
    --jmix-font-icon-download-alt: '\e699';
    --jmix-font-icon-download: '\e703';
    --jmix-font-icon-drop: '\e704';
    --jmix-font-icon-edit: '\e771';
    --jmix-font-icon-eject: '\e772';
    --jmix-font-icon-elastic: '\e63c';
    --jmix-font-icon-ellipsis-circle-o: '\e7d9';
    --jmix-font-icon-ellipsis-circle: '\e7da';
    --jmix-font-icon-ellipsis-dots-h: '\e91f';
    --jmix-font-icon-ellipsis-dots-v: '\e920';
    --jmix-font-icon-ellipsis-h: '\e773';
    --jmix-font-icon-ellipsis-v: '\e774';
    --jmix-font-icon-enter-arrow: '\e921';
    --jmix-font-icon-enter: '\e922';
    --jmix-font-icon-envelope-o: '\e7db';
    --jmix-font-icon-envelope-open-o: '\e63d';
    --jmix-font-icon-envelope-open: '\e63e';
    --jmix-font-icon-envelope: '\e7dc';
    --jmix-font-icon-envelopes-o: '\e923';
    --jmix-font-icon-envelopes: '\e924';
    --jmix-font-icon-eraser: '\e69a';
    --jmix-font-icon-esc-a: '\e925';
    --jmix-font-icon-esc: '\e926';
    --jmix-font-icon-euro: '\e927';
    --jmix-font-icon-exchange: '\e705';
    --jmix-font-icon-exclamation-circle-o: '\e706';
    --jmix-font-icon-exclamation-circle: '\e707';
    --jmix-font-icon-exclamation: '\e708';
    --jmix-font-icon-exit-o: '\e60b';
    --jmix-font-icon-exit: '\e60c';
    --jmix-font-icon-expand-full: '\e775';
    --jmix-font-icon-expand-square: '\e7dd';
    --jmix-font-icon-expand: '\e776';
    --jmix-font-icon-external-browser: '\e63f';
    --jmix-font-icon-external-link: '\e7de';
    --jmix-font-icon-eye-slash: '\e709';
    --jmix-font-icon-eye: '\e7df';
    --jmix-font-icon-eyedropper: '\e640';
    --jmix-font-icon-facebook-square: '\e69b';
    --jmix-font-icon-facebook: '\e69c';
    --jmix-font-icon-factory: '\e641';
    --jmix-font-icon-family: '\e928';
    --jmix-font-icon-fast-backward: '\e777';
    --jmix-font-icon-fast-forward: '\e778';
    --jmix-font-icon-female: '\e69d';
    --jmix-font-icon-file-add: '\e929';
    --jmix-font-icon-file-code: '\e70a';
    --jmix-font-icon-file-font: '\e69e';
    --jmix-font-icon-file-movie: '\e70b';
    --jmix-font-icon-file-o: '\e7e0';
    --jmix-font-icon-file-picture: '\e70c';
    --jmix-font-icon-file-presentation: '\e69f';
    --jmix-font-icon-file-process: '\e642';
    --jmix-font-icon-file-refresh: '\e643';
    --jmix-font-icon-file-remove: '\e92a';
    --jmix-font-icon-file-search: '\e92b';
    --jmix-font-icon-file-sound: '\e70d';
    --jmix-font-icon-file-start: '\e644';
    --jmix-font-icon-file-table: '\e6a0';
    --jmix-font-icon-file-text-o: '\e7e1';
    --jmix-font-icon-file-text: '\e7e2';
    --jmix-font-icon-file-tree-small: '\e645';
    --jmix-font-icon-file-tree-sub: '\e646';
    --jmix-font-icon-file-tree: '\e647';
    --jmix-font-icon-file-zip: '\e70e';
    --jmix-font-icon-file: '\e7e3';
    --jmix-font-icon-fill: '\e6a1';
    --jmix-font-icon-film: '\e779';
    --jmix-font-icon-filter: '\e6a2';
    --jmix-font-icon-fire: '\e6a3';
    --jmix-font-icon-flag-checkered: '\e70f';
    --jmix-font-icon-flag-o: '\e710';
    --jmix-font-icon-flag: '\e711';
    --jmix-font-icon-flash: '\e712';
    --jmix-font-icon-flask: '\e7e4';
    --jmix-font-icon-flight-landing: '\e92c';
    --jmix-font-icon-flight-takeoff: '\e92d';
    --jmix-font-icon-flip-h: '\e649';
    --jmix-font-icon-flip-v: '\e64a';
    --jmix-font-icon-folder-add: '\e92e';
    --jmix-font-icon-folder-o: '\e7e5';
    --jmix-font-icon-folder-open-o: '\e77a';
    --jmix-font-icon-folder-open: '\e77b';
    --jmix-font-icon-folder-remove: '\e92f';
    --jmix-font-icon-folder-search: '\e930';
    --jmix-font-icon-folder: '\e7e6';
    --jmix-font-icon-font: '\e713';
    --jmix-font-icon-forklift: '\e957';
    --jmix-font-icon-form: '\e64b';
    --jmix-font-icon-forward: '\e77c';
    --jmix-font-icon-frown-o: '\e6a4';
    --jmix-font-icon-frown: '\e6a4';
    --jmix-font-icon-function: '\e64c';
    --jmix-font-icon-funnel: '\e931';
    --jmix-font-icon-gamepad: '\e714';
    --jmix-font-icon-gavel: '\e6a5';
    --jmix-font-icon-gift: '\e715';
    --jmix-font-icon-glass: '\e77d';
    --jmix-font-icon-glasses: '\e7e7';
    --jmix-font-icon-globe-wire: '\e932';
    --jmix-font-icon-globe: '\e77e';
    --jmix-font-icon-golf: '\e60d';
    --jmix-font-icon-google-plus-square: '\e6a6';
    --jmix-font-icon-google-plus: '\e6a7';
    --jmix-font-icon-grab: '\e64d';
    --jmix-font-icon-grid-bevel: '\e64e';
    --jmix-font-icon-grid-big-o: '\e7e8';
    --jmix-font-icon-grid-big: '\e7e9';
    --jmix-font-icon-grid-h: '\e64f';
    --jmix-font-icon-grid-small-o: '\e7ea';
    --jmix-font-icon-grid-small: '\e7eb';
    --jmix-font-icon-grid-v: '\e650';
    --jmix-font-icon-grid: '\e651';
    --jmix-font-icon-group: '\e60e';
    --jmix-font-icon-hammer: '\e933';
    --jmix-font-icon-hand: '\e652';
    --jmix-font-icon-handle-corner: '\e716';
    --jmix-font-icon-hands-up: '\e6a8';
    --jmix-font-icon-handshake: '\e934';
    --jmix-font-icon-harddrive-o: '\e717';
    --jmix-font-icon-harddrive: '\e718';
    --jmix-font-icon-hash: '\e6a9';
    --jmix-font-icon-header: '\e719';
    --jmix-font-icon-headphones: '\e71a';
    --jmix-font-icon-headset: '\e935';
    --jmix-font-icon-health-card: '\e60f';
    --jmix-font-icon-heart-o: '\e77f';
    --jmix-font-icon-heart: '\e780';
    --jmix-font-icon-home-o: '\e7ec';
    --jmix-font-icon-home: '\e7ed';
    --jmix-font-icon-hospital: '\e936';
    --jmix-font-icon-hourglass-empty: '\e937';
    --jmix-font-icon-hourglass-end: '\e938';
    --jmix-font-icon-hourglass-start: '\e939';
    --jmix-font-icon-hourglass: '\e93a';
    --jmix-font-icon-inbox: '\e71b';
    --jmix-font-icon-indent: '\e781';
    --jmix-font-icon-info-circle-o: '\e71c';
    --jmix-font-icon-info-circle: '\e71d';
    --jmix-font-icon-info: '\e71e';
    --jmix-font-icon-input: '\e653';
    --jmix-font-icon-insert: '\e7d8';
    --jmix-font-icon-institution: '\e6aa';
    --jmix-font-icon-invoice: '\e610';
    --jmix-font-icon-italic: '\e720';
    --jmix-font-icon-key-o: '\e6ab';
    --jmix-font-icon-key: '\e6ac';
    --jmix-font-icon-keyboard-o: '\e721';
    --jmix-font-icon-keyboard: '\e722';
    --jmix-font-icon-laptop: '\e782';
    --jmix-font-icon-layout: '\e654';
    --jmix-font-icon-level-down-bold: '\e611';
    --jmix-font-icon-level-down: '\e783';
    --jmix-font-icon-level-left-bold: '\e612';
    --jmix-font-icon-level-left: '\e784';
    --jmix-font-icon-level-right-bold: '\e655';
    --jmix-font-icon-level-right: '\e785';
    --jmix-font-icon-level-up-bold: '\e613';
    --jmix-font-icon-level-up: '\e786';
    --jmix-font-icon-lifebuoy: '\e6ad';
    --jmix-font-icon-lightbulb: '\e6ae';
    --jmix-font-icon-line-bar-chart: '\e93b';
    --jmix-font-icon-line-chart: '\e93c';
    --jmix-font-icon-line-h: '\e723';
    --jmix-font-icon-line-v: '\e724';
    --jmix-font-icon-lines-list: '\e7ee';
    --jmix-font-icon-lines: '\e7ef';
    --jmix-font-icon-link: '\e725';
    --jmix-font-icon-list-ol: '\e71f';
    --jmix-font-icon-list-select: '\e656';
    --jmix-font-icon-list-ul: '\e7f0';
    --jmix-font-icon-list: '\e7f1';
    --jmix-font-icon-location-arrow-circle-o: '\e726';
    --jmix-font-icon-location-arrow-circle: '\e727';
    --jmix-font-icon-location-arrow: '\e728';
    --jmix-font-icon-lock: '\e7f2';
    --jmix-font-icon-magic: '\e6b1';
    --jmix-font-icon-magnet: '\e787';
    --jmix-font-icon-mailbox: '\e729';
    --jmix-font-icon-male: '\e6b2';
    --jmix-font-icon-map-marker: '\e788';
    --jmix-font-icon-margin-bottom: '\e657';
    --jmix-font-icon-margin-left: '\e658';
    --jmix-font-icon-margin-right: '\e659';
    --jmix-font-icon-margin-top: '\e65a';
    --jmix-font-icon-margin: '\e65b';
    --jmix-font-icon-medal: '\e6b3';
    --jmix-font-icon-megaphone: '\e6b4';
    --jmix-font-icon-meh-o: '\e6b5';
    --jmix-font-icon-meh: '\e6b5';
    --jmix-font-icon-menu: '\e7b3';
    --jmix-font-icon-microphone: '\e72a';
    --jmix-font-icon-minus-circle-o: '\e7f3';
    --jmix-font-icon-minus-circle: '\e7f4';
    --jmix-font-icon-minus-square-o: '\e7f5';
    --jmix-font-icon-minus-square: '\e7f5';
    --jmix-font-icon-minus: '\e7f6';
    --jmix-font-icon-mobile-browser: '\e93d';
    --jmix-font-icon-mobile-retro: '\e93e';
    --jmix-font-icon-mobile: '\e7f7';
    --jmix-font-icon-modal-list: '\e72b';
    --jmix-font-icon-modal: '\e7f8';
    --jmix-font-icon-money-deposit: '\e93f';
    --jmix-font-icon-money-exchange: '\e940';
    --jmix-font-icon-money-withdraw: '\e941';
    --jmix-font-icon-money: '\e6b6';
    --jmix-font-icon-moon-o: '\e789';
    --jmix-font-icon-moon: '\e78a';
    --jmix-font-icon-morning: '\e942';
    --jmix-font-icon-movie: '\e78b';
    --jmix-font-icon-music: '\e78c';
    --jmix-font-icon-mute: '\e72c';
    --jmix-font-icon-native-button: '\e65c';
    --jmix-font-icon-newspaper: '\e943';
    --jmix-font-icon-notebook: '\e65d';
    --jmix-font-icon-nurse: '\e944';
    --jmix-font-icon-office: '\e945';
    --jmix-font-icon-open-book: '\e7f9';
    --jmix-font-icon-option-a: '\e946';
    --jmix-font-icon-option: '\e947';
    --jmix-font-icon-options: '\e65e';
    --jmix-font-icon-orientation: '\e65f';
    --jmix-font-icon-outdent: '\e770';
    --jmix-font-icon-out: '\e614';
    --jmix-font-icon-outbox: '\e660';
    --jmix-font-icon-package: '\e6b7';
    --jmix-font-icon-padding-bottom: '\e661';
    --jmix-font-icon-padding-left: '\e662';
    --jmix-font-icon-padding-right: '\e663';
    --jmix-font-icon-padding-top: '\e664';
    --jmix-font-icon-padding: '\e665';
    --jmix-font-icon-paint-roll: '\e666';
    --jmix-font-icon-paintbrush: '\e6b8';
    --jmix-font-icon-palette: '\e667';
    --jmix-font-icon-panel: '\e668';
    --jmix-font-icon-paperclip: '\e72d';
    --jmix-font-icon-paperplane-o: '\e6ba';
    --jmix-font-icon-paperplane: '\e6b9';
    --jmix-font-icon-paragraph: '\e6bb';
    --jmix-font-icon-password: '\e669';
    --jmix-font-icon-paste: '\e6bc';
    --jmix-font-icon-pause: '\e78d';
    --jmix-font-icon-pencil: '\e7fa';
    --jmix-font-icon-person: '\e6a8';
    --jmix-font-icon-phone-landline: '\e948';
    --jmix-font-icon-phone: '\e7fb';
    --jmix-font-icon-picture: '\e7fc';
    --jmix-font-icon-pie-bar-chart: '\e949';
    --jmix-font-icon-pie-chart: '\e6bd';
    --jmix-font-icon-piggy-bank-coin: '\e94a';
    --jmix-font-icon-piggy-bank: '\e94b';
    --jmix-font-icon-pill: '\e615';
    --jmix-font-icon-pills: '\e616';
    --jmix-font-icon-pin-post: '\e6be';
    --jmix-font-icon-pin: '\e7fd';
    --jmix-font-icon-play-circle-o: '\e72e';
    --jmix-font-icon-play-circle: '\e731';
    --jmix-font-icon-play: '\e78e';
    --jmix-font-icon-plug: '\e66a';
    --jmix-font-icon-plus-circle-o: '\e7fe';
    --jmix-font-icon-plus-circle: '\e7ff';
    --jmix-font-icon-plus-minus: '\e603';
    --jmix-font-icon-plus-square-o: '\e800';
    --jmix-font-icon-plus-square: '\e800';
    --jmix-font-icon-plus: '\e801';
    --jmix-font-icon-pointer: '\e66b';
    --jmix-font-icon-power-off: '\e78f';
    --jmix-font-icon-presentation: '\e6bf';
    --jmix-font-icon-print: '\e802';
    --jmix-font-icon-progressbar: '\e66c';
    --jmix-font-icon-puzzle-piece: '\e6c0';
    --jmix-font-icon-pyramid-chart: '\e94c';
    --jmix-font-icon-qrcode: '\e6c1';
    --jmix-font-icon-question-circle-o: '\e72f';
    --jmix-font-icon-question-circle: '\e730';
    --jmix-font-icon-question: '\e732';
    --jmix-font-icon-quote-left: '\e6c2';
    --jmix-font-icon-quote-right: '\e6c3';
    --jmix-font-icon-random: '\e733';
    --jmix-font-icon-raster-lower-left: '\e6c4';
    --jmix-font-icon-raster: '\e6c5';
    --jmix-font-icon-records: '\e94d';
    --jmix-font-icon-recycle: '\e6c6';
    --jmix-font-icon-refresh: '\e790';
    --jmix-font-icon-reply-all: '\e791';
    --jmix-font-icon-reply: '\e792';
    --jmix-font-icon-resize-h: '\e66d';
    --jmix-font-icon-resize-v: '\e66e';
    --jmix-font-icon-retweet: '\e793';
    --jmix-font-icon-rhombus: '\e66f';
    --jmix-font-icon-road-branch: '\e670';
    --jmix-font-icon-road-branches: '\e671';
    --jmix-font-icon-road-split: '\e672';
    --jmix-font-icon-road: '\e6c7';
    --jmix-font-icon-rocket: '\e6c8';
    --jmix-font-icon-rotate-left: '\e794';
    --jmix-font-icon-rotate-right: '\e795';
    --jmix-font-icon-rss-square: '\e6c9';
    --jmix-font-icon-rss: '\e6ca';
    --jmix-font-icon-safe-lock: '\e6cb';
    --jmix-font-icon-safe: '\e6cc';
    --jmix-font-icon-scale-unbalance: '\e94e';
    --jmix-font-icon-scale: '\e94f';
    --jmix-font-icon-scatter-chart: '\e950';
    --jmix-font-icon-scissors: '\e734';
    --jmix-font-icon-screwdriver: '\e735';
    --jmix-font-icon-search-minus: '\e804';
    --jmix-font-icon-search-plus: '\e803';
    --jmix-font-icon-search: '\e805';
    --jmix-font-icon-select: '\e673';
    --jmix-font-icon-server: '\e736';
    --jmix-font-icon-share-square: '\e6cd';
    --jmix-font-icon-share: '\e796';
    --jmix-font-icon-shield: '\e6ce';
    --jmix-font-icon-shift-arrow: '\e951';
    --jmix-font-icon-shift: '\e952';
    --jmix-font-icon-shop: '\e953';
    --jmix-font-icon-sign-in-alt: '\e6af';
    --jmix-font-icon-sign-in: '\e797';
    --jmix-font-icon-sign-out-alt: '\e6b0';
    --jmix-font-icon-sign-out: '\e798';
    --jmix-font-icon-signal: '\e738';
    --jmix-font-icon-sitemap: '\e739';
    --jmix-font-icon-slider: '\e674';
    --jmix-font-icon-sliders: '\e6cf';
    --jmix-font-icon-smiley-o: '\e6d0';
    --jmix-font-icon-smiley: '\e6d0';
    --jmix-font-icon-sort: '\e799';
    --jmix-font-icon-sound-disable: '\e79a';
    --jmix-font-icon-spark-line: '\e954';
    --jmix-font-icon-specialist: '\e617';
    --jmix-font-icon-spinner-arc: '\e6d1';
    --jmix-font-icon-spinner-third: '\e6d2';
    --jmix-font-icon-spinner: '\e6d3';
    --jmix-font-icon-spline-area-chart: '\e955';
    --jmix-font-icon-spline-chart: '\e956';
    --jmix-font-icon-split-h: '\e807';
    --jmix-font-icon-split-v: '\e808';
    --jmix-font-icon-split: '\e675';
    --jmix-font-icon-spoon: '\e73a';
    --jmix-font-icon-square-shadow: '\e79b';
    --jmix-font-icon-square: '\e7a6';
    --jmix-font-icon-star-half-left-o: '\e79c';
    --jmix-font-icon-star-half-left: '\e79d';
    --jmix-font-icon-star-half-right-o: '\e79e';
    --jmix-font-icon-star-half-right: '\e79f';
    --jmix-font-icon-star-half: '\e79d';
    --jmix-font-icon-star-o: '\e7a0';
    --jmix-font-icon-star: '\e7a1';
    --jmix-font-icon-start-cog: '\e676';
    --jmix-font-icon-step-backward: '\e7a2';
    --jmix-font-icon-step-forward: '\e7a3';
    --jmix-font-icon-stethoscope: '\e618';
    --jmix-font-icon-stock: '\e957';
    --jmix-font-icon-stop-cog: '\e677';
    --jmix-font-icon-stop: '\e7a4';
    --jmix-font-icon-stopwatch: '\e958';
    --jmix-font-icon-storage: '\e959';
    --jmix-font-icon-strikethrough: '\e73b';
    --jmix-font-icon-subscript: '\e6d4';
    --jmix-font-icon-suitcase: '\e809';
    --jmix-font-icon-sun-down: '\e95a';
    --jmix-font-icon-sun-o: '\e73c';
    --jmix-font-icon-sun: '\e73c';
    --jmix-font-icon-sun-rise: '\e95b';
    --jmix-font-icon-superscript: '\e6d5';
    --jmix-font-icon-sword: '\e678';
    --jmix-font-icon-tab-a: '\e95c';
    --jmix-font-icon-tab: '\e95d';
    --jmix-font-icon-table: '\e7a5';
    --jmix-font-icon-tablet: '\e80a';
    --jmix-font-icon-tabs: '\e679';
    --jmix-font-icon-tag: '\e6d6';
    --jmix-font-icon-tags: '\e6d7';
    --jmix-font-icon-tasks: '\e73d';
    --jmix-font-icon-taxi: '\e67a';
    --jmix-font-icon-teeth: '\e619';
    --jmix-font-icon-terminal: '\e6d8';
    --jmix-font-icon-text-height: '\e73e';
    --jmix-font-icon-text-input: '\e67b';
    --jmix-font-icon-text-label: '\e67c';
    --jmix-font-icon-text-width: '\e73f';
    --jmix-font-icon-thin-square: '\e7a6';
    --jmix-font-icon-thumbs-down-o: '\e6d9';
    --jmix-font-icon-thumbs-down: '\e6da';
    --jmix-font-icon-thumbs-up-o: '\e6db';
    --jmix-font-icon-thumbs-up: '\e6dc';
    --jmix-font-icon-ticket: '\e740';
    --jmix-font-icon-time-backward: '\e7a7';
    --jmix-font-icon-time-forward: '\e7a8';
    --jmix-font-icon-timer: '\e95e';
    --jmix-font-icon-toolbox: '\e741';
    --jmix-font-icon-tools: '\e742';
    --jmix-font-icon-tooth: '\e67d';
    --jmix-font-icon-touch: '\e95f';
    --jmix-font-icon-train: '\e67e';
    --jmix-font-icon-trash: '\e80b';
    --jmix-font-icon-tree-table: '\e67f';
    --jmix-font-icon-trending-down: '\e960';
    --jmix-font-icon-trending-up: '\e961';
    --jmix-font-icon-trophy: '\e743';
    --jmix-font-icon-truck: '\e6dd';
    --jmix-font-icon-twin-col-select: '\e680';
    --jmix-font-icon-twitter-square: '\e6de';
    --jmix-font-icon-twitter: '\e6df';
    --jmix-font-icon-umbrella: '\e6e0';
    --jmix-font-icon-underline: '\e744';
    --jmix-font-icon-unlink: '\e745';
    --jmix-font-icon-unlock: '\e80c';
    --jmix-font-icon-upload-alt: '\e6e1';
    --jmix-font-icon-upload: '\e746';
    --jmix-font-icon-user-card: '\e61a';
    --jmix-font-icon-user-check: '\e61b';
    --jmix-font-icon-user-clock: '\e61c';
    --jmix-font-icon-user-heart: '\e61d';
    --jmix-font-icon-user-star: '\e962';
    --jmix-font-icon-user: '\e80d';
    --jmix-font-icon-users: '\e747';
    --jmix-font-icon-vaadin-h: '\e80e';
    --jmix-font-icon-vaadin-v: '\e80f';
    --jmix-font-icon-viewport: '\e681';
    --jmix-font-icon-vimeo-square: '\e6e2';
    --jmix-font-icon-vimeo: '\e6e3';
    --jmix-font-icon-volume-down: '\e7a9';
    --jmix-font-icon-volume-off: '\e7aa';
    --jmix-font-icon-volume-up: '\e7ab';
    --jmix-font-icon-volume: '\e7ac';
    --jmix-font-icon-wallet: '\e963';
    --jmix-font-icon-warning: '\e748';
    --jmix-font-icon-workplace: '\e900';
    --jmix-font-icon-wrench: '\e749';
    --jmix-font-icon-youtube-square: '\e6e4';
    --jmix-font-icon-youtube: '\e6e5';

    /* Lumo icons (missing in Vaadin icons) */
    --jmix-font-icon-photo: var(--lumo-icons-photo);
    --jmix-font-icon-redo: var(--lumo-icons-redo);
    --jmix-font-icon-undo: var(--lumo-icons-undo);

    /* Jmix specific icons */
    --jmix-font-icon-ok: var(--jmix-font-icon-check);
    --jmix-font-icon-cancel: var(--jmix-font-icon-ban);
    --jmix-font-icon-yes: var(--jmix-font-icon-check);
    --jmix-font-icon-no: var(--jmix-font-icon-ban);

    --jmix-font-icon-dialog-ok: var(--jmix-font-icon-check);
    --jmix-font-icon-dialog-cancel: var(--jmix-font-icon-ban);
    --jmix-font-icon-dialog-yes: var(--jmix-font-icon-check);
    --jmix-font-icon-dialog-no: var(--jmix-font-icon-ban);
    --jmix-font-icon-dialog-close: var(--jmix-font-icon-close);

    --jmix-font-icon-create-action: var(--jmix-font-icon-plus);
    --jmix-font-icon-edit-action: var(--jmix-font-icon-pencil);
    --jmix-font-icon-remove-action: var(--jmix-font-icon-trash);
    --jmix-font-icon-add-action: var(--jmix-font-icon-plus);
    --jmix-font-icon-exclude-action: var(--jmix-font-icon-close);
    --jmix-font-icon-read-action: var(--jmix-font-icon-eye);
    --jmix-font-icon-refresh-action: var(--jmix-font-icon-refresh);

    --jmix-font-icon-view-close-action: var(--jmix-font-icon-ban);
    --jmix-font-icon-detail-save-close-action: var(--jmix-font-icon-check);
    --jmix-font-icon-detail-save-action: var(--jmix-font-icon-archive);
    --jmix-font-icon-detail-close-action: var(--jmix-font-icon-ban);
    --jmix-font-icon-detail-discard-action: var(--jmix-font-icon-ban);
    --jmix-font-icon-detail-enable-editing-action: var(--jmix-font-icon-pencil);
    --jmix-font-icon-lookup-select-action: var(--jmix-font-icon-check);
    --jmix-font-icon-lookup-discard-action: var(--jmix-font-icon-ban);

    --jmix-font-icon-entity-lookup-action: var(--jmix-font-icon-ellipsis-dots-h);
    --jmix-font-icon-entity-clear-action: var(--jmix-font-icon-close);
    --jmix-font-icon-entity-open-action: var(--jmix-font-icon-search-plus);

    --jmix-font-icon-value-clear-action: var(--jmix-font-icon-close);

    --jmix-font-icon-multi-value-select-action: var(--jmix-font-icon-ellipsis-dots-h);

    --jmix-font-icon-date-interval-action: var(--jmix-font-icon-ellipsis-dots-h);

    --jmix-font-icon-logout-action: var(--jmix-font-icon-sign-out);

    --jmix-font-icon-bulk-edit-action: var(--jmix-font-icon-table);

    --jmix-font-icon-json-export-action: var(--jmix-font-icon-file-code);
    --jmix-font-icon-excel-export-action: var(--jmix-font-icon-file-table);

    --jmix-font-icon-show-role-assignments-action: var(--jmix-font-icon-shield);
    --jmix-font-icon-assign-to-users-action: var(--jmix-font-icon-users);

    --jmix-font-icon-run-report-action: var(--jmix-font-icon-print);
    --jmix-font-icon-run-single-entity-report-action: var(--jmix-font-icon-print);
    --jmix-font-icon-run-list-entity-report-action: var(--jmix-font-icon-print);
    --jmix-font-icon-show-execution-report-history-action: var(--jmix-font-icon-clock);

    --jmix-font-icon-days-of-week-edit-action: var(--jmix-font-icon-ellipsis-dots-h);

    --jmix-font-icon-user-menu-theme-switch-action-system-theme: var(--jmix-font-icon-adjust);
    --jmix-font-icon-user-menu-theme-switch-action-light-theme: var(--jmix-font-icon-sun-o);
    --jmix-font-icon-user-menu-theme-switch-action-dark-theme: var(--jmix-font-icon-moon-o);

    --jmix-font-icon-user-menu-substitute-user-action: var(--jmix-font-icon-exchange);

    --jmix-font-icon-generic-filter-save-action: var(--jmix-font-icon-archive);
    --jmix-font-icon-generic-filter-edit-action: var(--jmix-font-icon-pencil);
    --jmix-font-icon-generic-filter-copy-action: var(--jmix-font-icon-copy);
    --jmix-font-icon-generic-filter-remove-action: var(--jmix-font-icon-trash);
    --jmix-font-icon-generic-filter-clear-values-action: var(--jmix-font-icon-eraser);
    --jmix-font-icon-generic-filter-make-default-action: var(--jmix-font-icon-star);
    --jmix-font-icon-generic-filter-add-condition-action: var(--jmix-font-icon-plus);

    --jmix-font-icon-create-notification-action: var(--jmix-font-icon-plus);

    --jmix-font-icon-interval-field-help: var(--jmix-font-icon-question-circle);

    --jmix-font-icon-combo-button-dropdown: var(--jmix-font-icon-chevron-down);

    --jmix-font-icon-pagination-first-page: var(--jmix-font-icon-angle-double-left);
    --jmix-font-icon-pagination-previous-page: var(--jmix-font-icon-angle-left);
    --jmix-font-icon-pagination-next-page: var(--jmix-font-icon-angle-right);
    --jmix-font-icon-pagination-last-page: var(--jmix-font-icon-angle-double-right);

    --jmix-font-icon-twin-column-select-all: var(--jmix-font-icon-angle-double-right);
    --jmix-font-icon-twin-column-deselect-all: var(--jmix-font-icon-angle-double-left);
    --jmix-font-icon-twin-column-select: var(--jmix-font-icon-angle-right);
    --jmix-font-icon-twin-column-deselect: var(--jmix-font-icon-angle-left);

    --jmix-font-icon-generic-filter-settings: var(--jmix-font-icon-cog);
    --jmix-font-icon-generic-filter-condition-remove: var(--jmix-font-icon-trash);

    --jmix-font-icon-data-grid-header-filter: var(--jmix-font-icon-filter);
    --jmix-font-icon-data-grid-header-filter-apply: var(--jmix-font-icon-check);
    --jmix-font-icon-data-grid-header-filter-cancel: var(--jmix-font-icon-ban);
    --jmix-font-icon-data-grid-header-filter-clear: var(--jmix-font-icon-eraser);

    --jmix-font-icon-search-field-search: var(--jmix-font-icon-search);
    --jmix-font-icon-search-field-settings: var(--jmix-font-icon-ellipsis-dots-v);

    --jmix-font-icon-notifications-indicator: var(--jmix-font-icon-bell);
    --jmix-font-icon-notifications-indicator-refresh: var(--jmix-font-icon-refresh);

    --jmix-font-icon-columns-grouper-item-add: var(--lumo-icons-plus);
    --jmix-font-icon-columns-grouper-item-remove: var(--lumo-icons-cross);

    --jmix-font-icon-side-panel-layout-closer: var(--lumo-icons-cross);
}

.jmix-font-icon:before {
    font-family: var(--jmix-font-icon-font-family);
}

.jmix-font-icon.jmix-font-icon-lumo:before {
    font-family: lumo-icons;
}

/* Jmix specific icons */
.jmix-font-icon-ok:before {
    content: var(--jmix-font-icon-ok);
}

.jmix-font-icon-cancel:before {
    content: var(--jmix-font-icon-cancel);
}

.jmix-font-icon-yes:before {
    content: var(--jmix-font-icon-yes);
}

.jmix-font-icon-no:before {
    content: var(--jmix-font-icon-no);
}

.jmix-font-icon-dialog-ok:before {
    content: var(--jmix-font-icon-dialog-ok);
}

.jmix-font-icon-dialog-cancel:before {
    content: var(--jmix-font-icon-dialog-cancel);
}

.jmix-font-icon-dialog-yes:before {
    content: var(--jmix-font-icon-dialog-yes);
}

.jmix-font-icon-dialog-no:before {
    content: var(--jmix-font-icon-dialog-no);
}

.jmix-font-icon-dialog-close:before {
    content: var(--jmix-font-icon-dialog-close);
}

.jmix-font-icon-create-action:before {
    content: var(--jmix-font-icon-create-action);
}

.jmix-font-icon-edit-action:before {
    content: var(--jmix-font-icon-edit-action);
}

.jmix-font-icon-remove-action:before {
    content: var(--jmix-font-icon-remove-action);
}

.jmix-font-icon-add-action:before {
    content: var(--jmix-font-icon-add-action);
}

.jmix-font-icon-exclude-action:before {
    content: var(--jmix-font-icon-exclude-action);
}

.jmix-font-icon-read-action:before {
    content: var(--jmix-font-icon-read-action);
}

.jmix-font-icon-refresh-action:before {
    content: var(--jmix-font-icon-refresh-action);
}

.jmix-font-icon-view-close-action:before {
    content: var(--jmix-font-icon-view-close-action);
}

.jmix-font-icon-detail-save-close-action:before {
    content: var(--jmix-font-icon-detail-save-close-action);
}

.jmix-font-icon-detail-save-action:before {
    content: var(--jmix-font-icon-detail-save-action);
}

.jmix-font-icon-detail-close-action:before {
    content: var(--jmix-font-icon-detail-close-action);
}

.jmix-font-icon-detail-discard-action:before {
    content: var(--jmix-font-icon-detail-discard-action);
}

.jmix-font-icon-detail-enable-editing-action:before {
    content: var(--jmix-font-icon-detail-enable-editing-action);
}

.jmix-font-icon-lookup-select-action:before {
    content: var(--jmix-font-icon-lookup-select-action);
}

.jmix-font-icon-lookup-discard-action:before {
    content: var(--jmix-font-icon-lookup-discard-action);
}

.jmix-font-icon-entity-lookup-action:before {
    content: var(--jmix-font-icon-entity-lookup-action);
}

.jmix-font-icon-entity-clear-action:before {
    content: var(--jmix-font-icon-entity-clear-action);
}

.jmix-font-icon-entity-open-action:before {
    content: var(--jmix-font-icon-entity-open-action);
}

.jmix-font-icon-value-clear-action:before {
    content: var(--jmix-font-icon-value-clear-action);
}

.jmix-font-icon-multi-value-select-action:before {
    content: var(--jmix-font-icon-multi-value-select-action);
}

.jmix-font-icon-date-interval-action:before {
    content: var(--jmix-font-icon-date-interval-action);
}

.jmix-font-icon-logout-action:before {
    content: var(--jmix-font-icon-logout-action);
}

.jmix-font-icon-bulk-edit-action:before {
    content: var(--jmix-font-icon-bulk-edit-action);
}

.jmix-font-icon-json-export-action:before {
    content: var(--jmix-font-icon-json-export-action);
}

.jmix-font-icon-excel-export-action:before {
    content: var(--jmix-font-icon-excel-export-action);
}

.jmix-font-icon-show-role-assignments-action:before {
    content: var(--jmix-font-icon-show-role-assignments-action);
}

.jmix-font-icon-assign-to-users-action:before {
    content: var(--jmix-font-icon-assign-to-users-action);
}

.jmix-font-icon-run-report-action:before {
    content: var(--jmix-font-icon-run-report-action);
}

.jmix-font-icon-run-single-entity-report-action:before {
    content: var(--jmix-font-icon-run-single-entity-report-action);
}

.jmix-font-icon-run-list-entity-report-action:before {
    content: var(--jmix-font-icon-run-list-entity-report-action);
}

.jmix-font-icon-show-execution-report-history-action:before {
    content: var(--jmix-font-icon-show-execution-report-history-action);
}

.jmix-font-icon-days-of-week-edit-action:before {
    content: var(--jmix-font-icon-days-of-week-edit-action);
}

.jmix-font-icon-user-menu-theme-switch-action-system-theme:before {
    content: var(--jmix-font-icon-user-menu-theme-switch-action-system-theme);
}

.jmix-font-icon-user-menu-theme-switch-action-light-theme:before {
    content: var(--jmix-font-icon-user-menu-theme-switch-action-light-theme);
}

.jmix-font-icon-user-menu-theme-switch-action-dark-theme:before {
    content: var(--jmix-font-icon-user-menu-theme-switch-action-dark-theme);
}

.jmix-font-icon-user-menu-substitute-user-action:before {
    content: var(--jmix-font-icon-user-menu-substitute-user-action);
}

.jmix-font-icon-generic-filter-save-action:before {
    content: var(--jmix-font-icon-generic-filter-save-action);
}

.jmix-font-icon-generic-filter-edit-action:before {
    content: var(--jmix-font-icon-generic-filter-edit-action);
}

.jmix-font-icon-generic-filter-copy-action:before {
    content: var(--jmix-font-icon-generic-filter-copy-action);
}

.jmix-font-icon-generic-filter-remove-action:before {
    content: var(--jmix-font-icon-generic-filter-remove-action);
}

.jmix-font-icon-generic-filter-clear-values-action:before {
    content: var(--jmix-font-icon-generic-filter-clear-values-action);
}

.jmix-font-icon-generic-filter-make-default-action:before {
    content: var(--jmix-font-icon-generic-filter-make-default-action);
}

.jmix-font-icon-generic-filter-add-condition-action:before {
    content: var(--jmix-font-icon-generic-filter-add-condition-action);
}

.jmix-font-icon-create-notification-action:before {
    content: var(--jmix-font-icon-create-notification-action);
}

.jmix-font-icon-interval-field-help:before {
    content: var(--jmix-font-icon-interval-field-help);
}

.jmix-font-icon-combo-button-dropdown:before {
    content: var(--jmix-font-icon-combo-button-dropdown);
}

.jmix-font-icon-pagination-first-page:before {
    content: var(--jmix-font-icon-pagination-first-page);
}

.jmix-font-icon-pagination-previous-page:before {
    content: var(--jmix-font-icon-pagination-previous-page);
}

.jmix-font-icon-pagination-next-page:before {
    content: var(--jmix-font-icon-pagination-next-page);
}

.jmix-font-icon-pagination-last-page:before {
    content: var(--jmix-font-icon-pagination-last-page);
}

.jmix-font-icon-twin-column-select-all:before {
    content: var(--jmix-font-icon-twin-column-select-all);
}

.jmix-font-icon-twin-column-deselect-all:before {
    content: var(--jmix-font-icon-twin-column-deselect-all);
}

.jmix-font-icon-twin-column-select:before {
    content: var(--jmix-font-icon-twin-column-select);
}

.jmix-font-icon-twin-column-deselect:before {
    content: var(--jmix-font-icon-twin-column-deselect);
}

.jmix-font-icon-generic-filter-settings:before {
    content: var(--jmix-font-icon-generic-filter-settings);
}

.jmix-font-icon-generic-filter-condition-remove:before {
    content: var(--jmix-font-icon-generic-filter-condition-remove);
}

.jmix-font-icon-data-grid-header-filter:before {
    content: var(--jmix-font-icon-data-grid-header-filter);
}

.jmix-font-icon-data-grid-header-filter-apply:before {
    content: var(--jmix-font-icon-data-grid-header-filter-apply);
}

.jmix-font-icon-data-grid-header-filter-cancel:before {
    content: var(--jmix-font-icon-data-grid-header-filter-cancel);
}

.jmix-font-icon-data-grid-header-filter-clear:before {
    content: var(--jmix-font-icon-data-grid-header-filter-clear);
}

.jmix-font-icon-search-field-search:before {
    content: var(--jmix-font-icon-search-field-search);
}

.jmix-font-icon-search-field-settings:before {
    content: var(--jmix-font-icon-search-field-settings);
}

.jmix-font-icon-notifications-indicator:before {
    content: var(--jmix-font-icon-notifications-indicator);
}

.jmix-font-icon-notifications-indicator-refresh:before {
    content: var(--jmix-font-icon-notifications-indicator-refresh);
}

.jmix-font-icon-columns-grouper-item-add:before {
    content: var(--jmix-font-icon-columns-grouper-item-add);
}

.jmix-font-icon-columns-grouper-item-remove:before {
    content: var(--jmix-font-icon-columns-grouper-item-remove);
}

.jmix-font-icon-side-panel-layout-closer:before {
    content: var(--jmix-font-icon-side-panel-layout-closer);
}

/* Vaadin icons */

.jmix-font-icon-abacus:before {
    content: var(--jmix-font-icon-abacus);
}

.jmix-font-icon-absolute-position:before {
    content: var(--jmix-font-icon-absolute-position);
}

.jmix-font-icon-academy-cap:before {
    content: var(--jmix-font-icon-academy-cap);
}

.jmix-font-icon-accessibility:before {
    content: var(--jmix-font-icon-accessibility);
}

.jmix-font-icon-accordion-menu:before {
    content: var(--jmix-font-icon-accordion-menu);
}

.jmix-font-icon-add-dock:before {
    content: var(--jmix-font-icon-add-dock);
}

.jmix-font-icon-dock:before {
    content: var(--jmix-font-icon-dock);
}

.jmix-font-icon-adjust:before {
    content: var(--jmix-font-icon-adjust);
}

.jmix-font-icon-contrast:before {
    content: var(--jmix-font-icon-contrast);
}

.jmix-font-icon-adobe-flash:before {
    content: var(--jmix-font-icon-adobe-flash);
}

.jmix-font-icon-airplane:before {
    content: var(--jmix-font-icon-airplane);
}

.jmix-font-icon-alarm:before {
    content: var(--jmix-font-icon-alarm);
}

.jmix-font-icon-align-center:before {
    content: var(--jmix-font-icon-align-center);
}

.jmix-font-icon-align-justify:before {
    content: var(--jmix-font-icon-align-justify);
}

.jmix-font-icon-align-left:before {
    content: var(--jmix-font-icon-align-left);
}

.jmix-font-icon-align-right:before {
    content: var(--jmix-font-icon-align-right);
}

.jmix-font-icon-alt-a:before {
    content: var(--jmix-font-icon-alt-a);
}

.jmix-font-icon-alt:before {
    content: var(--jmix-font-icon-alt);
}

.jmix-font-icon-ambulance:before {
    content: var(--jmix-font-icon-ambulance);
}

.jmix-font-icon-anchor:before {
    content: var(--jmix-font-icon-anchor);
}

.jmix-font-icon-angle-double-down:before {
    content: var(--jmix-font-icon-angle-double-down);
}

.jmix-font-icon-angle-double-left:before {
    content: var(--jmix-font-icon-angle-double-left);
}

.jmix-font-icon-angle-double-right:before {
    content: var(--jmix-font-icon-angle-double-right);
}

.jmix-font-icon-angle-double-up:before {
    content: var(--jmix-font-icon-angle-double-up);
}

.jmix-font-icon-angle-down:before {
    content: var(--jmix-font-icon-angle-down);
}

.jmix-font-icon-angle-left:before {
    content: var(--jmix-font-icon-angle-left);
}

.jmix-font-icon-angle-right:before {
    content: var(--jmix-font-icon-angle-right);
}

.jmix-font-icon-angle-up:before {
    content: var(--jmix-font-icon-angle-up);
}

.jmix-font-icon-archive:before {
    content: var(--jmix-font-icon-archive);
}

.jmix-font-icon-archives:before {
    content: var(--jmix-font-icon-archives);
}

.jmix-font-icon-area-select:before {
    content: var(--jmix-font-icon-area-select);
}

.jmix-font-icon-arrow-backward:before {
    content: var(--jmix-font-icon-arrow-backward);
}

.jmix-font-icon-arrow-circle-down-o:before {
    content: var(--jmix-font-icon-arrow-circle-down-o);
}

.jmix-font-icon-arrow-circle-down:before {
    content: var(--jmix-font-icon-arrow-circle-down);
}

.jmix-font-icon-arrow-circle-left-o:before {
    content: var(--jmix-font-icon-arrow-circle-left-o);
}

.jmix-font-icon-arrow-circle-left:before {
    content: var(--jmix-font-icon-arrow-circle-left);
}

.jmix-font-icon-arrow-circle-right-o:before {
    content: var(--jmix-font-icon-arrow-circle-right-o);
}

.jmix-font-icon-arrow-circle-right:before {
    content: var(--jmix-font-icon-arrow-circle-right);
}

.jmix-font-icon-arrow-circle-up-o:before {
    content: var(--jmix-font-icon-arrow-circle-up-o);
}

.jmix-font-icon-arrow-circle-up:before {
    content: var(--jmix-font-icon-arrow-circle-up);
}

.jmix-font-icon-arrow-down:before {
    content: var(--jmix-font-icon-arrow-down);
}

.jmix-font-icon-arrow-forward:before {
    content: var(--jmix-font-icon-arrow-forward);
}

.jmix-font-icon-arrow-left:before {
    content: var(--jmix-font-icon-arrow-left);
}

.jmix-font-icon-arrow-long-down:before {
    content: var(--jmix-font-icon-arrow-long-down);
}

.jmix-font-icon-arrow-long-left:before {
    content: var(--jmix-font-icon-arrow-long-left);
}

.jmix-font-icon-arrow-right:before {
    content: var(--jmix-font-icon-arrow-right);
}

.jmix-font-icon-arrow-up:before {
    content: var(--jmix-font-icon-arrow-up);
}

.jmix-font-icon-arrows-cross:before {
    content: var(--jmix-font-icon-arrows-cross);
}

.jmix-font-icon-arrows-long-h:before {
    content: var(--jmix-font-icon-arrows-long-h);
}

.jmix-font-icon-arrows-long-right:before {
    content: var(--jmix-font-icon-arrows-long-right);
}

.jmix-font-icon-arrows-long-up:before {
    content: var(--jmix-font-icon-arrows-long-up);
}

.jmix-font-icon-arrows-long-v:before {
    content: var(--jmix-font-icon-arrows-long-v);
}

.jmix-font-icon-arrows:before {
    content: var(--jmix-font-icon-arrows);
}

.jmix-font-icon-asterisk:before {
    content: var(--jmix-font-icon-asterisk);
}

.jmix-font-icon-at:before {
    content: var(--jmix-font-icon-at);
}

.jmix-font-icon-automation:before {
    content: var(--jmix-font-icon-automation);
}

.jmix-font-icon-backspace-a:before {
    content: var(--jmix-font-icon-backspace-a);
}

.jmix-font-icon-backspace:before {
    content: var(--jmix-font-icon-backspace);
}

.jmix-font-icon-backwards:before {
    content: var(--jmix-font-icon-backwards);
}

.jmix-font-icon-ban:before {
    content: var(--jmix-font-icon-ban);
}

.jmix-font-icon-bar-chart-h:before {
    content: var(--jmix-font-icon-bar-chart-h);
}

.jmix-font-icon-bar-chart-v:before {
    content: var(--jmix-font-icon-bar-chart-v);
}

.jmix-font-icon-bar-chart:before {
    content: var(--jmix-font-icon-bar-chart);
}

.jmix-font-icon-barcode:before {
    content: var(--jmix-font-icon-barcode);
}

.jmix-font-icon-bed:before {
    content: var(--jmix-font-icon-bed);
}

.jmix-font-icon-bell-o:before {
    content: var(--jmix-font-icon-bell-o);
}

.jmix-font-icon-bell-slash-o:before {
    content: var(--jmix-font-icon-bell-slash-o);
}

.jmix-font-icon-bell-slash:before {
    content: var(--jmix-font-icon-bell-slash);
}

.jmix-font-icon-bell:before {
    content: var(--jmix-font-icon-bell);
}

.jmix-font-icon-boat:before {
    content: var(--jmix-font-icon-boat);
}

.jmix-font-icon-bold:before {
    content: var(--jmix-font-icon-bold);
}

.jmix-font-icon-bolt:before {
    content: var(--jmix-font-icon-bolt);
}

.jmix-font-icon-bomb:before {
    content: var(--jmix-font-icon-bomb);
}

.jmix-font-icon-book-dollar:before {
    content: var(--jmix-font-icon-book-dollar);
}

.jmix-font-icon-book-percent:before {
    content: var(--jmix-font-icon-book-percent);
}

.jmix-font-icon-book:before {
    content: var(--jmix-font-icon-book);
}

.jmix-font-icon-bookmark-o:before {
    content: var(--jmix-font-icon-bookmark-o);
}

.jmix-font-icon-bookmark:before {
    content: var(--jmix-font-icon-bookmark);
}

.jmix-font-icon-branch:before {
    content: var(--jmix-font-icon-branch);
}

.jmix-font-icon-briefcase:before {
    content: var(--jmix-font-icon-briefcase);
}

.jmix-font-icon-browser:before {
    content: var(--jmix-font-icon-browser);
}

.jmix-font-icon-bug-o:before {
    content: var(--jmix-font-icon-bug-o);
}

.jmix-font-icon-bug:before {
    content: var(--jmix-font-icon-bug);
}

.jmix-font-icon-building-o:before {
    content: var(--jmix-font-icon-building-o);
}

.jmix-font-icon-building:before {
    content: var(--jmix-font-icon-building);
}

.jmix-font-icon-bullets:before {
    content: var(--jmix-font-icon-bullets);
}

.jmix-font-icon-bullseye:before {
    content: var(--jmix-font-icon-bullseye);
}

.jmix-font-icon-bus:before {
    content: var(--jmix-font-icon-bus);
}

.jmix-font-icon-button:before {
    content: var(--jmix-font-icon-button);
}

.jmix-font-icon-calc-book:before {
    content: var(--jmix-font-icon-calc-book);
}

.jmix-font-icon-calc:before {
    content: var(--jmix-font-icon-calc);
}

.jmix-font-icon-calendar-briefcase:before {
    content: var(--jmix-font-icon-calendar-briefcase);
}

.jmix-font-icon-calendar-clock:before {
    content: var(--jmix-font-icon-calendar-clock);
}

.jmix-font-icon-calendar-envelope:before {
    content: var(--jmix-font-icon-calendar-envelope);
}

.jmix-font-icon-calendar-o:before {
    content: var(--jmix-font-icon-calendar-o);
}

.jmix-font-icon-calendar-user:before {
    content: var(--jmix-font-icon-calendar-user);
}

.jmix-font-icon-calendar:before {
    content: var(--jmix-font-icon-calendar);
}

.jmix-font-icon-camera:before {
    content: var(--jmix-font-icon-camera);
}

.jmix-font-icon-car:before {
    content: var(--jmix-font-icon-car);
}

.jmix-font-icon-caret-down:before {
    content: var(--jmix-font-icon-caret-down);
}

.jmix-font-icon-caret-left:before {
    content: var(--jmix-font-icon-caret-left);
}

.jmix-font-icon-caret-right:before {
    content: var(--jmix-font-icon-caret-right);
}

.jmix-font-icon-caret-square-down-o:before {
    content: var(--jmix-font-icon-caret-square-down-o);
}

.jmix-font-icon-caret-square-down:before {
    content: var(--jmix-font-icon-caret-square-down);
}

.jmix-font-icon-caret-square-left-o:before {
    content: var(--jmix-font-icon-caret-square-left-o);
}

.jmix-font-icon-caret-square-left:before {
    content: var(--jmix-font-icon-caret-square-left);
}

.jmix-font-icon-caret-square-right-o:before {
    content: var(--jmix-font-icon-caret-square-right-o);
}

.jmix-font-icon-caret-square-right:before {
    content: var(--jmix-font-icon-caret-square-right);
}

.jmix-font-icon-caret-square-up-o:before {
    content: var(--jmix-font-icon-caret-square-up-o);
}

.jmix-font-icon-caret-square-up:before {
    content: var(--jmix-font-icon-caret-square-up);
}

.jmix-font-icon-caret-up:before {
    content: var(--jmix-font-icon-caret-up);
}

.jmix-font-icon-cart-o:before {
    content: var(--jmix-font-icon-cart-o);
}

.jmix-font-icon-cart:before {
    content: var(--jmix-font-icon-cart);
}

.jmix-font-icon-cash:before {
    content: var(--jmix-font-icon-cash);
}

.jmix-font-icon-chart-3d:before {
    content: var(--jmix-font-icon-chart-3d);
}

.jmix-font-icon-chart-grid:before {
    content: var(--jmix-font-icon-chart-grid);
}

.jmix-font-icon-chart-line:before {
    content: var(--jmix-font-icon-chart-line);
}

.jmix-font-icon-chart-timeline:before {
    content: var(--jmix-font-icon-chart-timeline);
}

.jmix-font-icon-chart:before {
    content: var(--jmix-font-icon-chart);
}

.jmix-font-icon-chat:before {
    content: var(--jmix-font-icon-chat);
}

.jmix-font-icon-check-circle-o:before {
    content: var(--jmix-font-icon-check-circle-o);
}

.jmix-font-icon-check-circle:before {
    content: var(--jmix-font-icon-check-circle);
}

.jmix-font-icon-check-square-o:before {
    content: var(--jmix-font-icon-check-square-o);
}

.jmix-font-icon-check-square:before {
    content: var(--jmix-font-icon-check-square);
}

.jmix-font-icon-check:before {
    content: var(--jmix-font-icon-check);
}

.jmix-font-icon-chevron-circle-down-o:before {
    content: var(--jmix-font-icon-chevron-circle-down-o);
}

.jmix-font-icon-chevron-circle-down:before {
    content: var(--jmix-font-icon-chevron-circle-down);
}

.jmix-font-icon-chevron-circle-left-o:before {
    content: var(--jmix-font-icon-chevron-circle-left-o);
}

.jmix-font-icon-chevron-circle-left:before {
    content: var(--jmix-font-icon-chevron-circle-left);
}

.jmix-font-icon-chevron-circle-right-o:before {
    content: var(--jmix-font-icon-chevron-circle-right-o);
}

.jmix-font-icon-chevron-circle-right:before {
    content: var(--jmix-font-icon-chevron-circle-right);
}

.jmix-font-icon-chevron-circle-up-o:before {
    content: var(--jmix-font-icon-chevron-circle-up-o);
}

.jmix-font-icon-chevron-circle-up:before {
    content: var(--jmix-font-icon-chevron-circle-up);
}

.jmix-font-icon-chevron-down-small:before {
    content: var(--jmix-font-icon-chevron-down-small);
}

.jmix-font-icon-chevron-down:before {
    content: var(--jmix-font-icon-chevron-down);
}

.jmix-font-icon-chevron-left-small:before {
    content: var(--jmix-font-icon-chevron-left-small);
}

.jmix-font-icon-chevron-left:before {
    content: var(--jmix-font-icon-chevron-left);
}

.jmix-font-icon-chevron-right-small:before {
    content: var(--jmix-font-icon-chevron-right-small);
}

.jmix-font-icon-chevron-right:before {
    content: var(--jmix-font-icon-chevron-right);
}

.jmix-font-icon-chevron-up-small:before {
    content: var(--jmix-font-icon-chevron-up-small);
}

.jmix-font-icon-chevron-up:before {
    content: var(--jmix-font-icon-chevron-up);
}

.jmix-font-icon-child:before {
    content: var(--jmix-font-icon-child);
}

.jmix-font-icon-circle-thin:before {
    content: var(--jmix-font-icon-circle-thin);
}

.jmix-font-icon-circle:before {
    content: var(--jmix-font-icon-circle);
}

.jmix-font-icon-clipboard-check:before {
    content: var(--jmix-font-icon-clipboard-check);
}

.jmix-font-icon-clipboard-cross:before {
    content: var(--jmix-font-icon-clipboard-cross);
}

.jmix-font-icon-clipboard-heart:before {
    content: var(--jmix-font-icon-clipboard-heart);
}

.jmix-font-icon-clipboard-pulse:before {
    content: var(--jmix-font-icon-clipboard-pulse);
}

.jmix-font-icon-clipboard-text:before {
    content: var(--jmix-font-icon-clipboard-text);
}

.jmix-font-icon-clipboard-user:before {
    content: var(--jmix-font-icon-clipboard-user);
}

.jmix-font-icon-clipboard:before {
    content: var(--jmix-font-icon-clipboard);
}

.jmix-font-icon-clock:before {
    content: var(--jmix-font-icon-clock);
}

.jmix-font-icon-close-big:before {
    content: var(--jmix-font-icon-close-big);
}

.jmix-font-icon-close-circle-o:before {
    content: var(--jmix-font-icon-close-circle-o);
}

.jmix-font-icon-close-circle:before {
    content: var(--jmix-font-icon-close-circle);
}

.jmix-font-icon-close-small:before {
    content: var(--jmix-font-icon-close-small);
}

.jmix-font-icon-close:before {
    content: var(--jmix-font-icon-close);
}

.jmix-font-icon-cloud-download-o:before {
    content: var(--jmix-font-icon-cloud-download-o);
}

.jmix-font-icon-cloud-download:before {
    content: var(--jmix-font-icon-cloud-download);
}

.jmix-font-icon-cloud-o:before {
    content: var(--jmix-font-icon-cloud-o);
}

.jmix-font-icon-cloud-upload-o:before {
    content: var(--jmix-font-icon-cloud-upload-o);
}

.jmix-font-icon-cloud-upload:before {
    content: var(--jmix-font-icon-cloud-upload);
}

.jmix-font-icon-cloud:before {
    content: var(--jmix-font-icon-cloud);
}

.jmix-font-icon-cluster:before {
    content: var(--jmix-font-icon-cluster);
}

.jmix-font-icon-code:before {
    content: var(--jmix-font-icon-code);
}

.jmix-font-icon-coffee:before {
    content: var(--jmix-font-icon-coffee);
}

.jmix-font-icon-cog-o:before {
    content: var(--jmix-font-icon-cog-o);
}

.jmix-font-icon-cog:before {
    content: var(--jmix-font-icon-cog);
}

.jmix-font-icon-cogs:before {
    content: var(--jmix-font-icon-cogs);
}

.jmix-font-icon-coin-piles:before {
    content: var(--jmix-font-icon-coin-piles);
}

.jmix-font-icon-coins:before {
    content: var(--jmix-font-icon-coins);
}

.jmix-font-icon-combobox:before {
    content: var(--jmix-font-icon-combobox);
}

.jmix-font-icon-command:before {
    content: var(--jmix-font-icon-command);
}

.jmix-font-icon-comment-ellipsis-o:before {
    content: var(--jmix-font-icon-comment-ellipsis-o);
}

.jmix-font-icon-comment-ellipsis:before {
    content: var(--jmix-font-icon-comment-ellipsis);
}

.jmix-font-icon-comment-o:before {
    content: var(--jmix-font-icon-comment-o);
}

.jmix-font-icon-comment:before {
    content: var(--jmix-font-icon-comment);
}

.jmix-font-icon-comments-o:before {
    content: var(--jmix-font-icon-comments-o);
}

.jmix-font-icon-comments:before {
    content: var(--jmix-font-icon-comments);
}

.jmix-font-icon-compass:before {
    content: var(--jmix-font-icon-compass);
}

.jmix-font-icon-compile:before {
    content: var(--jmix-font-icon-compile);
}

.jmix-font-icon-compress-square:before {
    content: var(--jmix-font-icon-compress-square);
}

.jmix-font-icon-compress:before {
    content: var(--jmix-font-icon-compress);
}

.jmix-font-icon-connect-o:before {
    content: var(--jmix-font-icon-connect-o);
}

.jmix-font-icon-connect:before {
    content: var(--jmix-font-icon-connect);
}

.jmix-font-icon-controller:before {
    content: var(--jmix-font-icon-controller);
}

.jmix-font-icon-copy-o:before {
    content: var(--jmix-font-icon-copy-o);
}

.jmix-font-icon-copy:before {
    content: var(--jmix-font-icon-copy);
}

.jmix-font-icon-copyright:before {
    content: var(--jmix-font-icon-copyright);
}

.jmix-font-icon-corner-lower-left:before {
    content: var(--jmix-font-icon-corner-lower-left);
}

.jmix-font-icon-corner-lower-right:before {
    content: var(--jmix-font-icon-corner-lower-right);
}

.jmix-font-icon-corner-upper-left:before {
    content: var(--jmix-font-icon-corner-upper-left);
}

.jmix-font-icon-corner-upper-right:before {
    content: var(--jmix-font-icon-corner-upper-right);
}

.jmix-font-icon-credit-card:before {
    content: var(--jmix-font-icon-credit-card);
}

.jmix-font-icon-crop:before {
    content: var(--jmix-font-icon-crop);
}

.jmix-font-icon-cross-cutlery:before {
    content: var(--jmix-font-icon-cross-cutlery);
}

.jmix-font-icon-crosshairs:before {
    content: var(--jmix-font-icon-crosshairs);
}

.jmix-font-icon-css:before {
    content: var(--jmix-font-icon-css);
}

.jmix-font-icon-ctrl-a:before {
    content: var(--jmix-font-icon-ctrl-a);
}

.jmix-font-icon-ctrl:before {
    content: var(--jmix-font-icon-ctrl);
}

.jmix-font-icon-cube:before {
    content: var(--jmix-font-icon-cube);
}

.jmix-font-icon-cubes:before {
    content: var(--jmix-font-icon-cubes);
}

.jmix-font-icon-curly-brackets:before {
    content: var(--jmix-font-icon-curly-brackets);
}

.jmix-font-icon-cursor-o:before {
    content: var(--jmix-font-icon-cursor-o);
}

.jmix-font-icon-cursor:before {
    content: var(--jmix-font-icon-cursor);
}

.jmix-font-icon-cutlery:before {
    content: var(--jmix-font-icon-cutlery);
}

.jmix-font-icon-dashboard:before {
    content: var(--jmix-font-icon-dashboard);
}

.jmix-font-icon-database:before {
    content: var(--jmix-font-icon-database);
}

.jmix-font-icon-date-input:before {
    content: var(--jmix-font-icon-date-input);
}

.jmix-font-icon-deindent:before {
    content: var(--jmix-font-icon-deindent);
}

.jmix-font-icon-del-a:before {
    content: var(--jmix-font-icon-del-a);
}

.jmix-font-icon-del:before {
    content: var(--jmix-font-icon-del);
}

.jmix-font-icon-dental-chair:before {
    content: var(--jmix-font-icon-dental-chair);
}

.jmix-font-icon-desktop:before {
    content: var(--jmix-font-icon-desktop);
}

.jmix-font-icon-diamond-o:before {
    content: var(--jmix-font-icon-diamond-o);
}

.jmix-font-icon-diamond:before {
    content: var(--jmix-font-icon-diamond);
}

.jmix-font-icon-diploma-scroll:before {
    content: var(--jmix-font-icon-diploma-scroll);
}

.jmix-font-icon-diploma:before {
    content: var(--jmix-font-icon-diploma);
}

.jmix-font-icon-disc:before {
    content: var(--jmix-font-icon-disc);
}

.jmix-font-icon-doctor-briefcase:before {
    content: var(--jmix-font-icon-doctor-briefcase);
}

.jmix-font-icon-doctor:before {
    content: var(--jmix-font-icon-doctor);
}

.jmix-font-icon-dollar:before {
    content: var(--jmix-font-icon-dollar);
}

.jmix-font-icon-dot-circle:before {
    content: var(--jmix-font-icon-dot-circle);
}

.jmix-font-icon-download-alt:before {
    content: var(--jmix-font-icon-download-alt);
}

.jmix-font-icon-download:before {
    content: var(--jmix-font-icon-download);
}

.jmix-font-icon-drop:before {
    content: var(--jmix-font-icon-drop);
}

.jmix-font-icon-edit:before {
    content: var(--jmix-font-icon-edit);
}

.jmix-font-icon-eject:before {
    content: var(--jmix-font-icon-eject);
}

.jmix-font-icon-elastic:before {
    content: var(--jmix-font-icon-elastic);
}

.jmix-font-icon-ellipsis-circle-o:before {
    content: var(--jmix-font-icon-ellipsis-circle-o);
}

.jmix-font-icon-ellipsis-circle:before {
    content: var(--jmix-font-icon-ellipsis-circle);
}

.jmix-font-icon-ellipsis-dots-h:before {
    content: var(--jmix-font-icon-ellipsis-dots-h);
}

.jmix-font-icon-ellipsis-dots-v:before {
    content: var(--jmix-font-icon-ellipsis-dots-v);
}

.jmix-font-icon-ellipsis-h:before {
    content: var(--jmix-font-icon-ellipsis-h);
}

.jmix-font-icon-ellipsis-v:before {
    content: var(--jmix-font-icon-ellipsis-v);
}

.jmix-font-icon-enter-arrow:before {
    content: var(--jmix-font-icon-enter-arrow);
}

.jmix-font-icon-enter:before {
    content: var(--jmix-font-icon-enter);
}

.jmix-font-icon-envelope-o:before {
    content: var(--jmix-font-icon-envelope-o);
}

.jmix-font-icon-envelope-open-o:before {
    content: var(--jmix-font-icon-envelope-open-o);
}

.jmix-font-icon-envelope-open:before {
    content: var(--jmix-font-icon-envelope-open);
}

.jmix-font-icon-envelope:before {
    content: var(--jmix-font-icon-envelope);
}

.jmix-font-icon-envelopes-o:before {
    content: var(--jmix-font-icon-envelopes-o);
}

.jmix-font-icon-envelopes:before {
    content: var(--jmix-font-icon-envelopes);
}

.jmix-font-icon-eraser:before {
    content: var(--jmix-font-icon-eraser);
}

.jmix-font-icon-esc-a:before {
    content: var(--jmix-font-icon-esc-a);
}

.jmix-font-icon-esc:before {
    content: var(--jmix-font-icon-esc);
}

.jmix-font-icon-euro:before {
    content: var(--jmix-font-icon-euro);
}

.jmix-font-icon-exchange:before {
    content: var(--jmix-font-icon-exchange);
}

.jmix-font-icon-exclamation-circle-o:before {
    content: var(--jmix-font-icon-exclamation-circle-o);
}

.jmix-font-icon-exclamation-circle:before {
    content: var(--jmix-font-icon-exclamation-circle);
}

.jmix-font-icon-exclamation:before {
    content: var(--jmix-font-icon-exclamation);
}

.jmix-font-icon-exit-o:before {
    content: var(--jmix-font-icon-exit-o);
}

.jmix-font-icon-exit:before {
    content: var(--jmix-font-icon-exit);
}

.jmix-font-icon-expand-full:before {
    content: var(--jmix-font-icon-expand-full);
}

.jmix-font-icon-expand-square:before {
    content: var(--jmix-font-icon-expand-square);
}

.jmix-font-icon-expand:before {
    content: var(--jmix-font-icon-expand);
}

.jmix-font-icon-external-browser:before {
    content: var(--jmix-font-icon-external-browser);
}

.jmix-font-icon-external-link:before {
    content: var(--jmix-font-icon-external-link);
}

.jmix-font-icon-eye-slash:before {
    content: var(--jmix-font-icon-eye-slash);
}

.jmix-font-icon-eye:before {
    content: var(--jmix-font-icon-eye);
}

.jmix-font-icon-eyedropper:before {
    content: var(--jmix-font-icon-eyedropper);
}

.jmix-font-icon-facebook-square:before {
    content: var(--jmix-font-icon-facebook-square);
}

.jmix-font-icon-facebook:before {
    content: var(--jmix-font-icon-facebook);
}

.jmix-font-icon-factory:before {
    content: var(--jmix-font-icon-factory);
}

.jmix-font-icon-family:before {
    content: var(--jmix-font-icon-family);
}

.jmix-font-icon-fast-backward:before {
    content: var(--jmix-font-icon-fast-backward);
}

.jmix-font-icon-fast-forward:before {
    content: var(--jmix-font-icon-fast-forward);
}

.jmix-font-icon-female:before {
    content: var(--jmix-font-icon-female);
}

.jmix-font-icon-file-add:before {
    content: var(--jmix-font-icon-file-add);
}

.jmix-font-icon-file-code:before {
    content: var(--jmix-font-icon-file-code);
}

.jmix-font-icon-file-font:before {
    content: var(--jmix-font-icon-file-font);
}

.jmix-font-icon-file-movie:before {
    content: var(--jmix-font-icon-file-movie);
}

.jmix-font-icon-file-o:before {
    content: var(--jmix-font-icon-file-o);
}

.jmix-font-icon-file-picture:before {
    content: var(--jmix-font-icon-file-picture);
}

.jmix-font-icon-file-presentation:before {
    content: var(--jmix-font-icon-file-presentation);
}

.jmix-font-icon-file-process:before {
    content: var(--jmix-font-icon-file-process);
}

.jmix-font-icon-file-refresh:before {
    content: var(--jmix-font-icon-file-refresh);
}

.jmix-font-icon-file-remove:before {
    content: var(--jmix-font-icon-file-remove);
}

.jmix-font-icon-file-search:before {
    content: var(--jmix-font-icon-file-search);
}

.jmix-font-icon-file-sound:before {
    content: var(--jmix-font-icon-file-sound);
}

.jmix-font-icon-file-start:before {
    content: var(--jmix-font-icon-file-start);
}

.jmix-font-icon-file-table:before {
    content: var(--jmix-font-icon-file-table);
}

.jmix-font-icon-file-text-o:before {
    content: var(--jmix-font-icon-file-text-o);
}

.jmix-font-icon-file-text:before {
    content: var(--jmix-font-icon-file-text);
}

.jmix-font-icon-file-tree-small:before {
    content: var(--jmix-font-icon-file-tree-small);
}

.jmix-font-icon-file-tree-sub:before {
    content: var(--jmix-font-icon-file-tree-sub);
}

.jmix-font-icon-file-tree:before {
    content: var(--jmix-font-icon-file-tree);
}

.jmix-font-icon-file-zip:before {
    content: var(--jmix-font-icon-file-zip);
}

.jmix-font-icon-file:before {
    content: var(--jmix-font-icon-file);
}

.jmix-font-icon-fill:before {
    content: var(--jmix-font-icon-fill);
}

.jmix-font-icon-film:before {
    content: var(--jmix-font-icon-film);
}

.jmix-font-icon-filter:before {
    content: var(--jmix-font-icon-filter);
}

.jmix-font-icon-fire:before {
    content: var(--jmix-font-icon-fire);
}

.jmix-font-icon-flag-checkered:before {
    content: var(--jmix-font-icon-flag-checkered);
}

.jmix-font-icon-flag-o:before {
    content: var(--jmix-font-icon-flag-o);
}

.jmix-font-icon-flag:before {
    content: var(--jmix-font-icon-flag);
}

.jmix-font-icon-flash:before {
    content: var(--jmix-font-icon-flash);
}

.jmix-font-icon-flask:before {
    content: var(--jmix-font-icon-flask);
}

.jmix-font-icon-flight-landing:before {
    content: var(--jmix-font-icon-flight-landing);
}

.jmix-font-icon-flight-takeoff:before {
    content: var(--jmix-font-icon-flight-takeoff);
}

.jmix-font-icon-flip-h:before {
    content: var(--jmix-font-icon-flip-h);
}

.jmix-font-icon-flip-v:before {
    content: var(--jmix-font-icon-flip-v);
}

.jmix-font-icon-folder-add:before {
    content: var(--jmix-font-icon-folder-add);
}

.jmix-font-icon-folder-o:before {
    content: var(--jmix-font-icon-folder-o);
}

.jmix-font-icon-folder-open-o:before {
    content: var(--jmix-font-icon-folder-open-o);
}

.jmix-font-icon-folder-open:before {
    content: var(--jmix-font-icon-folder-open);
}

.jmix-font-icon-folder-remove:before {
    content: var(--jmix-font-icon-folder-remove);
}

.jmix-font-icon-folder-search:before {
    content: var(--jmix-font-icon-folder-search);
}

.jmix-font-icon-folder:before {
    content: var(--jmix-font-icon-folder);
}

.jmix-font-icon-font:before {
    content: var(--jmix-font-icon-font);
}

.jmix-font-icon-forklift:before {
    content: var(--jmix-font-icon-forklift);
}

.jmix-font-icon-form:before {
    content: var(--jmix-font-icon-form);
}

.jmix-font-icon-forward:before {
    content: var(--jmix-font-icon-forward);
}

.jmix-font-icon-frown-o:before {
    content: var(--jmix-font-icon-frown-o);
}

.jmix-font-icon-frown:before {
    content: var(--jmix-font-icon-frown);
}

.jmix-font-icon-function:before {
    content: var(--jmix-font-icon-function);
}

.jmix-font-icon-funnel:before {
    content: var(--jmix-font-icon-funnel);
}

.jmix-font-icon-gamepad:before {
    content: var(--jmix-font-icon-gamepad);
}

.jmix-font-icon-gavel:before {
    content: var(--jmix-font-icon-gavel);
}

.jmix-font-icon-gift:before {
    content: var(--jmix-font-icon-gift);
}

.jmix-font-icon-glass:before {
    content: var(--jmix-font-icon-glass);
}

.jmix-font-icon-glasses:before {
    content: var(--jmix-font-icon-glasses);
}

.jmix-font-icon-globe-wire:before {
    content: var(--jmix-font-icon-globe-wire);
}

.jmix-font-icon-globe:before {
    content: var(--jmix-font-icon-globe);
}

.jmix-font-icon-golf:before {
    content: var(--jmix-font-icon-golf);
}

.jmix-font-icon-google-plus-square:before {
    content: var(--jmix-font-icon-google-plus-square);
}

.jmix-font-icon-google-plus:before {
    content: var(--jmix-font-icon-google-plus);
}

.jmix-font-icon-grab:before {
    content: var(--jmix-font-icon-grab);
}

.jmix-font-icon-grid-bevel:before {
    content: var(--jmix-font-icon-grid-bevel);
}

.jmix-font-icon-grid-big-o:before {
    content: var(--jmix-font-icon-grid-big-o);
}

.jmix-font-icon-grid-big:before {
    content: var(--jmix-font-icon-grid-big);
}

.jmix-font-icon-grid-h:before {
    content: var(--jmix-font-icon-grid-h);
}

.jmix-font-icon-grid-small-o:before {
    content: var(--jmix-font-icon-grid-small-o);
}

.jmix-font-icon-grid-small:before {
    content: var(--jmix-font-icon-grid-small);
}

.jmix-font-icon-grid-v:before {
    content: var(--jmix-font-icon-grid-v);
}

.jmix-font-icon-grid:before {
    content: var(--jmix-font-icon-grid);
}

.jmix-font-icon-group:before {
    content: var(--jmix-font-icon-group);
}

.jmix-font-icon-hammer:before {
    content: var(--jmix-font-icon-hammer);
}

.jmix-font-icon-hand:before {
    content: var(--jmix-font-icon-hand);
}

.jmix-font-icon-handle-corner:before {
    content: var(--jmix-font-icon-handle-corner);
}

.jmix-font-icon-hands-up:before {
    content: var(--jmix-font-icon-hands-up);
}

.jmix-font-icon-handshake:before {
    content: var(--jmix-font-icon-handshake);
}

.jmix-font-icon-harddrive-o:before {
    content: var(--jmix-font-icon-harddrive-o);
}

.jmix-font-icon-harddrive:before {
    content: var(--jmix-font-icon-harddrive);
}

.jmix-font-icon-hash:before {
    content: var(--jmix-font-icon-hash);
}

.jmix-font-icon-header:before {
    content: var(--jmix-font-icon-header);
}

.jmix-font-icon-headphones:before {
    content: var(--jmix-font-icon-headphones);
}

.jmix-font-icon-headset:before {
    content: var(--jmix-font-icon-headset);
}

.jmix-font-icon-health-card:before {
    content: var(--jmix-font-icon-health-card);
}

.jmix-font-icon-heart-o:before {
    content: var(--jmix-font-icon-heart-o);
}

.jmix-font-icon-heart:before {
    content: var(--jmix-font-icon-heart);
}

.jmix-font-icon-home-o:before {
    content: var(--jmix-font-icon-home-o);
}

.jmix-font-icon-home:before {
    content: var(--jmix-font-icon-home);
}

.jmix-font-icon-hospital:before {
    content: var(--jmix-font-icon-hospital);
}

.jmix-font-icon-hourglass-empty:before {
    content: var(--jmix-font-icon-hourglass-empty);
}

.jmix-font-icon-hourglass-end:before {
    content: var(--jmix-font-icon-hourglass-end);
}

.jmix-font-icon-hourglass-start:before {
    content: var(--jmix-font-icon-hourglass-start);
}

.jmix-font-icon-hourglass:before {
    content: var(--jmix-font-icon-hourglass);
}

.jmix-font-icon-inbox:before {
    content: var(--jmix-font-icon-inbox);
}

.jmix-font-icon-indent:before {
    content: var(--jmix-font-icon-indent);
}

.jmix-font-icon-info-circle-o:before {
    content: var(--jmix-font-icon-info-circle-o);
}

.jmix-font-icon-info-circle:before {
    content: var(--jmix-font-icon-info-circle);
}

.jmix-font-icon-info:before {
    content: var(--jmix-font-icon-info);
}

.jmix-font-icon-input:before {
    content: var(--jmix-font-icon-input);
}

.jmix-font-icon-insert:before {
    content: var(--jmix-font-icon-insert);
}

.jmix-font-icon-institution:before {
    content: var(--jmix-font-icon-institution);
}

.jmix-font-icon-invoice:before {
    content: var(--jmix-font-icon-invoice);
}

.jmix-font-icon-italic:before {
    content: var(--jmix-font-icon-italic);
}

.jmix-font-icon-key-o:before {
    content: var(--jmix-font-icon-key-o);
}

.jmix-font-icon-key:before {
    content: var(--jmix-font-icon-key);
}

.jmix-font-icon-keyboard-o:before {
    content: var(--jmix-font-icon-keyboard-o);
}

.jmix-font-icon-keyboard:before {
    content: var(--jmix-font-icon-keyboard);
}

.jmix-font-icon-laptop:before {
    content: var(--jmix-font-icon-laptop);
}

.jmix-font-icon-layout:before {
    content: var(--jmix-font-icon-layout);
}

.jmix-font-icon-level-down-bold:before {
    content: var(--jmix-font-icon-level-down-bold);
}

.jmix-font-icon-level-down:before {
    content: var(--jmix-font-icon-level-down);
}

.jmix-font-icon-level-left-bold:before {
    content: var(--jmix-font-icon-level-left-bold);
}

.jmix-font-icon-level-left:before {
    content: var(--jmix-font-icon-level-left);
}

.jmix-font-icon-level-right-bold:before {
    content: var(--jmix-font-icon-level-right-bold);
}

.jmix-font-icon-level-right:before {
    content: var(--jmix-font-icon-level-right);
}

.jmix-font-icon-level-up-bold:before {
    content: var(--jmix-font-icon-level-up-bold);
}

.jmix-font-icon-level-up:before {
    content: var(--jmix-font-icon-level-up);
}

.jmix-font-icon-lifebuoy:before {
    content: var(--jmix-font-icon-lifebuoy);
}

.jmix-font-icon-lightbulb:before {
    content: var(--jmix-font-icon-lightbulb);
}

.jmix-font-icon-line-bar-chart:before {
    content: var(--jmix-font-icon-line-bar-chart);
}

.jmix-font-icon-line-chart:before {
    content: var(--jmix-font-icon-line-chart);
}

.jmix-font-icon-line-h:before {
    content: var(--jmix-font-icon-line-h);
}

.jmix-font-icon-line-v:before {
    content: var(--jmix-font-icon-line-v);
}

.jmix-font-icon-lines-list:before {
    content: var(--jmix-font-icon-lines-list);
}

.jmix-font-icon-lines:before {
    content: var(--jmix-font-icon-lines);
}

.jmix-font-icon-link:before {
    content: var(--jmix-font-icon-link);
}

.jmix-font-icon-list-ol:before {
    content: var(--jmix-font-icon-list-ol);
}

.jmix-font-icon-list-select:before {
    content: var(--jmix-font-icon-list-select);
}

.jmix-font-icon-list-ul:before {
    content: var(--jmix-font-icon-list-ul);
}

.jmix-font-icon-list:before {
    content: var(--jmix-font-icon-list);
}

.jmix-font-icon-location-arrow-circle-o:before {
    content: var(--jmix-font-icon-location-arrow-circle-o);
}

.jmix-font-icon-location-arrow-circle:before {
    content: var(--jmix-font-icon-location-arrow-circle);
}

.jmix-font-icon-location-arrow:before {
    content: var(--jmix-font-icon-location-arrow);
}

.jmix-font-icon-lock:before {
    content: var(--jmix-font-icon-lock);
}

.jmix-font-icon-magic:before {
    content: var(--jmix-font-icon-magic);
}

.jmix-font-icon-magnet:before {
    content: var(--jmix-font-icon-magnet);
}

.jmix-font-icon-mailbox:before {
    content: var(--jmix-font-icon-mailbox);
}

.jmix-font-icon-male:before {
    content: var(--jmix-font-icon-male);
}

.jmix-font-icon-map-marker:before {
    content: var(--jmix-font-icon-map-marker);
}

.jmix-font-icon-margin-bottom:before {
    content: var(--jmix-font-icon-margin-bottom);
}

.jmix-font-icon-margin-left:before {
    content: var(--jmix-font-icon-margin-left);
}

.jmix-font-icon-margin-right:before {
    content: var(--jmix-font-icon-margin-right);
}

.jmix-font-icon-margin-top:before {
    content: var(--jmix-font-icon-margin-top);
}

.jmix-font-icon-margin:before {
    content: var(--jmix-font-icon-margin);
}

.jmix-font-icon-medal:before {
    content: var(--jmix-font-icon-medal);
}

.jmix-font-icon-megaphone:before {
    content: var(--jmix-font-icon-megaphone);
}

.jmix-font-icon-meh-o:before {
    content: var(--jmix-font-icon-meh-o);
}

.jmix-font-icon-meh:before {
    content: var(--jmix-font-icon-meh);
}

.jmix-font-icon-menu:before {
    content: var(--jmix-font-icon-menu);
}

.jmix-font-icon-microphone:before {
    content: var(--jmix-font-icon-microphone);
}

.jmix-font-icon-minus-circle-o:before {
    content: var(--jmix-font-icon-minus-circle-o);
}

.jmix-font-icon-minus-circle:before {
    content: var(--jmix-font-icon-minus-circle);
}

.jmix-font-icon-minus-square-o:before {
    content: var(--jmix-font-icon-minus-square-o);
}

.jmix-font-icon-minus-square:before {
    content: var(--jmix-font-icon-minus-square);
}

.jmix-font-icon-minus:before {
    content: var(--jmix-font-icon-minus);
}

.jmix-font-icon-mobile-browser:before {
    content: var(--jmix-font-icon-mobile-browser);
}

.jmix-font-icon-mobile-retro:before {
    content: var(--jmix-font-icon-mobile-retro);
}

.jmix-font-icon-mobile:before {
    content: var(--jmix-font-icon-mobile);
}

.jmix-font-icon-modal-list:before {
    content: var(--jmix-font-icon-modal-list);
}

.jmix-font-icon-modal:before {
    content: var(--jmix-font-icon-modal);
}

.jmix-font-icon-money-deposit:before {
    content: var(--jmix-font-icon-money-deposit);
}

.jmix-font-icon-money-exchange:before {
    content: var(--jmix-font-icon-money-exchange);
}

.jmix-font-icon-money-withdraw:before {
    content: var(--jmix-font-icon-money-withdraw);
}

.jmix-font-icon-money:before {
    content: var(--jmix-font-icon-money);
}

.jmix-font-icon-moon-o:before {
    content: var(--jmix-font-icon-moon-o);
}

.jmix-font-icon-moon:before {
    content: var(--jmix-font-icon-moon);
}

.jmix-font-icon-morning:before {
    content: var(--jmix-font-icon-morning);
}

.jmix-font-icon-movie:before {
    content: var(--jmix-font-icon-movie);
}

.jmix-font-icon-music:before {
    content: var(--jmix-font-icon-music);
}

.jmix-font-icon-mute:before {
    content: var(--jmix-font-icon-mute);
}

.jmix-font-icon-native-button:before {
    content: var(--jmix-font-icon-native-button);
}

.jmix-font-icon-newspaper:before {
    content: var(--jmix-font-icon-newspaper);
}

.jmix-font-icon-notebook:before {
    content: var(--jmix-font-icon-notebook);
}

.jmix-font-icon-nurse:before {
    content: var(--jmix-font-icon-nurse);
}

.jmix-font-icon-office:before {
    content: var(--jmix-font-icon-office);
}

.jmix-font-icon-open-book:before {
    content: var(--jmix-font-icon-open-book);
}

.jmix-font-icon-option-a:before {
    content: var(--jmix-font-icon-option-a);
}

.jmix-font-icon-option:before {
    content: var(--jmix-font-icon-option);
}

.jmix-font-icon-options:before {
    content: var(--jmix-font-icon-options);
}

.jmix-font-icon-orientation:before {
    content: var(--jmix-font-icon-orientation);
}

.jmix-font-icon-outdent:before {
    content: var(--jmix-font-icon-outdent);
}

.jmix-font-icon-out:before {
    content: var(--jmix-font-icon-out);
}

.jmix-font-icon-outbox:before {
    content: var(--jmix-font-icon-outbox);
}

.jmix-font-icon-package:before {
    content: var(--jmix-font-icon-package);
}

.jmix-font-icon-padding-bottom:before {
    content: var(--jmix-font-icon-padding-bottom);
}

.jmix-font-icon-padding-left:before {
    content: var(--jmix-font-icon-padding-left);
}

.jmix-font-icon-padding-right:before {
    content: var(--jmix-font-icon-padding-right);
}

.jmix-font-icon-padding-top:before {
    content: var(--jmix-font-icon-padding-top);
}

.jmix-font-icon-padding:before {
    content: var(--jmix-font-icon-padding);
}

.jmix-font-icon-paint-roll:before {
    content: var(--jmix-font-icon-paint-roll);
}

.jmix-font-icon-paintbrush:before {
    content: var(--jmix-font-icon-paintbrush);
}

.jmix-font-icon-palette:before {
    content: var(--jmix-font-icon-palette);
}

.jmix-font-icon-panel:before {
    content: var(--jmix-font-icon-panel);
}

.jmix-font-icon-paperclip:before {
    content: var(--jmix-font-icon-paperclip);
}

.jmix-font-icon-paperplane-o:before {
    content: var(--jmix-font-icon-paperplane-o);
}

.jmix-font-icon-paperplane:before {
    content: var(--jmix-font-icon-paperplane);
}

.jmix-font-icon-paragraph:before {
    content: var(--jmix-font-icon-paragraph);
}

.jmix-font-icon-password:before {
    content: var(--jmix-font-icon-password);
}

.jmix-font-icon-paste:before {
    content: var(--jmix-font-icon-paste);
}

.jmix-font-icon-pause:before {
    content: var(--jmix-font-icon-pause);
}

.jmix-font-icon-pencil:before {
    content: var(--jmix-font-icon-pencil);
}

.jmix-font-icon-person:before {
    content: var(--jmix-font-icon-person);
}

.jmix-font-icon-phone-landline:before {
    content: var(--jmix-font-icon-phone-landline);
}

.jmix-font-icon-phone:before {
    content: var(--jmix-font-icon-phone);
}

.jmix-font-icon-picture:before {
    content: var(--jmix-font-icon-picture);
}

.jmix-font-icon-pie-bar-chart:before {
    content: var(--jmix-font-icon-pie-bar-chart);
}

.jmix-font-icon-pie-chart:before {
    content: var(--jmix-font-icon-pie-chart);
}

.jmix-font-icon-piggy-bank-coin:before {
    content: var(--jmix-font-icon-piggy-bank-coin);
}

.jmix-font-icon-piggy-bank:before {
    content: var(--jmix-font-icon-piggy-bank);
}

.jmix-font-icon-pill:before {
    content: var(--jmix-font-icon-pill);
}

.jmix-font-icon-pills:before {
    content: var(--jmix-font-icon-pills);
}

.jmix-font-icon-pin-post:before {
    content: var(--jmix-font-icon-pin-post);
}

.jmix-font-icon-pin:before {
    content: var(--jmix-font-icon-pin);
}

.jmix-font-icon-play-circle-o:before {
    content: var(--jmix-font-icon-play-circle-o);
}

.jmix-font-icon-play-circle:before {
    content: var(--jmix-font-icon-play-circle);
}

.jmix-font-icon-play:before {
    content: var(--jmix-font-icon-play);
}

.jmix-font-icon-plug:before {
    content: var(--jmix-font-icon-plug);
}

.jmix-font-icon-plus-circle-o:before {
    content: var(--jmix-font-icon-plus-circle-o);
}

.jmix-font-icon-plus-circle:before {
    content: var(--jmix-font-icon-plus-circle);
}

.jmix-font-icon-plus-minus:before {
    content: var(--jmix-font-icon-plus-minus);
}

.jmix-font-icon-plus-square-o:before {
    content: var(--jmix-font-icon-plus-square-o);
}

.jmix-font-icon-plus-square:before {
    content: var(--jmix-font-icon-plus-square);
}

.jmix-font-icon-plus:before {
    content: var(--jmix-font-icon-plus);
}

.jmix-font-icon-pointer:before {
    content: var(--jmix-font-icon-pointer);
}

.jmix-font-icon-power-off:before {
    content: var(--jmix-font-icon-power-off);
}

.jmix-font-icon-presentation:before {
    content: var(--jmix-font-icon-presentation);
}

.jmix-font-icon-print:before {
    content: var(--jmix-font-icon-print);
}

.jmix-font-icon-progressbar:before {
    content: var(--jmix-font-icon-progressbar);
}

.jmix-font-icon-puzzle-piece:before {
    content: var(--jmix-font-icon-puzzle-piece);
}

.jmix-font-icon-pyramid-chart:before {
    content: var(--jmix-font-icon-pyramid-chart);
}

.jmix-font-icon-qrcode:before {
    content: var(--jmix-font-icon-qrcode);
}

.jmix-font-icon-question-circle-o:before {
    content: var(--jmix-font-icon-question-circle-o);
}

.jmix-font-icon-question-circle:before {
    content: var(--jmix-font-icon-question-circle);
}

.jmix-font-icon-question:before {
    content: var(--jmix-font-icon-question);
}

.jmix-font-icon-quote-left:before {
    content: var(--jmix-font-icon-quote-left);
}

.jmix-font-icon-quote-right:before {
    content: var(--jmix-font-icon-quote-right);
}

.jmix-font-icon-random:before {
    content: var(--jmix-font-icon-random);
}

.jmix-font-icon-raster-lower-left:before {
    content: var(--jmix-font-icon-raster-lower-left);
}

.jmix-font-icon-raster:before {
    content: var(--jmix-font-icon-raster);
}

.jmix-font-icon-records:before {
    content: var(--jmix-font-icon-records);
}

.jmix-font-icon-recycle:before {
    content: var(--jmix-font-icon-recycle);
}

.jmix-font-icon-refresh:before {
    content: var(--jmix-font-icon-refresh);
}

.jmix-font-icon-reply-all:before {
    content: var(--jmix-font-icon-reply-all);
}

.jmix-font-icon-reply:before {
    content: var(--jmix-font-icon-reply);
}

.jmix-font-icon-resize-h:before {
    content: var(--jmix-font-icon-resize-h);
}

.jmix-font-icon-resize-v:before {
    content: var(--jmix-font-icon-resize-v);
}

.jmix-font-icon-retweet:before {
    content: var(--jmix-font-icon-retweet);
}

.jmix-font-icon-rhombus:before {
    content: var(--jmix-font-icon-rhombus);
}

.jmix-font-icon-road-branch:before {
    content: var(--jmix-font-icon-road-branch);
}

.jmix-font-icon-road-branches:before {
    content: var(--jmix-font-icon-road-branches);
}

.jmix-font-icon-road-split:before {
    content: var(--jmix-font-icon-road-split);
}

.jmix-font-icon-road:before {
    content: var(--jmix-font-icon-road);
}

.jmix-font-icon-rocket:before {
    content: var(--jmix-font-icon-rocket);
}

.jmix-font-icon-rotate-left:before {
    content: var(--jmix-font-icon-rotate-left);
}

.jmix-font-icon-rotate-right:before {
    content: var(--jmix-font-icon-rotate-right);
}

.jmix-font-icon-rss-square:before {
    content: var(--jmix-font-icon-rss-square);
}

.jmix-font-icon-rss:before {
    content: var(--jmix-font-icon-rss);
}

.jmix-font-icon-safe-lock:before {
    content: var(--jmix-font-icon-safe-lock);
}

.jmix-font-icon-safe:before {
    content: var(--jmix-font-icon-safe);
}

.jmix-font-icon-scale-unbalance:before {
    content: var(--jmix-font-icon-scale-unbalance);
}

.jmix-font-icon-scale:before {
    content: var(--jmix-font-icon-scale);
}

.jmix-font-icon-scatter-chart:before {
    content: var(--jmix-font-icon-scatter-chart);
}

.jmix-font-icon-scissors:before {
    content: var(--jmix-font-icon-scissors);
}

.jmix-font-icon-screwdriver:before {
    content: var(--jmix-font-icon-screwdriver);
}

.jmix-font-icon-search-minus:before {
    content: var(--jmix-font-icon-search-minus);
}

.jmix-font-icon-search-plus:before {
    content: var(--jmix-font-icon-search-plus);
}

.jmix-font-icon-search:before {
    content: var(--jmix-font-icon-search);
}

.jmix-font-icon-select:before {
    content: var(--jmix-font-icon-select);
}

.jmix-font-icon-server:before {
    content: var(--jmix-font-icon-server);
}

.jmix-font-icon-share-square:before {
    content: var(--jmix-font-icon-share-square);
}

.jmix-font-icon-share:before {
    content: var(--jmix-font-icon-share);
}

.jmix-font-icon-shield:before {
    content: var(--jmix-font-icon-shield);
}

.jmix-font-icon-shift-arrow:before {
    content: var(--jmix-font-icon-shift-arrow);
}

.jmix-font-icon-shift:before {
    content: var(--jmix-font-icon-shift);
}

.jmix-font-icon-shop:before {
    content: var(--jmix-font-icon-shop);
}

.jmix-font-icon-sign-in-alt:before {
    content: var(--jmix-font-icon-sign-in-alt);
}

.jmix-font-icon-sign-in:before {
    content: var(--jmix-font-icon-sign-in);
}

.jmix-font-icon-sign-out-alt:before {
    content: var(--jmix-font-icon-sign-out-alt);
}

.jmix-font-icon-sign-out:before {
    content: var(--jmix-font-icon-sign-out);
}

.jmix-font-icon-signal:before {
    content: var(--jmix-font-icon-signal);
}

.jmix-font-icon-sitemap:before {
    content: var(--jmix-font-icon-sitemap);
}

.jmix-font-icon-slider:before {
    content: var(--jmix-font-icon-slider);
}

.jmix-font-icon-sliders:before {
    content: var(--jmix-font-icon-sliders);
}

.jmix-font-icon-smiley-o:before {
    content: var(--jmix-font-icon-smiley-o);
}

.jmix-font-icon-smiley:before {
    content: var(--jmix-font-icon-smiley);
}

.jmix-font-icon-sort:before {
    content: var(--jmix-font-icon-sort);
}

.jmix-font-icon-sound-disable:before {
    content: var(--jmix-font-icon-sound-disable);
}

.jmix-font-icon-spark-line:before {
    content: var(--jmix-font-icon-spark-line);
}

.jmix-font-icon-specialist:before {
    content: var(--jmix-font-icon-specialist);
}

.jmix-font-icon-spinner-arc:before {
    content: var(--jmix-font-icon-spinner-arc);
}

.jmix-font-icon-spinner-third:before {
    content: var(--jmix-font-icon-spinner-third);
}

.jmix-font-icon-spinner:before {
    content: var(--jmix-font-icon-spinner);
}

.jmix-font-icon-spline-area-chart:before {
    content: var(--jmix-font-icon-spline-area-chart);
}

.jmix-font-icon-spline-chart:before {
    content: var(--jmix-font-icon-spline-chart);
}

.jmix-font-icon-split-h:before {
    content: var(--jmix-font-icon-split-h);
}

.jmix-font-icon-split-v:before {
    content: var(--jmix-font-icon-split-v);
}

.jmix-font-icon-split:before {
    content: var(--jmix-font-icon-split);
}

.jmix-font-icon-spoon:before {
    content: var(--jmix-font-icon-spoon);
}

.jmix-font-icon-square-shadow:before {
    content: var(--jmix-font-icon-square-shadow);
}

.jmix-font-icon-square:before {
    content: var(--jmix-font-icon-square);
}

.jmix-font-icon-star-half-left-o:before {
    content: var(--jmix-font-icon-star-half-left-o);
}

.jmix-font-icon-star-half-left:before {
    content: var(--jmix-font-icon-star-half-left);
}

.jmix-font-icon-star-half-right-o:before {
    content: var(--jmix-font-icon-star-half-right-o);
}

.jmix-font-icon-star-half-right:before {
    content: var(--jmix-font-icon-star-half-right);
}

.jmix-font-icon-star-half:before {
    content: var(--jmix-font-icon-star-half);
}

.jmix-font-icon-star-o:before {
    content: var(--jmix-font-icon-star-o);
}

.jmix-font-icon-star:before {
    content: var(--jmix-font-icon-star);
}

.jmix-font-icon-start-cog:before {
    content: var(--jmix-font-icon-start-cog);
}

.jmix-font-icon-step-backward:before {
    content: var(--jmix-font-icon-step-backward);
}

.jmix-font-icon-step-forward:before {
    content: var(--jmix-font-icon-step-forward);
}

.jmix-font-icon-stethoscope:before {
    content: var(--jmix-font-icon-stethoscope);
}

.jmix-font-icon-stock:before {
    content: var(--jmix-font-icon-stock);
}

.jmix-font-icon-stop-cog:before {
    content: var(--jmix-font-icon-stop-cog);
}

.jmix-font-icon-stop:before {
    content: var(--jmix-font-icon-stop);
}

.jmix-font-icon-stopwatch:before {
    content: var(--jmix-font-icon-stopwatch);
}

.jmix-font-icon-storage:before {
    content: var(--jmix-font-icon-storage);
}

.jmix-font-icon-strikethrough:before {
    content: var(--jmix-font-icon-strikethrough);
}

.jmix-font-icon-subscript:before {
    content: var(--jmix-font-icon-subscript);
}

.jmix-font-icon-suitcase:before {
    content: var(--jmix-font-icon-suitcase);
}

.jmix-font-icon-sun-down:before {
    content: var(--jmix-font-icon-sun-down);
}

.jmix-font-icon-sun-o:before {
    content: var(--jmix-font-icon-sun-o);
}

.jmix-font-icon-sun:before {
    content: var(--jmix-font-icon-sun);
}

.jmix-font-icon-sun-rise:before {
    content: var(--jmix-font-icon-sun-rise);
}

.jmix-font-icon-superscript:before {
    content: var(--jmix-font-icon-superscript);
}

.jmix-font-icon-sword:before {
    content: var(--jmix-font-icon-sword);
}

.jmix-font-icon-tab-a:before {
    content: var(--jmix-font-icon-tab-a);
}

.jmix-font-icon-tab:before {
    content: var(--jmix-font-icon-tab);
}

.jmix-font-icon-table:before {
    content: var(--jmix-font-icon-table);
}

.jmix-font-icon-tablet:before {
    content: var(--jmix-font-icon-tablet);
}

.jmix-font-icon-tabs:before {
    content: var(--jmix-font-icon-tabs);
}

.jmix-font-icon-tag:before {
    content: var(--jmix-font-icon-tag);
}

.jmix-font-icon-tags:before {
    content: var(--jmix-font-icon-tags);
}

.jmix-font-icon-tasks:before {
    content: var(--jmix-font-icon-tasks);
}

.jmix-font-icon-taxi:before {
    content: var(--jmix-font-icon-taxi);
}

.jmix-font-icon-teeth:before {
    content: var(--jmix-font-icon-teeth);
}

.jmix-font-icon-terminal:before {
    content: var(--jmix-font-icon-terminal);
}

.jmix-font-icon-text-height:before {
    content: var(--jmix-font-icon-text-height);
}

.jmix-font-icon-text-input:before {
    content: var(--jmix-font-icon-text-input);
}

.jmix-font-icon-text-label:before {
    content: var(--jmix-font-icon-text-label);
}

.jmix-font-icon-text-width:before {
    content: var(--jmix-font-icon-text-width);
}

.jmix-font-icon-thin-square:before {
    content: var(--jmix-font-icon-thin-square);
}

.jmix-font-icon-thumbs-down-o:before {
    content: var(--jmix-font-icon-thumbs-down-o);
}

.jmix-font-icon-thumbs-down:before {
    content: var(--jmix-font-icon-thumbs-down);
}

.jmix-font-icon-thumbs-up-o:before {
    content: var(--jmix-font-icon-thumbs-up-o);
}

.jmix-font-icon-thumbs-up:before {
    content: var(--jmix-font-icon-thumbs-up);
}

.jmix-font-icon-ticket:before {
    content: var(--jmix-font-icon-ticket);
}

.jmix-font-icon-time-backward:before {
    content: var(--jmix-font-icon-time-backward);
}

.jmix-font-icon-time-forward:before {
    content: var(--jmix-font-icon-time-forward);
}

.jmix-font-icon-timer:before {
    content: var(--jmix-font-icon-timer);
}

.jmix-font-icon-toolbox:before {
    content: var(--jmix-font-icon-toolbox);
}

.jmix-font-icon-tools:before {
    content: var(--jmix-font-icon-tools);
}

.jmix-font-icon-tooth:before {
    content: var(--jmix-font-icon-tooth);
}

.jmix-font-icon-touch:before {
    content: var(--jmix-font-icon-touch);
}

.jmix-font-icon-train:before {
    content: var(--jmix-font-icon-train);
}

.jmix-font-icon-trash:before {
    content: var(--jmix-font-icon-trash);
}

.jmix-font-icon-tree-table:before {
    content: var(--jmix-font-icon-tree-table);
}

.jmix-font-icon-trending-down:before {
    content: var(--jmix-font-icon-trending-down);
}

.jmix-font-icon-trending-up:before {
    content: var(--jmix-font-icon-trending-up);
}

.jmix-font-icon-trophy:before {
    content: var(--jmix-font-icon-trophy);
}

.jmix-font-icon-truck:before {
    content: var(--jmix-font-icon-truck);
}

.jmix-font-icon-twin-col-select:before {
    content: var(--jmix-font-icon-twin-col-select);
}

.jmix-font-icon-twitter-square:before {
    content: var(--jmix-font-icon-twitter-square);
}

.jmix-font-icon-twitter:before {
    content: var(--jmix-font-icon-twitter);
}

.jmix-font-icon-umbrella:before {
    content: var(--jmix-font-icon-umbrella);
}

.jmix-font-icon-underline:before {
    content: var(--jmix-font-icon-underline);
}

.jmix-font-icon-unlink:before {
    content: var(--jmix-font-icon-unlink);
}

.jmix-font-icon-unlock:before {
    content: var(--jmix-font-icon-unlock);
}

.jmix-font-icon-upload-alt:before {
    content: var(--jmix-font-icon-upload-alt);
}

.jmix-font-icon-upload:before {
    content: var(--jmix-font-icon-upload);
}

.jmix-font-icon-user-card:before {
    content: var(--jmix-font-icon-user-card);
}

.jmix-font-icon-user-check:before {
    content: var(--jmix-font-icon-user-check);
}

.jmix-font-icon-user-clock:before {
    content: var(--jmix-font-icon-user-clock);
}

.jmix-font-icon-user-heart:before {
    content: var(--jmix-font-icon-user-heart);
}

.jmix-font-icon-user-star:before {
    content: var(--jmix-font-icon-user-star);
}

.jmix-font-icon-user:before {
    content: var(--jmix-font-icon-user);
}

.jmix-font-icon-users:before {
    content: var(--jmix-font-icon-users);
}

.jmix-font-icon-vaadin-h:before {
    content: var(--jmix-font-icon-vaadin-h);
}

.jmix-font-icon-vaadin-v:before {
    content: var(--jmix-font-icon-vaadin-v);
}

.jmix-font-icon-viewport:before {
    content: var(--jmix-font-icon-viewport);
}

.jmix-font-icon-vimeo-square:before {
    content: var(--jmix-font-icon-vimeo-square);
}

.jmix-font-icon-vimeo:before {
    content: var(--jmix-font-icon-vimeo);
}

.jmix-font-icon-volume-down:before {
    content: var(--jmix-font-icon-volume-down);
}

.jmix-font-icon-volume-off:before {
    content: var(--jmix-font-icon-volume-off);
}

.jmix-font-icon-volume-up:before {
    content: var(--jmix-font-icon-volume-up);
}

.jmix-font-icon-volume:before {
    content: var(--jmix-font-icon-volume);
}

.jmix-font-icon-wallet:before {
    content: var(--jmix-font-icon-wallet);
}

.jmix-font-icon-warning:before {
    content: var(--jmix-font-icon-warning);
}

.jmix-font-icon-workplace:before {
    content: var(--jmix-font-icon-workplace);
}

.jmix-font-icon-wrench:before {
    content: var(--jmix-font-icon-wrench);
}

.jmix-font-icon-youtube-square:before {
    content: var(--jmix-font-icon-youtube-square);
}

.jmix-font-icon-youtube:before {
    content: var(--jmix-font-icon-youtube);
}

.jmix-font-icon-photo:before {
    content: var(--jmix-font-icon-photo);
}

.jmix-font-icon-redo:before {
    content: var(--jmix-font-icon-redo);
}

.jmix-font-icon-undo:before {
    content: var(--jmix-font-icon-undo);
}


/* jmix-aura/src/icons/jmix-font-icons.css */
.jmix-font-icon {
    /* Fixes Safari browser bug which incorrectly handle '100cqh' */
    --vaadin-icon-visual-size: round(var(--aura-line-height-m) * .8, 1px);
}

vaadin-badge > vaadin-icon[icon-class~="jmix-font-icon"][slot="icon"]:not([icon-class~="jmix-font-icon-lumo"]) {
    --vaadin-icon-visual-size: 80%;
}

.jmix-font-icon.jmix-font-icon-lumo,
jmix-notifications-indicator > vaadin-icon[icon-class~="jmix-font-icon"][slot="icon"]:not([icon-class~="jmix-font-icon-lumo"]) {
    /* Fixes Safari browser bug which incorrectly handle '100cqh' */
    --vaadin-icon-visual-size: var(--aura-line-height-m);
}

vaadin-badge > vaadin-icon.jmix-font-icon.jmix-font-icon-lumo[slot="icon"] {
    --vaadin-icon-visual-size: 100%;
}

/* jmix-aura/src/app/index.css */
/* jmix-aura/src/app/data-grid-empty-state-by-permissions-fragment.css */
.data-grid-empty-state-by-permissions-fragment {
    column-gap: var(--vaadin-gap-s);
}

.data-grid-empty-state-by-permissions-fragment .empty-state-icon {
    color: var(--aura-red);
}

/* jmix-aura/src/app/data-grid-renderers.css */
.jmix-popover-renderer-popover {
    --vaadin-popover-padding: var(--vaadin-padding-m);
}

.jmix-popover-renderer-popover::part(content) {
    max-width: var(--jmix-popover-renderer-max-width, 30rem);
    max-height: var(--jmix-popover-renderer-max-height, 20rem);
}

/* Markdown content gets block margins from Vaadin's base styles, which would add up with the popover padding. */
.jmix-popover-renderer-content > :first-child {
    margin-block-start: 0;
}

.jmix-popover-renderer-content > :last-child {
    margin-block-end: 0;
}

.jmix-popover-renderer-button {
    display: inline-block;
    box-sizing: border-box;

    /* An inline-block with overflow: hidden takes its bottom edge as the baseline, which would leave
       room for the descenders below it and push the text above the plain text of neighbouring cells. */
    vertical-align: top;

    --_color: var(--aura-accent-text-color);
    color: var(--_color);
    font-weight: 500;

    position: relative;
    max-width: 100%;

    overflow: hidden;
    text-overflow: ellipsis;

    cursor: var(--vaadin-clickable-cursor);
}

.jmix-popover-renderer-button:hover {
    color: light-dark(oklch(from var(--_color) calc(l - 0.15) c h), oklch(from var(--_color) calc(l + 0.15) c h));
}

/* jmix-aura/src/app/date-interval-dialog.css */
.date-interval-dialog .type-selector {
    flex-shrink: 0;
}

.date-interval-dialog .content-box {
    flex-grow: 1;
}

/* jmix-aura/src/app/exception-dialog-window.css */
.jmix-exception-dialog-window-content textarea {
  background: var(--vaadin-input-field-background, var(--vaadin-background-color));
  color: var(--vaadin-input-field-value-color, var(--vaadin-text-color));

  --_radius: var(--vaadin-input-field-border-radius, var(--vaadin-radius-m));
  border-radius:
    /* See https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius */
          var(--vaadin-input-field-top-start-radius, var(--_radius))
          var(--vaadin-input-field-top-end-radius, var(--_radius))
          var(--vaadin-input-field-bottom-end-radius, var(--_radius))
          var(--vaadin-input-field-bottom-start-radius, var(--_radius));
  border: var(--vaadin-input-field-border-width, 1px) solid var(--vaadin-input-field-border-color, var(--vaadin-border-color));

  box-sizing: border-box;

  font-size: var(--vaadin-input-field-value-font-size, inherit);
  line-height: var(--vaadin-input-field-value-line-height, inherit);
  font-weight: var(--vaadin-input-field-value-font-weight, 400);

  outline: none;
  padding: var(
          --vaadin-input-field-padding,
          var(--vaadin-padding-block-container) var(--vaadin-padding-inline-container)
  );
  resize: none;
}

.jmix-exception-dialog-window-content textarea:focus-within {
  outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
  outline-offset: calc(var(--vaadin-input-field-border-width, 1px) * -1);
}

.jmix-exception-dialog-window-content .jmix-exception-dialog-window-message-textarea {
  width: 100%;
  height: 100px;
}

.jmix-exception-dialog-window-content .jmix-exception-dialog-window-stacktrace-textarea {
  width: 100%;
  flex-grow: 1;
}

/* jmix-aura/src/addons/index.css */
/* Free */

/* jmix-aura/src/addons/aitools/index.css */
/* jmix-aura/src/addons/aitools/ai-chat-fragment.css */
/*
 * The fragment is a full-size flex layout. The outer view owns clipping and
 * page padding; the canvas applies the single readable max-width for header,
 * timeline, composer, and prompt suggestions.
*/
.ai-chat-fragment {
    box-sizing: border-box;
    min-height: 0;
    overflow: hidden;

    /* Single centered canvas that imposes the 68rem max-width.
       Every child inside just uses width: 100% - no per-component max-width needed. */
    .chat-layout {
        box-sizing: border-box;
        align-self: center;
        flex: 1 1 auto;
        margin: 0 auto;
        max-width: var(--jmix-ai-conversation-canvas-max-width, 68rem);
        min-height: 0;
        padding: var(--vaadin-padding-s);
        width: 100%;
    }

    .chat-title-layout {
        box-sizing: border-box;
        padding-bottom: var(--vaadin-padding-s);
        gap: var(--vaadin-gap-xs);
        /* Let the title shrink and ellipsize instead of pushing the row wider. */
        min-width: 0;
    }

    .chat-title {
        flex: 1 1 auto;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .chat-content-layout {
        box-sizing: border-box;
        flex: 1 1 auto;
        min-height: 0;
        overflow: hidden;
        padding: var(--vaadin-padding-xs) 0;
    }

    .chat-timeline-list {
        flex: 1 1 auto;
        min-height: 0;
        width: 100%;
    }

    .chat-input-container {
        padding: 0 var(--vaadin-padding-xs);
    }
}

/* jmix-aura/src/addons/aitools/ai-chat-hub-fragment.css */
.ai-chat-hub {
    box-sizing: border-box;
    min-height: 0;
    overflow: hidden;

    .chat-hub-scroll {
        box-sizing: border-box;
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
    }

    /* One centered reading column for the whole starter. Narrower than the
       conversation timeline canvas — starter has composer + 2-col cards, the
       reading line stays comfortable around 54rem. Override with the
       --jmix-ai-chat-hub-canvas-max-width custom property. */
    .chat-hub-canvas {
        box-sizing: border-box;
        align-self: center;
        margin: 0 auto;
        max-width: var(--jmix-ai-chat-hub-canvas-max-width, 54rem);
        padding: var(--vaadin-padding-m);
        width: 100%;
        gap: var(--vaadin-gap-m);
    }

    .chat-hub-heading {
        text-align: center;
        gap: var(--vaadin-gap-xs);
    }

    .chat-hub-title {
        margin: 0;
    }

    .chat-hub-subtitle {
        color: var(--vaadin-text-color-secondary);
        font-size: var(--aura-font-size-m);
    }

    .chat-hub-hero-icon-glyph {
        height: 2.5rem;
        width: 2.5rem;
        color: var(--aura-accent-color);
    }

    .chat-hub-section-header {
        gap: var(--vaadin-gap-s);
        /* Aura's vertical rhythm reads slightly tighter than Lumo's; add a
           bit of extra breathing room between the composer and this section
           header without touching the canvas-wide gap. */
        margin-top: var(--vaadin-gap-s);
    }

    .chat-hub-section-rule {
        border-top: 1px solid var(--vaadin-border-color);
        flex: 1 1 auto;
    }
}

/* Conversation cards — recent grid and the history panel (which may render in an
   overlay), so these are top-level selectors rather than nested under the root. */
.chat-hub-card {
    /* vaadin-card requires a single length here (used by inner calc(... * -1)). */
    --vaadin-card-padding: var(--vaadin-padding-s);
    --vaadin-card-gap: var(--vaadin-gap-xs);
}

/* The card body is a link now: drop the link look, keep the stacked layout the
   layout component used to give it, and show a focus ring - the body became
   keyboard-reachable. */
.chat-hub-card-body {
    color: inherit;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 0;
    text-decoration: none;
}

.chat-hub-card-body:focus-visible {
    outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
    outline-offset: var(--vaadin-focus-ring-width);
}

.chat-hub-card-title-row {
    gap: var(--vaadin-gap-s);
    min-width: 0;
}

/* Own the title weight and the date colour/size rather than relying on Lumo
   utility classes (font-bold / text-secondary / text-xs), which the consuming
   app's theme may not bundle. */
.chat-hub-card-title {
    font-size: var(--aura-font-size-m);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.chat-hub-card-date {
    color: var(--vaadin-text-color-secondary);
    font-size: var(--aura-font-size-xs);
}

.chat-hub-card-icon {
    color: var(--aura-accent-color);
    flex: none;
    height: 1.25rem;
    width: 1.25rem;
}

.ai-assistant-icon {
    flex: none;
}

/* Recent chats: force exactly two columns (overrides the grid's responsive
   auto-fit template via the exposed shadow part), collapsing to one column on
   narrow screens. Outer ::part rules win over the component's own shadow part
   styles for normal declarations, so no !important is needed — and an add-on
   shouldn't impose it, leaving apps free to override. */
.chat-hub-recent-grid::part(items) {
    grid-gap: var(--vaadin-gap-s);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 720px) {
    .chat-hub-recent-grid::part(items) {
        grid-template-columns: 1fr;
    }
}

/* History side panel content. */
.chat-hub-history-content {
    box-sizing: border-box;
    padding: var(--vaadin-padding-s);
    gap: var(--vaadin-gap-s);

    .chat-hub-history-title {
        margin: 0;
    }

    .chat-hub-history-empty {
        color: var(--vaadin-text-color-secondary);
        font-size: var(--aura-font-size-s);
    }

    .chat-hub-history-title-group {
        gap: var(--vaadin-gap-m);
    }

    .chat-hub-history-count {
        /* Inherits the shared badge look from the rule below. */
    }

    .chat-hub-history-header-spacer {
        flex: 1 1 auto;
    }

    .chat-hub-history-list {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        gap: var(--vaadin-gap-s);
    }

    .chat-hub-history-group {
        gap: var(--vaadin-gap-s);
        padding: 0 var(--vaadin-padding-xs);
    }

    .chat-hub-history-group-header {
        gap: var(--vaadin-gap-m);
        padding: var(--vaadin-padding-xs) 0;
    }

    .chat-hub-history-bucket {
        color: var(--vaadin-text-color-secondary);
        font-size: var(--aura-font-size-xs);
        font-weight: 600;
    }

    .chat-hub-history-group-count {
        /* Inherits the shared badge look from the rule below. */
    }
}

/* Shared pill-badge look for the panel-header count and per-bucket count.
   Rectangular: horizontal padding gives single and multi-digit counts equal
   breathing room; vertical padding + a slightly relaxed line-height keep the
   text comfortably inside the box (no clipping on tall digits).
   The subtle background uses the same oklch-from-text-colour derivation that
   the timeline CSS already uses for table headers in this add-on. */
.chat-hub-history-count,
.chat-hub-history-group-count {
    align-items: center;
    background: oklch(from var(--vaadin-text-color) l c h / 0.1);
    border-radius: var(--vaadin-radius-s);
    box-sizing: border-box;
    color: var(--vaadin-text-color-secondary);
    display: inline-flex;
    font-size: var(--aura-font-size-xs);
    font-weight: 500;
    justify-content: center;
    line-height: var(--aura-line-height-m);
    padding: 0 var(--vaadin-padding-xs);
}

/* jmix-aura/src/addons/aitools/ai-chat-input-fragment.css */
.ai-chat-input {
    width: 100%;

    .ai-chat-input-bar {
        align-items: flex-end;
        gap: var(--vaadin-gap-s);
    }

    .ai-chat-input-textarea {
        flex: 1 1 auto;
    }
}

/* jmix-aura/src/addons/aitools/ai-timeline-item-renderer.css */
.timeline-row-host {
    .chat-timeline-list::part(items) {
        box-sizing: border-box;
        padding: var(--vaadin-padding-s) var(--vaadin-padding-m) var(--vaadin-padding-l) var(--vaadin-padding-m);
    }

    .timeline-message-row {
        box-sizing: border-box;
        padding: var(--vaadin-padding-s) 0;
        padding-inline-end: var(--vaadin-horizontal-layout-gap, var(--vaadin-gap-s));
        width: 100%;
    }

    .timeline-message-body {
        min-width: 0;
    }

    .timeline-message-header {
        color: var(--vaadin-text-color-secondary);
        font-size: var(--aura-font-size-xs);
        margin-bottom: var(--vaadin-padding-xs);
    }

    .timeline-message-actor {
        color: var(--vaadin-text-color);
        font-weight: 700;
    }

    .timeline-message-time {
        color: var(--vaadin-text-color-secondary);
    }

    .timeline-user-text {
        display: block;
        white-space: pre-wrap;
    }

    .timeline-avatar-container {
        /* Almost equal to Avatar sizes */
        --_size: var(--vaadin-avatar-size, calc(1lh + var(--vaadin-padding-block-container) * 2 + var(--vaadin-focus-ring-width)));
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: calc(var(--_size) + var(--vaadin-gap-xs));
    }

    .timeline-avatar {
        flex: 0 0 auto;
        margin: 0;
    }

    .timeline-avatar-assistant {
        --_size: var(--vaadin-avatar-size, calc(1lh + var(--vaadin-padding-block-container) * 2 + var(--vaadin-focus-ring-width)));
        --_shade: color-mix(in srgb, var(--vaadin-border-color) 20%, transparent);
        height: var(--_size);
        width: var(--_size);
        background: var(--vaadin-avatar-background,
        linear-gradient(light-dark(transparent, var(--_shade)), transparent 50%, light-dark(var(--_shade), transparent)),
        var(--aura-accent-surface));
        border: var(--vaadin-focus-ring-width) solid transparent;
        background-clip: content-box;
        align-items: center;
        border-radius: 50%;
        box-sizing: border-box;
        display: inline-flex;
        justify-content: center;
        background-color: var(--aura-accent-color);
        color: var(--aura-accent-contrast-color);
        position: relative;
    }

    .timeline-avatar-assistant::before {
        position: absolute;
        content: '';
        inset: calc(var(--vaadin-focus-ring-width) * -1);
        border-radius: inherit;
        outline: var(--vaadin-avatar-border-width, 1px) solid var(--vaadin-avatar-border-color, transparent);
        outline-offset: calc((var(--vaadin-focus-ring-width) + var(--vaadin-avatar-border-width, 1px)) * -1);
    }

    /* Markdown output
       ---------------
       Assistant messages can include tables, links, and headings. The rules here
       constrain generated markdown so wide report tables scroll horizontally and
       document-style headings do not overpower the chat timeline. */

    .timeline-markdown {
        box-sizing: border-box;
        display: block;
        line-height: 1.45;
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
        width: 100%;
    }

    .timeline-markdown table {
        border-collapse: separate;
        border-spacing: 0;
        display: block;
        font-size: var(--aura-font-size-s);
        margin: var(--vaadin-gap-m) 0;
        max-width: 100%;
        overflow-x: auto;
        width: 100%;
    }

    .timeline-markdown thead {
        background: oklch(from var(--vaadin-text-color) l c h / 0.05);
    }

    .timeline-markdown th,
    .timeline-markdown td {
        border-bottom: 1px solid oklch(from var(--vaadin-text-color) l c h / 0.1);;
        box-sizing: border-box;
        padding: var(--vaadin-padding-xs) var(--vaadin-padding-s);
        text-align: left;
        vertical-align: top;
        white-space: nowrap;
    }

    .timeline-markdown th {
        color: var(--vaadin-text-color);
        font-weight: 700;
    }

    .timeline-markdown th[align="right"],
    .timeline-markdown td[align="right"] {
        text-align: right;
    }

    .timeline-markdown th:last-child,
    .timeline-markdown td:last-child {
        min-width: 24rem;
        white-space: normal;
    }

    .timeline-markdown a {
        white-space: nowrap;
    }

    .timeline-markdown p:first-child {
        margin-top: 0;
    }

    .timeline-markdown p:last-child {
        margin-bottom: 0;
    }

    /* Dial down the default heading sizes - the LLM uses h2/h3 generously and the
       Lumo defaults are tuned for stand-alone document headings, which looks
       oversized inside the chat bubble. */
    .timeline-markdown h1 {
        font-size: var(--aura-font-size-l);
    }

    .timeline-markdown h2 {
        font-size: var(--aura-font-size-l);
    }

    .timeline-markdown h3 {
        font-size: var(--aura-font-size-m);
    }

    .timeline-markdown h4 {
        font-size: var(--aura-font-size-s);
    }

    /* Thinking indicator
       ------------------
       Replaces the old ProgressBar with text shimmer plus a thin moving bar. Tool
       status lines are appended under the shimmer as deterministic work completes. */
    .timeline-thinking-text {
        background: linear-gradient(90deg,
        oklch(from var(--aura-accent-color) 0.7 0.08 h) 0%,
        oklch(from var(--aura-accent-color) 0.55 0.12 h) 50%,
        oklch(from var(--aura-accent-color) 0.7 0.08 h) 100%);
        background-size: 200% 100%;
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
        -webkit-text-fill-color: transparent;
        display: inline-block;
        font-size: var(--aura-font-size-s);
        font-weight: 500;
        animation: jmix-aitls-timeline-thinking-text-shimmer 2s linear infinite;
    }

    .timeline-thinking-shimmer {
        background-color: oklch(from var(--vaadin-text-color) l c h / 0.02);
        border-radius: var(--vaadin-radius-s);
        height: 2px;
        margin-top: var(--vaadin-gap-xs);
        overflow: hidden;
        position: relative;
        width: 12rem;
        max-width: 100%;
    }

    .timeline-thinking-shimmer::after {
        background: linear-gradient(90deg, transparent 0%, oklch(from var(--aura-accent-color) 0.9 0.05 h) 50%, transparent 100%);
        content: "";
        height: 100%;
        left: 0;
        position: absolute;
        top: 0;
        width: 35%;
        animation: jmix-aitls-timeline-thinking-shimmer 1.2s linear infinite;
    }

    .timeline-thinking-status-list {
        gap: 0.125rem;
        margin-top: var(--vaadin-gap-xs);
    }

    .timeline-thinking-status-item {
        color: var(--vaadin-text-color-secondary);
        font-size: var(--aura-font-size-xs);
        line-height: 1.3;
    }

    .timeline-thinking-status-result {
        opacity: 0.7;
        font-style: italic;
    }
}

@keyframes jmix-aitls-timeline-thinking-text-shimmer {
    0% {
        background-position: 100% 0;
    }
    100% {
        background-position: -100% 0;
    }
}

@keyframes jmix-aitls-timeline-thinking-shimmer {
    0% {
        left: -35%;
    }
    100% {
        left: 100%;
    }
}

/* Respect the user's reduced-motion preference: stop the thinking-indicator
   animations. The shimmer text stays as a static gradient, and the moving bar
   settles into a steady full-width glow instead of a frozen highlight segment. */
@media (prefers-reduced-motion: reduce) {
    .timeline-row-host {
        .timeline-thinking-text {
            animation: none;
        }

        .timeline-thinking-shimmer::after {
            animation: none;
            width: 100%;
        }
    }
}


/* jmix-aura/src/addons/audit/index.css */
/* jmix-aura/src/addons/audit/entity-log-view.css */
.entity-log-view {
    container-type: inline-size;
    container-name: entity-log-view;
}

.entity-log-view jmix-tabsheet.content-root {
    box-sizing: border-box;
}

.entity-log-view jmix-tabsheet.content-root::part(content) {
    padding: var(--vaadin-padding-s) var(--vaadin-padding-m) var(--vaadin-padding-m) var(--vaadin-padding-m);
}

.entity-log-view vaadin-details.filter-layout {
    margin-bottom: 0;
}

.entity-log-view .data-grid-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(42rem, 1fr));
    gap: var(--vaadin-gap-m);
}

.entity-log-view .setup-logged-entity-wrapper {
    flex-direction: column;
}

@container entity-log-view (min-width: 65em) {

    .entity-log-view .setup-logged-entity-wrapper {
        flex-direction: row;
    }

    .entity-log-view .logged-entity-details-wrapper {
        width: 100%;
    }
}

/* jmix-aura/src/addons/audit/misc.css */
.audit-datetime-picker-container {
    display: flex;
    align-items: baseline;
    gap: calc(var(--vaadin-gap-xs) / 2);
}

.audit-datetime-picker-container vaadin-date-picker {
    min-width: 0;
    flex: 1 1 auto;
}

.audit-datetime-picker-container vaadin-time-picker {
    min-width: 0;
    flex: 1 1.65 auto;
}

/* jmix-aura/src/addons/datatools/index.css */
/* jmix-aura/src/addons/datatools/data-model-list-view.css */
.data-model-list-view {
    container-type: inline-size;
    container-name: data-model-list-view;
}

.data-model-list-view .content-wrapper {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: var(--vaadin-gap-s);
}

@container data-model-list-view (max-width: 1280px) {
    .data-model-list-view .content-wrapper {
        grid-template-columns: 1fr 1fr;
    }
}

@container data-model-list-view (max-width: 960px) {
    .data-model-list-view .content-wrapper {
        grid-template-columns: 1fr;
    }
}

/* jmix-aura/src/addons/dynattr/index.css */
/* jmix-aura/src/addons/dynattr/attribute-enumeration-detail-view.css */
.attribute-enumeration-detail-view .values-box {
    flex-grow: 1; width: unset;
}

.attribute-enumeration-detail-view .localization-box {
    flex-grow: 4; width: unset;
}

/* jmix-aura/src/addons/dynattr/category-attributes-detail-view.css */
.category-attributes-detail-view .main-tab-sheet {
    box-sizing: border-box;
}

.category-attributes-detail-view :is(.main-tab-wrapper, .advanced-tab-wrapper) {
    padding-bottom: 0;
}

.category-attributes-detail-view :is(.target-views-box, .script-box) {
    padding-bottom: var(--vaadin-padding-m);
}

.category-attributes-detail-view .suffix-helper-button {
    /* Same value as lable's line-height */
    margin-top: var(--aura-line-height-m);
}

/* jmix-aura/src/addons/dynattr/category-list-view.css */
.category-list-view {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(40rem, 1fr));
}

/* jmix-aura/src/addons/fullcalendar/index.css */
/* jmix-aura/src/addons/fullcalendar/jmix-full-calendar.css */
jmix-full-calendar {
   --fc-small-font-size: var(--aura-font-size-s);
   --fc-page-bg-color: var(--vaadin-background-color);
   --fc-neutral-bg-color: var(--vaadin-background-container);
   --fc-neutral-text-color: var(--vaadin-text-color-secondary);
   --fc-border-color: var(--vaadin-border-color);
   --fc-event-bg-color: var(--aura-accent-color);
   --fc-event-border-color: var(--aura-accent-color);
   --fc-event-text-color: var(--aura-accent-contrast-color);
   --fc-event-selected-overlay-color: var(--aura-accent-surface);
   --fc-list-event-hover-bg-color: var(--vaadin-background-container);

   /* TimeGrid events stack "show more" background-color */
   --fc-more-link-bg-color: var(--vaadin-text-color);
   --fc-more-link-text-color: inherit;                     /* default */
   --fc-event-resizer-thickness: 8px;                      /* default */
   --fc-event-resizer-dot-total-width: 8px;                /* default */
   --fc-event-resizer-dot-border-width: 1px;               /* default */
   --fc-non-business-color: var(--vaadin-background-container);
   --fc-bg-event-color: color-mix(var(--aura-green) 50%, transparent);
   --fc-bg-event-opacity: 0.3;                             /* default */
   --fc-highlight-color: var(--aura-accent-surface);
   --fc-today-bg-color: color-mix(var(--aura-yellow) 10%, transparent);
   --fc-now-indicator-color: var(--aura-red);
}

jmix-full-calendar .fc-event {
    border-radius: var(--vaadin-radius-m);
    padding-left: var(--vaadin-padding-xs);
    padding-right: var(--vaadin-padding-xs);
}

jmix-full-calendar .fc-event:focus-visible {
    border-radius: var(--vaadin-radius-m);
    box-shadow: 0 0 0 var(--vaadin-focus-ring-width, 2px) var(--vaadin-focus-ring-color);
    outline: 0;
}

jmix-full-calendar .fc .fc-highlight {
    background-image: linear-gradient(var(--fc-highlight-color), var(--fc-highlight-color));
    background-repeat: repeat;
    box-shadow: 0 1px 0 0 var(--fc-highlight-color);
}

jmix-full-calendar .fc-more-link:hover {
    background-color: var(--vaadin-text-color-disabled);
}

jmix-full-calendar .fc-daygrid-day-number:focus-visible,
jmix-full-calendar .fc-daygrid-week-number:focus-visible {
    border-radius: var(--vaadin-radius-m);
    box-shadow: 0 0 0 var(--vaadin-focus-ring-width, 2px) var(--vaadin-focus-ring-color);
    outline: 0;
}

jmix-full-calendar .fc-timegrid-event:hover,
jmix-full-calendar .fc-daygrid-block-event:hover {
    cursor: var(--vaadin-clickable-cursor);
    filter: brightness(0.9) contrast(1.2);
}

jmix-full-calendar .fc-daygrid-dot-event.fc-event-mirror,
jmix-full-calendar .fc-daygrid-dot-event:hover {
    cursor: var(--vaadin-clickable-cursor);
    background-color: var(--vaadin-background-container);
}

/* More link in events stack in time slots */
jmix-full-calendar .fc-timegrid-col-events .fc-more-link:hover {
    filter: brightness(0.9) contrast(1.2);
    background-color: var(--fc-more-link-bg-color);
}

jmix-full-calendar .jmix-day-cell-bottom-text {
    padding: var(--vaadin-padding-xs);
}

jmix-full-calendar .fc-daygrid-day.jmix-has-bottom-text {
    position: relative;
}

/* Workaround cause the fixed issue is not really fixed?
   https://github.com/fullcalendar/fullcalendar/issues/5532 */
.fc-more-popover {
    max-height: 95%;
    overflow-y: auto;
}

jmix-full-calendar a:not(:any-link) {
    color: var(--vaadin-text-color);
}

jmix-full-calendar .jmix-day-cell-bottom-text {
    position: absolute;
    bottom: 0;
    right: 0;
}

/* jmix-aura/src/addons/jmxconsole/index.css */
/* jmix-aura/src/addons/jmxconsole/jmix-mbean-operation.css */
.jmix-mbean-operation .jmix-mbean-operation-content {
    padding-bottom: 0;
    padding-top: 0;
}

/* jmix-aura/src/addons/messagetemplates/index.css */
/* jmix-aura/src/addons/messagetemplates/jmix-grapes-js.css */
:root {
    --gjs-primary-color: var(--aura-surface-color);
    --gjs-secondary-color: var(--vaadin-text-color);
    --gjs-tertiary-color: var(--aura-accent-text-color);
    --gjs-quaternary-color: var(--aura-accent-text-color);
}

/* jmix-aura/src/addons/messagetemplates/message-template-block-detail-view.css */
.message-template-block-detail-view .attributes-editor {
    padding: 0;
}

.message-template-block-detail-view .icon-renderer {
    display: flex;
    align-items: center;
    gap: var(--vaadin-gap-s);
}

.message-template-block-detail-view .icon-renderer-icon {
    margin-inline-start: var(--vaadin-padding-s);
}

/* jmix-aura/src/addons/messagetemplates/message-template-detail-view.css */
.message-template-detail-view .main-split {
    gap: var(--vaadin-gap-s);
}


/* jmix-aura/src/addons/pivottable/index.css */
/* jmix-aura/src/addons/pivottable/jmix-pivot-table.css */
jmix-pivot-table {
    .pvtUi {
        color: var(--vaadin-text-color);
    }

    table.pvtTable {
        font-size: var(--aura-font-size-m);
        font-family: var(--aura-font-family);
        font-weight: var(--jmix-pivot-table-font-weight-normal, 400);
        text-align: left;
        border-collapse: collapse;
    }

    table.pvtTable thead tr th,
    table.pvtTable tbody tr th {
        border: 1px solid var(--vaadin-border-color);
        padding: var(--vaadin-padding-s);
    }

    table.pvtTable .pvtColLabel {
        text-align: center;
    }

    table.pvtTable .pvtTotalLabel {
        text-align: right;
    }

    table.pvtTable tbody tr td {
        border: 1px solid var(--vaadin-border-color);
        padding: var(--vaadin-padding-s);
        vertical-align: top;
        text-align: right;
    }

    .pvtVals {
        text-align: center;
        white-space: nowrap;
    }

    .pvtRowOrder,
    .pvtColOrder {
        cursor: pointer;
        width: var(--vaadin-padding-m);
        margin-left: var(--vaadin-padding-s);
        display: inline-block;
    }

    .pvtUiCell,
    .pvtAxisContainer,
    .pvtVals {
        border: 1px solid var(--vaadin-border-color);
        background: var(--vaadin-background-color);
        padding: var(--vaadin-padding-xs);
        min-width: var(--vaadin-padding-l);
        min-height: var(--vaadin-padding-l);
        user-select: none;
        -webkit-user-select: none;
        -moz-user-select: none;
        -khtml-user-select: none;
        -ms-user-select: none;
    }

    .pvtAxisContainer li {
        padding: var(--vaadin-padding-s) var(--vaadin-padding-xs);
        list-style-type: none;
        cursor: move;
    }

    .pvtAxisContainer li.pvtPlaceholder {
        padding: var(--vaadin-padding-xs) var(--vaadin-padding-m);
        -webkit-border-radius: var(--vaadin-radius-m);
        -moz-border-radius: var(--vaadin-radius-m);
        border-radius: var(--vaadin-radius-m);
        border: 1px dashed var(--vaadin-border-color);
    }

    .pvtAxisContainer li span.pvtAttr {
        -webkit-text-size-adjust: 100%;
        padding: 2px var(--vaadin-padding-xs);
        white-space: nowrap;
        -webkit-border-radius: var(--vaadin-radius-m);
        -moz-border-radius: var(--vaadin-radius-m);
        border-radius: var(--vaadin-radius-m);
    }

    .pvtTriangle {
        cursor: pointer;
    }

    .pvtHorizList li {
        display: inline;
    }

    .pvtVertList {
        vertical-align: top;
    }

    .pvtFilterBox {
        z-index: 100;
        width: 18rem;
        position: absolute;
        text-align: center;
        border: 1px solid var(--vaadin-border-color);
    }

    .pvtFilterBox h4 {
        margin: var(--vaadin-padding-m);
    }

    .pvtFilterBox p {
        margin: var(--vaadin-padding-s) auto;
    }

    .pvtFilterBox label {
        font-weight: var(--jmix-pivot-table-font-weight-normal, 400);
    }

    .pvtFilterBox input[type='checkbox'] {
        margin-right: var(--vaadin-padding-s);
        margin-left: var(--vaadin-padding-s);
    }

    .pvtFilterBox input[type='text'] {
        width: 14rem;
    }

    .pvtFilterBox .count {
        color: var(--vaadin-text-color-secondary);
        font-weight: var(--jmix-pivot-table-font-weight-normal, 400);
        margin-left: var(--vaadin-padding-xs);
    }

    .pvtCheckContainer {
        text-align: left;
        font-size: var(--vaadin-padding-m);
        white-space: nowrap;
        overflow-y: scroll;
        width: 100%;
        max-height: 16rem;
        border-top: 1px solid var(--vaadin-border-color);
        border-bottom: 1px solid var(--vaadin-border-color);
    }

    .pvtCheckContainer p {
        margin: var(--vaadin-padding-xs);
    }

    .pvtRendererArea {
        padding: 0px;
    }

    select {
        appearance: none;
        -webkit-appearance: none;
        border-color: transparent;
        box-sizing: border-box;

        padding: var(--vaadin-padding-block-container) var(--vaadin-padding-xl) var(--vaadin-padding-block-container) var(--vaadin-padding-inline-container);

        border: var(--vaadin-input-field-border-width, 1px) solid var(--vaadin-input-field-border-color, var(--vaadin-border-color));
        --_radius: var(--vaadin-input-field-border-radius, var(--vaadin-radius-m));
        border-radius:
            /* See https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius */
                var(--vaadin-input-field-top-start-radius, var(--_radius))
                var(--vaadin-input-field-top-end-radius, var(--_radius))
                var(--vaadin-input-field-bottom-end-radius, var(--_radius))
                var(--vaadin-input-field-bottom-start-radius, var(--_radius));
        background: var(--vaadin-input-field-background, var(--vaadin-background-color));
        color: var(--vaadin-input-field-value-color, var(--vaadin-text-color));

        font-size: var(--vaadin-input-field-value-font-size, inherit);
        font-family: var(--aura-font-family);
        line-height: var(--vaadin-input-field-value-line-height, inherit);
        font-weight: var(--vaadin-input-field-value-font-weight, 400);

        background-image: url('data:image/svg+xml;utf8,<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6.780692 9.39493c-.43905-.393718-1.11414-.356968-1.507858.082082-.393716.43905-.356966 1.114141.082084 1.507858l5.864118 5.381134c.405651.363767 1.020124.363767 1.425775 0l6.000272-5.503229c.43905-.393717.4758-1.068807.082083-1.507857-.393717-.43905-1.068808-.4758-1.507858-.082083l-5.287384 4.863949-5.151232-4.741855z" opacity="0.5"/></svg>');
        background-position: center right;
        background-repeat: no-repeat;
    }

    select:focus-within {
        outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
        outline-offset: calc(var(--vaadin-input-field-border-width, 1px) * -1);
    }

    select:hover {
        background-color: var(--vaadin-background-container);
        background-image: url('data:image/svg+xml;utf8,<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6.780692 9.39493c-.43905-.393718-1.11414-.356968-1.507858.082082-.393716.43905-.356966 1.114141.082084 1.507858l5.864118 5.381134c.405651.363767 1.020124.363767 1.425775 0l6.000272-5.503229c.43905-.393717.4758-1.068807.082083-1.507857-.393717-.43905-1.068808-.4758-1.507858-.082083l-5.287384 4.863949-5.151232-4.741855z" opacity="0.7"/></svg>');
    }

    select:focus {
        outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
    }

    .pvtAttrDropdown {
        margin-top: var(--vaadin-padding-xs);
    }

    th {
        background-color: var(--vaadin-background-container);
    }

    .pvtAttr {
        border: 1px solid var(--vaadin-border-color);
        background-color: var(--vaadin-background-container);
        border-radius: var(--vaadin-radius-m);
        padding: var(--vaadin-padding-xs) var(--vaadin-padding-s) !important;
        font-size: var(--aura-font-size-s) ;
        font-weight: var(--jmix-pivot-table-font-weight-bold, 500);
        font-family: var(--aura-font-family);
        color: var(--aura-accent-text-color);
    }

    .pvtTriangle {
        width: 0px;
        visibility: hidden;
    }

    .pvtTriangle::after {
        font-family: 'Vaadin-Icons';
        color: var(--aura-accent-text-color);
        content: '\e7bc';
        width: 0.3em;
        height: 0.3em;
        position: relative;
        visibility: visible;
    }

    .pvtFilteredAttribute {
        font-style: italic;
    }

    .pvtFilterBox button {
        appearance: none;
        -webkit-appearance: none;
        background: var(--aura-accent-color);
        border: 1px solid var(--vaadin-border-color);
        border-radius: var(--vaadin-radius-m);
        padding: var(--vaadin-padding-xs) var(--vaadin-padding-s);
        color: var(--aura-accent-contrast-color);
        font-size: var(--aura-font-size-m);
        font-weight: var(--jmix-pivot-table-font-normal, 400);
        font-family: var(--aura-font-family);
    }

    .pvtFilterBox button:first-child {
        margin-right: var(--vaadin-padding-s);
        font-family: var(--aura-font-family);
        font-weight: var(--jmix-pivot-table-font-weight-bold, 500);
        border-color: var(--aura-accent-color);
        outline-offset: 4px;
    }

    .pvtFilterBox button:first-child::before {
        font-family: 'Vaadin-Icons';
        content: '\e75B';
        font-weight: var(--jmix-pivot-table-font-normal, 400);
        padding: 0.25em;
    }

    .pvtFilterBox button:last-child {
        background: var(--vaadin-background-container);
        color: var(--aura-accent-text-color);
        font-family: var(--aura-font-family);
        font-weight: var(--jmix-pivot-table-font-weight-bold, 500);
    }

    .pvtFilterBox button:last-child::before {
        font-family: 'Vaadin-Icons';
        content: '\e6f7';
        font-weight: var(--jmix-pivot-table-font-normal, 400);
        padding: 0.25em;
    }

    .pvtFilterBox {
        box-shadow: var(--aura-shadow-m);
        border-radius: var(--vaadin-radius-m);
        background-color: var(--vaadin-background-color);
    }

    .pvtSearch {
        appearance: none;
        -webkit-appearance: none;
        background-color: var(--vaadin-background-container);
        border-radius: var(--vaadin-radius-m);
        border-color: transparent;
        padding: var(--vaadin-padding-xs) var(--vaadin-padding-xl) var(--vaadin-padding-xs) var(--vaadin-padding-s);
        box-sizing: border-box;
        color: var(--vaadin-text-color);
        font-size: var(--aura-font-size-m);
        font-weight: var(--jmix-pivot-table-font-weight-bold, 500);
        font-family: var(--aura-font-family);
        border: 1px solid transparent;
    }

    .pvtSearch {
        margin-bottom: var(--vaadin-padding-s);
    }

    .pvtSearch:hover {
        background-color: var(--vaadin-background-container);
    }

    .pvtSearch:focus {
        box-shadow: 0 0 0 2px var(--aura-accent-color-50pct);
        outline: none;
    }

    th, td {
        font-weight: var(--jmix-pivot-table-font-weight-normal, 400);
    }

    td .pvtTotal {
        font-weight: var(--jmix-pivot-table-font-weight-bold, 500);
    }

    td .pvtGrandTotal {
        font-weight: var(--jmix-pivot-table-font-weight-extra-bold, 700);
    }

    select.pvtAttrDropdown {
        margin-right: var(--vaadin-padding-xs);
    }

    /* Set transparent color to avoid blinking of row and column order original symbol  */
    a.pvtRowOrder, a.pvtColOrder {
        color: #FFFFFF00;
    }

    a.pvtRowOrder::before, a.pvtColOrder::before {
        font-family: 'Vaadin-Icons';
        color: var(--aura-accent-text-color);
    }

    a.pvtRowOrder.key-a-to-z::before {
        content: '\e754';
    }

    a.pvtRowOrder.value-a-to-z::before {
        content: '\e74e';
    }

    a.pvtRowOrder.value-z-to-a::before {
        content: '\e753';
    }

    a.pvtColOrder.key-a-to-z::before {
        content: '\e751';
    }

    a.pvtColOrder.value-a-to-z::before {
        content: '\e752';
    }

    a.pvtColOrder.value-z-to-a::before {
        content: '\e74f';
    }

    a.pvtRowOrder.disabled, a.pvtColOrder.disabled {
        cursor: default;

    }

    a.pvtRowOrder.disabled::before, a.pvtColOrder.disabled::before {
        color: var(--vaadin-text-color-disabled);
    }

    .pvtRenderer {
        min-width: 7em;
        width: 100%;
    }

    span.pvtAttr.disabled .pvtTriangle {
        display: none;
    }

    span.pvtAttr.disabled {
        color: var(--vaadin-text-color-disabled);
        cursor: default;
    }

    li.ui-sortable-handle.disabled {
        cursor:default;
    }
}


/* jmix-aura/src/addons/quartz/index.css */
/* jmix-aura/src/addons/quartz/job-model-list-view.css */
.job-model-list-view vaadin-grid::part(quartz-job-invalid) {
    color: var(--aura-red);
}

/* jmix-aura/src/addons/reports/index.css */
/* jmix-aura/src/addons/reports/misc.css */
.report-field-icon {
    cursor: var(--vaadin-clickable-cursor);
}

.report-wizard-tip-label {
    font-size: var(--aura-font-size-l);
    justify-content: start;
    padding: calc(0.5em + var(--vaadin-radius-l));
}

/* jmix-aura/src/addons/reports/report-detail-view.css */
.help-dialog-json code {
    background-color: transparent;
}

.report-detail-view :is(.flex-layout, .multi-data-set-layout) {
    gap: var(--vaadin-gap-m);
}

.report-detail-view .bands-layout {
    flex-grow: 1;
    flex-basis: 20em;
}

.report-detail-view .bands-details-layout {
    flex-grow: 1;
    flex-basis: 30em;
}

.report-detail-view .data-sets-data-grid-layout {
    flex-grow: 1;
    min-width: 20em;
}

.report-detail-view .data-set-details-layout {
    flex-grow: 2;
    min-width: 15em;
}

.report-detail-view .parameters-layout {
    flex-grow: 1;
    flex-basis: 45em;
}

.report-detail-view .parameters-validate-layout {
    flex-grow: 1;
    flex-basis: 30em;
}

.report-detail-view .roles-layout {
    flex-grow: 1;
    flex-basis: 30em;
}

.report-detail-view .views-layout {
    flex-grow: 1;
    flex-basis: 30em;
}

.report-detail-view .field-label {
    color: var(--vaadin-input-field-label-color, var(--vaadin-text-color));
    font-weight: var(--vaadin-input-field-label-font-weight, 500);
    font-size: var(--vaadin-input-field-label-font-size, inherit);
}

.report-detail-view .llm-editor-block {
    flex: 1 1 0;
}

.report-detail-view .llm-data-set-panel vaadin-badge {
    max-width: 100%;
    height: auto;
    white-space: normal;
    align-items: flex-start;
}

.report-detail-view .llm-query-notes {
    max-height: 8em;
    overflow-y: auto;
}

/* jmix-aura/src/addons/reports/report-region-wizard-detail-view.css */
.report-region-wizard-detail-view .actions-panel {
    gap: var(--vaadin-gap-xs);
}

/* jmix-aura/src/addons/reports/report-template-detail-view.css */
.report-template-detail-view .template-form {
    max-width: 40em;
}

.report-template-detail-view .code-editor-box {
    margin-top: var(--vaadin-padding-s);
    margin-bottom: var(--vaadin-padding-s);
}

.report-template-detail-view .code-editor-box jmix-code-editor[has-label] {
    padding: 0;
}

/* jmix-aura/src/addons/reports/report-wizard-creator-view.css */
.report-wizard-creator-view .footer-buttons-panel {
    margin-top: var(--vaadin-padding-m);
}

/* jmix-aura/src/addons/reports/table-edit-fragment.css */
.table-edit-fragment {
    max-width: 40em;
}

.table-edit-fragment .data-grids-box {
    max-width: 40em;
    gap: var(--vaadin-gap-m);
}

.table-edit-fragment .band-box {
    min-width: 15em;
}

/* jmix-aura/src/addons/search/index.css */
/* jmix-aura/src/addons/search/jmix-full-text-filter.css */
.jmix-full-text-filter {
    gap: var(--vaadin-gap-s);
}

/* jmix-aura/src/addons/search/jmix-search-field.css */
.jmix-search-field-actions-container {
    gap: var(--vaadin-gap-xs);
}

/* jmix-aura/src/addons/search/search-results-view.css */
.search-results-view .search-result-renderer {
    margin-top: var(--vaadin-space-l);
    gap: var(--vaadin-gap-s);
}

.search-results-view .search-result-renderer-hit-layout {
    gap: var(--vaadin-gap-xs);
}

/* jmix-aura/src/addons/security/index.css */
/* jmix-aura/src/addons/security/change-password-view.css */
.force-change-password-view .dialog-close-button {
    display: none;
}

/* jmix-aura/src/addons/security/reset-password-view.css */
.reset-password-view .sub-label {
    color: var(--vaadin-text-color-secondary);
    font-size: var(--aura-font-size-s);
}

.reset-password-view .warning-message {
    margin-top: var(--vaadin-padding-l);
}

.reset-password-view .required-change-checkbox {
    margin-top: var(--vaadin-padding-m);
}

.reset-password-view vaadin-password-field[readonly][class~='reset-password-field']::part(input-field) {
    --vaadin-input-field-border-color: transparent;
}

.reset-password-view vaadin-password-field[readonly][class~='reset-password-field']::part(reveal-button) {
    color: var(--vaadin-text-color);
}

vaadin-button.copy-button {
    --vaadin-button-text-color: var(--vaadin-text-color);

    --vaadin-button-background: transparent;
    --vaadin-button-border-color: transparent;
    --vaadin-button-shadow: none;
}

vaadin-button.copy-button-copied {
    --vaadin-button-text-color: var(--aura-green);
}

/* jmix-aura/src/addons/security/role-assignment-view.css */
.role-assignment-view {
    container-type: inline-size;
    container-name: role-assignment-view;
}

.role-assignment-view .content-wrapper {
    flex-direction: column;

    overflow: auto;
    gap: var(--vaadin-gap-m);
    padding: var(--vaadin-padding-m);
}

@container role-assignment-view (min-width: 60em) {
    .role-assignment-view .content-wrapper {
        flex-direction: row;
    }
}

/* jmix-aura/src/addons/security/substitute-user-view.css */
.substitute-user-view .user-filter {
    box-sizing: border-box;
    padding: var(--vaadin-padding-m) var(--vaadin-padding-m) 0;
}


/* Premium */

/* jmix-aura/src/addons/aichat/index.css */
/* shared/src/addons/aichat/ai-chat.css */
.jmix-ai-chat {
  display: flex;
  flex-direction: column;
  gap: var(--vaadin-gap-m);
  height: 100%;
  box-sizing: border-box;
  --jmix-ai-message-list-max-width: var(--jmix-ai-chat-max-width, 768px);
  --jmix-ai-message-input-max-width: var(--jmix-ai-chat-max-width, 768px);
}

.jmix-ai-chat jmix-ai-message-list {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

.jmix-ai-chat .jmix-ai-chat-empty-header,
.jmix-ai-chat .jmix-ai-chat-empty-footer {
  width: 100%;
  max-width: var(--jmix-ai-message-input-max-width, 768px);
  margin-inline: auto;
}

.jmix-ai-chat[empty] {
  justify-content: center;
}

.jmix-ai-chat[empty] jmix-ai-message-list {
  display: none;
}

.jmix-ai-chat[empty]:not([theme~='input-header-component-always-visible']) jmix-ai-message-input::part(header) {
  display: none;
}

.jmix-ai-chat[empty]:not([theme~='input-footer-component-always-visible']) jmix-ai-message-input::part(footer) {
  display: none;
}

.jmix-ai-chat:not([empty]) .jmix-ai-chat-empty-header,
.jmix-ai-chat:not([empty]) .jmix-ai-chat-empty-footer {
  display: none;
}

.jmix-ai-chat .screen-reader-only {
  border-width: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* shared/src/addons/aichat/ai-message-actions.css */
:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font: inherit;
  padding: var(--jmix-ai-message-action-padding, var(--vaadin-padding-s));
  border: none;
  border-radius: var(--jmix-ai-message-action-border-radius, var(--vaadin-radius-m));
  background: transparent;
  color: var(--vaadin-text-color-secondary);
  cursor: pointer;
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action:hover {
  background: var(--vaadin-background-container);
  color: var(--vaadin-text-color);
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action:focus-visible {
  outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action :is(vaadin-icon, img),
:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-copy::before,
:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-copy::after,
:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-regenerate::before {
  width: var(--jmix-ai-message-action-icon-size, var(--_jmix-ai-message-action-icon-size-default, 1.125em));
  height: var(--jmix-ai-message-action-icon-size, var(--_jmix-ai-message-action-icon-size-default, 1.125em));
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action vaadin-icon[icon-class~='jmix-font-icon'] {
  --vaadin-icon-visual-size: var(--jmix-ai-message-action-icon-size, var(--_jmix-ai-message-action-icon-size-default, 1.125em));
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action vaadin-icon[icon-class~='jmix-font-icon-lumo'] {
  --vaadin-icon-visual-size: calc(1.5 * var(--jmix-ai-message-action-icon-size, var(--_jmix-ai-message-action-icon-size-default, 1.125em)));
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-copy {
  display: inline-grid;
  place-items: center;
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-copy::before {
  content: '';
  grid-area: 1 / 1;
  background: currentColor;
  -webkit-mask: var(--jmix-ai-message-icon-copy) center / contain no-repeat;
  mask: var(--jmix-ai-message-icon-copy) center / contain no-repeat;
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-copy::after {
  content: '';
  grid-area: 1 / 1;
  background: var(--jmix-ai-message-success-color, var(--_jmix-ai-message-success-color-default, light-dark(#2e7d32, #66bb6a)));
  -webkit-mask: var(--jmix-ai-message-icon-check) center / contain no-repeat;
  mask: var(--jmix-ai-message-icon-check) center / contain no-repeat;
  opacity: 0;
  transform: scale(0.4);
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > [copied].jmix-ai-message-action-copy::before {
  opacity: 0;
  transform: scale(0.5);
  transition:
    opacity 120ms ease,
    transform 120ms ease;
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > [copied].jmix-ai-message-action-copy::after {
  opacity: 1;
  transform: scale(1);
  transition:
    opacity 100ms ease 50ms,
    transform 220ms cubic-bezier(0.34, 1.56, 0.64, 1) 50ms;
}

@media (prefers-reduced-motion: reduce) {
  :where(jmix-ai-user-message, jmix-ai-assistant-message) > [copied].jmix-ai-message-action-copy::before,
  :where(jmix-ai-user-message, jmix-ai-assistant-message) > [copied].jmix-ai-message-action-copy::after {
    transition: none;
  }
}

:where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-regenerate::before {
  content: '';
  display: block;
  background: currentColor;
  -webkit-mask: var(--jmix-ai-message-icon-regenerate) center / contain no-repeat;
  mask: var(--jmix-ai-message-icon-regenerate) center / contain no-repeat;
}

@media (forced-colors: active) {
  :where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action:focus-visible {
    outline: 2px solid;
  }

  :where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-copy::before,
  :where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-copy::after,
  :where(jmix-ai-user-message, jmix-ai-assistant-message) > .jmix-ai-message-action-regenerate::before {
    forced-color-adjust: none;
    background: ButtonText;
  }
}

/* jmix-aura/src/addons/aichat/ai-code-block.css */
:where(:root) {
  --_jmix-ai-code-block-color-success-default: var(--aura-green);
  --_jmix-ai-code-block-action-icon-size-default: var(--aura-font-size-l);
}

/* jmix-aura/src/addons/aichat/ai-markdown.css */
:is(jmix-ai-markdown) {
  --_jmix-ai-markdown-link-color-default: var(--aura-accent-text-color);
}

/* jmix-aura/src/addons/aichat/ai-message.css */
:is(jmix-ai-user-message, jmix-ai-assistant-message) {
  --_jmix-ai-message-success-color-default: var(--aura-green);
  --_jmix-ai-message-action-icon-size-default: var(--aura-font-size-l);
}

/* jmix-aura/src/addons/aichat/ai-message-input.css */
:is(jmix-ai-message-input) {
  /* Copied from Vaadin to get the same color as other inputs */
  --aura-surface-opacity: 0.5;
  --_up: clamp(0, var(--aura-surface-level), 4);
  --_down: clamp(0, calc(var(--aura-surface-level) * -1), 4);
  --_u: calc(var(--_up) / 4);
  --_e-light: clamp(0, calc(var(--_u) * 4 - var(--_u) * 8 * var(--_u) + var(--_u) * 6.5 * var(--_u) * var(--_u)), 1);
  --_e-dark: calc(var(--_down) / 20);
  --aura-surface-color-solid: light-dark(oklch(from var(--aura-background-color-light) clamp(0, calc(l + (1 - l) * var(--_e-light) - l * var(--_e-dark)), 1) clamp(0, calc(c * (1 - 0.5 * var(--_e-light) - 0.15 * var(--aura-surface-level)) * (1 - 0.35 * var(--_e-dark))), 0.4) h), oklch(from var(--aura-background-color-dark) calc(max(0.03, l) + 0.03 * var(--aura-surface-level) + max(0, 0.2 - max(0.03, l)) * (1.1 - 0.06 * var(--aura-surface-level))) clamp(0, c * (1 + l), 0.2) h));
  --aura-surface-color: color-mix(in oklab, var(--aura-surface-color-solid) calc(100% * var(--aura-surface-opacity)), transparent);
  --vaadin-background-color: var(--aura-surface-color-solid);
}

:is(jmix-ai-message-input) {
  --aura-surface-level: 4;
  --aura-surface-opacity: 0.7;
}

:is(jmix-ai-message-input)::part(input-container) {
  background: var(--jmix-ai-message-input-background, var(--aura-surface-color));
  background-clip: padding-box;
}

:is(jmix-ai-message-input):not([disabled])::part(input-container) {
  box-shadow: var(--aura-shadow-xs);
}

:is(jmix-ai-message-input)[disabled]::part(input-container) {
  background: var(--vaadin-background-container);
}

:is(jmix-ai-message-input) > vaadin-text-area::part(input-field) {
  background: var(--vaadin-input-field-background, transparent);
}

:is(jmix-ai-message-input)[disabled] > vaadin-text-area::part(input-field) {
  background: transparent;
}

:is(jmix-ai-message-input):not([disabled]) > vaadin-text-area::part(input-field) {
  box-shadow: none;
}

:is(jmix-ai-message-input-button) {
  --vaadin-button-background: var(--aura-accent-color);
  --vaadin-button-text-color: var(--aura-accent-contrast-color);
  position: relative;
  box-shadow: var(--aura-shadow-s);
  transition: scale 180ms;
}

:is(jmix-ai-message-input-button)::after {
  content: '';
  position: absolute;
  inset: calc(var(--vaadin-button-border-width, 1px) * -1);
  pointer-events: none;
  border-radius: inherit;
  background-color: var(--vaadin-button-text-color);
  opacity: 0;
  transition:
          opacity 100ms,
          background-color 100ms;
}

@supports (color: hsl(0 0 0)) {
  :is(jmix-ai-message-input-button)::after {
    background-color: oklch(from var(--vaadin-button-text-color) calc(l + 0.4 - c) c h / calc(1 - l / 2));
  }
}

@media (any-hover: hover) {
  :is(jmix-ai-message-input-button):hover:not([disabled], [active])::after {
    opacity: 0.12;
  }
}

@media (min-resolution: 2x) {
  /* prettier-ignore */
  :is(jmix-ai-message-input-button)[active]:not([disabled]) {
    scale: 0.98;
    transition-duration: 50ms;
  }
}

:is(jmix-ai-message-input-button)[active]:not([disabled]) {
  box-shadow: none;
}

:is(jmix-ai-message-input-button)[active]:not([disabled])::after {
  transition-duration: 0s;
  opacity: 0.16;
  background: oklch(from var(--vaadin-button-text-color) min(c, 1 - l + c) calc(c * 0.9) h);
}

/* jmix-aura/src/addons/aichat/ai-upload-trigger.css */
:is(jmix-ai-upload-trigger) {
  position: relative;
  transition: scale 180ms;
  outline-offset: calc(var(--vaadin-button-border-width, 1px) * -1);
}

:is(jmix-ai-upload-trigger):where(:not([theme~='menu-item'])) {
  color: var(--vaadin-button-text-color, var(--aura-accent-text-color));
  border-color: var(--vaadin-button-border-color, var(--aura-accent-border-color));
  box-shadow: var(--vaadin-button-shadow, var(--aura-shadow-xs));

  /* Copied from Vaadin to get the same elevated surface as a stock button */
  --aura-surface-level: 4;
  --aura-surface-opacity: 0.5;
  --_up: clamp(0, var(--aura-surface-level), 4);
  --_down: clamp(0, calc(var(--aura-surface-level) * -1), 4);
  --_u: calc(var(--_up) / 4);
  --_e-light: clamp(0, calc(var(--_u) * 4 - var(--_u) * 8 * var(--_u) + var(--_u) * 6.5 * var(--_u) * var(--_u)), 1);
  --_e-dark: calc(var(--_down) / 20);
  --aura-surface-color-solid: light-dark(oklch(from var(--aura-background-color-light) clamp(0, calc(l + (1 - l) * var(--_e-light) - l * var(--_e-dark)), 1) clamp(0, calc(c * (1 - 0.5 * var(--_e-light) - 0.15 * var(--aura-surface-level)) * (1 - 0.35 * var(--_e-dark))), 0.4) h), oklch(from var(--aura-background-color-dark) calc(max(0.03, l) + 0.03 * var(--aura-surface-level) + max(0, 0.2 - max(0.03, l)) * (1.1 - 0.06 * var(--aura-surface-level))) clamp(0, c * (1 + l), 0.2) h));
  --aura-surface-color: color-mix(in oklab, var(--aura-surface-color-solid) calc(100% * var(--aura-surface-opacity)), transparent);
  background: var(--vaadin-button-background, var(--aura-surface-color) padding-box);
}

:is(jmix-ai-upload-trigger):where(:not([theme~='menu-item'])):has([slot='prefix']) {
  padding-inline-end: 0.75rem;
}

:is(jmix-ai-upload-trigger):not([disabled])::before {
  content: '';
  position: absolute;
  inset: calc(var(--vaadin-button-border-width, 1px) * -1);
  pointer-events: none;
  border-radius: inherit;
  background-color: currentColor;
  opacity: 0;
  transition:
    opacity 100ms,
    background-color 100ms;
}

@supports (color: hsl(0 0 0)) {
  :is(jmix-ai-upload-trigger):not([disabled])::before {
    background-color: oklch(from currentColor calc(l + 0.4 - c) c h / calc(1 - l / 2));
  }
}

@media (any-hover: hover) {
  :is(jmix-ai-upload-trigger):where(:not([theme~='menu-item'])):hover:not([disabled], [active])::before {
    opacity: 0.03;
  }
}

@media (min-resolution: 2x) {
  /* prettier-ignore */
  :is(jmix-ai-upload-trigger):where(:not([theme~='menu-item']))[active]:not([disabled]) {
    scale: 0.98;
    transition-duration: 50ms;
  }
}

:is(jmix-ai-upload-trigger)[active]:not([disabled]) {
  box-shadow: none;
}

:is(jmix-ai-upload-trigger):where(:not([theme~='menu-item']))[active]:not([disabled])::before {
  transition-duration: 0s;
  opacity: 0.08;
  background: oklch(from currentColor min(c, 1 - l + c) calc(c * 0.9) h);
}

/* jmix-aura/src/addons/aichat/ai-message-list.css */
:is(jmix-ai-message-list)::part(error) {
  background: var(--aura-surface-color);
  --aura-surface-level: 4;
  --aura-surface-opacity: 0.7;
}

:is(jmix-ai-message-list)::part(error-icon) {
  background: var(--aura-red);
}

:is(jmix-ai-message-list)::part(retry-button) {
  position: relative;
  box-shadow: var(--vaadin-button-shadow);
  outline-offset: calc(var(--vaadin-button-border-width, 1px) * -1);
  transition: scale 180ms;
}

:is(jmix-ai-message-list)::part(retry-button)::before {
  content: '';
  position: absolute;
  inset: calc(var(--vaadin-button-border-width, 1px) * -1);
  pointer-events: none;
  border-radius: inherit;
  background-color: currentColor;
  opacity: 0;
  transition:
          opacity 100ms,
          background-color 100ms;
}

@supports (color: hsl(0 0 0)) {
  :is(jmix-ai-message-list)::part(retry-button)::before {
    background-color: oklch(from currentColor calc(l + 0.4 - c) c h / calc(1 - l / 2));
  }
}

@media (any-hover: hover) {
  :is(jmix-ai-message-list)::part(retry-button):hover::before {
    opacity: 0.03;
  }
}

@media (min-resolution: 2x) {
  /* prettier-ignore */
  :is(jmix-ai-message-list)::part(retry-button):active {
    scale: 0.98;
    transition-duration: 50ms;
  }
}

:is(jmix-ai-message-list)::part(retry-button):active {
  box-shadow: none;
}

:is(jmix-ai-message-list)::part(retry-button):active::before {
  transition-duration: 0s;
  opacity: 0.08;
  background: oklch(from currentColor min(c, 1 - l + c) calc(c * 0.9) h);
}

:is(jmix-ai-message-list)::part(scroll-to-bottom-button) {
  box-shadow: var(--aura-shadow-s);
  outline-offset: calc(var(--vaadin-button-border-width, 1px) * -1);
}

/* jmix-aura/src/addons/bpm/index.css */
/* jmix-aura/src/addons/bpm/bpmn-modeler-view.css */
.bpmn-modeler-view .schema-source-type {
    font-weight: 700;
    font-size: var(--aura-font-size-m);
    margin-inline-end: var(--vaadin-gap-s);
}

.bpmn-modeler-view .schema-source-name {
    font-size: var(--aura-font-size-m);
}

.bpmn-modeler-view .properties-container {
    overflow: auto;
}

.bpmn-modeler-view vaadin-details[theme~="no-padding"] vaadin-details-summary {
    padding-inline-start: 0;
}

.bpmn-modeler-view .bpm-modeler-bpmn-panel {
    margin-inline-end: var(--vaadin-gap-s);
}

.bpmn-modeler-view jmix-bpmn-modeler {
    border-radius: var(--vaadin-radius-m);
}

/*
 * The canvas SVG is focusable and draws the native browser focus outline.
 * The modeler renders its own focus-ring, so the native should be hidden.
 */
jmix-bpmn-modeler .djs-container svg:focus {
    outline: none;
}

.bpm-modeler-properties-panel {
    --aura-base-size: 12;
    --aura-base-font-size: 13;
}

/* jmix-aura/src/addons/bpm/bpmn-viewer-fragment.css */
.bpmn-viewer-fragment {
    padding: var(--vaadin-padding-s);
    border: 1px solid var(--vaadin-border-color-secondary);
    border-radius: var(--vaadin-radius-m);
}

.bpmn-viewer-fragment .fit-schema-button vaadin-icon {
    transform: rotate(45deg);
}

/*
 * The bpmn-js viewer canvas SVG is focusable and draws the native browser focus
 * outline; the viewer has no custom focus-ring, so the native one is hidden.
 */
jmix-bpmn-viewer .djs-container svg:focus {
    outline: none;
}

/* jmix-aura/src/addons/bpm/entity-data-task-properties-fragment.css */
.entity-data-task-properties-fragment :is(.entity-attributes, .jpql-parameters) {
    margin-top: var(--vaadin-gap-m);
}

/* jmix-aura/src/addons/bpm/form-outcome-detail-view.css */
.form-outcome-detail-view .icon-renderer-icon {
    padding: var(--vaadin-padding-xs);
}

/* jmix-aura/src/addons/bpm/misc.css */
.bpm-bean-method-parameters-box {
    margin-top: var(--vaadin-gap-m);
    gap: var(--vaadin-gap-xs);
}

.bpm-bean-method-parameters-box .parameter-field {
    flex: 1 1 0;
}

.bpm-refresh-clockwise {
    animation: bpm-refresh-clockwise-animation 1s linear infinite;
    color: var(--aura-accent-color);
}

@keyframes bpm-refresh-clockwise-animation {
    0% { transform: rotate(0deg) scale(-1, 1); }
    100% { transform: rotate(360deg) scale(-1, 1); }
}

/* jmix-aura/src/addons/bpm/notification-edit.css */
.notification-edit .body-header {
    margin-bottom: 0;
}

.notification-edit .form-scroller {
    padding: 0 var(--vaadin-padding-xs) var(--vaadin-padding-xs) var(--vaadin-padding-xs);
}

.notification-edit .actions-panel {
    padding: 0 var(--vaadin-padding-xs);
}

/* jmix-aura/src/addons/bpm/process-draft-list-view.css */
.process-draft-list-view,
.process-draft-lookup-view {
    vaadin-combo-box.hidden-toggle-button::part(toggle-button) {
        display: none;
    }

    .content-storages-data-grid {
        margin-inline-end: var(--vaadin-gap-s);
    }

    .bpmn-viewer-fragment {
        margin-inline-start: var(--vaadin-gap-s);
    }
}

/* jmix-aura/src/addons/bpm/process-instance-detail-view.css */
html {
    --jmix-bpm-running-activity-color: rgba(194, 213, 237, 0.9);
    --jmix-bpm-history-activity-color: rgba(162, 224, 172, 0.45);
}

.process-instance-detail-view .tree-toggle-container {
    display:flex;
    align-items:center;
}

.process-instance-detail-view .top-panel {
    gap: var(--vaadin-gap-s);
}

.process-instance-detail-view :is(.runtime-tabsheet, .history-tabsheet) {
    box-sizing: border-box;
}

/* jmix-aura/src/addons/bpm/send-email-task-properties-fragment.css */
.send-email-task-properties-fragment .email-attachments {
    margin-top: var(--vaadin-gap-m);
}

/* jmix-aura/src/addons/bpm/service-task-properties-fragment.css */
.service-task-properties-fragment .fields-box {
    margin-top: var(--vaadin-gap-m);
}


/* jmix-aura/src/addons/dynmodel/index.css */
/* jmix-aura/src/addons/dynmodel/dynmod-settings-view.css */
.dynmod-settings-view .editor-mode-renderer {
    display: flex;
    align-items: center;
    gap: var(--vaadin-gap-s);
    justify-content: center;
}

.dynmod-settings-view .dynmod-attribute-features {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--vaadin-gap-xs);
    align-items: center;
    overflow: hidden;
}

/* Badges keep their own width and stay on one line, so a row never grows past the standard height. */
.dynmod-settings-view .dynmod-attribute-features > * {
    flex: 0 0 auto;
    white-space: nowrap;
}

.dynmod-settings-view {
    container-type: inline-size;
    container-name: dynmod-settings-view;
}

.dynmod-settings-view .header-box {
    align-items: end;
    flex-wrap: wrap-reverse;
    gap: var(--vaadin-gap-s);
    width: 100%;
}

/* The buttons stay next to the fields before them, and the editor mode switch goes to the end. */
.dynmod-settings-view .header-box .tab-list {
    margin-inline-start: auto;
}

.dynmod-settings-view .entities-layout {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: var(--vaadin-gap-s);
}

@container dynmod-settings-view (max-width: 1280px) {
    .dynmod-settings-view .entities-layout {
        grid-template-columns: 1fr 1fr;
    }
}

@container dynmod-settings-view (max-width: 1024px) {
    .dynmod-settings-view .entities-layout {
        grid-template-columns: 1fr;
    }
}

@container dynmod-settings-view (max-width: 640px) {
    .dynmod-settings-view .header-box {
        flex-direction: column-reverse;
        align-items: start;
    }

    .dynmod-settings-view .header-box .tab-list {
        align-self: stretch;
        margin-inline-start: 0;
    }
}

.dynamic-view-handler-model-detail-view .component-id-renderer {
    gap: var(--vaadin-gap-xs);
}

.dynamic-view-handler-model-detail-view .component-id-renderer-tag {
    color: var(--vaadin-text-color-secondary);
}

/* jmix-aura/src/addons/dynmodel/dynmod-settings-history-view.css */
.dynmod-settings-history-view {
    container-type: inline-size;
    container-name: dynmod-settings-history-view;
}

.dynmod-settings-history-view .history-layout {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: var(--vaadin-gap-s);
}

@container dynmod-settings-history-view (max-width: 1280px) {
    .dynmod-settings-history-view .history-layout {
        grid-template-columns: 1fr 1fr;
    }
}

/* On a narrow screen the code editor goes below the data grid. */
@container dynmod-settings-history-view (max-width: 1024px) {
    .dynmod-settings-history-view .history-layout {
        grid-template-columns: 1fr;
    }
}

/* jmix-aura/src/addons/dynmodel/dynmod-ai-builder.css */
.dynmod-ai-builder {
    min-width: 0;
    min-height: 0;
    /* The agent's own finding palette: next to each other the theme red, orange and yellow blend or glare.
       The hues are far apart and muted; the text stays neutral, and the stripe, the icon and a faint tint
       show the severity. */
    --dmagent-finding-error: light-dark(oklch(0.56 0.15 25), oklch(0.72 0.13 25));
    --dmagent-finding-warning: light-dark(oklch(0.74 0.13 75), oklch(0.8 0.12 80));
}

.dynmod-ai-builder .chat-pane {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}

.dynmod-ai-builder .chat-pane .jmix-ai-chat {
    min-height: 0;
}

.dynmod-ai-builder .chat-pane .jmix-ai-chat[empty] {
    justify-content: flex-end;
}

.dynmod-ai-builder .chat-pane .jmix-ai-chat[empty] .jmix-ai-chat-empty-header {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow-y: auto;
    justify-content: safe center;
}

.dynmod-ai-builder .chat-pane jmix-ai-message-input {
    box-sizing: border-box;
    padding: 0 var(--vaadin-padding-m) var(--vaadin-padding-m);
}

/* AI Chat sets the text area border width to a unitless 0, which the Vaadin baseline box cannot subtract in
   calc(): the box stays as an empty row above the text and the placeholder. The composer is aligned with
   nothing, so the box is dropped until AI Chat uses 0px. */
.dynmod-ai-builder .chat-pane jmix-ai-message-input > vaadin-text-area::before {
    display: none;
}

/* Progress follows the question it answers: AI Chat keeps an empty reply and its own, unused status list
   above the thinking indicator while the reply is generated. */
.dynmod-ai-builder .chat-pane jmix-ai-assistant-message[message-state='generating']:not([has-message]) {
    display: none;
}

.dynmod-ai-builder .chat-pane jmix-ai-message-list::part(thinking-status-list) {
    display: none;
}

.dynmod-ai-builder .chat-empty {
    flex-shrink: 0;
    gap: var(--vaadin-gap-s);
    padding: 0 var(--vaadin-padding-m) var(--vaadin-padding-m);
    text-align: center;
}

.dynmod-ai-builder .chat-empty-icon {
    color: var(--aura-accent-color);
    width: 2rem;
    height: 2rem;
    opacity: 0.6;
}

.dynmod-ai-builder .chat-empty-text {
    color: var(--vaadin-text-color-secondary);
    font-size: var(--aura-font-size-s);
    max-width: 28em;
}

.dynmod-ai-builder .chat-empty-examples {
    justify-content: center;
    gap: var(--vaadin-gap-xs);
}

.dynmod-ai-builder vaadin-button.example-chip {
    --vaadin-button-tertiary-background: var(--aura-accent-surface);
    color: var(--aura-accent-text-color);
    border-radius: 2rem;
    padding: 0 var(--vaadin-padding-m);
}

.dynmod-ai-builder .draft-panel {
    flex: 0 0 30em;
    width: 30em;
    height: 100%;
    min-width: 0;
    min-height: 0;
    box-sizing: border-box;
}

.dynmod-ai-builder .draft-header {
    flex-shrink: 0;
    gap: var(--vaadin-gap-s);
    padding: var(--vaadin-padding-s) var(--vaadin-padding-m);
    box-sizing: border-box;
    flex-wrap: nowrap;
    align-items: center;
}

.dynmod-ai-builder .draft-title {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dynmod-ai-builder .draft-body {
    min-height: 0;
    padding: var(--vaadin-padding-s) var(--vaadin-padding-m);
    overflow-y: auto;
    box-sizing: border-box;
}

.dynmod-ai-builder .card {
    background: var(--vaadin-background-color);
    border: 1px solid var(--vaadin-border-color);
    border-radius: var(--vaadin-radius-m);
    padding: var(--vaadin-padding-s) var(--vaadin-padding-m);
    box-sizing: border-box;
}

.dynmod-ai-builder .card-caption {
    margin: 0 0 var(--vaadin-gap-xs);
    color: var(--vaadin-text-color-secondary);
    font-size: var(--aura-font-size-xs);
    font-weight: 600;
}

.dynmod-ai-builder .plan-item {
    display: block;
    position: relative;
    padding: 0.22em 0 0.22em 1.1em;
    color: var(--vaadin-text-color);
    font-size: var(--aura-font-size-s);
    overflow-wrap: anywhere;
}

.dynmod-ai-builder .plan-item::before {
    content: '';
    position: absolute;
    inset-inline-start: 0.05em;
    top: 0.72em;
    width: 0.32em;
    height: 0.32em;
    border-radius: 50%;
    background: var(--aura-accent-color);
}

.dynmod-ai-builder .plan-minor {
    color: var(--vaadin-text-color-secondary);
    font-size: var(--aura-font-size-xs);
}

.dynmod-ai-builder .plan-minor::before {
    background: var(--vaadin-border-color);
}

.dynmod-ai-builder .finding {
    display: block;
    padding: 0.2em 0;
    font-size: var(--aura-font-size-s);
    overflow-wrap: anywhere;
}

.dynmod-ai-builder .finding-blocking {
    --dmagent-finding-accent: var(--dmagent-finding-error);
}

.dynmod-ai-builder .finding-advisory {
    --dmagent-finding-accent: var(--dmagent-finding-warning);
}

.dynmod-ai-builder .finding-ok {
    color: var(--aura-green);
}

.dynmod-ai-builder .fix-button {
    flex-shrink: 0;
    font-size: var(--aura-font-size-xs);
}

.dynmod-ai-builder .note-title {
    display: block;
    margin-bottom: 0.25em;
    font-weight: 600;
}

.dynmod-ai-builder .note-text {
    display: block;
    color: var(--vaadin-text-color);
    font-size: var(--aura-font-size-s);
}

.dynmod-ai-builder vaadin-details.card-details {
    background: var(--vaadin-background-color);
    border: 1px solid var(--vaadin-border-color);
    border-radius: var(--vaadin-radius-m);
    padding: 0 var(--vaadin-padding-s);
    box-sizing: border-box;
}

.dynmod-ai-builder .step-row {
    display: block;
    padding: 0.2em 0;
    font-size: var(--aura-font-size-s);
    overflow-wrap: anywhere;
}

.dynmod-ai-builder .actions {
    flex-shrink: 0;
    padding: var(--vaadin-padding-s) var(--vaadin-padding-m) var(--vaadin-padding-m);
    box-sizing: border-box;
}

@container dynmod-settings-view (max-width: 60rem) {
    .dynmod-ai-builder {
        flex-direction: column;
    }

    .dynmod-ai-builder .chat-pane {
        flex: 1 1 55%;
        width: 100%;
        height: auto;
        border-inline-end: none;
    }

    .dynmod-ai-builder .draft-panel {
        border-inline-start: none;
        border-block-start: 1px solid var(--vaadin-border-color);
        flex: 1 1 45%;
        width: 100%;
        height: auto;
    }
}
/* Builder-local presentation; shared AiChat styles are intentionally unchanged. */
.dynmod-ai-builder .dmagent-activity-summary { --dmagent-activity-link-color: var(--aura-accent-text-color, var(--aura-accent-color)); }
.dynmod-ai-builder .conversation-header { flex: 0 0 auto; padding-inline: 1rem; }
.dynmod-ai-builder .draft-panel { background: var(--vaadin-background-color); }
.dynmod-ai-builder .draft-header > :not(.draft-title) { flex-shrink: 0; }
.dynmod-ai-builder .draft-title { flex: 1 1 0; white-space: normal; overflow-wrap: anywhere; font-size: 1rem; }
.dynmod-ai-builder .step-row { padding-block: .5rem; line-height: 1.5; border-bottom: 1px solid var(--vaadin-border-color); }
.dynmod-ai-builder .step-properties { color: var(--vaadin-text-color-secondary); font-size: .875em; }
.dynmod-ai-builder .card-details::part(content) { padding-inline: 0; }
.dynmod-ai-builder .finding-row { border-inline-start: 3px solid var(--dmagent-finding-accent); border-start-end-radius: var(--vaadin-radius-m, 6px); border-end-end-radius: var(--vaadin-radius-m, 6px); background: color-mix(in oklab, var(--dmagent-finding-accent) 8%, transparent); color: var(--vaadin-text-color); padding: .5rem .65rem; margin-block: .35rem; align-items: flex-start; gap: var(--vaadin-gap-s); }
.dynmod-ai-builder .finding-row > vaadin-icon { flex: 0 0 1rem; width: 1rem; height: 1rem; margin-block-start: .15rem; color: var(--dmagent-finding-accent); }
.dynmod-ai-builder .finding-level { display: block; font-weight: 600; margin-bottom: .2rem; }
.dynmod-ai-builder .run-activity { font-size: .8125rem; width: 100%; max-width: 40rem; min-width: 0; }
.dynmod-ai-builder .activity-row { display: flex; align-items: baseline; gap: .4rem; padding-block: .2rem; min-width: 0; }
.dynmod-ai-builder .activity-row > vaadin-icon { width: .85rem; height: .85rem; flex: 0 0 auto; }
.dynmod-ai-builder .activity-row > span:first-of-type { overflow-wrap: anywhere; }
.dynmod-ai-builder .activity-duration { margin-inline-start: auto; white-space: nowrap; color: var(--vaadin-text-color-secondary); font-variant-numeric: tabular-nums; }
.dynmod-ai-builder .activity-started > vaadin-icon { animation: dmagent-activity-spin 1.5s linear infinite; }
.dynmod-ai-builder .activity-completed > vaadin-icon { color: var(--aura-green); }
.dynmod-ai-builder .activity-failed > vaadin-icon { color: var(--aura-red); }
.dynmod-ai-builder .activity-waiting > vaadin-icon { color: var(--aura-orange); }
.dynmod-ai-builder .activity-card { border: none; border-radius: 0; padding: 0; background: transparent; }
.dynmod-ai-builder .activity-open { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; text-align: start; white-space: normal; color: inherit; font: inherit; }
.dynmod-ai-builder .activity-open::part(label) { display: block; width: 100%; white-space: normal; }
.dynmod-ai-builder .activity-open .activity-row { width: 100%; box-sizing: border-box; }
.dynmod-ai-builder .activity-open:hover .activity-row > span:first-of-type { color: var(--vaadin-text-color-link); text-decoration: underline; }
.dynmod-ai-builder .activity-open:focus-visible { outline: 2px solid var(--vaadin-focus-ring-color); outline-offset: 2px; }
@keyframes dmagent-activity-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .dynmod-ai-builder .activity-started > vaadin-icon { animation: none; } }
/* While the assistant works, the AI mode shows a pulsing dot: Visual and Code stay viewable but read-only. */
.dynmod-settings-view .editor-mode-renderer.ai-busy::after { content: ""; flex: none; width: .45em; height: .45em; border-radius: 50%; background: var(--aura-accent-color); animation: dmagent-mode-busy 1.6s ease-in-out infinite; }
@keyframes dmagent-mode-busy { 50% { opacity: .35; transform: scale(.75); } }
@media (prefers-reduced-motion: reduce) { .dynmod-settings-view .editor-mode-renderer.ai-busy::after { animation: none; } }
/* The agent puts the Visual / Code / AI switch first: it stays at the start, also when the header wraps. */
.dynmod-settings-view .header-box.dmagent-header-box { flex-wrap: wrap; }
.dynmod-settings-view .header-box.dmagent-header-box .tab-list { margin-inline-start: 0; margin-inline-end: auto; }
@container dynmod-settings-view (max-width: 640px) {
    .dynmod-settings-view .header-box.dmagent-header-box { flex-direction: column; }
    .dynmod-settings-view .header-box.dmagent-header-box .tab-list { margin-inline-end: 0; }
}

/* jmix-aura/src/addons/dynmodel/dynmod-ai-model-panel.css */
/* Shared by the live Builder panel and the saved attachments in the chat, in both themes. */
.dynmod-ai-builder .draft-panel .draft-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    min-width: 0;
    line-height: 1.4;
    max-height: 2.8em;
}

.dynmod-ai-builder .draft-panel .step-row {
    width: 100%;
    box-sizing: border-box;
}

.dynmod-ai-builder .plan-target {
    font-weight: 600;
    white-space: normal;
    overflow-wrap: anywhere;
}

.dynmod-ai-builder .draft-panel .step-properties {
    display: block;
    margin-top: .2rem;
    font-family: var(--lumo-font-family-monospace, monospace);
    font-size: .9em;
    font-weight: 400;
    white-space: normal;
    overflow-wrap: anywhere;
    color: var(--vaadin-text-color-secondary, var(--lumo-secondary-text-color));
}

.dynmod-ai-builder .preview-section {
    display: block;
    font-size: .875rem;
    font-weight: 400;
    color: var(--vaadin-text-color-secondary, var(--lumo-secondary-text-color));
}

.dynmod-ai-builder .plan-entity {
    width: 100%;
    box-sizing: border-box;
}

.dynmod-ai-builder .plan-entity:first-child {
    padding-top: .75rem;
}

.dynmod-ai-builder .plan-entity + .plan-entity {
    margin-top: .75rem;
    padding-top: 2rem;
    border-top: 2px solid var(--vaadin-border-color, var(--lumo-contrast-30pct));
}

.dynmod-ai-builder .plan-entity-title {
    display: block;
    margin-bottom: .75rem;
    padding: .5rem .75rem;
    border-inline-start: 3px solid var(--vaadin-text-color-secondary, var(--lumo-secondary-text-color));
    background: var(--vaadin-background-container, var(--lumo-contrast-5pct));
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.dynmod-ai-builder .plan-entity-content {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding-inline-start: .75rem;
}

.dynmod-ai-builder .finding-group .finding-row + .finding-row {
    margin-top: .75rem;
}

.dynmod-ai-builder .finding-group > .plan-entity-content {
    padding-inline-start: 0;
}

.dynmod-ai-builder .finding-group + .finding-group {
    margin-top: 1rem;
    padding-top: 1rem;
}

.dynmod-ai-builder .draft-panel .finding-row {
    box-sizing: border-box;
    padding: .75rem;
    margin: 0;
    gap: .5rem;
    align-items: flex-start;
}

.dynmod-ai-builder .finding-row > .finding {
    min-width: 0;
    padding: 0;
    line-height: 1.5;
}

.dynmod-ai-builder .finding-body {
    margin: .5rem 0 0;
    padding: 0;
    color: var(--vaadin-text-color, var(--lumo-body-text-color));
}

.dynmod-ai-builder .finding-intro {
    display: block;
    margin-top: .5rem;
    color: var(--vaadin-text-color, var(--lumo-body-text-color));
}

.dynmod-ai-builder ul.finding-body {
    padding-inline-start: 1rem;
}

.dynmod-ai-builder .finding-body > li + li {
    margin-top: .5rem;
}

.dynmod-ai-builder .finding-body .fix-button {
    display: block;
    margin-top: .5rem;
}

.dynmod-ai-builder .draft-panel vaadin-details.card-details:not(.activity-card)::part(content) {
    padding-bottom: .75rem;
}

.dynmod-ai-builder .activity-list {
    padding-block: .5rem .75rem;
}

.dynmod-ai-builder .activity-list .activity-row {
    display: grid;
    grid-template-columns: .85rem minmax(0, 1fr) auto;
    align-items: start;
    width: 100%;
    box-sizing: border-box;
    padding-block: .2rem;
}

.dynmod-ai-builder .activity-list .activity-row > vaadin-icon {
    margin-top: .2rem;
}

.dynmod-ai-builder .activity-list .activity-duration {
    margin-inline-start: 0;
    justify-self: end;
}

.dynmod-ai-builder vaadin-details.activity-card {
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
}

.dynmod-ai-builder vaadin-details.activity-card > vaadin-details-summary {
    display: none;
}

.dynmod-ai-builder vaadin-details.activity-card::part(content) {
    padding: 0;
}

.dynmod-ai-builder .plan-section + .plan-section {
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid var(--vaadin-border-color-secondary, var(--lumo-contrast-10pct));
}

.dynmod-ai-builder .plan-section-title {
    color: var(--vaadin-text-color-secondary, var(--lumo-secondary-text-color));
    font-size: .875rem;
}

.dynmod-ai-builder .plan-step-list {
    margin: .5rem 0 0;
    padding-left: 1.1rem;
}

.dynmod-ai-builder .plan-step-list > li + li {
    margin-top: .5rem;
}

.dynmod-ai-builder .draft-panel .plan-step-list .step-row {
    display: block;
    padding: 0;
    margin: 0;
    border: 0;
    font-size: .875rem;
    line-height: 1.5;
}

.dynmod-ai-builder .applied-view-links {
    margin: .5rem 0 0;
    padding-left: 1.25rem;
}

.dynmod-ai-builder .applied-view-links > li + li {
    margin-top: .4rem;
}

.dynmod-ai-builder vaadin-button.applied-view-link {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
    min-height: 0;
    height: auto;
    color: var(--aura-accent-text-color, var(--lumo-primary-text-color));
    font-weight: 400;
    text-decoration: underline;
    cursor: pointer;
}

/* jmix-aura/src/addons/dynmodel/misc.css */
vaadin-button.picker-button {
    padding: 1px;

    font-size: inherit;
    line-height: inherit;
}

vaadin-radio-group.tab-list::part(group-field) {
    --aura-surface-level: -0.5;
    --aura-surface-opacity: 0.3;

    box-sizing: border-box;
    flex-flow: row wrap;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--vaadin-gap-xs);

    padding: var(--vaadin-padding-xs);

    background: var(--vaadin-background-container);
    border-radius: calc(var(--vaadin-radius-m) + var(--vaadin-padding-xs));
}

vaadin-radio-group.tab-list vaadin-radio-button {
    color: var(--vaadin-text-color-secondary);

    padding: var(--vaadin-padding-block-container) var(--vaadin-padding-inline-container);

    border: 1px solid transparent;
    border-radius: var(--vaadin-radius-m);

    flex-grow: 1;

    transition: color .12s, border-color .12s, background-color .12s;

    grid-template-columns: 0 1fr;
    column-gap: 0;

    cursor: var(--_cursor);
}

vaadin-radio-group.tab-list vaadin-radio-button[checked] {
    --aura-surface-level: 5;
    --aura-surface-opacity: 0.8;

    color: var(--aura-accent-text-color);
    background: var(--aura-surface-color-solid);

    border-color: light-dark(transparent, hsla(0, 0%, 100%, .03));

    box-shadow: 0 0 0 1px light-dark(rgba(0, 0, 0, .02), transparent), var(--aura-shadow-s);
}

vaadin-radio-group.tab-list vaadin-radio-button > label {
    color: inherit;
}

vaadin-radio-group.tab-list vaadin-radio-button::part(radio) {
    display: none;
}

vaadin-radio-group.tab-list vaadin-radio-button[focus-ring] {
    outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
    outline-offset: calc(var(--vaadin-focus-ring-width) * -1);
}

@media (any-hover: hover) {
    vaadin-radio-group.tab-list vaadin-radio-button:not([checked], [disabled]):hover {
        color: var(--vaadin-text-color);
    }
}

.dynmod-icon-renderer {
    display: flex;
    align-items: center;
    gap: var(--vaadin-gap-s);
}

.dynmod-icon-renderer-icon {
    margin-inline-end: var(--vaadin-padding-xs);
}

/* jmix-aura/src/addons/groupgrid/index.css */
/* jmix-aura/src/addons/groupgrid/jmix-columns-grouper.css */
.jmix-columns-grouper {
    --_drop-area-color: var(--jmix-columns-grouper-drop-area-color, var(--vaadin-focus-ring-color));
    --_drop-area-border-width: var(--jmix-columns-grouper-drop-area-border-width, var(--vaadin-focus-ring-width));
    --_drop-area-border-radius: var(--jmix-columns-grouper-drop-area-border-radius, var(--vaadin-radius-m));

    --_grouper-min-width: var(--jmix-columns-grouper-min-width, 8em);

    min-width: var(--_grouper-min-width);
    gap: var(--vaadin-gap-xs);
}

.jmix-columns-grouper-title {
    padding: var(--vaadin-padding-xs) var(--vaadin-padding-s);
    font-weight: 500;
}

.jmix-columns-grouper-separator {
    margin: var(--vaadin-padding-xs) calc(var(--vaadin-radius-m) / 2);
    background-color: var(--vaadin-border-color);

    align-self: stretch;
    height: 1px;
    border: 0;
    padding: 0;
}

.jmix-columns-grouper-drop-here {
    font-size: var(--aura-font-size-s);
    color: var(--vaadin-text-color-secondary);
    padding: var(--vaadin-padding-s);
    align-self: center;
}

.jmix-columns-grouper-clear-all {
    font-size: var(--aura-font-size-s);
    padding-block: 0;
}

.jmix-columns-grouper-grouping-box jmix-columns-grouper-item,
.jmix-columns-grouper-available-box jmix-columns-grouper-item {
    border-top: var(--_drop-area-border-width) solid transparent;
    border-bottom: 0;
}

.jmix-columns-grouper-grouping-box jmix-columns-grouper-item:last-child,
.jmix-columns-grouper-available-box jmix-columns-grouper-item:last-child {
    border-bottom: var(--_drop-area-border-width) solid transparent;
}

.jmix-columns-grouper-grouping-box {
    border: var(--_drop-area-border-width) solid transparent;
    border-radius: var(--_drop-area-border-radius);

    &[dragover='empty'] {
        border: var(--_drop-area-border-width) solid var(--_drop-area-color);
    }

    jmix-columns-grouper-item {
        &[dragover='before'] {
            border-top: var(--_drop-area-border-width) solid var(--_drop-area-color);
            border-top-right-radius: 0;
            border-top-left-radius: 0;
        }

        &[dragover='after'] {
            border-bottom: var(--_drop-area-border-width) solid var(--_drop-area-color);
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
        }
    }
}

.jmix-columns-grouper-available-box {
    border: var(--_drop-area-border-width) solid transparent;
}

/* jmix-aura/src/addons/groupgrid/jmix-columns-grouper-item.css */
@media (any-hover: hover) {
  jmix-columns-grouper-item:hover {
    /* Same as menu-bar-item hover color */
    --_highlight-color: light-dark(oklch(from var(--aura-accent-color-light) min(0.9, l) c h / max(0.05, l / 4)), oklch(from var(--aura-accent-color-dark) max(0.6, l) c h / max(0.2, l / 4)));
  }
}

/* jmix-aura/src/addons/groupgrid/jmix-group-toggle.css */
vaadin-grid-tree-toggle.jmix-group-toggle {
  &::part(toggle) {
    align-items: center;
    color: var(--vaadin-text-color);
    display: flex;
    justify-content: center;
  }

  &::part(toggle)::before {
    --_icon: var(--_vaadin-icon-plus);
    mask: var(--_icon) 50% / var(--vaadin-icon-visual-size, 100%) no-repeat;
  }

  &[expanded]::part(toggle)::before {
    --_icon: var(--_vaadin-icon-minus);
  }
}

/* jmix-aura/src/addons/groupgrid/jmix-header-grouper.css */
.jmix-grid-header-grouper {
    display: inline-flex;
    gap: var(--vaadin-gap-xs);
}

vaadin-grid [jmix-role='grouper-button'] {
    color: var(--vaadin-text-color-disabled);
}

@media (any-hover: hover) {
    vaadin-grid [jmix-role='grouper-button']:hover {
        color: var(--vaadin-text-color);
    }
}

vaadin-grid-sorter[direction] [jmix-role='grouper-button'] {
    color: var(--vaadin-text-color-secondary);
}

.jmix-grouper-popover::part(content) {
    padding: var(--vaadin-padding-xs);
}

/* jmix-aura/src/addons/kanban/index.css */
/* jmix-aura/src/addons/kanban/jmix-kanban.css */
:root {
    --smart-primary: var(--aura-accent-color);
    --smart-ui-state-selected: var(--aura-accent-surface);
    --smart-ui-state-border-selected: var(--aura-accent-surface);
    --smart-surface: var(--vaadin-background-container);
    --smart-background: transparent;
    --smart-border-radius: var(--vaadin-radius-s);
    --smart-background-color: var(--vaadin-text-color);
    --smart-surface-color: var(--vaadin-text-color);
    --smart-ui-state-hover: var(--aura-accent-surface);
}

.smart-kanban .swimlane {
    border-color: var(--vaadin-border-color);
}

.smart-kanban-list.dialog:focus {
    outline: unset;
}

.smart-kanban.smart-kanban-column-color .smart-kanban-column:not(.smart-kanban-add-new-column),
.smart-kanban .smart-kanban-column > .smart-kanban-column-header, .smart-kanban-task {
    border-radius: var(--vaadin-radius-m);
}

.smart-kanban.smart-kanban-column-color .smart-kanban-column:not(.smart-kanban-add-new-column) {
    padding: var(--vaadin-padding-s);
}

.smart-kanban-list.dialog {
    --smart-background: var(--vaadin-background-color);
    border-color: var(--vaadin-border-color);
    box-shadow: 0 0 0 1px var(--aura-shadow-s), var(--aura-shadow-s);
}

.smart-kanban-list.dialog .item.selected {
    color: var(--vaadin-text-color);
}

.smart-kanban-task-progress-container {
    height: 12px;
}

.smart-kanban-task-progress {
    height: 4px;
}

.smart-kanban .smart-kanban-column > .smart-kanban-column-header {
    --smart-surface-color: var(--vaadin-text-color);
    border-color: var(--vaadin-border-color);
}

.smart-kanban-task-due.overdue {
    color: var(--aura-red);
}

.smart-kanban-task-due.overdue:after {
    margin-left: var(--vaadin-padding-xs);
}

.smart-kanban-task {
    --smart-background: var(--vaadin-background-color);

    grid-row-gap: var(--vaadin-gap-s);
    padding: var(--vaadin-padding-s);
    border-top-color: var(--vaadin-border-color);
    border-right-color: var(--vaadin-border-color);
    border-bottom-color: var(--vaadin-border-color);
}

.smart-kanban-task-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: baseline;
    box-sizing: border-box;
    padding: var(--vaadin-padding-xs) var(--vaadin-padding-s);
    font-family: var(--aura-font-family);
    font-size: var(--aura-font-size-xs);
    font-weight: 500;
    line-height: 1;
    color: var(--aura-accent-text-color);
    background: var(--aura-accent-surface);
    border: 1px solid var(--aura-accent-border-color);
    border-radius: 100vh;
    min-width: calc(1lh + 2px);
    white-space: nowrap;
    flex: 0 0 auto;

    --aura-surface-level: 1;
}

[task-tags] .smart-kanban-task-tags {
    gap: var(--vaadin-gap-xs);
    display: flex;
    flex-direction: row;
    overflow: hidden;
    flex-wrap: wrap;
}

[task-priority] .smart-kanban-task-text, .smart-kanban-task-text {
    gap: var(--vaadin-gap-s);
    padding: unset;
}

[task-priority][editable][kanban-priority-read-only] .smart-kanban-task-text:hover .priority {
    pointer-events: none;
    background-image: unset;
}

[task-priority][editable][kanban-priority-read-only] .smart-kanban-task-text:hover .priority.low,
[task-priority] .smart-kanban-task-text .priority.low, .smart-kanban-task-text .priority.low {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23006af5'%3E%3Cpath d='M2.73804 7.00207C1.96611 5.66874 2.92823 4 4.46889 4H19.5311C21.0718 4 22.0339 5.66874 21.262 7.00207L13.7309 20.0103C12.9605 21.3409 11.0395 21.3409 10.2691 20.0103L2.73804 7.00207Z'/%3E%3C/svg%3E");
}

[task-priority][editable][kanban-priority-read-only] .smart-kanban-task-text:hover .priority.average,
[task-priority] .smart-kanban-task-text .priority.average, .smart-kanban-task-text .priority.average {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23005fdb'%3E%3Cpath d='M12 5.98999L19.53 19H4.47L12 5.98999ZM2.74 18C1.97 19.33 2.93 21 4.47 21H19.53C21.07 21 22.03 19.33 21.26 18L13.73 4.98999C12.96 3.65999 11.04 3.65999 10.27 4.98999L2.74 18Z'/%3E%3C/svg%3E");
}

[task-priority][editable][kanban-priority-read-only] .smart-kanban-task-text:hover .priority.high,
[task-priority] .smart-kanban-task-text .priority.high, .smart-kanban-task-text .priority.high {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e71d13'%3E%3Cpath d='M2.73804 17.9979C1.96611 19.3313 2.92823 21 4.46889 21H19.5311C21.0718 21 22.0339 19.3313 21.262 17.9979L13.7309 4.98965C12.9605 3.65908 11.0395 3.65908 10.2691 4.98965L2.73804 17.9979Z'/%3E%3C/svg%3E");
}

[task-priority][editable][kanban-priority-read-only] .smart-kanban-task-text:hover .priority.critical,
[task-priority] .smart-kanban-task-text .priority.critical, .smart-kanban-task-text .priority.critical {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e21c12'%3E%3Cpath d='M2.73804 17.9979C1.96611 19.3313 2.92823 21 4.46889 21H19.5311C21.0718 21 22.0339 19.3313 21.262 17.9979L13.7309 4.98965C12.9605 3.65908 11.0395 3.65908 10.2691 4.98965L2.73804 17.9979ZM13.5 17.5C13.5 18.3284 12.8284 19 12 19V19C11.1716 19 10.5 18.3284 10.5 17.5V17.5C10.5 16.6716 11.1716 16 12 16V16C12.8284 16 13.5 16.6716 13.5 17.5V17.5ZM13.5 13.5C13.5 14.3284 12.8284 15 12 15V15C11.1716 15 10.5 14.3284 10.5 13.5V9.5C10.5 8.67157 11.1716 8 12 8V8C12.8284 8 13.5 8.67157 13.5 9.5V13.5Z'/%3E%3C/svg%3E");
}

/* jmix-aura/src/addons/maps/index.css */
/* jmix-aura/src/addons/maps/jmix-openlayers-map.css */
:root,
:host {
    --ol-brand-color: var(--aura-accent-color);
    --jmix-control-active-background-color: var(--aura-accent-color);
    --jmix-control-active-color: var(--aura-accent-contrast-color);
    --jmix-control-active-hover-color: var(--aura-accent-contrast-color);
}

@media (forced-colors: active) {
    :root,
    :host {
        --ol-brand-color: CanvasText;
        --jmix-control-active-background-color: CanvasText;
        --jmix-control-active-color: Canvas;
        --jmix-control-active-hover-color: Canvas;
    }
}


/* jmix-aura/src/addons/notifications/index.css */
/* jmix-aura/src/addons/notifications/jmix-notifications-indicator.css */
jmix-notifications-indicator {
    --jmix-notification-indicator-counter-background-color: var(--aura-red);
    --jmix-notification-indicator-counter-color: light-dark(var(--aura-accent-contrast-color-light), var(--aura-accent-contrast-color-dark));
}

jmix-notifications-indicator[empty]::part(counter) {
    --jmix-notification-indicator-counter-background-color: light-dark(
            color-mix(in oklab, var(--vaadin-text-color) 20%, var(--aura-background-color)),
            color-mix(in oklab, var(--vaadin-text-color) 60%, var(--aura-background-color))
    );
}

/* jmix-aura/src/addons/notifications/received-in-app-notifications-dialog.css */
.received-in-app-notifications-dialog .pagination {
    align-self: center;
}

/* jmix-aura/src/addons/notifications/misc.css */
.ntf-notification-body-field {
    padding-top: 0;
}

vaadin-combo-box.ntf-notification-recipients-field::part(toggle-button),
vaadin-multi-select-combo-box.ntf-notification-recipients-field::part(toggle-button) {
    display: none;
}

.ntf-notification-type-renderer {
    display: flex;
    gap: var(--vaadin-gap-s);
}

.ntf-notification-type-renderer-text {
    font-size: var(--aura-font-size-m);
}

/* jmix-aura/src/addons/tabbedmode/index.css */
/* jmix-aura/src/addons/tabbedmode/jmix-breadcrumb.css */
jmix-breadcrumb::part(text) {
    color: var(--aura-accent-text-color);
}

/* jmix-aura/src/addons/tabbedmode/jmix-main-tabsheet.css */
jmix-main-tabsheet > vaadin-tabs[slot="tabs"] {
    align-items: center;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    max-height: unset;
    max-width: unset;
}

jmix-main-tabsheet > vaadin-tabs[slot="tabs"]::part(tabs) {
    padding: 0;
    margin: 0 0.75rem;
}

/* jmix-aura/src/addons/tabbedmode/jmix-view-tab.css */
jmix-view-tab {
    font-size: var(--aura-font-size-l);

    min-width: calc(var(--aura-base-size) * 2px);

    --_selection-color: var(--aura-accent-color);
    --_selection-color-text: var(--aura-accent-text-color);
}

.jmix-view-tab-text {
    max-width: var(--jmix-tabmod-main-tab-text-max-width, 16rem);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.jmix-view-tab-close-button {
    --vaadin-button-background: transparent;
    --vaadin-button-border-color: transparent;
    --vaadin-button-shadow: none;

    padding: 0;

    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.jmix-view-tab-close-button::part(prefix) {
    margin: 0;
}

vaadin-tabs[theme~='small'] > jmix-view-tab {
    font-size: var(--aura-font-size-s);
}

vaadin-tabs[theme~='centered'][orientation='horizontal'] > jmix-view-tab:first-of-type {
    margin-inline-start: auto;
}

vaadin-tabs[theme~='centered'][orientation='horizontal'] > jmix-view-tab:last-of-type {
    margin-inline-end: auto;
}

vaadin-tabs > jmix-view-tab {
    margin-left: 0;
}

vaadin-tabs[dir='rtl'] > jmix-view-tab {
    margin-right: 0;
}

/* Drag & Drop specific styles */

jmix-view-tab {
    --_dragover-indicator-color: var(--jmix-view-tab-dragover-indicator-color, var(--aura-accent-color));
    --_dragover-indicator-width: var(--jmix-view-tab-dragover-indicator-width, 2px);
}

jmix-view-tab.v-dragged {
    background: linear-gradient(var(--vaadin-background-container), var(--vaadin-background-container)) var(--vaadin-background-color);
}

jmix-view-tab.v-dragged::before,
jmix-view-tab.v-dragged::after {
    display: none;
}

jmix-view-tab[dragover='before'] {
    border-inline-start: var(--_dragover-indicator-width) solid var(--_dragover-indicator-color);
}

jmix-view-tab[dragover='after'] {
    border-inline-end: var(--_dragover-indicator-width) solid var(--_dragover-indicator-color);
}

/* jmix-aura/src/addons/tabbedmode/misc.css */
.tabmod-too-many-open-tabs-notification {
    white-space: pre;
}

/* jmix-aura/src/addons/uiconstraints/index.css */
/* jmix-aura/src/addons/uiconstraints/ui-component-resource-policy-model-create-view.css */
.ui-component-resource-policy-model-create-view .component-ids-editor-layout {
    border: 1px solid var(--vaadin-border-color);
    border-radius: var(--vaadin-radius-m);
    flex-shrink: 0;
}

.ui-component-resource-policy-model-create-view .selected-component-ids-layout {
    gap: var(--vaadin-gap-xs);
}

.ui-component-resource-policy-model-create-view .component-id-combo-box-renderer-tag {
    color: var(--vaadin-text-color-secondary);
}

/* jmix-aura/src/addons/uirecovery/index.css */
/* jmix-aura/src/addons/uirecovery/draft-list-view.css */
.uirec-draft-list-hint,
.uirec-draft-list-empty {
    color: var(--vaadin-text-color-secondary);
    font-size: var(--aura-font-size-s);
}

.uirec-draft-list-buttons {
    gap: var(--vaadin-gap-s);
}

.uirec-draft-grid::part(items) {
    grid-gap: var(--vaadin-gap-s);
}

.uirec-draft-card {
    background: var(--vaadin-background-color);
    border: 1px solid var(--vaadin-border-color);
    border-radius: var(--vaadin-radius-m);
    box-sizing: border-box;
    gap: 0;
    margin: 0;
    /* The body link carries the padding, so it covers the whole card except the discard button. */
    padding: 0 var(--vaadin-padding-s) 0 0;
}

.uirec-draft-card-body {
    align-self: stretch;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: var(--vaadin-gap-xs);
    min-width: 0;
    padding: var(--vaadin-padding-s);
    text-decoration: none;
}

/* The body link takes the keyboard focus, but the ring is drawn around the whole card. */
.uirec-draft-card:has(.uirec-draft-card-body:focus-visible) {
    outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
    outline-offset: 1px;
}

.uirec-draft-card-body:focus-visible {
    outline: none;
}

.uirec-draft-card:has(.uirec-draft-card-body:hover) {
    border-color: var(--vaadin-focus-ring-color);
}

.uirec-draft-card-title {
    font-size: var(--aura-font-size-m);
    font-weight: 600;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.uirec-draft-card-record {
    color: var(--vaadin-text-color);
    font-size: var(--aura-font-size-s);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.uirec-draft-card-date {
    color: var(--vaadin-text-color-secondary);
    font-size: var(--aura-font-size-xs);
}

.uirec-draft-card-discard {
    flex: none;
}

/* Forced colors replace the hover border colour with the palette colour; a system colour is kept, so
   Highlight marks the hover, with an extra outline to make it visible next to the black or white border. */
@media (forced-colors: active) {
    .uirec-draft-card:has(.uirec-draft-card-body:hover) {
        border-color: Highlight;
    }

    /* Together with the border it gives a 2px line. Not applied to a focused card, to keep its focus ring. */
    .uirec-draft-card:has(.uirec-draft-card-body:hover:not(:focus-visible)) {
        outline: 1px solid Highlight;
    }
}


/* jmix-aura/src/addons/stormbpmn/index.css */
/* jmix-aura/src/addons/stormbpmn/stormbpmn-diagram-list-view.css */
.stormbpmn-diagram-list-view vaadin-grid.diagrams-data-grid::part(empty-state) {
    align-items: center;
    display: flex;
    justify-content: center;
}

.stormbpmn-diagram-list-view .page-button {
    font-size: var(--aura-font-size-s);
    --aura-base-size: var(--_base-size-xs);
}

