:root {
  --ui-animaton-speed: 0.2s;
}

/*ALIGNMENT*/
/*Ellipsis*/
/*****************************************************
TYPOGRAPHY
*****************************************************/
/*Title 01 (Positive)*/
.gxg-title-01 {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-01-font-weight);
  font-size: var(--ds-title-01-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--comfortable);
  color: var(--ds-base-font-color);
  text-align: start;
  line-height: var(--ds-base-font-line-height--comfortable);
}

/*Title 01 (Negative)*/
.gxg-title-01--negative {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-01-font-weight);
  font-size: var(--ds-title-01-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--comfortable);
  color: var(--ds-base-font-color);
  text-align: start;
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--negative);
}

/*Title 02 (Positive)*/
.gxg-title-02 {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-02-font-weight);
  font-size: var(--ds-title-02-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--regular);
  color: var(--ds-base-font-color);
  text-align: start;
  text-transform: uppercase;
  line-height: var(--ds-base-font-line-height--comfortable);
}

.gxg-title-02--negative {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-02-font-weight);
  font-size: var(--ds-title-02-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--regular);
  color: var(--ds-base-font-color);
  text-align: start;
  text-transform: uppercase;
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--color-on-primary);
}

/*Title 03*/
.gxg-title-03 {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-03-font-weight);
  font-size: var(--ds-title-03-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--regular);
  color: var(--ds-base-font-color);
  text-align: start;
  text-transform: uppercase;
  line-height: var(--ds-base-font-line-height--comfortable);
}

.gxg-title-03--negative {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-03-font-weight);
  font-size: var(--ds-title-03-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--regular);
  color: var(--ds-base-font-color);
  text-align: start;
  text-transform: uppercase;
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--negative);
}

/*Title 04*/
.gxg-title-04 {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-04-font-weight);
  font-size: var(--ds-title-04-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--comfortable);
  color: var(--ds-base-font-color);
  text-align: start;
  line-height: var(--ds-base-font-line-height--comfortable);
}

.gxg-title-04--negative {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-04-font-weight);
  font-size: var(--ds-title-04-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--comfortable);
  color: var(--ds-base-font-color);
  text-align: start;
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--negative);
}

/*Title 05*/
.gxg-title-05 {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-05-font-weight);
  font-size: var(--ds-title-05-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--regular);
  color: var(--ds-base-font-color);
  text-align: start;
  line-height: var(--ds-base-font-line-height--comfortable);
}

.gxg-title-05--negative {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--ds-title-05-font-weight);
  font-size: var(--ds-title-05-font-size);
  letter-spacing: var(--ds-base-font-letter-spacing--regular);
  color: var(--ds-base-font-color);
  text-align: start;
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--negative);
}

/*Text*/
.gxg-text {
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
}

.gxg-text--negative {
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--negative);
}

.gxg-text--gray {
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--dimmed);
}

/*Quote*/
.gxg-quote {
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  font-style: italic;
}

.gxg-quote--negative {
  color: var(--ds-base-font-color--negative);
}

/*Link*/
.gxg-link {
  line-height: unset;
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--link);
  text-decoration: underline;
  cursor: pointer;
  display: inline-block;
}
.gxg-link:hover {
  color: var(--ds-base-font-color--link-hover);
}
.gxg-link:active {
  color: var(--ds-base-font-color--link-active);
}

.gxg-link-gray {
  line-height: unset;
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--link);
  text-decoration: underline;
  cursor: pointer;
  display: inline-block;
  color: var(--ds-base-font-color--dimmed);
}
.gxg-link-gray:hover {
  line-height: unset;
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--link);
  text-decoration: underline;
  cursor: pointer;
  display: inline-block;
  color: var(--ds-base-font-color--dimmed);
  filter: brightness(1.4);
}

/*Alerts*/
.gxg-alert-error {
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--error);
  display: inline-block;
}

.gxg-alert-warning {
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--warning);
  display: inline-block;
}

.gxg-alert-success {
  font-family: var(--ds-base-font-family-primary);
  font-size: var(--ds-base-font-size);
  color: var(--ds-base-font-size-color);
  font-weight: var(--ds-base-font-size-weight);
  line-height: var(--ds-base-font-line-height--comfortable);
  color: var(--ds-base-font-color--success);
  display: inline-block;
}

/*Tab*/
.gxg-tab--disabled {
  color: var(--color-primary-disabled);
  pointer-events: none;
}
.gxg-tab--disabled[disabled] {
  color: var(--color-primary-disabled);
  pointer-events: none;
}

/*Label*/
.gxg-label {
  font-family: var(--ds-base-font-family-primary);
  font-weight: var(--gxg-label-font-weight);
  font-size: var(--gxg-label-font-size);
  color: var(--gxg-label-color);
  text-align: center;
  line-height: 1.455em;
  display: flex;
  align-items: center;
}
.gxg-label:hover {
  color: var(--color-primary-hover);
}
.gxg-label:focus {
  color: var(--color-primary-active);
}
.gxg-label:active {
  color: var(--color-primary-active);
}
.gxg-label[disabled] {
  color: var(--color-primary-disabled);
}

.gxg-label--negative {
  color: var(--color-on-primary);
}
.gxg-label--negative[disabled] {
  color: var(--color-on-disabled);
}

