:host {
  --gx-space-large: 0.8em;
  --gx-space-medium: 0.5em;
  --gx-space-small: 0.3em;
  --gx-scrollbar-width: 10px;
  --gx-z-index-float: 10;
  --gx-header-height: 40px;
  --gx-input-height: 2rem;
  --gx-control-btn-height: 40px;
  --gx-control-btn-width: 30px;
}

:host {
  --gx-text-color: #121212;
  --gx-background-color: #ffffff;
  --gx-border-color: #f1f1f1;
  --gx-text-accent-color: #ffffff;
  --gx-background-accent-color: #696ef2;
  --gx-background-hover-color: #696ef21a;
  --gx-message-user-color: #f1f1f1;
  --gx-message-assistant-color: #fff;
  --gx-scrollbar-track-color: #f1f1f1;
  --gx-scrollbar-thumb-color: #888;
  --gx-scrollbar-thumb_hover-color: #555;
  --gx-backdrop-color: #ffffff80;
  --gx-shadow-md: 2px 2px 8px #0000006c;
}

*,
::after,
::before {
  box-sizing: border-box;
}

ul, li {
  list-style: none;
  margin: 0;
  padding: 0;
}

.chat-wrapper {
  display: flex;
  flex-direction: column;
  height: calc(100% - var(--gx-header-height));
}

.scroll {
  overflow-y: auto;
}

.chat-history {
  flex: 1 1 0;
  align-items: end;
  display: grid;
}

.chat-history__message {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--gx-space-medium);
  padding: var(--gx-space-large);
}

.chat-history__message--user {
  background: var(--gx-message-user-color);
}

.chat-history__message--assistant {
  background: var(--gx-message-assistant-color);
}

.chat-form {
  display: grid;
  grid-row-gap: var(--gx-space-medium);
  gap: var(--gx-space-medium);
  padding: var(--gx-space-large);
}

.regenerate-btn {
  border: 1px solid var(--gx-border-color);
}

.chat-input {
  border: 1px solid var(--gx-border-color);
  line-height: var(--gx-input-height);
  padding: 0 var(--gx-space-medium);
}

::-webkit-scrollbar {
  width: var(--gx-scrollbar-width);
}

/* Track */
::-webkit-scrollbar-track {
  background: var(--gx-scrollbar-track-color);
}

/* Handle */
::-webkit-scrollbar-thumb {
  background: var(--gx-scrollbar-thumb-color);
}
::-webkit-scrollbar-thumb:hover {
  background: var(--gx-scrollbar-thumb_hover-color);
}