@import url("https://fonts.googleapis.com/css2?family=Kulim+Park:ital,wght@0,200;0,300;0,400;0,600;0,700;1,200;1,300;1,400;1,600;1,700&display=swap");
:root {
  --bg-secondary: #3b3b3b;
  --bg-thirdary: #262627;
  --bg-primary: #1d1d1d;
  --bg-extra: #111111;
  --chat-primary: #525151;
  --chat-secondary: #3a3a3a;
  --chat-error: #782222;
  --chat-placeholder: #232a3e;
  --font-primary: #fff;
  --font-secondary: #bbb;
}

html,
body,
:root {
  color-scheme: dark;
  overscroll-behavior-y: contain;
}

html {
  color: var(--font-primary);
  background-color: var(--bg-extra);
  overflow: hidden;
}

body {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  margin: 0;
  overflow: hidden;
  display: flex;
  flex-direction: row;
}

body,
textarea,
input,
option {
  font-family: "Kulim Park", sans-serif;
}

option {
  background-color: var(--bg-thirdary);
  padding-left: 5px;
}

.navWrapper {
  height: 100%;
}
.navWrapper.checkbox > #nav > #chatsContainer > div > div > input {
  display: block;
  margin-left: auto;
  height: 20px;
  aspect-ratio: 1;
}
.navWrapper .onCheck {
  display: none;
}
.navWrapper.checkbox .onCheck {
  display: block;
}

#nav {
  width: 200px;
  height: 100%;
  padding: 5px;
  box-sizing: border-box;
  background-color: var(--bg-extra);
  display: flex;
  flex-direction: column;
}
#nav hr {
  border: 1px solid var(--font-secondary);
}
#nav .footer {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  padding-top: 10px;
  padding-bottom: 5px;
}
#nav .footer a {
  text-decoration: none;
  color: var(--font-primary);
}

#main {
  width: calc(100vw - 200px);
  height: 100%;
  overflow: hidden;
  background-color: var(--bg-primary);
}

[data-state=newChat] #main {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  padding-top: 0;
  box-sizing: border-box;
}
[data-state=newChat] #main > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: clamp(5px, 5%, 30px);
  padding: 20px;
  padding-top: 0;
  flex-grow: 1;
  width: 100%;
}
[data-state=newChat] #main > div > div {
  display: flex;
  flex-direction: column;
  width: clamp(300px, 50%, 400px);
  padding: 10px;
  border-radius: 10px;
  background-color: var(--bg-thirdary);
}
[data-state=newChat] #main > div > div > :focus {
  outline: none;
}
[data-state=newChat] #main > div > div:focus-within {
  outline: 1px solid white;
}
[data-state=newChat] #main > div > div > select,
[data-state=newChat] #main > div > div > input {
  width: 100%;
  box-sizing: border-box;
  font-size: 120%;
  border: none;
  padding: 5px;
  background-color: transparent;
}
[data-state=newChat] #main > textarea {
  background-color: var(--bg-thirdary);
  resize: none;
  width: 80%;
  min-height: 100px;
  max-height: 500px;
  box-sizing: border-box;
  font-size: 120%;
  border: 0;
  padding: 20px;
  border-radius: 10px;
}