/*****************************************************
GXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES
*****************************************************/
/*****************************************************
FORM ELEMENTS
*****************************************************/
.gxg-scrollbar {
  /* Track */
  /* Handle */
  /* Handle on hover */
}
.gxg-scrollbar::-webkit-scrollbar {
  width: var(--gxg-scrollbar-width);
  height: var(--gxg-scrollbar-width);
}
.gxg-scrollbar::-webkit-scrollbar-track {
  background-color: var(--gxg-scrollbar-track-background);
  border-radius: var(--gxg-scrollbar-track-border-radius);
}
.gxg-scrollbar::-webkit-scrollbar-thumb {
  background-color: var(--gxg-scrollbar-track-thumb-background);
  border-radius: var(--gxg-scrollbar-track-thumb-radius);
}
.gxg-scrollbar::-webkit-scrollbar-thumb:hover {
  background-color: var(--gxg-scrollbar-track-thumb-hover-background);
}
.gxg-scrollbar::-webkit-scrollbar-corner {
  background: rgba(0, 0, 0, 0);
}

/*******************************
HOST / GENERAL
********************************/
:host {
  --gx-ide-container-elements-spacing: var(--spacing-gap-m);
  display: block;
  height: 100%;
  box-sizing: border-box;
}

.container {
  display: grid;
  height: 100%;
  grid-template-rows: auto 1fr auto;
  box-sizing: border-box;
}

.heading,
.content,
.footer,
.footer-above {
  padding: var(--gx-ide-container__padding);
}

/*PADDING*/
.container--padding-s {
  --gx-ide-container__padding: var(--spacing-padding-m);
}

.container--padding-m {
  --gx-ide-container__padding: var(--spacing-padding-l);
}

.container--padding-l {
  --gx-ide-container__padding: var(--spacing-padding-xl);
}

/*BORDERS*/
.container--display-border {
  border: 1px solid var(--gx-ide-container-border-color);
}

.container--display-border-top {
  border-top: 1px solid var(--gx-ide-container-border-color);
}

.container--display-border-end {
  border-inline-end: 1px solid var(--gx-ide-container-border-color);
}

.container--display-border-bottom {
  border-bottom: 1px solid var(--gx-ide-container-border-color);
}

.container--display-border-start {
  border-inline-start: 1px solid var(--gx-ide-container-border-color);
}

.container--overflow-hidden-y {
  overflow-y: hidden;
}

/*******************************
HEADING
********************************/
.heading {
  display: flex;
  flex-direction: column;
  gap: var(--gx-ide-container__padding);
  width: 100%;
  box-sizing: border-box;
  border-bottom: 1px solid var(--gx-ide-container-border-color);
}
.heading--no-border {
  border-bottom: 0;
}
.heading--no-padding {
  padding: 0;
}
.heading--no-padding-block-end {
  padding-block-end: 0;
}
.heading--no-gap {
  gap: 0;
}
.heading--inactive {
  color: var(--gxg-color--disabled);
}
.heading--padding-top {
  padding: var(--gx-ide-container__padding) 0 0 0;
}
.heading--slimmer {
  padding-top: var(--spacing-padding-m);
  padding-bottom: var(--spacing-padding-m);
}
.heading--form-text-height .heading__title {
  min-height: var(--gxg-form-text-height);
  justify-content: center;
}
.heading--flex-row {
  flex-direction: row;
  align-items: center;
  justify-content: center;
}

/*******************************
CONTENT
********************************/
.content {
  overflow-x: auto;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-gap-l);
  box-sizing: border-box;
  /* Track */
  /* Handle */
  /* Handle on hover */
}
.content::-webkit-scrollbar {
  width: var(--gxg-scrollbar-width);
  height: var(--gxg-scrollbar-width);
}
.content::-webkit-scrollbar-track {
  background-color: var(--gxg-scrollbar-track-background);
  border-radius: var(--gxg-scrollbar-track-border-radius);
}
.content::-webkit-scrollbar-thumb {
  background-color: var(--gxg-scrollbar-track-thumb-background);
  border-radius: var(--gxg-scrollbar-track-thumb-radius);
}
.content::-webkit-scrollbar-thumb:hover {
  background-color: var(--gxg-scrollbar-track-thumb-hover-background);
}
.content::-webkit-scrollbar-corner {
  background: rgba(0, 0, 0, 0);
}
.content--no-padding {
  padding: 0;
}
.content--no-border-top {
  border-top: none;
}
.content--flex {
  display: flex;
}
.content--no-gap {
  gap: 0;
}
.content--align-items-start {
  align-items: start;
}
.content--align-items-center {
  align-items: center;
}
.content--align-items-end {
  align-items: end;
}
.content--justify-content-start {
  justify-content: start;
}
.content--justify-content-center {
  justify-content: center;
}
.content--justify-content-end {
  justify-content: end;
}
.content--border-end {
  border-inline-end: 1px solid var(--gx-ide-container-border-color);
}

/*only content*/
.container--only-content {
  grid-template-rows: 1fr;
}

/*no header, but has footer*/
.container--no-header:not(.container--only-content) {
  grid-template-rows: 1fr auto;
}

/*no footer, but has header*/
.container--no-footer:not(.container--only-content) {
  grid-template-rows: auto 1fr;
}

/*******************************
FOOTER
********************************/
/*ABOVE*/
.footer-above {
  border-top: 1px solid var(--gx-ide-container-border-color);
}
.footer-above--no-border-top {
  border-top: 0;
}
.footer-above--slimmer {
  padding-top: var(--spacing-padding-m);
  padding-bottom: var(--spacing-padding-m);
}
.footer-above--no-padding {
  padding: 0;
}

/*START and END*/
.footer {
  display: flex;
  gap: var(--gx-ide-container-elements-spacing);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--gx-ide-container-border-color);
}
.footer__start, .footer__end {
  display: flex;
  gap: var(--gx-ide-container-elements-spacing);
}
.footer--no-border {
  border-top: 0;
}
.footer--no-padding {
  padding: 0;
}
.footer--slimmer {
  padding-top: var(--spacing-padding-m);
  padding-bottom: var(--spacing-padding-m);
}