/* Толик как онлайн-консультант: окошко чата всплывает над кнопкой справа внизу,
   страница под ним остаётся живой. Подключается последним и перекрывает старую
   полноэкранную раскладку панели из tolik*.css, mobile*.css и showcase.css. */

html body.service-site .booking-assistant .booking-assistant__panel:not([hidden]) {
  --tw-accent: #ff782e; --tw-text: #1b1a17; --tw-muted: #75716a; --tw-line: #1b1a1712; --tw-soft: #f5f2ee;
  position: fixed !important; inset: auto 24px 96px auto !important; z-index: 1300 !important;
  display: flex !important; flex-direction: column !important; gap: 0 !important;
  width: 380px !important; height: min(600px, calc(100dvh - 130px)) !important; max-height: none !important;
  margin: 0 !important; padding: 0 !important; overflow: hidden !important;
  border: 0 !important; border-radius: 26px !important; background: #fff !important;
  box-shadow: 0 30px 80px -20px #3b1d0a66, 0 0 0 1px #1b1a170f, 0 6px 16px #0000000f !important;
  transform-origin: 100% 100%; animation: tolik-pop .3s cubic-bezier(.16, 1, .3, 1);
  font-family: Inter, system-ui, sans-serif; color: var(--tw-text);
}
@keyframes tolik-pop { from { opacity: 0; transform: translateY(14px) scale(.95); } to { opacity: 1; transform: none; } }
html body.service-site .booking-assistant__panel > .booking-assistant__note {
  display:block!important;flex:none;max-height:none;margin:0;padding:0 12px 10px;
  font-size:11px;line-height:1.35;color:var(--tw-muted);
}
.booking-assistant__panel svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Шапка ---------- */
html body.service-site .booking-assistant__panel .booking-assistant__head {
  position: relative; display: flex !important; align-items: center !important; gap: 8px !important; flex: none !important;
  margin: 0 !important; padding: 16px 12px 16px 16px !important; border: 0 !important;
  background: linear-gradient(135deg, #ff8a45, #ff6a1f) !important; color: #fff !important; grid-area: auto !important;
}
html body.service-site .booking-assistant__panel .tolik-identity { display: flex !important; align-items: center !important; gap: 12px !important; flex: 1 1 auto !important; min-width: 0; margin: 0 !important; }
html body.service-site .booking-assistant__panel .tolik-identity > div { display: flex !important; flex-direction: column !important; gap: 2px; min-width: 0; }
html body.service-site .booking-assistant__panel .tolik-avatar {
  position: relative; display: block !important; width: 44px !important; height: 44px !important; flex: none; margin: 0 !important;
  border-radius: 50% !important; background: #fff !important; box-shadow: 0 0 0 2px #ffffff80; overflow: visible !important;
}
html body.service-site .booking-assistant__panel .tolik-avatar img { width: 100% !important; height: 100% !important; border-radius: 50%; object-fit: cover; object-position: 50% 20%; }
html body.service-site .booking-assistant__panel .tolik-avatar::after { content: ''; position: absolute; right: 0; bottom: 1px; width: 11px; height: 11px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 2px #ff7a33; }
html body.service-site .booking-assistant__panel #assistantTitle { margin: 0 !important; font: 700 17px/1.2 Inter, sans-serif !important; color: #fff !important; }
html body.service-site .booking-assistant__panel .tolik-intro { display: block !important; position: static !important; grid-area: auto !important; padding: 0 !important; margin: 0 !important; font: 400 13px/1.2 Inter, sans-serif !important; color: #ffffffd9 !important; white-space: nowrap; }
html body.service-site .booking-assistant__panel .booking-assistant__head .language-switch,
html body.service-site .booking-assistant__panel .tolik-mobile-language { display: none !important; }
html body.service-site .booking-assistant__panel :is(.booking-assistant__close, .tolik-more > summary) {
  position: static !important; display: grid !important; place-items: center; flex: none;
  width: 36px !important; height: 36px !important; padding: 0 !important; border: 0 !important; border-radius: 12px !important;
  background: #ffffff26 !important; color: #fff !important; cursor: pointer; list-style: none; transition: background-color .15s;
}
html body.service-site .booking-assistant__panel :is(.booking-assistant__close, .tolik-more > summary):hover { background: #ffffff40 !important; }
.booking-assistant__panel .tolik-more > summary::-webkit-details-marker { display: none; }
html body.service-site .booking-assistant__panel :is(.booking-assistant__close, .tolik-more > summary) svg { width: 18px; height: 18px; }
html body.service-site .booking-assistant__panel .tolik-more > summary svg { display: block !important; }
html body.service-site .booking-assistant__panel .tolik-more > summary svg circle { fill: #fff !important; stroke: none !important; }
html body.service-site .booking-assistant__panel .tolik-more { position: static !important; margin: 0 !important; }
html body.service-site .booking-assistant__panel .tolik-more__panel {
  position: absolute; right: 12px; top: calc(100% - 6px); z-index: 5; width: 240px; padding: 12px;
  border-radius: 16px; background: #fff; color: var(--tw-text); box-shadow: 0 16px 40px -12px #00000040, 0 0 0 1px #1b1a170f;
}
html body.service-site .booking-assistant__panel .tolik-more .booking-assistant__note { display: block !important; margin: 0 !important; }
html body.service-site .booking-assistant__panel .tolik-more .booking-assistant__note > summary { font: 600 14px/1.3 Inter, sans-serif; list-style: none; margin-bottom: 6px; pointer-events: none; }
html body.service-site .booking-assistant__panel .tolik-more .booking-assistant__note > summary::-webkit-details-marker { display: none; }
html body.service-site .booking-assistant__panel .tolik-more .booking-assistant__note p { position: static !important; inset: auto !important; width: auto !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; margin: 0; font-size: 13px; line-height: 1.5; color: var(--tw-muted); }
html body.service-site .booking-assistant__panel .tolik-more .assistant-voice { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 8px !important; margin: 0 !important; font: 400 14px/1.4 Inter, sans-serif !important; color: var(--tw-text) !important; }
html body.service-site .booking-assistant__panel .tolik-more .assistant-voice > label { display: flex !important; align-items: center; gap: 10px; margin: 0 !important; font-size: 14px !important; font-weight: 500 !important; cursor: pointer; }
html body.service-site .booking-assistant__panel .tolik-more .assistant-voice summary { font-size: 14px !important; color: var(--tw-text); cursor: pointer; }
html body.service-site .booking-assistant__panel .tolik-more .assistant-voice details > :not(summary) { margin-top: 8px; font-size: 13px; color: var(--tw-muted); }
html body.service-site .booking-assistant__panel .tolik-more .tolik-mode { display: flex !important; flex-direction: column; gap: 6px; }

/* ---------- Переписка ---------- */
html body.service-site .booking-assistant__panel .booking-assistant__messages {
  display: flex !important; flex-direction: column !important; gap: 10px !important;
  flex: 1 1 auto !important; min-height: 0 !important; max-height: none !important; overflow-y: auto !important;
  margin: 0 !important; padding: 18px 16px !important; border: 0 !important; border-radius: 0 !important;
  background: var(--tw-soft) !important; grid-area: auto !important; overscroll-behavior: contain;
}
html body.service-site .booking-assistant__panel .tolik-welcome {
  display: grid !important; grid-template-columns: 28px minmax(0, 1fr); gap: 8px 8px !important;
  align-items: end !important; justify-items: start !important; text-align: left !important;
  min-height: 0 !important; margin: 0 !important; padding: 0 !important;
}
html body.service-site .booking-assistant__panel .tolik-welcome__mark { display: none !important; }
.booking-assistant__panel .tolik-welcome__avatar { grid-row: 1; width: 28px; height: 28px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; background: #fff; }
html body.service-site .booking-assistant__panel .assistant-message {
  max-width: 85% !important; margin: 0 !important; padding: 11px 14px !important;
  font: 400 15px/1.45 Inter, sans-serif !important; text-align: left !important; box-shadow: none !important;
}
html body.service-site .booking-assistant__panel .assistant-message--assistant { align-self: flex-start; border-radius: 18px 18px 18px 6px !important; background: #fff !important; color: var(--tw-text) !important; }
html body.service-site .booking-assistant__panel .assistant-message--user { align-self: flex-end; border-radius: 18px 18px 6px 18px !important; background: var(--tw-accent) !important; color: #fff !important; }
html body.service-site .booking-assistant__panel .tolik-welcome [data-greeting] { grid-column: 2; max-width: 100% !important; }
html body.service-site .booking-assistant__panel .tolik-context-menu { grid-column: 2; display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 6px !important; width: 100%; margin: 4px 0 0 !important; }
html body.service-site .booking-assistant__panel .tolik-context-menu button {
  display: flex !important; align-items: center; justify-content: space-between; gap: 8px; width: 100%;
  padding: 11px 14px !important; border: 1px solid #ff782e38 !important; border-radius: 14px !important;
  background: #fff !important; color: var(--tw-text) !important; font: 500 14px/1.2 Inter, sans-serif !important; text-align: left; cursor: pointer;
  transition: border-color .15s, background-color .15s;
}
html body.service-site .booking-assistant__panel .tolik-context-menu button::after { content: '→'; color: var(--tw-accent); font-weight: 600; }
html body.service-site .booking-assistant__panel .tolik-context-menu button:hover { border-color: var(--tw-accent) !important; background: #fff8f3 !important; }

/* ---------- Поле ввода ---------- */
html body.service-site .booking-assistant__panel .booking-assistant__form {
  display: flex !important; flex-direction: column; gap: 6px; flex: none !important;
  margin: 0 !important; padding: 12px !important; border: 0 !important; border-top: 1px solid var(--tw-line) !important;
  background: #fff !important; grid-area: auto !important;
}
html body.service-site .booking-assistant__panel .booking-assistant__form > label[for="assistantQuery"] { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
html body.service-site .booking-assistant__panel .assistant-composer {
  display: flex !important; align-items: flex-end !important; gap: 8px !important; margin: 0 !important;
}
html body.service-site .booking-assistant__panel #assistantQuery {
  flex: 1 !important; min-height: 46px !important; max-height: 120px; height: 46px; resize: none !important;
  padding: 12px 16px !important; border: 1px solid #e3dfd8 !important; border-radius: 23px !important;
  background: var(--tw-soft) !important; font: 400 15px/1.4 Inter, sans-serif !important; color: var(--tw-text) !important; box-shadow: none !important;
  transition: border-color .15s, background-color .15s;
}
html body.service-site .booking-assistant__panel #assistantQuery:focus { border-color: var(--tw-accent) !important; background: #fff !important; outline: 0 !important; }
/* Voice input only: Tolik replies with text and venue cards. */
html body.service-site .booking-assistant__panel .assistant-record { display:grid!important; place-items:center; flex:0 0 46px; width:46px!important; min-height:46px; padding:0!important; border:1px solid var(--tw-accent); border-radius:50%; background:var(--tw-soft); color:var(--tw-accent); }
html body.service-site .booking-assistant__panel .assistant-record.is-listening { background:var(--tw-accent); color:#fff; }
html body.service-site .booking-assistant__panel #assistantSend {
  display: grid !important; place-items: center; flex: none; width: 46px !important; min-width: 0 !important; height: 46px !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 50% !important;
  background: var(--tw-accent) !important; color: #fff !important; box-shadow: 0 6px 14px -6px #ff782e !important;
}
html body.service-site .booking-assistant__panel #assistantSend:hover { filter: brightness(1.06); }
html body.service-site .booking-assistant__panel :is(.assistant-record-label, .assistant-send-label) { display: none !important; }
html body.service-site .booking-assistant__panel :is(.assistant-record, #assistantSend) svg { width: 20px !important; height: 20px !important; display: block !important; }
html body.service-site .booking-assistant__panel .assistant-status:empty { display: none; }
html body.service-site .booking-assistant__panel .assistant-status { font-size: 12px; color: var(--tw-muted); }
html body.service-site .booking-assistant__panel .booking-assistant__search { margin: 0 12px 12px !important; }

html body.service-site .booking-assistant__launcher[aria-expanded="true"] { box-shadow: 0 0 0 3px #ff782e40 !important; }
/* Под окошком консультанта страницу не затемняем */
body.service-site.taste-dialog-open::after { content: none !important; }

@media (max-width: 760px) {
  html body.service-site .booking-assistant .booking-assistant__panel:not([hidden]) {
    inset: auto 8px calc(8px + env(safe-area-inset-bottom)) 8px !important; width: auto !important;
    height: min(80dvh, 640px) !important; border-radius: 24px !important; transform-origin: 50% 100%;
  }
}
@media (prefers-reduced-motion: reduce) { html body.service-site .booking-assistant__panel { animation: none !important; } }

/* Подобранные заведения: компактный список, вся строка ведёт на заведение */
html body.service-site .booking-assistant__panel .assistant-recommendation-grid { display: flex !important; flex-direction: column !important; gap: 8px !important; margin: 2px 0 0 36px !important; grid-template-columns: none !important; }
html body.service-site .booking-assistant__panel .assistant-recommendation-grid .assistant-place {
  position: relative; display: flex !important; flex-direction: row !important; align-items: center !important; gap: 12px !important;
  min-width: 0; margin: 0 !important; padding: 10px 36px 10px 12px !important; border: 1px solid #1b1a1712 !important; border-radius: 14px !important;
  background: #fff !important; color: var(--tw-text) !important; text-decoration: none !important; box-shadow: none !important; transform: none !important;
  min-height: 0 !important; height: auto !important; aspect-ratio: auto !important; transition: border-color .15s;
}
html body.service-site .booking-assistant__panel .assistant-recommendation-grid .assistant-place:hover { border-color: var(--tw-accent) !important; }
html body.service-site .booking-assistant__panel .assistant-recommendation-grid .assistant-place::before { content: none !important; display: none !important; }
html body.service-site .booking-assistant__panel .assistant-recommendation-grid .assistant-place::after { content: '→'; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--tw-accent); font-weight: 700; }
html body.service-site .booking-assistant__panel .assistant-recommendation-grid .assistant-place > img { order: 0 !important; flex: none; width: 52px !important; height: 52px !important; margin: 0 !important; border-radius: 10px !important; object-fit: cover; }
html body.service-site .booking-assistant__panel .assistant-place__content { display: flex !important; flex-direction: column !important; gap: 2px !important; min-width: 0; min-height: 0 !important; padding: 0 !important; }
html body.service-site .booking-assistant__panel .assistant-place__content strong { font: 700 15px/1.25 Inter, sans-serif !important; }
html body.service-site .booking-assistant__panel .assistant-place__content :is(.assistant-place__category, small, .assistant-place__distance, .assistant-place__menu) { display: block !important; margin: 0 !important; font: 400 12px/1.35 Inter, sans-serif !important; color: var(--tw-muted) !important; }
html body.service-site .booking-assistant__panel .assistant-place__action { display: none !important; }
html body.service-site .booking-assistant__panel .assistant-recommendation-more { align-self: flex-start; margin-left: 36px !important; padding: 8px 12px !important; border: 0 !important; border-radius: 10px !important; background: #fff !important; color: #c2551a !important; font: 600 13px/1 Inter, sans-serif !important; }
/* Ссылку на каталог не показываем: подобранные места уже в чате, каталог открыт под окошком */
html body.service-site .booking-assistant__panel .booking-assistant__search { display: none !important; }
html body.service-site .booking-assistant__panel .booking-assistant__search:not([hidden]) { display: block; padding: 10px !important; border-radius: 12px !important; background: #fff4ec !important; color: #c2551a !important; text-align: center; font: 600 14px/1.2 Inter, sans-serif !important; text-decoration: none !important; }
html body.service-site .booking-assistant__panel .tolik-more .booking-assistant__note > summary::before, html body.service-site .booking-assistant__panel .tolik-more .booking-assistant__note > summary::after { content: none !important; display: none !important; }

/* Меню «⋯» убрано: в нём оставались только скрытые настройки голоса */
html body.service-site .booking-assistant__panel .tolik-more { display: none !important; }
/* Карточки подбора по высоте содержимого */
html body.service-site .booking-assistant__panel .assistant-recommendation-grid { flex: none !important; height: auto !important; grid-auto-rows: auto !important; }
html body.service-site .booking-assistant__panel .assistant-recommendation-grid .assistant-place { flex: none !important; }
:root[data-theme=dark] body.service-site .booking-assistant__panel .assistant-recommendation-grid .assistant-place {
  background: var(--surface-2) !important;
  color: var(--tw-text) !important;
  border-color: var(--tw-line) !important;
}
html body.service-site .booking-assistant__panel .assistant-place__content strong { color: var(--tw-text) !important; }
/* Кнопка отправки всегда ровный круг */
html body.service-site .booking-assistant__panel .assistant-composer { align-items: center !important; }
html body.service-site .booking-assistant__panel #assistantSend {
  width: 46px !important; height: 46px !important; min-width: 46px !important; max-width: 46px !important;
  min-height: 46px !important; max-height: 46px !important; aspect-ratio: 1 / 1 !important; flex: 0 0 46px !important; line-height: 0 !important;
}

/* Когда начался разговор, подсказки убираем, приветствие остаётся обычным сообщением */
html body.service-site .booking-assistant__panel.has-conversation .tolik-welcome { display: grid !important; height: auto !important; min-height: 0 !important; flex: none !important; }
html body.service-site .booking-assistant__panel .booking-assistant__messages > * { flex: none !important; }

/* Keep the mobile navigation tappable while the chat is open. */
@media (max-width: 760px) {
 html body.service-site:has(.mobile-dock):not(.auth-scene) .booking-assistant .booking-assistant__panel:not([hidden]) {
  bottom: calc(102px + env(safe-area-inset-bottom)) !important;
  height: min(70dvh, 640px, calc(100dvh - 178px - env(safe-area-inset-bottom))) !important;
 }
}