[data-state=chat] > #main {
  display: flex;
  flex-direction: column;
  position: relative;
  align-items: center;
}
[data-state=chat] > #main > .messages {
  padding-top: 20px;
  padding-bottom: 130px;
  padding-left: 7%;
  padding-right: 7%;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
  max-height: 100%;
  overflow-y: auto;
  scrollbar-gutter: stable;
  box-sizing: border-box;
}
[data-state=chat] > #main > .messages > .message {
  width: 100%;
  display: flex;
  flex-direction: row;
}
[data-state=chat] > #main > .messages > .message > .content {
  overflow-wrap: break-word;
  background-color: var(--chat-secondary);
  padding: 10px;
  border-radius: 10px;
  box-sizing: border-box;
  max-width: calc(100% - 21px);
}
[data-state=chat] > #main > .messages > .message > i {
  padding-right: 5px;
  padding-top: 5px;
}
[data-state=chat] > #main > .messages > .message.robot > .content {
  background-color: var(--chat-primary);
}
[data-state=chat] > #main > .messages > .message.robot > .content.error {
  background-color: var(--chat-error);
}
[data-state=chat] > #main > .messages > .message.placeholder > .content {
  background-color: var(--chat-placeholder);
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
[data-state=chat] > #main > .messages > .message.placeholder > .content > span {
  display: block;
  animation: chat 4s ease-in-out infinite;
  height: 1em;
  border-radius: 4px;
}
@keyframes chat {
  0%, 100% {
    background-color: var(--chat-primary);
  }
  50% {
    background-color: var(--chat-secondary);
  }
}
[data-state=chat] > #main .textarea-container {
  position: absolute;
  min-height: 100px;
  max-height: 500px;
  width: 100%;
  padding-bottom: 20px;
  bottom: 0px;
  display: flex;
  justify-content: center;
  background: linear-gradient(0deg, var(--bg-extra) 0%, transparent 100%);
}
[data-state=chat] > #main .textarea-container > textarea {
  background-color: var(--bg-secondary);
  resize: none;
  width: calc(80% - 32px);
  box-sizing: border-box;
  font-size: 120%;
  border: 0;
  padding: 20px;
  border-radius: 10px;
}
[data-state=chat] > #main .chat-meta {
  width: 100%;
  height: 45px;
  padding: 5px;
  padding-left: 25px;
  display: flex;
  flex-grow: 0;
  flex-shrink: 0;
  box-sizing: border-box;
  justify-content: space-between;
  align-items: center;
  background-color: var(--bg-thirdary);
  border-bottom: var(--bg-extra) 3px solid;
}
[data-state=chat] > #main .chat-meta .chatSettings {
  border-radius: 3px;
  transition: background-color 150ms;
  background-color: transparent;
  border: none;
  cursor: pointer;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
[data-state=chat] > #main .chat-meta .chatSettings:hover, [data-state=chat] > #main .chat-meta .chatSettings:focus {
  background-color: var(--bg-secondary);
}
[data-state=chat] > #main .chat-meta .model {
  margin-left: auto;
  padding-left: 5px;
  margin-right: 10px;
  color: var(--font-secondary);
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
}
[data-state=chat] > #main .chat-meta > span {
  white-space: nowrap;
}

#chatsContainer {
  overflow-x: hidden;
  overflow-y: auto;
  padding-top: 10px;
  display: flex;
  max-height: calc(100% - 40px);
  scrollbar-gutter: stable;
  flex-direction: column;
  gap: 3px;
}
#chatsContainer .bi-chat-text {
  margin-right: 5px;
}
#chatsContainer > div {
  display: none;
}
#chatsContainer > div > div {
  border-radius: 3px;
  transition: background-color 150ms;
  background-color: transparent;
  border: none;
  cursor: pointer;
  padding: 4px;
  padding-left: 10px;
  height: 27px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
#chatsContainer > div > div:hover, #chatsContainer > div > div:focus {
  background-color: var(--bg-thirdary);
}
#chatsContainer > div > div > input {
  display: none;
}
#chatsContainer > div > span {
  padding-left: 31px;
  font-size: 75%;
  color: var(--font-secondary);
}
#chatsContainer > div:has(div) {
  display: block;
}
#chatsContainer .current {
  background-color: var(--bg-primary);
}

#newChat {
  width: 100%;
  text-align: left;
  font-size: 110%;
  box-sizing: border-box;
  background-color: transparent;
  border: none;
  outline: none;
  padding: 0;
}
#newChat:focus-within > .btn, #newChat:focus > .btn {
  outline: white solid 1px;
}
#newChat > .btn {
  padding: 5px;
  position: relative;
  height: 30px;
  box-sizing: border-box;
  border-radius: 3px;
  transition: background-color 150ms;
  background-color: transparent;
  border: none;
  cursor: pointer;
}
[data-state=newChat] #newChat > .btn {
  background-color: var(--bg-primary);
}
#newChat > .btn:hover, #newChat > .btn:focus {
  background-color: var(--bg-thirdary);
}
#newChat > .btn > .bi-plus-lg {
  position: absolute;
  right: 5px;
}

.bi-list {
  display: none;
}

code {
  background-color: #282c34;
  padding: 4px;
  border-radius: 4px;
}
code.hljs {
  display: block;
  border-radius: 5px;
  position: relative;
  white-space: pre-wrap;
  min-height: 20px;
  padding-top: 5px !important;
  margin-top: 5px;
  margin-bottom: 5px;
}
code .copy {
  position: absolute;
  top: 5px;
  right: 5px;
  padding: 5px;
  border-radius: 3px;
  transition: background-color 150ms;
  background-color: transparent;
  border: none;
  cursor: pointer;
}
code .copy:hover, code .copy:focus {
  background-color: var(--bg-primary);
}
code br {
  display: unset !important;
}

