.site-chat { position: fixed; right: 22px; bottom: 22px; z-index: 100; font-size: .92rem; }
.site-chat__launcher { display: flex; align-items: center; gap: .65rem; border: 0; border-radius: 999px; padding: .65rem 1rem .65rem .65rem; color: #fff; background: var(--navy); box-shadow: 0 12px 34px rgba(46,16,101,.28); font: inherit; font-weight: 700; cursor: pointer; }
.site-chat__launcher:hover { background: var(--navy-3); }
.site-chat__launcher:focus-visible, .site-chat button:focus-visible, .site-chat textarea:focus-visible, .site-chat a:focus-visible { outline: 3px solid rgba(34,197,94,.45); outline-offset: 2px; }
.site-chat__launcher-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: linear-gradient(145deg, var(--accent-2), #15803d); font-family: "Sora", sans-serif; font-size: .75rem; }
.site-chat__panel { position: absolute; right: 0; bottom: calc(100% + 12px); display: grid; grid-template-rows: auto minmax(180px,1fr) auto auto auto; width: min(410px,calc(100vw - 32px)); height: min(620px,calc(100vh - 120px)); overflow: hidden; border: 1px solid var(--border); border-radius: 20px; background: #fff; box-shadow: 0 20px 60px rgba(15,23,42,.22); opacity: 0; visibility: hidden; transform: translateY(12px) scale(.98); transform-origin: bottom right; transition: opacity .18s ease,transform .18s ease,visibility .18s; }
.site-chat.is-open .site-chat__panel { opacity: 1; visibility: visible; transform: none; }
.site-chat__header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.1rem; color: #fff; background: linear-gradient(135deg,var(--navy),var(--accent)); }
.site-chat__header strong, .site-chat__header span { display: block; }
.site-chat__header strong { font-family: "Sora",sans-serif; }
.site-chat__header span { margin-top: .15rem; color: #e9ddfb; font-size: .75rem; }
.site-chat__close { border: 0; padding: .2rem .4rem; color: #fff; background: transparent; font-size: 1.7rem; line-height: 1; cursor: pointer; }
.site-chat__messages { overflow-y: auto; padding: 1rem; background: #f8fafc; }
.site-chat__message { width: fit-content; max-width: 90%; margin-bottom: .75rem; padding: .72rem .88rem; border-radius: 14px; white-space: pre-wrap; line-height: 1.48; }
.site-chat__message--assistant { border: 1px solid var(--border); border-bottom-left-radius: 4px; color: var(--slate); background: #fff; }
.site-chat__message--user { margin-left: auto; border-bottom-right-radius: 4px; color: #fff; background: var(--accent); }
.site-chat__message.is-pending { color: var(--muted); font-style: italic; }
.site-chat__action { display: block; width: fit-content; margin-top: .7rem; border-radius: 999px; padding: .45rem .75rem; color: #fff; background: var(--accent); font-weight: 700; text-decoration: none; }
.site-chat__suggestions { display: flex; gap: .45rem; overflow-x: auto; padding: .65rem 1rem; border-top: 1px solid var(--border); }
.site-chat__suggestions[hidden] { display: none; }
.site-chat__suggestions button { flex: 0 0 auto; border: 1px solid #cbb9f5; border-radius: 999px; padding: .42rem .7rem; color: var(--accent); background: #faf8ff; font: inherit; font-size: .75rem; cursor: pointer; }
.site-chat__form { display: grid; grid-template-columns: 1fr auto; gap: .55rem; padding: .75rem 1rem; border-top: 1px solid var(--border); }
.site-chat__form textarea { min-height: 42px; max-height: 90px; resize: none; border: 1px solid var(--border); border-radius: 12px; padding: .6rem .7rem; font: inherit; line-height: 1.35; }
.site-chat__form button { align-self: end; min-height: 42px; border: 0; border-radius: 12px; padding: 0 .85rem; color: #fff; background: var(--accent); font: inherit; font-weight: 700; cursor: pointer; }
.site-chat__form.is-loading button { opacity: .55; cursor: wait; }
.site-chat__notice { margin: 0; padding: 0 1rem .7rem; color: var(--muted); font-size: .67rem; text-align: center; }
@media (max-width: 640px) {
  .site-chat { right: 12px; bottom: 12px; }
  .site-chat__panel { position: fixed; inset: 12px; width: auto; height: auto; max-height: none; }
  .site-chat.is-open .site-chat__launcher { visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .site-chat__panel { transition: none; }
}
