:host(.pds-copytext) {
  --background: var(--pine-color-base-white);
  --background-hover: var(--pine-color-neutral-grey-200);
  --border: var(--pine-border-interactive);
  --border-hover: var(--pine-border-interactive-hover-color);
  --border-radius: var(--pine-border-radius-md);
  --box-shadow-focus: 0 0 0 4px var(--pine-color-primary-200);
  --color-hover: var(--pine-color-neutral-charcoal-400);
  --font-size: var(--pine-font-size-body);
  --font-weight: var(--pine-font-weight-semibold);
  --line-height: var(--pine-line-height-md);
  --spacing-sm: var(--pine-spacing-sm);
  --spacing-xs: var(--pine-spacing-xs);
  --spacing-xxs: var(--pine-spacing-xxs);
}
:host(.pds-copytext) pds-button {
  align-items: center;
  background: var(--background);
  border: 0;
  border-radius: var(--border-radius);
  display: inline-flex;
  font-size: var(--font-size);
  font-weight: var(--font-weight);
  max-width: 100%;
  padding: var(--spacing-xxs) var(--spacing-xs);
}
:host(.pds-copytext) pds-button:hover {
  background-color: var(--background-hover);
  color: var(--color-hover);
}
:host(.pds-copytext) pds-button:focus-visible {
  box-shadow: var(--box-shadow-focus);
  outline: none;
}
:host(.pds-copytext) pds-button span {
  line-height: var(--line-height);
  margin-inline-end: var(--spacing-xs);
  white-space: nowrap;
}
:host(.pds-copytext) pds-button :nth-child(2) {
  flex-shrink: 0;
}
:host(.pds-copytext):host(.pds-copytext--bordered) {
  border: 0;
  padding: 0;
}
:host(.pds-copytext):host(.pds-copytext--bordered) pds-button {
  padding: 0;
}
:host(.pds-copytext):host(.pds-copytext--bordered) pds-button:hover {
  background: none;
}
:host(.pds-copytext):host(.pds-copytext--bordered) span {
  border: var(--border);
  border-radius: var(--border-radius);
  margin-inline-end: var(--spacing-sm);
  padding-block: var(--spacing-xs);
  padding-inline: var(--spacing-sm);
}
:host(.pds-copytext):host(.pds-copytext--bordered) :hover span {
  border-color: var(--border-hover);
}
:host(.pds-copytext):host(.pds-copytext--full-width) {
  display: flex;
  width: 100%;
}
:host(.pds-copytext):host(.pds-copytext--full-width) pds-button {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
:host(.pds-copytext):host(.pds-copytext--full-width) pds-button span {
  text-align: left;
  width: 100%;
}
:host(.pds-copytext):host(.pds-copytext--truncated) pds-button {
  display: flex;
  width: 100%;
}
:host(.pds-copytext):host(.pds-copytext--truncated) pds-button span {
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  width: 100%;
}