::-webkit-scrollbar {
  width: 16px;
  background: black;
}

::-webkit-scrollbar-thumb {
  background: #222;
  -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.75);
  border:1px solid grey;
}

::-webkit-scrollbar-corner {
    background: #000;
}

.chat-message {
  max-width: 100%;
}

.chat-message:hover {
  color: white;
  cursor: pointer;
}

/* God's messages (see CharacterMessage, message-character.js, and the engine's
   CONST.COLOR.RAINBOW) cycle through the whole color spectrum instead of sitting on one fixed
   color -- a plain CSS filter animation, so it costs nothing beyond the GPU compositing every
   other CSS animation on the page already uses (Douglas 2026-09-18). */
@keyframes chat-rainbow-cycle {
  0%   { filter: hue-rotate(0deg); }
  100% { filter: hue-rotate(360deg); }
}

.chat-message-rainbow {
  color: #ff3b3b;
  animation: chat-rainbow-cycle 3s linear infinite;
}

/* Purple: a plain, static theme -- the same violet the Crystal card tier already uses
   elsewhere in this game (card-view-modal.css/item-slots-modal.css), so it reads as part of
   the site's own palette rather than an arbitrary new color (Douglas 2026-09-18). */
.chat-message-purple {
  color: #d38ef0;
}

/* Retrowave: cycles between three colors already used in this game's own UI -- hot pink
   (minimap.css), the Crystal card violet, and the Platinum card cyan -- the classic
   magenta/purple/cyan synthwave triad, built entirely from the site's existing palette rather
   than a generic neon reference. */
@keyframes chat-retrowave-cycle {
  0%   { color: #ff3db0; }
  50%  { color: #d38ef0; }
  100% { color: #7fe8e0; }
}

.chat-message-retrowave {
  animation: chat-retrowave-cycle 4s ease-in-out infinite alternate;
}

.chatbox-wrapper {
  display: flex;
  height: 100%;
  flex-direction: column;
  word-wrap: break-word;
}

#chat-input {
  width: 100%;
  color: yellow;
  outline: none;
  padding-left: 8px;
  border-top: 1px solid black;
  border-bottom: 1px solid black;
}

#chat-input:disabled {
  background-image: url("../png/bg4.png");
  color: grey;
}

#chat-text {
  overflow-y: hidden;
  background-image: url("../png/bg3.png");
  height: 100%;
  padding: 4px;
  border: 1px solid black;
  border-top: 0px;
}

.chat-header {
  display: flex;
  flex: 1 1 auto;
  overflow-x: hidden;
}

.channel-header {
  display: flex;
}

.wrapper-header {
  display: flex;
  height: 46px;
}

.chat-title span {
  pointer-events: none;
  margin-top: 4px;
  margin-bottom: 4px;
  margin-left: 24px;
  margin-right: 24px
}

.chat-title:hover {

}

.chat-title {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  background-image: url("../png/bg2.png");
  cursor: pointer;
  font-weight: bold;
  border: 1px solid black;
}

.chat-title.selected {
  background-image: url("../png/bg3.png");
  border-bottom: 0px;
}

.chat-body {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  scrollbar-width: thin;
  height: 100%;
  align-items: flex-start;
}

.channel-empty {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.chat-footer {
  margin-top: 2px;
  margin-bottom: 2px;
  display: flex;

}

/* The NPC tab (see ChannelManager.addNpcMessage and message-npc.js) uses the same three colors
   the NPC chat window does -- see the matching block in css/modal.css for where they come from.
   Single-class selectors on purpose, so .chat-message:hover still wins and an NPC line
   highlights on hover exactly like every other line in every other channel. */
.npc-channel-line-npc {
  color: #66ffff;
}

.npc-channel-line-player {
  color: #9999ff;
}