:is(p, hr, ul, ol, br, h1, h2, h3, h4, h5, h6, blockquote) + br,
ul > br,
ol > br,
blockquote br:first-child,
p:empty {
  display: none;
}

#chatSettingsOverlay {
  position: absolute;
  width: 100vw;
  width: 100dvw;
  height: 100vh;
  height: 100dvh;
  left: 0;
  top: 0;
  background-color: rgba(0, 0, 0, 0.3333333333);
  transition: background-color 150ms;
}
#chatSettingsOverlay:empty {
  visibility: hidden;
  background-color: transparent;
}

.settings {
  max-width: 300px;
  width: 100%;
  height: 100%;
  max-height: 600px;
  background-color: var(--bg-secondary);
  border-radius: 5px;
  padding: 7px;
  position: absolute;
  right: 20px;
  top: 50px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.settings input,
.settings select {
  border: none;
  text-decoration: underline;
  background-color: transparent;
  font-size: 100%;
  width: 200px;
}
.settings input:focus,
.settings select:focus {
  outline: none;
}
.settings > div {
  border: 1px solid transparent;
  width: 100%;
  display: flex;
}
.settings > div:focus-within, .settings > div:focus {
  border: 1px solid #fff;
}
.settings > :last-child {
  margin-top: auto;
}
.settings > button.delete {
  border-radius: 3px;
  transition: background-color 150ms;
  background-color: transparent;
  border: none;
  cursor: pointer;
  border: #dc3545 2px solid;
  width: fit-content;
  color: #dc3545;
  padding: 5px;
  font-size: 110%;
  transition: background-color 150ms, color 150ms;
}
.settings > button.delete:hover, .settings > button.delete:focus {
  background-color: #dc3545;
}
.settings > button.delete:focus, .settings > button.delete:hover {
  color: #fff;
}
.settings > button.delete > i {
  padding-right: 5px;
}
.settings button.close {
  position: absolute;
  top: 10px;
  right: 10px;
  border-radius: 3px;
  transition: background-color 150ms;
  background-color: transparent;
  border: none;
  cursor: pointer;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.settings button.close:hover, .settings button.close:focus {
  background-color: var(--bg-thirdary);
}

.logo {
  display: flex;
  flex-direction: row;
  align-items: center;
  font-size: 25px;
  font-weight: bold;
  color: var(--font-secondary);
  padding: 5px;
  padding-left: 0;
  cursor: default;
}
.logo .fancy {
  color: var(--font-primary);
}

.options {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.options > button {
  height: 35px;
  aspect-ratio: 1;
  border-radius: 3px;
  transition: background-color 150ms;
  background-color: transparent;
  border: none;
  cursor: pointer;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.options > button:hover, .options > button:focus {
  background-color: var(--bg-secondary);
}

@media screen and (max-width: 700px) {
  #nav {
    position: absolute;
    z-index: 999999;
    height: 100%;
    translate: -100% 0;
    transition: translate 300ms;
  }
  [nav] #nav {
    translate: 0 0;
  }
  #main {
    width: 100%;
  }
  #newChat .btn {
    width: calc(100% - 40px);
  }
  .navWrapper {
    transition: background-color 150ms;
    position: absolute;
    z-index: 999999;
    height: 100%;
  }
  [nav] .navWrapper {
    background-color: rgba(0, 0, 0, 0.3333333333);
    width: 100%;
    pointer-events: all;
  }
  .bi-list {
    border-radius: 3px;
    transition: background-color 150ms;
    background-color: transparent;
    border: none;
    cursor: pointer;
    display: inline-block;
    position: absolute;
    translate: 200px 0px;
    z-index: 999;
    transition: translate 300ms, background-color 150ms;
    padding: 5px;
  }
  .bi-list:hover, .bi-list:focus {
    background-color: var(--bg-secondary);
  }
  [nav] .bi-list {
    translate: 155px 80zpx;
  }
  :not([nav]) .chat-meta {
    padding-left: 40px !important;
  }
  [data-state=chat] > #main > .textarea-container > textarea {
    width: 90%;
  }
  [data-state=newChat] > #main > textarea {
    width: 90%;
  }
}
@media screen and (max-width: 900px) {
  .messages {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

/*# sourceMappingURL=style.css.map */
