:host {
  display: inline-flex;
  block-size: fit-content;
  pointer-events: none;
}

::slotted(input[type=button]),
::slotted(input[type=submit]),
::slotted(button) {
  font-family: var(--gse-ui-button-text-fontFamily);
  font-size: var(--gse-ui-button-text-fontSize);
  font-weight: var(--gse-ui-button-text-fontWeight);
  line-height: var(--gse-ui-button-text-lineHeight);
  box-sizing: border-box !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 100%;
  min-inline-size: var(--gse-ui-button-iconOnly-width);
  min-block-size: var(--gse-ui-button-default-height);
  padding: var(--gse-ui-button-default-padding);
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--gse-ui-button-secondary-default-foregroundColor);
  white-space: nowrap;
  pointer-events: auto;
  cursor: pointer;
  background-color: var(--gse-ui-button-secondary-default-backgroundColor);
  border: none;
  border-radius: var(--gse-ui-button-borderRadius);
}

:host([icon-only]) ::slotted(input[type=button]),
:host([icon-only]) ::slotted(input[type=submit]),
:host([icon-only]) ::slotted(button) {
  padding: var(--gse-ui-button-default-paddingIconOnly);
}

::slotted(input[type=button][disabled]),
::slotted(input[type=submit][disabled]),
::slotted(button[disabled]) {
  cursor: default;
  opacity: var(--gse-ui-button-disabled-opacity);
}

::slotted(input[type=button]:focus),
::slotted(input[type=submit]:focus),
::slotted(button:focus) {
  outline: none;
}

::slotted(input[type=button]:focus-visible:enabled),
::slotted(input[type=submit]:focus-visible:enabled),
::slotted(button:focus-visible:enabled) {
  outline: var(--gse-semantic-focusOutline-md-borderWidth) solid var(--gse-semantic-border-focus);
  outline-offset: var(--gse-semantic-focusOutline-offset);
}

::slotted(input[type=button]:hover:enabled),
::slotted(input[type=submit]:hover:enabled),
::slotted(button:hover:enabled) {
  color: var(--gse-ui-button-secondary-hover-foregroundColor);
  background-color: var(--gse-ui-button-secondary-hover-backgroundColor);
}

::slotted(input[type=button]:active:enabled),
::slotted(input[type=submit]:active:enabled),
::slotted(button:active:enabled) {
  color: var(--gse-ui-button-secondary-active-foregroundColor);
  background-color: var(--gse-ui-button-secondary-active-backgroundColor);
}

:host([accent=primary]) ::slotted(input[type=button]),
:host([accent=primary]) ::slotted(input[type=submit]),
:host([accent=primary]) ::slotted(button) {
  color: var(--gse-ui-button-primary-default-foregroundColor);
  background-color: var(--gse-ui-button-primary-default-backgroundColor);
}
:host([accent=primary]) ::slotted(input[type=button]:hover:enabled),
:host([accent=primary]) ::slotted(input[type=submit]:hover:enabled),
:host([accent=primary]) ::slotted(button:hover:enabled) {
  color: var(--gse-ui-button-primary-hover-foregroundColor);
  background-color: var(--gse-ui-button-primary-hover-backgroundColor);
}
:host([accent=primary]) ::slotted(input[type=button]:active:enabled),
:host([accent=primary]) ::slotted(input[type=submit]:active:enabled),
:host([accent=primary]) ::slotted(button:active:enabled) {
  color: var(--gse-ui-button-primary-active-foregroundColor);
  background-color: var(--gse-ui-button-primary-active-backgroundColor);
}

