.service-site .booking-assistant__panel { width:440px; padding:24px; background:var(--surface); border:1px solid var(--border); border-radius:28px; box-shadow:var(--shadow-lg); gap:0; }
.service-site .booking-assistant__head h2 { font-size:28px; letter-spacing:-.8px; margin:3px 0; }
.service-site .booking-assistant__eyebrow { color:var(--accent-ink); font-size:10px; letter-spacing:2px; }
.service-site .booking-assistant__panel > p { color:var(--text-muted); font-size:13px; margin:4px 0 16px; }
.tolik-mode { display:flex; gap:8px; margin-bottom:14px; }
.tolik-mode button { border:1px solid var(--border); border-radius:30px; padding:9px 14px; color:var(--text); background:var(--surface-2); cursor:pointer; font:inherit; font-size:13px; }
.tolik-mode button[aria-pressed=true] { background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); }
.tolik-orb { display:none; height:70px; justify-content:center; align-items:center; gap:5px; }
.tolik-orb span { width:7px; height:20px; border-radius:8px; background:var(--grad); }
[data-voice=true] .tolik-orb { display:flex; }
[data-state=listening] .tolik-orb span, [data-state=speaking] .tolik-orb span { animation:tolik-wave .85s ease-in-out infinite alternate; }
.tolik-orb span:nth-child(2n) { animation-delay:.25s; }
.tolik-orb span:nth-child(3n) { animation-delay:.5s; }
@keyframes tolik-wave { to {height:46px; opacity:.65;} }
.service-site .booking-assistant__messages { padding:4px 4px 18px; scrollbar-width:thin; scrollbar-color:var(--border-strong) transparent; }
/* Chromium custom scrollbars avoid the native Windows track and arrow buttons. */
@supports selector(::-webkit-scrollbar) {
  .service-site #assistantMessages { scrollbar-width:auto; scrollbar-color:auto; }
  .service-site #assistantMessages::-webkit-scrollbar { width:5px; height:5px; }
  .service-site #assistantMessages::-webkit-scrollbar-track { background:transparent; }
  .service-site #assistantMessages::-webkit-scrollbar-thumb { background:var(--border-strong); border-radius:999px; }
  .service-site #assistantMessages::-webkit-scrollbar-thumb:hover { background:var(--text-muted); }
  .service-site #assistantMessages::-webkit-scrollbar-button { display:none; width:0; height:0; }
  .service-site #assistantMessages::-webkit-scrollbar-corner { background:transparent; }
}
.service-site .assistant-message { flex:0 0 auto; max-width:88%; border-radius:18px 18px 18px 5px; padding:13px 16px; font-size:15px; line-height:1.55; background:var(--surface-2); color:var(--text); white-space:pre-wrap; overflow-wrap:anywhere; }
.service-site .assistant-message--user { align-self:flex-end; border-radius:18px 18px 5px 18px; background:var(--accent-soft); color:var(--text); }
.service-site .assistant-message--pending { color:var(--text-muted); animation:tolik-pulse 1s infinite alternate; }
@keyframes tolik-pulse { to {opacity:.45;} }
.service-site .booking-assistant__form { display:grid; grid-template-columns:1fr auto; gap:10px; border-top:1px solid var(--border); padding-top:14px; }
.booking-assistant__form > label, .booking-assistant__form textarea, .assistant-voice, .assistant-status, .booking-assistant__form audio { grid-column:1 / -1; }
.service-site .booking-assistant__form > label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.service-site .booking-assistant__form textarea { height:76px; min-height:60px; max-height:150px; border:1px solid var(--border); border-radius:18px; background:var(--surface-2); padding:14px 16px; color:var(--text); font:inherit; font-size:16px; resize:none; }
.service-site .booking-assistant__form textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.service-site #assistantQuery { overflow-y:auto; scrollbar-width:none; scrollbar-gutter:auto; }
.service-site #assistantQuery::-webkit-scrollbar { display:none; width:0; height:0; }
.service-site .assistant-voice label:has(#assistantSpeak) { display:inline-flex; align-items:center; gap:9px; cursor:pointer; min-height:44px; }
.service-site #assistantSpeak {
  appearance:none; -webkit-appearance:none; position:relative; flex:0 0 36px;
  width:36px; height:22px; min-height:0; margin:0; padding:0;
  border:1px solid var(--border-strong); border-radius:999px; background:var(--surface-2);
  cursor:pointer; transition:background .18s ease,border-color .18s ease;
}
.service-site #assistantSpeak::before {
  content:''; position:absolute; top:3px; left:3px; width:14px; height:14px;
  border-radius:50%; background:var(--text-muted); transition:transform .18s ease,background .18s ease;
}
.service-site #assistantSpeak:checked { background:var(--accent-strong); border-color:var(--accent-strong); }
.service-site #assistantSpeak:checked::before { transform:translateX(14px); background:#fff; }
.service-site #assistantSpeak:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .service-site #assistantSpeak,.service-site #assistantSpeak::before { transition:none; } }
.service-site .assistant-voice { display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:12px; }
.service-site .assistant-voice button { border-radius:24px; padding:9px 12px; background:var(--surface-2); border:1px solid var(--border); }
.service-site #assistantSend { grid-column:1 / -1; border-radius:15px; padding:12px; min-height:44px; font-size:14px; }
.service-site .assistant-status { font-size:12px; line-height:1.4; color:var(--accent-ink); }
.service-site .assistant-status:empty { display:none; }
.service-site .assistant-place,.service-site .assistant-booking { border:1px solid var(--border); border-radius:16px; background:var(--surface-2); padding:14px; margin:6px 0; color:var(--accent-ink); }
.assistant-booking button { border:0; border-radius:20px; background:var(--accent-strong); color:#fff; padding:10px 15px; margin:10px 8px 0 0; cursor:pointer; }
.service-site .booking-assistant__note { color:var(--text-muted); font-size:10px; line-height:1.5; }
@media(max-width:600px) { .service-site .booking-assistant__panel { width:calc(100vw - 16px); padding:18px; border-radius:24px; height:calc(100dvh - 16px); } .service-site .booking-assistant__messages { min-height:100px; } }
@media(prefers-reduced-motion:reduce) { .tolik-orb span,.assistant-message--pending {animation:none!important;} }

/* Keep venue suggestions visible even on short laptop screens. */
.service-site .booking-assistant__panel {
  width:min(540px,calc(100vw - 24px));
  height:calc(100dvh - 24px); max-height:960px;
  right:12px; bottom:12px; padding:18px;
}
.service-site .booking-assistant__head { flex-shrink:0; }
.service-site .booking-assistant__head h2 { font-size:24px; }
.service-site .booking-assistant__panel > p { display:none; }
.service-site .tolik-mode { margin:8px 0 12px; flex-shrink:0; }
.service-site .tolik-mode button { padding:7px 12px; }
.service-site .booking-assistant__panel > .booking-assistant__messages {
  display:flex; flex-direction:column; flex:1 1 0; min-height:0;
  margin-bottom:6px; padding-bottom:12px;
}
.service-site .assistant-place,.service-site .assistant-booking { flex-shrink:0; }
.service-site .booking-assistant__form { flex-shrink:0; grid-template-columns:minmax(0,1fr) 100px; gap:8px; padding-top:10px; }
.service-site .booking-assistant__form textarea { grid-column:1; grid-row:1; height:66px; min-height:66px; padding:10px 12px; }
.service-site #assistantSend { grid-column:2; grid-row:1; padding:8px; align-self:stretch; white-space:normal; min-width:0; line-height:1.3; }
.service-site .assistant-voice { grid-row:2; }
.service-site .booking-assistant__note { font-size:9px; line-height:1.35; margin-top:5px; }
.service-site .booking-assistant__search { flex-shrink:0; }
.service-site .tolik-orb { height:48px; flex-shrink:0; }
@media(max-width:600px) {
  .service-site .booking-assistant__panel { right:6px; bottom:6px; width:calc(100vw - 12px); height:calc(100dvh - 12px); max-height:calc(100dvh - 12px); padding:14px; }
  .service-site .booking-assistant__form { grid-template-columns:minmax(0,1fr) 84px; }
  .service-site #assistantSend { font-size:12px; }
}
