/* widget 聊天頁樣式（web↔edge 逐 byte 同步，STATIC_SYNCED guard 鎖定；BOTHUB-073 F5 出倉） */
* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; display: flex; flex-direction: column;
  font: 15px/1.55 "PingFang TC", "Noto Sans TC", system-ui, sans-serif; background: #fff; }
.w-header { background: #10241c; color: #fff; padding: 14px 18px; position: relative; }
.w-close { position: absolute; top: 10px; right: 10px; border: 0; background: none; color: #fff;
  opacity: .7; font-size: 16px; line-height: 1; cursor: pointer; padding: 4px 6px; }
.w-close:hover { opacity: 1; }
.w-title { font-weight: 700; font-size: 16px; }
.w-sub { font-size: 12.5px; opacity: .75; margin-top: 2px; }
.w-log { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px;
  background: #f6f7f9; }
.bubble { max-width: 93%; padding: 10px 14px; border-radius: 13px; font-size: 15px;
  white-space: pre-wrap; word-break: break-word; }
.bubble.me { align-self: flex-end; background: #1a7f5a; color: #fff; border-bottom-right-radius: 4px; }
.bubble.bot { align-self: flex-start; background: #fff; border: 1px solid #e3e8ee; border-bottom-left-radius: 4px; }
.bubble .src { display: block; margin-top: 6px; font-size: 11px; color: #5a6b63; }
.bubble .bq { display: block; font-size: 11.5px; font-weight: 600; color: #5a6b63; margin-bottom: 4px; }
.bubble a { color: #147a54; word-break: break-all; }
.bubble.me a { color: #d9f2e7; }
.qbtns { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.qbtn { border: 1px solid #cfe3d9; background: #fff; border-radius: 999px; padding: 5px 13px;
  font-size: 13px; cursor: pointer; color: #1a7f5a; text-decoration: none;  /* text-decoration：CTA 直達 <a>（BOTHUB-130B）不吃連結底線 */
  transition: background .15s ease; }
.qbtn:hover { background: #eaf6f0; }
.qbtn:active { background: #d7ecdf; }
.qbtn:focus-visible { outline: 2px solid #1a7f5a; outline-offset: 2px; }
.fb { margin-top: 6px; font-size: 12px; color: #5a6b63; }
.fb button { border: 0; background: none; cursor: pointer; font-size: 14px; margin-right: 4px; }
.fb button.on { transform: scale(1.2); }
.w-quick { padding: 0 14px 8px; }
.w-input { display: flex; gap: 8px; padding: 12px 14px calc(12px + env(safe-area-inset-bottom));
  border-top: 1px solid #e3e8ee; background: #fff; }
.w-input input { flex: 1; border: 1px solid #e3e8ee; border-radius: 10px; padding: 9px 12px; font: inherit; }
.w-input input:disabled { background: #f2f4f3; }
.w-input button { border: 0; background: #1a7f5a; color: #fff; border-radius: 10px;
  padding: 9px 18px; font: inherit; cursor: pointer;
  transition: background .15s ease, transform .1s ease; }
.w-input button:hover { background: #187250; }
.w-input button:active { transform: scale(.97); }
.w-input button:focus-visible { outline: 2px solid #1a7f5a; outline-offset: 2px; }
.w-input button:disabled { background: #9dc3b2; cursor: default; }
.w-input input:focus-visible { border-color: #1a7f5a; }
.bubble .ts { display: block; margin-top: 4px; font-size: 10.5px; color: #5a6b63; }
.bubble.me .ts { color: #eaf7f0; }
.bubble.typing { display: flex; gap: 4px; padding: 13px 16px; }
.bubble.typing i { width: 7px; height: 7px; border-radius: 50%; background: #9fb3a9;
  animation: wdot 1.2s infinite ease-in-out; }
.bubble.typing i:nth-child(2) { animation-delay: .15s; }
.bubble.typing i:nth-child(3) { animation-delay: .3s; }
@keyframes wdot { 0%, 60%, 100% { transform: translateY(0); opacity: .4; } 30% { transform: translateY(-4px); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .bubble.typing i { animation: none; opacity: .7; } }
.bubble.err { background: #fdf7f7; border-color: #e8c8c8; }
.retry { margin-top: 8px; border: 1px solid #1a7f5a; background: #fff; color: #1a7f5a;
  border-radius: 999px; padding: 4px 14px; font-size: 13px; cursor: pointer; }
.retry:hover { background: #eaf6f0; }
.qbtn.cta { background:#1a7f5a; color:#fff; border-color:#1a7f5a; }
.qbtn.cta:hover { background:#187250; }
.promo-cards { display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.promo-card { border:1px solid #e3e8ee; border-radius:10px; padding:10px 12px; background:#fafcfb; }
.promo-title { font-weight:700; }
.promo-price { color:#1a7f5a; font-weight:700; margin-top:2px; }
.promo-desc { color:#5a6b63; font-size:13px; margin-top:2px; }
.promo-link { display:inline-block; margin-top:6px; color:#1a7f5a; font-weight:600; text-decoration:none; }
.promo-img { width:100%; max-width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:8px; margin-bottom:6px; display:block; }  /* aspect-ratio 預留版面：圖載入不推擠下方文字（C-m1） */
/* LINE 導流建議條（BOTHUB-092）——訊息區頂端、可略過 */
.w-funnel { display: flex; align-items: center; gap: 8px; padding: 8px 12px;
  background: #eef7f2; border-bottom: 1px solid #d5e8de; font-size: 13px; }
.w-funnel a { color: #1a7f5a; font-weight: 600; text-decoration: underline; }
.w-funnel-x { margin-left: auto; border: 0; background: none; cursor: pointer;
  color: #6b7f76; font-size: 14px; padding: 2px 4px; }
/* iOS Safari 聚焦 <16px 輸入框會強制縮放版面（BOTHUB-073 F2） */
@media (max-width:640px) { .w-input input { font-size:16px } }