:host([accent=tertiary]) ::slotted(input[type=button]),
:host([accent=tertiary]) ::slotted(input[type=submit]),
:host([accent=tertiary]) ::slotted(button) {
  color: var(--gse-ui-button-tertiary-default-foregroundColor);
  background-color: var(--gse-ui-button-tertiary-default-backgroundColor);
  border-color: var(--gse-ui-button-tertiary-default-border-color);
  border-style: var(--gse-ui-button-tertiary-default-border-style);
  border-width: var(--gse-ui-button-tertiary-default-border-width);
}
:host([accent=tertiary]) ::slotted(input[type=button]:hover:enabled),
:host([accent=tertiary]) ::slotted(input[type=submit]:hover:enabled),
:host([accent=tertiary]) ::slotted(button:hover:enabled) {
  color: var(--gse-ui-button-tertiary-hover-foregroundColor);
  background-color: var(--gse-ui-button-tertiary-hover-backgroundColor);
}
:host([accent=tertiary]) ::slotted(input[type=button]:active:enabled),
:host([accent=tertiary]) ::slotted(input[type=submit]:active:enabled),
:host([accent=tertiary]) ::slotted(button:active:enabled) {
  color: var(--gse-ui-button-tertiary-active-foregroundColor);
  background-color: var(--gse-ui-button-tertiary-active-backgroundColor);
}

:host([accent=ghost]) ::slotted(input[type=button]),
:host([accent=ghost]) ::slotted(input[type=submit]),
:host([accent=ghost]) ::slotted(button) {
  color: var(--gse-ui-button-ghost-default-foregroundColor);
  background-color: var(--gse-ui-button-ghost-default-backgroundColor);
}
:host([accent=ghost]) ::slotted(input[type=button]:hover:enabled),
:host([accent=ghost]) ::slotted(input[type=submit]:hover:enabled),
:host([accent=ghost]) ::slotted(button:hover:enabled) {
  color: var(--gse-ui-button-ghost-hover-foregroundColor);
  background-color: var(--gse-ui-button-ghost-hover-backgroundColor);
}
:host([accent=ghost]) ::slotted(input[type=button]:active:enabled),
:host([accent=ghost]) ::slotted(input[type=submit]:active:enabled),
:host([accent=ghost]) ::slotted(button:active:enabled) {
  color: var(--gse-ui-button-ghost-active-foregroundColor);
  background-color: var(--gse-ui-button-ghost-active-backgroundColor);
}

:host([accent=danger]) ::slotted(input[type=button]),
:host([accent=danger]) ::slotted(input[type=submit]),
:host([accent=danger]) ::slotted(button) {
  color: var(--gse-ui-button-danger-default-foregroundColor);
  background-color: var(--gse-ui-button-danger-default-backgroundColor);
}
:host([accent=danger]) ::slotted(input[type=button]:hover:enabled),
:host([accent=danger]) ::slotted(input[type=submit]:hover:enabled),
:host([accent=danger]) ::slotted(button:hover:enabled) {
  color: var(--gse-ui-button-danger-hover-foregroundColor);
  background-color: var(--gse-ui-button-danger-hover-backgroundColor);
}
:host([accent=danger]) ::slotted(input[type=button]:active:enabled),
:host([accent=danger]) ::slotted(input[type=submit]:active:enabled),
:host([accent=danger]) ::slotted(button:active:enabled) {
  color: var(--gse-ui-button-danger-active-foregroundColor);
  background-color: var(--gse-ui-button-danger-active-backgroundColor);
}

:host([accent=inline]) ::slotted(input[type=button]),
:host([accent=inline]) ::slotted(input[type=submit]),
:host([accent=inline]) ::slotted(button) {
  min-inline-size: initial;
  block-size: initial;
  min-block-size: initial;
  padding: 0;
  color: var(--gse-ui-links-default-foregroundColor);
  background: none;
  border: none;
}
:host([accent=inline]) ::slotted(input[type=button][disabled]),
:host([accent=inline]) ::slotted(input[type=submit][disabled]),
:host([accent=inline]) ::slotted(button[disabled]) {
  color: var(--gse-ui-links-disabled-foregroundColor);
}
:host([accent=inline]) ::slotted(input[type=button]:hover:enabled),
:host([accent=inline]) ::slotted(input[type=submit]:hover:enabled),
:host([accent=inline]) ::slotted(button:hover:enabled) {
  color: var(--gse-ui-links-hover-foregroundColor);
  text-decoration: underline;
  background: none;
}
:host([accent=inline]) ::slotted(input[type=button]:active:enabled),
:host([accent=inline]) ::slotted(input[type=submit]:active:enabled),
:host([accent=inline]) ::slotted(button:active:enabled) {
  color: var(--gse-ui-links-active-foregroundColor);
  text-decoration: underline;
  background: none;
}

