.tx-support {
  --tx-accent: #2563eb;
  --tx-accent-dark: #1d4ed8;
  --tx-text: #0f172a;
  --tx-muted: #64748b;
  --tx-line: #e2e8f0;
  --tx-surface: #ffffff;
  --tx-user: #eff6ff;
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 2147483000;
  font-family: Inter, "Segoe UI", system-ui, sans-serif;
  color: var(--tx-text);
  line-height: 1.45;
}

.tx-support * { box-sizing: border-box; }

.tx-support__launcher {
  width: 60px;
  height: 60px;
  border: 0;
  border-radius: 50%;
  background: var(--tx-accent);
  color: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.28);
  cursor: pointer;
  display: grid;
  place-items: center;
}

.tx-support__launcher:hover { background: var(--tx-accent-dark); }

.tx-support__panel {
  display: none;
  position: absolute;
  right: 0;
  bottom: 74px;
  width: min(380px, calc(100vw - 32px));
  height: min(560px, calc(100vh - 120px));
  background: var(--tx-surface);
  border: 1px solid var(--tx-line);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
  overflow: hidden;
  flex-direction: column;
}

.tx-support.is-open .tx-support__panel { display: flex; }

.tx-support__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  background: var(--tx-accent);
  color: #fff;
}

.tx-support__title { font-weight: 700; font-size: 0.95rem; }
.tx-support__subtitle { font-size: 0.75rem; opacity: 0.88; margin-top: 2px; }

.tx-support__close {
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px;
}

.tx-support__messages {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #f8fafc;
}

.tx-support__msg {
  max-width: 88%;
  padding: 10px 12px;
  border-radius: 14px;
  font-size: 0.9rem;
  white-space: pre-wrap;
}

.tx-support__msg--assistant {
  align-self: flex-start;
  background: #fff;
  border: 1px solid var(--tx-line);
}

.tx-support__msg--user {
  align-self: flex-end;
  background: var(--tx-user);
  color: var(--tx-text);
}

.tx-support__quick {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tx-support__chip,
.tx-support__submit {
  border: 1px solid var(--tx-line);
  background: #fff;
  color: var(--tx-text);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}

.tx-support__chip:hover,
.tx-support__submit:hover { border-color: var(--tx-accent); color: var(--tx-accent-dark); }

.tx-support__chip--contact {
  background: var(--tx-accent);
  border-color: var(--tx-accent);
  color: #fff;
}

.tx-support__chip--contact:hover { background: var(--tx-accent-dark); color: #fff; }

.tx-support__form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--tx-line);
  border-radius: 12px;
}

.tx-support__form input,
.tx-support__form textarea {
  width: 100%;
  border: 1px solid var(--tx-line);
  border-radius: 8px;
  padding: 10px 12px;
  font: inherit;
  font-size: 0.9rem;
  color: var(--tx-text);
  background: #fff;
}

.tx-support__form textarea { resize: vertical; min-height: 72px; }

.tx-support__submit {
  border-radius: 8px;
  background: var(--tx-accent);
  border-color: var(--tx-accent);
  color: #fff;
  padding: 10px 12px;
}

.tx-support__submit:hover { background: var(--tx-accent-dark); color: #fff; }
.tx-support__submit:disabled { opacity: 0.7; cursor: wait; }

.tx-support__error {
  color: #b91c1c;
  font-size: 0.8rem;
}

.tx-support__done {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
  border-radius: 12px;
  padding: 12px;
  font-size: 0.9rem;
  font-weight: 600;
}

.tx-support__chip--back {
  background: transparent;
  color: var(--tx-muted);
}

.tx-support__typing {
  align-self: flex-start;
  display: flex;
  gap: 4px;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--tx-line);
  border-radius: 14px;
}

.tx-support__typing span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #94a3b8;
  animation: tx-support-blink 1s infinite;
}

.tx-support__typing span:nth-child(2) { animation-delay: 0.15s; }
.tx-support__typing span:nth-child(3) { animation-delay: 0.3s; }

@keyframes tx-support-blink {
  0%, 80%, 100% { opacity: 0.25; }
  40% { opacity: 1; }
}
