.neo-panel {
  position: absolute;
  right: 0;
  bottom: 72px;
  width: min(420px, calc(100vw - 24px));
  height: min(72vh, 700px);
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  background: var(--neo-bg);
  color: var(--neo-text);
  border: 1px solid var(--neo-border);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--neo-shadow);
}
.neo-panel__header {
  padding: 16px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--neo-border);
}
.neo-panel__titlewrap { display:flex; gap:12px; align-items:center; }
.neo-panel__avatar {
  width: 52px; height:52px; border-radius: 50%; background:transparent; display:grid; place-items:center; font-size:22px; overflow:hidden; flex: 0 0 auto;
}
.neo-panel__avatar--image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.neo-panel__title { font-weight: 800; font-size: 16px; }
.neo-panel__subtitle { color: var(--neo-muted); font-size: 13px; }
.neo-panel__close { border:0; background:transparent; font-size:26px; cursor:pointer; color:#678; }
.neo-panel__messages { padding: 16px; overflow:auto; display:flex; flex-direction:column; gap:12px; background:#fbfdfe; }
.neo-bubble { max-width: 88%; padding: 12px 14px; border-radius: 18px; }
.neo-bubble--neo { background:#eef6fb; border:1px solid #d9ecf8; align-self:flex-start; }
.neo-bubble--user { background:#0b6aa7; color:#fff; align-self:flex-end; }
.neo-bubble__name { font-size:12px; font-weight:700; margin-bottom:4px; opacity:.9; }
.neo-bubble__text { font-size:14px; line-height:1.45; }
.neo-bubble__cta { display:inline-block; margin-top:8px; padding:8px 10px; border-radius: 999px; background:#fff; color:#0b6aa7; font-weight:700; text-decoration:none; }
.neo-panel__suggestions { padding: 12px 16px; display:flex; gap:8px; overflow:auto; border-top:1px solid var(--neo-border); background:#fff; }
.neo-suggestion, .neo-tag {
  border:1px solid var(--neo-border);
  background:#fff;
  color:var(--neo-text);
  border-radius: 999px;
  padding:8px 12px;
  font-size:13px;
  cursor:pointer;
  white-space: nowrap;
}
.neo-panel__composer { display:flex; gap:8px; padding: 14px 16px 16px; background:#fff; border-top:1px solid var(--neo-border); }
.neo-panel__input {
  flex:1; border:1px solid var(--neo-border); border-radius:14px; padding:12px 14px; font-size:14px;
}
.neo-panel__send {
  border:0; border-radius:14px; padding: 0 16px; background: var(--neo-accent, #0b6aa7); color:#fff; font-weight:700; cursor:pointer;
}
@media (max-width: 767px) {
  .neo-panel { position: fixed; right: 8px; left: 8px; bottom: 76px; width: auto; height: min(78vh, 720px); }
}
