/* Chat Component Styles */

/* Input group focus styling */
.chat-input-group:has(input:focus) {
  outline: 2px solid #0d6efd;
  outline-offset: -1px;
  border-radius: 0.375rem;
}

.chat-input-group input:focus {
  border-color: #0d6efd;
  box-shadow: none;
  outline: none;
}

/* Empty state */
.chat-empty-state {
  padding-top: 200px;
}

/* Message container */
.message-container {
  display: flex;
  margin-bottom: 8px;
}

.message-container.user {
  justify-content: flex-end;
}

.message-container.assistant {
  justify-content: flex-start;
  flex-direction: column;
  align-items: flex-start;
}

/* Message bubble */
.message-bubble {
  padding: 12px 16px;
  margin-bottom: 12px;
  border-radius: 8px;
  max-width: 70%;
  word-wrap: break-word;
  white-space: pre-wrap;
}

.message-bubble.user {
  background-color: #007bff;
  color: white;
  margin-left: auto;
  text-align: right;
}

.message-bubble.assistant {
  background-color: #e9ecef;
  color: #212529;
  margin-right: auto;
  text-align: left;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .message-bubble {
    max-width: 85%;
  }
}

/* Chat container should grow to fill remaining space */
.chat-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.chat-container .card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

/* Chat messages container should grow to fill available space */
#chat-messages {
  flex: 1 !important;
  min-height: 200px !important;
  max-height: none !important;
  overflow-y: auto !important;
}

/* Inline graphs in chat */
.message-container.assistant .js-plotly-plot {
  max-width: 100%;
  border-radius: 8px;
  margin: 8px 0;
  background-color: #f8f9fa;
}

.message-container.assistant > div {
  width: 100%;
}

/* Followup question buttons */
.followup-questions-container {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e9ecef;
}

.followup-question-btn {
  font-size: 0.85rem;
  padding: 6px 12px;
  border-radius: 16px;
  white-space: normal;
  text-align: left;
}

.followup-question-btn:hover {
  background-color: #007bff;
  color: white;
}

/* Error message styling */
.message-error {
  background-color: #fff3f3;
  border: 1px solid #f5c6cb;
  border-radius: 8px;
  padding: 12px 16px;
  color: #721c24;
  max-width: 70%;
}

.retry-btn {
  font-size: 0.85rem;
  padding: 6px 12px;
  border-radius: 16px;
}
