.chat-launcher { position: fixed; right: 26px; bottom: 26px; z-index: 500; width: 64px; height: 64px; border-radius: 50%; background: var(--accent); color: var(--paper); border: none; display: grid; place-items: center; box-shadow: 0 14px 30px -10px rgba(142,47,34,.65); transition: .3s; }
.chat-launcher:hover { transform: scale(1.08) rotate(-4deg); }
.chat-launcher::before { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1.5px solid var(--accent); opacity: .6; animation: ring 2.4s ease-out infinite; }
@keyframes ring { 0% { transform: scale(.8); opacity: .7; } 100% { transform: scale(1.35); opacity: 0; } }
.chat-launcher svg { width: 27px; height: 27px; }
.chat-launcher .unread { position: absolute; top: -2px; right: -2px; width: 20px; height: 20px; background: var(--brass); color: var(--ink); border-radius: 50%; font-family: var(--mono); font-size: .65rem; display: grid; place-items: center; font-weight: 600; }
.teaser { position: fixed; right: 26px; bottom: 102px; z-index: 499; background: var(--card); border: 1px solid var(--ink); padding: .75rem 1.1rem; font-size: .83rem; font-weight: 500; box-shadow: 8px 8px 0 var(--paper2); max-width: 230px; cursor: pointer; opacity: 0; transform: translateY(12px); pointer-events: none; transition: .4s; }
.teaser.show { opacity: 1; transform: none; pointer-events: auto; }
.teaser b { color: var(--accent); }
.chat-panel { position: fixed; right: 26px; bottom: 104px; z-index: 520; width: 392px; max-width: calc(100vw - 32px); height: 600px; max-height: calc(100vh - 140px); background: var(--paper); border: 1px solid var(--ink); box-shadow: 0 40px 80px -30px rgba(25,27,24,.6); display: flex; flex-direction: column; transform-origin: bottom right; transform: scale(.85) translateY(24px); opacity: 0; pointer-events: none; transition: .35s cubic-bezier(.3,1.1,.4,1); }
.chat-panel.open { transform: none; opacity: 1; pointer-events: auto; }
.ch-head { background: var(--ink); color: var(--paper); padding: 1rem 1.2rem; display: flex; align-items: center; gap: .9rem; }
.ch-avatar { width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0; border: 1.5px solid var(--brass); overflow: hidden; background: var(--card); padding: 3px; }
.ch-avatar .logo-mark { width: 100%; height: 100%; }
.ch-head b { display: block; font-size: .95rem; }
.ch-head .status { font-family: var(--mono); font-size: .68rem; color: rgba(243,239,229,.65); display: flex; align-items: center; gap: .4rem; }
.ch-head .status i { width: 7px; height: 7px; border-radius: 50%; background: #7BC47F; display: inline-block; animation: pulse 2s infinite; }
.ch-close { margin-left: auto; background: none; border: none; color: var(--paper); font-size: 1.5rem; line-height: 1; opacity: .7; transition: .2s; }
.ch-close:hover { opacity: 1; transform: rotate(90deg); }
.ch-body { flex: 1; overflow-y: auto; padding: 1.2rem; display: flex; flex-direction: column; gap: .7rem; scroll-behavior: smooth; }
.ch-body::-webkit-scrollbar { width: 5px; }
.ch-body::-webkit-scrollbar-thumb { background: var(--line); }
.msg { max-width: 84%; padding: .7rem 1rem; font-size: .9rem; line-height: 1.5; animation: msgIn .35s cubic-bezier(.2,.8,.3,1.1); }
@keyframes msgIn { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
.msg.bot { background: var(--card); border: 1px solid var(--line); align-self: flex-start; border-radius: 2px 12px 12px 12px; }
.msg.user { background: var(--ink); color: var(--paper); align-self: flex-end; border-radius: 12px 2px 12px 12px; }
.msg .sumcard { font-family: var(--mono); font-size: .78rem; border: 1px dashed var(--brass); padding: .8rem; margin-top: .6rem; background: rgba(168,130,60,.07); }
.msg .sumcard div { display: flex; justify-content: space-between; gap: 1rem; padding: .15rem 0; }
.msg .sumcard span:first-child { color: var(--mut); }
.typing { display: flex; gap: 5px; padding: 1rem 1.1rem; }
.typing i { width: 7px; height: 7px; border-radius: 50%; background: var(--mut); animation: tp 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .18s; }
.typing i:nth-child(3) { animation-delay: .36s; }
@keyframes tp { 0%, 60%, 100% { transform: none; opacity: .4; } 30% { transform: translateY(-5px); opacity: 1; } }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; animation: msgIn .35s; }
.chip { border: 1px solid var(--ink); background: var(--card); padding: .5rem .95rem; font-family: var(--mono); font-size: .76rem; transition: .2s; }
.chip:hover { background: var(--accent); border-color: var(--accent); color: var(--paper); transform: translateY(-2px); }
.ch-input { display: flex; border-top: 1px solid var(--line); background: var(--card); }
.ch-input input { flex: 1; border: none; background: none; padding: 1rem 1.1rem; font-family: var(--body); font-size: .92rem; outline: none; color: var(--ink); }
.ch-input button { border: none; background: var(--ink); color: var(--paper); width: 54px; display: grid; place-items: center; transition: .2s; }
.ch-input button:hover { background: var(--accent); }
.ch-note { font-family: var(--mono); font-size: .6rem; color: var(--mut); text-align: center; padding: .4rem; border-top: 1px solid var(--line); background: var(--paper2); }
.toast { position: fixed; left: 26px; bottom: 26px; z-index: 600; background: var(--ink); color: var(--paper); padding: 1rem 1.4rem; font-size: .88rem; border-left: 3px solid var(--brass); box-shadow: 0 20px 40px -18px rgba(0,0,0,.5); transform: translateY(140%); transition: .45s cubic-bezier(.2,.9,.3,1.1); max-width: 320px; }
.toast.show { transform: none; }
.toast b { color: var(--brass); }
.lawlist { margin-top: .6rem; border: 1px dashed var(--brass); background: rgba(168,130,60,.07); padding: .8rem; font-family: var(--mono); font-size: .78rem; }
.lawlist .lt { font-weight: 600; margin: 0 0 .3rem; color: var(--ink); }
.lawlist a { color: var(--accent); text-decoration: underline; display: block; padding: .15rem 0; }
.lawlist a:hover { color: var(--accent2); }
.lawlist .disc { margin-top: .6rem; color: var(--mut); font-size: .68rem; }
/* =====================================================
   ФИКС: широкий блок цен в чате, текст умещается
   ===================================================== */

/* 1) Сообщение бота с карточкой цен — на всю ширину окна */
.chat-panel .ch-body .msg.bot {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}

/* 2) Карточка цен: чуть компактнее шрифт и отступы — больше места тексту */
.chat-panel .ch-body .sumcard {
  padding: .7rem .8rem;
  font-size: .85rem;
}

/* 3) Строка «услуга — цена»: цена справа и всегда в одну строку */
.chat-panel .ch-body .sumcard > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .4rem 1rem;
}

/* название услуги может переноситься по словам… */
.chat-panel .ch-body .sumcard > div span {
  min-width: 0;
}

/* …а цена НЕ переносится и НЕ сжимается */
.chat-panel .ch-body .sumcard > div b {
  white-space: nowrap;
  flex-shrink: 0;
  text-align: right;
}

/* 4) НЕОБЯЗАТЕЛЬНО: на телефонах раскрыть чат на весь экран —
      места станет ещё больше. Если не понравится, просто удалите этот блок */
@media (max-width: 560px) {
  .chat-panel {
    width: 100%;
    max-width: 100%;
    inset: 0;
    border-radius: 0;
  }
}
.chat-panel .lawlist .lawart {
  display: block;
  padding: .35rem 0;
  font-size: .88rem;
  line-height: 1.4;
  color: var(--ink);
  border-bottom: 1px dashed var(--line);
}
.chat-panel .lawlist .lawart:last-child { border-bottom: none; }