/* Select: the same chrome as TextInput, spelled out here rather than shared, because one
   component owns one stylesheet and a reader of this file should not have to open another.
   The control itself keeps the browser's own arrow: it is the affordance people know. */
.select {
  display: grid;
  gap: var(--space-2);
  /* As text-input.css's: a taller box leaves its room below, never between label and control. */
  align-content: start;
}

.select-label {
  color: var(--color-muted);
  font-size: var(--text-label);
}

.select-required {
  color: var(--color-muted);
  margin-left: var(--space-1);
}

.select-control {
  box-sizing: border-box;
  width: 100%;
  height: var(--control-height);
  font: inherit;
  font-size: var(--text-md);
  color: var(--color-ink);
  background: var(--color-surface);
  border: var(--hairline) solid var(--color-field-line);
  border-radius: var(--radius);
  padding: 0 var(--space-3);
}

.select-control:focus {
  border-color: var(--color-ink);
  outline: var(--hairline) solid var(--color-ink);
  outline-offset: 0;
}

.select-control[disabled] {
  color: var(--color-muted);
  background: transparent;
  cursor: default;
}

.select-invalid .select-control {
  border-color: var(--color-danger);
}

.select-invalid .select-control:focus {
  outline-color: var(--color-danger);
}

.select-hint {
  color: var(--color-muted);
  font-size: var(--text-label);
  margin: 0;
}

.select-error {
  color: var(--color-danger);
  font-size: var(--text-label);
  margin: 0;
}
