label {
  caret-color: currentColor;

  &.separator {
    @extend .dim-label;
  }

  &:disabled {
    filter: Opacity(var(--disabled-opacity));
  }
}

.dim-label {
  opacity: var(--dim-opacity);
}

.accent {
  color: var(--accent-color);
}

@each $e_type in error, warning, success {
  .#{$e_type} {
    color: var(--accent-color);

    --accent-bg-color: var(--#{$e_type}-bg-color);
    --accent-fg-color: var(--#{$e_type}-fg-color);
    --accent-color: var(--#{$e_type}-color);
  }
}

/**********************
 * General Typography *
 **********************/

.title-1 {
  font-weight: 800;
  font-size: 20pt;
}

.title-2 {
  font-weight: 800;
  font-size: 15pt;
}

.title-3 {
  font-weight: 700;
  font-size: 15pt;
}

.title-4 {
  font-weight: 700;
  font-size: 13pt;
}

.heading {
  font-weight: 700;
  font-size: 11pt;
}

.body {
  font-weight: 400;
  font-size: 11pt;
}

.caption-heading {
  font-weight: 700;
  font-size: 9pt;
}

.caption {
  font-weight: 400;
  font-size: 9pt;
}

.monospace {
  font-family: monospace;
}

.numeric {
  font-feature-settings: "tnum";
}

/*******************
 * Editable Labels *
 *******************/

editablelabel > stack > text {
  color: var(--view-fg-color);
  background-color: var(--view-bg-color);
}
