body {
  --text-color: #a49c9c;
  --base-font-size: 1.25rem;
  background-color: #1e2121;
  color: var(--text-color);
  font-size: var(--base-font-size);
}

* {
  font-family: "Gill Sans";
  font-style: sans-serif;
}

.chat-window {
  border: 2px double var(--text-color);
  border-radius: 5px;
  padding: 1rem;
  height: 85%;
  display: flex;
  flex-direction: column;
}

.scroll-container {
  overflow: auto;
  display: flex;
  flex-direction: column-reverse;
}

@property --angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

.chat-window.thinking, div.container form.thinking {
  --angle: 0deg;
  border-image: conic-gradient(from var(--angle), red, yellow, lime, aqua, blue, magenta, red) 1;
  animation: 5s rotate linear infinite;

}

@keyframes rotate {
  to {
    --angle: 360deg;
  }
}

.prompt-container {
  width: calc(100% - 1rem);
  border: inherit;
  border-radius: inherit;
  padding: 0.25rem;
  margin-top: auto;
  overflow: auto;
  min-height: 2.5rem;
}

.prompt {
  display: inline-block;
  width: calc(100% - 2rem);
  height: 100%;
  outline: none;
  cursor: text;
}

.prompt:empty::after {
  content: "What's your question?";
  color: gray;
  display: inline-block;
}

.scroll-container alfred-chatbot {
  width: calc(100% - 2rem);
}

.message {
  display: grid;
  grid-template-columns: 5rem auto;
  width: 95%;
  padding: 0.25rem;
  margin-bottom: 0.5rem;
}

.message pre code {
  border-radius: 20px;
}

.message .message-content pre {
  margin-block: 0;
  white-space: pre-wrap;
}

.message .role {
  font-size: 0;
}

.message.user {
  filter: brightness(1.5);
  border-radius: 10px;
  background-color: black;
  padding: 0.5rem;
}

.message.user pre {
  filter: brightness(0.8);
}

.message.user .role {
  border: 2px solid var(--text-color);
  width: 2rem;
  text-align: center;
  border-radius: 100%;
  height: 2.25rem;
  padding: 0.25rem;
}

.message.user .role::first-letter {
  font-size: 2rem;
  text-transform: capitalize;
}

.ellipse::after {
  overflow: hidden;
  display: inline-block;
  vertical-align: bottom;
  animation: ellipsis steps(4,end) 900ms infinite;
  content: "\2026";
  width: 0px;
}

@keyframes ellipsis {
  to {
    width: 1.25em;    
  }
}

.message-content pre {
  position: relative;
}

.message-content alfred-copy-code {
  position: absolute;
  top: 10px;
  right: 30px;
  height: 2rem;
  width: 2rem;
  cursor: pointer;
  display: flex;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}

alfred-copy-code:hover {
  transform: scale(1.3);
}

.message-content alfred-copy-code::after {
  content: '📋';
  font-size: 0.75rem;
}

.message-content alfred-copy-code.copied::after {
  content: '✅';
}

alfred-prompt {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100%;
}

alfred-prompt button.send {
  position: sticky;
  right: 0.5rem;
  bottom: 0.5rem;
  border-radius: 100%;
  height: 2rem;
  width: 2rem;
  font-weight: bold;
  background-color: inherit;
  color: indianred;
  cursor: pointer;
}

alfred-prompt button.send:hover {
  transform: scale(1.05);
  filter: brightness(1.5);
}