/* TT Concierge — floating AI chat. Self-contained; uses theme tokens if present. */
.tt-concierge { position: fixed; inset-block-end: 88px; inset-inline-end: 16px; z-index: 95; }
@media (min-width: 980px){ .tt-concierge { inset-block-end: 24px; } }
.tt-concierge__toggle {
  width: 56px; height: 56px; border-radius: 999px; border: none; cursor: pointer;
  background: var(--tt-color-primary, #0F62FE); color: #fff; box-shadow: 0 8px 24px rgba(15,98,254,.35);
  display: grid; place-items: center;
}
.tt-concierge__toggle svg { width: 26px; height: 26px; }
.tt-concierge[data-open="true"] .tt-concierge__toggle { display: none; }

.tt-concierge__panel {
  position: fixed; inset-block-end: 16px; inset-inline-end: 16px;
  width: min(92vw, 380px); height: min(70vh, 560px);
  background: #fff; border-radius: 20px; box-shadow: 0 24px 60px rgba(17,24,39,.25);
  flex-direction: column; overflow: hidden;
  display: none; /* hidden until opened — fixes auto-open-on-load */
}
.tt-concierge[data-open="true"] .tt-concierge__panel { display: flex; }
.tt-concierge__head { display: flex; align-items: center; justify-content: space-between; padding: 16px; background: var(--tt-color-primary,#0F62FE); color: #fff; font-family: var(--tt-font-heading, system-ui); }
.tt-concierge__close { background: none; border: none; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.tt-concierge__log { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: var(--tt-color-surface,#F8FAFC); }
.tt-concierge__msg { max-width: 85%; padding: 10px 14px; border-radius: 14px; font-size: 15px; line-height: 1.5; white-space: pre-wrap; }
.tt-concierge__msg--bot { align-self: flex-start; background: #fff; border: 1px solid var(--tt-color-border,#E5E7EB); }
.tt-concierge__msg--user { align-self: flex-end; background: var(--tt-color-primary,#0F62FE); color: #fff; }
.tt-concierge__msg--typing { color: var(--tt-color-text-soft,#6B7280); font-style: italic; }
.tt-concierge__form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--tt-color-border,#E5E7EB); }
.tt-concierge__input { flex: 1; height: 44px; padding: 0 14px; border: 1px solid var(--tt-color-border,#E5E7EB); border-radius: 12px; font-size: 15px; }
.tt-concierge__input:focus { outline: none; border-color: var(--tt-color-primary,#0F62FE); box-shadow: 0 0 0 3px rgba(15,98,254,.25); }
.tt-concierge__send { width: 44px; height: 44px; border: none; border-radius: 12px; background: var(--tt-color-primary,#0F62FE); color: #fff; font-size: 20px; cursor: pointer; }
.tt-concierge__send:disabled { opacity: .5; cursor: default; }
[dir="rtl"] .tt-concierge__send { transform: scaleX(-1); }
