/* 대화창 공용 모양(2026-10-23): 대국장 game.css 의 .table-talk 규칙을 .pb-talk 로 옮긴 것 — 마을(village.html)에서 씀 */
.pb-talk{position:relative;border:2px solid #cfc6ad;border-radius:22px;background:#fffdf5;color:#2b2b2b;padding:18px;margin:6px 0 16px;box-shadow:0 8px 25px #0003;flex-shrink:0}.pb-talk[hidden]{display:none}.pb-talk:after{content:'';position:absolute;bottom:-10px;left:23%;width:16px;height:16px;transform:rotate(45deg);background:#fffdf5;border-bottom:2px solid #cfc6ad;border-right:2px solid #cfc6ad}.pb-talk[data-side=right]:after{left:auto;right:23%}.pb-talk>b{color:#315746;display:block;padding-right:24px}.pb-talk p{font-size:13px;line-height:1.75;white-space:pre-line;overflow-wrap:anywhere}.pb-talk button{border:1px solid #c5b991;border-radius:9px;background:#f4edda;color:#344a3c;padding:8px 10px;font-size:12px;text-align:left}.pb-talk .talk-close{position:absolute;right:10px;top:7px;border:0;background:none;font-size:23px;padding:3px 7px}.pb-talk .talk-choices{display:grid;gap:7px}.pb-talk label{display:block;font-size:12px;margin:12px 0 8px}.pb-talk textarea{display:block;width:100%;resize:vertical;min-height:65px;background:#fffef9;color:#243b2f;border:1px solid #c5b991;border-radius:8px;padding:10px;margin-top:6px;font:inherit}.pb-talk .talk-note{font-size:11px;color:#7a735c}.talk-quote{color:#77715f}
.pb-talk .talk-log{max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:8px;margin:10px 0;padding-right:4px}
.pb-talk .talk-log p{margin:0;padding:8px 12px;border-radius:14px;max-width:88%}
.pb-talk .talk-me{align-self:flex-end;background:#e3eee6;color:#22392c;border-bottom-right-radius:4px}
.pb-talk .talk-ai{align-self:flex-start;background:#f6efd9;color:#3a2f16;border-bottom-left-radius:4px}
.pb-talk .talk-wait{opacity:.7;font-style:italic}
.pb-talk .talk-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
.pb-talk .talk-form{margin-top:10px}.pb-talk .talk-form textarea{min-height:48px;margin:0}
.pb-talk .talk-row{display:flex;gap:6px;justify-content:flex-end;margin-top:6px}
.pb-talk .talk-icon{width:38px;text-align:center;padding:6px 0;font-size:16px}.pb-talk .talk-icon.on{background:#315746;color:#fff;border-color:#315746}
.pb-talk .talk-send{background:#315746;color:#fff;border-color:#315746;padding:8px 16px}
.pb-talk .talk-left{display:block;text-align:right;margin-top:6px}
@media(max-width:600px){.pb-talk .talk-choices{grid-template-columns:1fr}}
.pb-talk .talk-voicebtn{margin-right:auto;background:#7a4e12;color:#fff;border-color:#7a4e12;padding:8px 12px}
.pb-talk .talk-voicebtn.on{background:#b8452f;border-color:#b8452f;animation:talkPulse 1.4s ease-in-out infinite}
@keyframes talkPulse{50%{box-shadow:0 0 0 6px #b8452f33}}
.pb-talk .talk-voice{display:flex;align-items:center;gap:10px;margin:6px 0 2px;font-size:12.5px;font-weight:700;color:#7a4e12}
.pb-talk .talk-voice[hidden]{display:none}
.pb-talk .talk-voice i{flex:1;height:6px;border-radius:3px;background:#efe4c6;overflow:hidden}
.pb-talk .talk-voice b{display:block;height:100%;background:#b8452f;transform-origin:left;transform:scaleX(0);transition:transform .06s}
.pb-talk .talk-field{position:relative}
.pb-talk .talk-form textarea{min-height:62px}
.pb-talk .talk-wave{position:absolute;inset:0;display:flex;flex-direction:column;gap:3px;padding:6px 34px 6px 10px;border:2px solid #b8452f;border-radius:12px;background:#fff8ee;z-index:1;box-sizing:border-box}
.pb-talk .talk-wave[hidden]{display:none}
.pb-talk .talk-wave span{font-size:12.5px;font-weight:800;color:#7a4e12;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pb-talk .talk-wave canvas{flex:1;width:100%;min-height:22px;display:block}
.pb-talk .talk-wave[data-mode=listen]{border-color:#315746}
.pb-talk .talk-wave[data-mode=listen] span{color:#315746}
.pb-talk .talk-wave[data-mode=think] canvas,.pb-talk .talk-wave[data-mode=speak] canvas{opacity:.25}
.pb-talk .talk-wave[data-mode=speak]{cursor:pointer;border-color:#7a4e12;animation:talkPulse 1.4s ease-in-out infinite}
.pb-talk .talk-wave .tw-x{position:absolute;top:5px;right:5px;width:24px;height:24px;padding:0;border-radius:50%;font-size:15px;line-height:1;background:#fff;border:1px solid #d9c591;color:#7a4e12;cursor:pointer}
.pb-talk .talk-icon.rec{background:#b8452f;color:#fff;border-color:#b8452f;animation:talkPulse 1.4s ease-in-out infinite}
.pb-talk .talk-icon:disabled{opacity:.4;cursor:default}
.pb-talk .talk-icon.talk-mic{width:auto;padding:6px 10px;font-size:12.5px;font-weight:700}
.pb-talk .talk-row{flex-wrap:wrap}
/* 마을: 화면 아래 가운데 떠 있는 대화창(대표님: 마을에서 누구를 만나 대화할 때도 대국장과 같은 두 가지 음성 방식) */
.v-talk{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);width:min(460px,calc(100vw - 24px));max-height:min(52vh,460px);overflow:hidden;z-index:70;margin:0;font-family:"Noto Sans KR",sans-serif;display:flex;flex-direction:column}
.v-talk[hidden]{display:none}
.v-talk>*{flex-shrink:0}.v-talk .talk-close{position:absolute}
.v-talk:after{display:none}
.v-talk .talk-log{max-height:min(17vh,170px);flex:0 1 auto;min-height:48px;overflow:auto}
/* 2026-10-23: 대화는 머리 위 말풍선으로도 보이니 창은 낮게 — 화면 가운데(내 인물)가 가려지지 않게 */
.v-talk .talk-choices{max-height:72px;overflow:auto;flex:0 1 auto;min-height:0}
.v-talk button{font-family:inherit}
.v-talk textarea{min-height:44px}
@media(max-width:600px){.v-talk{bottom:8px;max-height:50vh;padding:14px}}
.pb-talk .talk-autosend,.table-talk .talk-autosend{display:flex;align-items:center;gap:8px;margin-top:8px;padding:7px 10px;border-radius:10px;background:#fff3d6;color:#6b4a12;font-size:12.5px;font-weight:700}
.pb-talk .talk-autosend[hidden],.table-talk .talk-autosend[hidden]{display:none}
.pb-talk .talk-autosend b,.table-talk .talk-autosend b{font-size:15px;color:#b8452f}
.pb-talk .talk-autosend button,.table-talk .talk-autosend button{margin-left:auto;border:0;background:#315746;color:#fff;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:800;cursor:pointer}
