/* App UI, for themer, palette tweaking etc */

:root {
  --fa-sliders-simple: '\f1de';
}

.title {
  display: flex;
  align-items: center;
  gap: var(--wa-space-xs);

  wa-button:has(wa-icon) {
    &:not(:hover, :focus) {
      opacity: 0.5;
    }
  }
}

.popup {
  background: var(--wa-color-surface-default);
  border: 1px solid var(--wa-color-surface-border);
  padding: var(--wa-space-xl);
  border-radius: var(--wa-border-radius-m);
  max-height: 90dvh;
  overflow: auto;

  code {
    white-space: nowrap;
  }
}

.color-select {
  &.default::part(display-input) {
    opacity: 0.6;
    font-style: italic;
  }

  > small {
    margin-inline-start: var(--wa-space-xs);
    padding-block: 0 var(--wa-space-xs);
  }

  &::part(combobox)::before,
  wa-option::before {
    content: '';
    display: inline-block;
    width: 1.2em;
    aspect-ratio: 1;
    margin-inline-end: var(--wa-space-xs);
    flex: none;
    border-radius: var(--wa-border-radius-m);
    background: var(--color);
    border: 1px solid var(--wa-color-surface-default);
  }

  wa-option {
    white-space: nowrap;

    &::before {
      width: 1em;
      margin-inline: var(--wa-space-xs);
    }

    &::part(checked-icon) {
      order: 2;
    }
  }

  .default-badge {
    opacity: 0.6;
    margin-inline-start: var(--wa-space-xs);
  }
}

.swatch-select {
  padding: 2px;

  wa-radio {
    --swatch-border-color: color-mix(in oklab, canvastext, transparent 80%);

    &::part(base) {
      /* a <button> */
      width: 2em;
      height: 2em;
      padding: 0;
      border-radius: var(--border-radius, var(--wa-border-radius-m));
      background: var(--color);
      background-clip: border-box;
      border-color: var(--swatch-border-color);
    }
  }

  &.swatch-shape-circle {
    --border-radius: var(--wa-border-radius-circle);
  }

  wa-radio:is([checked], :state(checked)) {
    --swatch-border-color: var(--wa-color-surface-default);
    &::part(base) {
      box-shadow:
        inset 0 0 0 var(--indicator-width) var(--wa-color-surface-default),
        0 0 0 calc(var(--indicator-width) + 1px) var(--indicator-color);
    }
  }

  &::part(form-control-input) {
    flex-wrap: wrap;
    gap: var(--wa-space-xs);
  }
}

/* Repeated to increase specificity */
.editable-text.editable-text {
  display: inline-flex;
  align-items: center;
  gap: var(--wa-space-xs);
  --edit-hint-color: oklab(from var(--wa-color-warning-fill-quiet) l a b / 50%);

  > .text {
    &:hover,
    &:focus {
      background-color: var(--edit-hint-color);
      box-shadow: 0 0 0 var(--wa-space-2xs) var(--edit-hint-color);
      color: inherit;
      border-radius: calc(var(--wa-border-radius-m) - var(--wa-space-2xs));
    }
  }

  > input {
    font: inherit;
    margin-block: 0.75em;
    field-sizing: content;
  }

  wa-button {
    font-size: 90%;
  }
}

.info-tip-default-trigger {
  color: var(--wa-color-text-quiet);

  &:not(:hover, :focus) {
    opacity: 65%;
  }
}
