/* AI 導遊真實問答 — 追加在既有示範對話之後，不改既有樣式 */

.qg-ai-sources {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
  margin-top: 6px;
  padding: 6px 9px;
  border-radius: 9px;
  background: rgba(31, 41, 55, 0.05);
  font-size: 0.75rem;
  line-height: 1.55;
  color: #4b5563;
}

.qg-ai-sources svg {
  flex: none;
  width: 13px;
  height: 13px;
  opacity: 0.7;
}

/* 回答下方點名到的地點，小圖卡點了開詳情彈窗 */
.qg-ai-place-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.qg-ai-place-card {
  display: flex;
  align-items: center;
  gap: 7px;
  max-width: 220px;
  padding: 5px 12px 5px 5px;
  border: 1px solid rgba(31, 41, 55, 0.12);
  border-radius: 999px;
  background: #fff;
  color: #1f2937;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.qg-ai-place-card:hover,
.qg-ai-place-card:focus-visible {
  border-color: rgba(31, 41, 55, 0.32);
  box-shadow: 0 2px 8px rgba(31, 41, 55, 0.1);
}

.qg-ai-place-card img {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  object-fit: cover;
}

.qg-ai-place-card span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 等待模型回應時的三點動畫 */
.qg-ai-pending {
  display: flex;
  align-items: center;
  min-height: 20px;
}

.qg-ai-dots {
  display: inline-flex;
  gap: 4px;
}

.qg-ai-dots i {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.35;
}

@media (prefers-reduced-motion: no-preference) {
  .qg-ai-dots i {
    animation: qg-ai-blink 1.1s ease-in-out infinite;
  }

  .qg-ai-dots i:nth-child(2) { animation-delay: 0.18s; }
  .qg-ai-dots i:nth-child(3) { animation-delay: 0.36s; }

  .qg-ai-turn {
    animation: qg-ai-in 360ms cubic-bezier(0.22, 0.68, 0.32, 1) both;
  }
}

@keyframes qg-ai-blink {
  0%, 100% { opacity: 0.25; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-2px); }
}

@keyframes qg-ai-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

/* 送出中把輸入框收斂成不可用狀態，避免連送 */
#chat-input:disabled {
  opacity: 0.55;
  cursor: progress;
}

/* ---------- 訪客情境列 ---------- */

.qg-ai-context {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 13px;
  border: 1px solid rgba(31, 41, 55, 0.1);
  background: rgba(31, 41, 55, 0.03);
}

.qg-ai-context-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.qg-ai-context strong {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8438rem;
  font-weight: 700;
  color: #1f2937;
}

.qg-ai-context strong svg { width: 15px; height: 15px; }

.qg-ai-context small {
  font-size: 0.75rem;
  line-height: 1.55;
  color: #9ca3af;
}

.qg-ai-chips { display: flex; flex-wrap: wrap; gap: 6px; }

.qg-ai-chip {
  padding: 3px 9px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(31, 41, 55, 0.12);
  font-size: 0.75rem;
  color: #4b5563;
}

.qg-ai-chip.is-empty { border-style: dashed; color: #9ca3af; }

.qg-ai-context-clear,
.qg-ai-loc {
  margin-left: auto;
  padding: 5px 11px;
  border-radius: 9px;
  border: 1px solid rgba(31, 41, 55, 0.14);
  background: #fff;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  color: #4b5563;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease;
}

.qg-ai-loc {
  margin-left: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.qg-ai-loc svg { width: 14px; height: 14px; }
.qg-ai-loc.is-on { background: #1f2937; border-color: #1f2937; color: #fff; }
.qg-ai-loc:disabled { opacity: 0.5; cursor: progress; }

.qg-ai-context-clear:hover,
.qg-ai-loc:not(.is-on):hover { background: rgba(31, 41, 55, 0.06); color: #1f2937; }

@media (prefers-reduced-motion: reduce) {
  .qg-ai-context-clear, .qg-ai-loc { transition: none; }
}
