/* NPC 전문 대화(A8) + 일주 동무 카드: .vcard 패널 안의 말풍선·선택지 칩. 색은 .vcard 변수만 쓰므로 낮·밤 테마가 같이 바뀐다. */
.talk-body.is-dlg { margin: 0 0 8px; }
.dlg { display: block; }
.dlg-log {
  display: flex; flex-direction: column; gap: 8px; max-height: min(40dvh, 320px); overflow-y: auto; overscroll-behavior: contain;
  padding: 2px 2px 6px; margin: 0 -2px;
}
.dlg-log:focus { outline: none; }
.dlg-b {
  max-width: 94%; padding: 9px 13px; border-radius: 16px; font-size: 14.5px; line-height: 1.55; word-break: keep-all; box-sizing: border-box;
  animation: dlg-in .22s ease-out both;
}
.dlg-npc { align-self: flex-start; background: var(--vc-inset); color: var(--vc-ink); border-bottom-left-radius: 5px; }
.dlg-me { align-self: flex-end; background: var(--vc-pri); color: var(--vc-pri-ink); border-bottom-right-radius: 5px; font-family: 'Jua', sans-serif; font-size: 15px; }
.dlg-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.dlg-link {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 0; border-radius: 12px; cursor: pointer; box-sizing: border-box;
  background: var(--vc-soft); color: var(--vc-soft-ink); box-shadow: inset 0 0 0 1px var(--vc-line);
  font-family: 'Jua', sans-serif; font-size: 14.5px; line-height: 1.2; text-decoration: none;
}
.dlg-link:hover { box-shadow: inset 0 0 0 1.5px var(--vc-ink); }
.dlg-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.dlg-chips[hidden] { display: none; }
.dlg-chip {
  display: inline-flex; align-items: center; gap: 4px; min-height: 44px; padding: 0 15px; margin: 0; border-radius: 22px; cursor: pointer; box-sizing: border-box;
  background: transparent; color: var(--vc-ink); border: 1.5px solid var(--vc-ink);
  font-family: 'Jua', sans-serif; font-size: 15px; line-height: 1.2; text-decoration: none; animation: dlg-in .22s ease-out both;
}
.dlg-chip:hover { background: var(--vc-soft); }
.dlg-chip--go { background: var(--vc-soft); border-color: var(--vc-line); }
.dlg-chip--act { border-style: dashed; color: var(--vc-sub); border-color: var(--vc-line); }
.dlg-ext { font-size: 17px; line-height: 1; opacity: .7; }
.dlg-chip:focus-visible, .dlg-link:focus-visible { outline: 3px solid var(--vc-star); outline-offset: 2px; }
@keyframes dlg-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .dlg-b, .dlg-chip { animation: none; } }
@media (max-width: 640px) {
  .dlg-log { max-height: 32dvh; }
  .dlg-b { font-size: 14px; }
}

/* 일주 동무: 마당 펫 말풍선(.bubble--pet 모양 재사용)과 동무 카드 그림 */
.bubble--cmp { background: #fffdf9; border: 2px solid #43352d; padding: 2px; display: grid; place-items: center; }
.bubble--cmp img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.bubble--cmp[hidden] { display: none; }
.bubble--cmp:focus-visible { outline: 3px solid var(--vc-star, #3a7bd5); outline-offset: 2px; }
.cmp-img { display: block; width: 120px; height: 120px; margin: 2px auto 8px; border-radius: 24px; background: var(--vc-inset); object-fit: contain; }

/* 목록 화면(WebGL 없음·동작 줄이기): 대화 열기 버튼과 인라인 대화 */
.pl-talk {
  display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; padding: 0 16px; border-radius: 22px; cursor: pointer; box-sizing: border-box;
  background: transparent; color: var(--vc-ink); border: 1.5px solid var(--vc-ink); font-family: 'Jua', sans-serif; font-size: 15px;
}
.pl-talk:hover { background: var(--vc-soft); }
.pl-talk:focus-visible { outline: 3px solid var(--vc-star, #3a7bd5); outline-offset: 2px; }
.pl-dlg { margin-top: 10px; padding: 10px; border-radius: 16px; background: var(--vc-soft, rgba(0,0,0,.04)); }
.pl-dlg[hidden] { display: none; }
.pl-cmp { display: flex; gap: 12px; align-items: center; }
.pl-cmp img { width: 72px; height: 72px; border-radius: 18px; background: var(--vc-inset); object-fit: contain; flex: none; }
.pl-cmp .pl-menu { margin-top: 6px; }
