/**
 * Semantic tokens, copied from `@bpmn-io/theme` to style the components
 * according to this theme.
 *
 * Names and values of the tokens should stay intact with the `@bpmn-io/theme`
 * source of truth, to ensure matching styles and allow overrides with an
 * alternative theme.
 */

/* stylelint-disable color-function-notation, color-function-alias-notation, alpha-value-notation --
   the block is a verbatim copy; reformatting it would read as drift */
.bio-theme-parent {
  --bio-surface: hsl(0, 0%, 100%);
  --bio-surface-subtle: hsl(225, 10%, 97%);
  --bio-surface-medium: hsl(225, 10%, 95%);
  --bio-text: hsl(225, 10%, 15%);
  --bio-text-subtle: hsl(225, 10%, 35%);
  --bio-text-subtlest: hsl(225, 10%, 55%);
  --bio-text-on-primary: hsl(0, 0%, 100%);
  --bio-text-on-inverted: hsl(0, 0%, 100%);
  --bio-border: hsl(225, 10%, 75%);
  --bio-primary: hsl(205, 100%, 40%);
  --bio-primary-hover: hsl(205, 100%, 35%);
  --bio-neutral: hsl(225, 10%, 35%);
  --bio-danger: hsl(360, 100%, 45%);
  --bio-danger-text: hsl(360, 100%, 35%);
  --bio-danger-surface-subtle: hsl(360, 100%, 97%);
  --bio-focus: hsl(205, 100%, 40%);
  --bio-focus-ring: hsla(205, 100%, 40%, 0.35);
  --bio-focus-ring-danger: hsla(360, 100%, 45%, 0.35);
  --bio-shadow-subtle: hsla(0, 0%, 0%, 10%);
  --bio-canvas-accent: hsl(205, 100%, 40%);
  --bio-radius-sm: 2px;
  --bio-radius-md: 3px;
  --bio-radius-lg: 4px;
}
/* stylelint-enable color-function-notation, color-function-alias-notation, alpha-value-notation */

/* Color definitions */
.dmn-js-parent,
.dmn-drd-container,
.dmn-decision-table-container,
.dmn-literal-expression-container,
.dmn-boxed-expression-container {
  --hint-button-color: var(--bio-primary-hover);
  --hint-invalid-color: var(--bio-danger-text);
  --separator-color: var(--bio-border);
  --button-border-radius: var(--bio-radius-md);
  --input-border-radius: var(--bio-radius-sm);
  --surface-border-radius: var(--bio-radius-lg);

  /* the views stack bordered sections into one surface; only its outer corners round */
  --table-border-radius: 0;
  --panel-border-radius: 0;
  --input-border-color: var(--bio-border);
  --input-color: var(--bio-text);
  --input-focus-border-color: var(--bio-focus);
  --input-focus-box-shadow-color: var(--bio-focus-ring);
  --input-focus-box-shadow-inset-color: var(--bio-border);
  --input-focus-invalid-border-color: var(--bio-danger);
  --input-focus-invalid-box-shadow-color: var(--bio-focus-ring-danger);
  --input-invalid-border-color: var(--bio-danger);
  --input-invalid-color: var(--bio-danger-text);
  --select-option-selected-color: var(--bio-primary-hover);
  --select-option-hover-background-color: var(--bio-surface-medium);
  --select-options-background-color: var(--bio-surface);
  --select-options-border-color: var(--bio-border);
  --select-options-box-shadow-color: var(--bio-shadow-subtle);
  --select-options-color: var(--bio-text);
}

.dms-list-component .items {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1.7em;
}

.dms-list-component .items .item .remove {
  float: right;
}

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

.dms-fill-row > * {
  flex: 0 0 auto;
}

.dms-fill-row > :last-child {
  flex: 1 1 auto;
}

.dms-label {
  font-weight: bold;
  white-space: nowrap;
  margin-right: 5px;
}

.dms-hrule {
  border: 0;
  border-top: dotted 1px var(--separator-color);
  margin: 10px auto;
}

.dms-heading {
  margin: 12px 0 8px;
  font-weight: bold;
}

.dms-hint {
  font-size: 12px;
  margin-top: 5px;
  color: var(--hint-color);
}

.dms-hint button {
  color: var(--hint-button-color);
  text-decoration: none;
  display: inline;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  font: inherit;
  background: none;
}

.dms-validation-warning {
  color: var(--hint-invalid-color);
}

h3.dms-heading {
  font-size: 16px;
}

h4.dms-heading {
  font-size: 14px;
}

.dms-input,
.dms-select {
  outline: none;
  padding: 3px 6px;
  border: 1px solid var(--input-border-color);
  border-radius: var(--input-border-radius);
  background: none;
  font-size: 14px;
  font-family: inherit;
  color: var(--input-color);
  min-height: 26px;
  line-height: 18px;
}

.dms-input {
  min-height: 26px;
  white-space: pre-wrap;
}

.dms-select {
  height: 26px;
}

.dms-input-select .dms-input {
  padding-right: 24px;
}

.dms-input:focus,
.dms-select:focus {
  border: solid 1px var(--input-focus-border-color);
  box-shadow: 0 0 0 2px var(--input-focus-box-shadow-color), 0 0 0 1px var(--input-focus-box-shadow-inset-color) inset;
}

.dms-input.invalid,
.dms-select.invalid {
  border-color: var(--input-invalid-border-color);
  color: var(--input-invalid-color);
}

.dms-select.invalid:focus,
.dms-input.invalid:focus {
  border: solid 1px var(--input-focus-invalid-border-color);
  box-shadow: 0 0 0 2px var(--input-focus-invalid-box-shadow-color), 0 0 0 1px var(--input-focus-box-shadow-inset-color) inset;
}

.dms-validated-input.dms-block .dms-input,
.dms-block {
  display: block;
  width: 100%;
}

.dms-script-input {
  height: 150px;
  white-space: pre-wrap;
  overflow: auto;
}

.dms-input-select {
  display: inline-block;
  position: relative;
  min-width: 128px;
}

.dms-input-select .dms-input-select-icon {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
}

.dms-input-select .options {
  background: var(--select-options-background-color);
}

.dms-select-options {
  position: absolute;
  background-color: var(--select-options-background-color);
  border: solid 1px var(--select-options-border-color);
  border-radius: var(--surface-border-radius);
  font-size: 14px;
  color: var(--select-options-color);
  box-shadow: 1px 1px 1px 1px var(--select-options-box-shadow-color);
  z-index: 20;
  cursor: pointer;
  overflow: auto;
}

.dms-select-options .option {
  padding: 4px 9px;
}

.dms-select-options .option.active {
  color: var(--select-option-selected-color);
}

.dms-select-options .option:focus,
.dms-select-options .option:hover {
  background-color: var(--select-option-hover-background-color);
}

.dmn-js-parent .content-editable.placeholder::before {
  content: attr(data-placeholder);
  position: absolute;
  opacity: 0.5;
}