:host([accent=copilot]) ::slotted(input[type=button]),
:host([accent=copilot]) ::slotted(input[type=submit]),
:host([accent=copilot]) ::slotted(button) {
  color: var(--gse-ui-button-primary-default-foregroundColor);
  background: linear-gradient(64deg, var(--gse-ui-copilotButton-default-backgroundColor-bottomLeft) 5.51%, var(--gse-ui-copilotButton-default-backgroundColor-middle) 48.28%, var(--gse-ui-copilotButton-default-backgroundColor-topRight) 88.65%);
  border: none;
  box-shadow: var(--gse-ui-copilotButton-glow-default);
}
:host([accent=copilot]) ::slotted(input[type=button]:hover:enabled),
:host([accent=copilot]) ::slotted(input[type=submit]:hover:enabled),
:host([accent=copilot]) ::slotted(button:hover:enabled) {
  color: var(--gse-ui-button-primary-hover-foregroundColor);
  background: linear-gradient(54deg, var(--gse-ui-copilotButton-hover-backgroundColor-bottomLeft) 7.09%, var(--gse-ui-copilotButton-hover-backgroundColor-middle) 47.64%, var(--gse-ui-copilotButton-hover-backgroundColor-topRight) 103.51%);
  box-shadow: var(--gse-ui-copilotButton-glow-hover);
}
:host([accent=copilot]) ::slotted(input[type=button]:active:enabled),
:host([accent=copilot]) ::slotted(input[type=submit]:active:enabled),
:host([accent=copilot]) ::slotted(button:active:enabled) {
  color: var(--gse-ui-button-primary-active-foregroundColor);
  background: linear-gradient(54deg, var(--gse-ui-copilotButton-active-backgroundColor-bottomLeft) 7.17%, var(--gse-ui-copilotButton-active-backgroundColor-middle) 46.7%, var(--gse-ui-copilotButton-active-backgroundColor-topRight) 83.3%);
  box-shadow: var(--gse-ui-copilotButton-glow-active);
}

:host([accent=input-icon]) ::slotted(input[type=button]),
:host([accent=input-icon]) ::slotted(input[type=submit]),
:host([accent=input-icon]) ::slotted(button) {
  inline-size: 16px;
  min-inline-size: initial;
  block-size: 16px;
  padding: 1px;
  color: var(--gse-ui-formControl-input-inputClearable-inputClearableColor);
  background-color: transparent;
}
:host([accent=input-icon]) ::slotted(input[type=button]:hover:enabled),
:host([accent=input-icon]) ::slotted(input[type=submit]:hover:enabled),
:host([accent=input-icon]) ::slotted(button:hover:enabled) {
  color: var(--gse-semantic-background-interactive-primary-hover);
  background-color: transparent;
}
:host([accent=input-icon]) ::slotted(input[type=button]:active:enabled),
:host([accent=input-icon]) ::slotted(input[type=submit]:active:enabled),
:host([accent=input-icon]) ::slotted(button:active:enabled) {
  color: var(--gse-semantic-background-interactive-primary-active);
  background-color: transparent;
}
:host([accent=input-icon]) ::slotted(input[type=button]:focus-visible:enabled),
:host([accent=input-icon]) ::slotted(input[type=submit]:focus-visible:enabled),
:host([accent=input-icon]) ::slotted(button:focus-visible:enabled) {
  color: var(--gse-semantic-background-interactive-primary-default);
  background-color: transparent;
}