.inputReset {
  background-color: transparent;
  color: inherit;
  border: none;
  outline: none;
  display: block;
  padding: 0;
  margin: 0;
  width: 100%;
}

.inputBase {
  width: 100%;
  background-color: var(--background-accent);
  color: var(--interactive-normal);
  font-family: var(--font-normal);
  font-size: var(--_input-font-size);
  line-height: var(--_input-line-height);

  &::placeholder {
    color: var(--text-secondary);
  }

  &:disabled {
    cursor: not-allowed;
    opacity: 60%;
  }
}

.inputBorder {
  border: 2px solid var(--_input-color);
  border-radius: var(--_input-radius);
  transition: border-color 0.2s ease-in;

  [data-open="true"] & {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
}

.inputPadding {
  padding: var(--_input-padding);
}

.input {
  composes: inputBase inputBorder inputPadding;
}

.inputAttachmentRow {
  display: flex;
}

.attachment {
  flex: 0 1 auto;
  display: flex;
  align-items: center;
  background-color: var(--_input-color);
  color: var(--_input-foreground);
  padding: var(--_input-padding);
  transition:
    background-color 0.2s ease-in,
    color 0.2s ease-in;
}

.default {
  --_input-color: var(--accent-primary);
  --_input-foreground: var(--accent-foreground);
}
.success {
  --_input-color: var(--status-success-background);
  --_input-foreground: var(--status-success-foreground);
}
.warning {
  --_input-color: var(--status-warning-background);
  --_input-foreground: var(--status-warning-foreground);
}
.danger {
  --_input-color: var(--status-danger-background);
  --_input-foreground: var(--status-danger-foreground);
}
.info {
  --_input-color: var(--status-info-background);
  --_input-foreground: var(--status-info-foreground);
}
.blank {
  --_input-color: transparent;
  --_input-foreground: var(--interactive-normal);
}
/* Inheriting specifically does _not_ set variables, as that
 * overrides them instead of allowing the element to inherit
 * their values from the parent */
.inherit {
}

.small {
  --_input-font-size: 14px;
  --_input-icon-size: 24px;
  --_input-line-height: 18px;
  --_input-padding: var(--space-sm) var(--space-sm);
  --_input-radius: var(--radius-normal);
}
.medium {
  --_input-font-size: 18px;
  --_input-icon-size: 32px;
  --_input-line-height: 24px;
  --_input-padding: var(--space-sm) var(--space-md);
  --_input-radius: var(--radius-normal);
}
.large {
  --_input-font-size: 24px;
  --_input-icon-size: 46px;
  --_input-line-height: 30px;
  --_input-padding: var(--space-md) var(--space-md);
  --_input-radius: var(--radius-large);
}
.xlarge {
  --_input-font-size: 32px;
  --_input-icon-size: 64px;
  --_input-line-height: 40px;
  --_input-padding: var(--space-lg) var(--space-lg);
  --_input-radius: var(--radius-large);
}
