/* Chatbot widget */
.cb-btn { position: fixed; right: 18px; bottom: 90px; z-index: 900; width: 54px; height: 54px; border-radius: 50%; border: 0; cursor: pointer; color: #fff;
  background: linear-gradient(135deg, #12307a, #3b66c9 60%, #1a7fc9); box-shadow: 0 10px 24px rgba(22, 35, 64,.3); display: grid; place-items: center; }
.cb-btn svg { width: 26px; height: 26px; }
.cb-btn .dot { position: absolute; top: 4px; right: 4px; width: 12px; height: 12px; border-radius: 50%; background: #22c55e; border: 2px solid #fff; }
.cb-win { position: fixed; right: 18px; bottom: 154px; z-index: 901; width: min(370px, calc(100vw - 24px)); height: min(540px, calc(100vh - 180px)); background: var(--surface, #fff); color: var(--ink, #0b1530);
  border-radius: 18px; box-shadow: 0 20px 50px rgba(22, 35, 64,.3); display: none; flex-direction: column; overflow: hidden; border: 1px solid var(--line, #e6e7ee); }
.cb-win.open { display: flex; }
.cb-h { background: linear-gradient(120deg, #12307a, #3b66c9 60%, #1a7fc9); color: #fff; padding: 12px 14px; display: flex; align-items: center; gap: 10px; }
.cb-h .av { width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.2); display: grid; place-items: center; font-weight: 800; flex: none; }
.cb-h b { display: block; font-size: .95rem; } .cb-h small { opacity: .85; font-size: .72rem; }
.cb-h button { margin-left: auto; background: none; border: 0; color: #fff; font-size: 1.5rem; cursor: pointer; line-height: 1; padding: 4px 8px; }
.cb-body { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 8px; background: var(--bg, #fafafc); }
.cb-m { max-width: 85%; padding: 9px 12px; border-radius: 14px; font-size: .88rem; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.cb-m.bot { background: var(--surface, #fff); border: 1px solid var(--line, #e6e7ee); border-bottom-left-radius: 4px; align-self: flex-start; }
.cb-m.me { background: #12307a; color: #fff; border-bottom-right-radius: 4px; align-self: flex-end; }
.cb-m a.cb-link { display: inline-block; margin-top: 6px; font-weight: 700; color: #12307a; text-decoration: none; }
.cb-act { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; white-space: normal; }
.cb-act a { font-size: .78rem; padding: 4px 10px; border-radius: 99px; text-decoration: none; font-weight: 600; }
.cb-act .wa { background: #e6f8ec; color: #15803d; } .cb-act .tk { background: #eaf6fe; color: #1a7fc9; }
.cb-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 12px 0; background: var(--bg, #fafafc); max-height: 96px; overflow-y: auto; }
.cb-chips button { border: 1px solid var(--line, #e6e7ee); background: var(--surface, #fff); color: var(--ink, #0b1530); border-radius: 99px; padding: 5px 10px; font-size: .76rem; cursor: pointer; text-align: left; }
.cb-chips button:hover { border-color: #12307a; color: #12307a; }
.cb-f { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--line, #e6e7ee); background: var(--surface, #fff); }
.cb-f input { flex: 1; min-width: 0; border: 1px solid var(--line, #e6e7ee); border-radius: 99px; padding: 9px 14px; font-size: .9rem; background: var(--bg, #fff); color: inherit; }
.cb-f button { border: 0; border-radius: 50%; width: 40px; height: 40px; background: #12307a; color: #fff; cursor: pointer; flex: none; display: grid; place-items: center; }
.cb-typing { align-self: flex-start; font-size: .78rem; color: var(--ink-3, #6e6a80); }
@media (min-width: 900px) { .cb-btn { bottom: 24px; } .cb-win { bottom: 88px; } }
@media print { .cb-btn, .cb-win { display: none !important; } }
