---
title: "Brantial Webhook: Kurulum ve İmza Rehberi<"
description: "İmzalı JSON olaylarını Zapier, Make, n8n ya da kendi adresinize gönderin. Adresi alın, imzayı PHP, Node.js veya Python ile kontrol edin, sık görülen hataları çözün."
source_url: "https://brantial.ai/tr/help/webhooks/"
lang: "tr"
updated: "2026-10-23T00:00:00.000Z"
---

[![Brantial](https://brantial.ai/layout/logo-wordmark.svg)](https://brantial.ai/tr/)

[Giriş Yap](https://app.brantial.ai/login) [1 Analiz Hakkı](https://brantial.ai/tr/brandscore/)

1 ANALİZ HAKKI

AI Sizi Nerede Saklıyor?

ChatGPT, Gemini, Perplexity ve Claude'da markanızın görünürlük önizlemesini dakikalar içinde alın.

4 dk ortalama rapor süresi

[1 Analiz Hakkı](https://brantial.ai/tr/brandscore/)

Ölç

- [AI Görünürlük Yapay zekâ cevaplarında markanızın yeri](https://brantial.ai/tr/features/ai-visibility/)
- [Prompt Hacimleri Yapay zekâya ne sorulduğu, ne sıklıkla](https://brantial.ai/tr/features/prompt-volumes/)
- [Kaynaklar ve Atıflar Yapay zekânın kaynak gösterdiği sayfalar](https://brantial.ai/tr/features/sources-citations/)
- [Yerel Görünürlük ChatGPT’nin yerel işletme listesinde yeriniz](https://brantial.ai/tr/features/local-visibility/)
- [AI Shopping ChatGPT alışverişte ürün görünürlüğü](https://brantial.ai/tr/features/shopping/)

Geliştir

- [Site Health Sitenizi AI tarayıcılarının gözünden denetleyin](https://brantial.ai/tr/features/site-health/)
- [AI Page Optimizer Sayfalarınızı yapay zekâ cevapları için yeniden yazın](https://brantial.ai/tr/features/page-optimizer/)
- [Agent Analytics Beta Sitenize gelen AI tarayıcıları](https://brantial.ai/tr/features/agent-analytics/)

[Platforma genel bakış](https://brantial.ai/tr/platform/) [Ürün turu](https://brantial.ai/tr/product-tour/) [Entegrasyonlar](https://brantial.ai/tr/integrations/)

VAKA ÇALIŞMASI

Bankacılıkta ChatGPT Trafiği

Önde gelen bir bankacılık kurumu, ChatGPT kaynaklı kullanıcı etkileşiminde %2.400’den fazla artış elde etti.

+%2.400 ChatGPT kaynaklı trafik

[Vakayı Okuyun](https://brantial.ai/tr/case-studies/bankacilikta-ai-odakli-buyume/)

Müşteri Hikayeleri

- [Tüm Vaka Çalışmaları Ölçülmüş sonuçlar, kaynağıyla](https://brantial.ai/tr/case-studies/)
- [Kolajen Ürün Grubu %98,7 AI görünürlüğü](https://brantial.ai/tr/case-studies/kolajen-urun-grubunda-ai-gorunurlugu/)
- [Sağlık Turizmi Hedeflenen prompt'larda görünürlük kazanımı](https://brantial.ai/tr/case-studies/saglik-turizmi-markasi-hedeflenen-prompt-larda-gorunurluk-kazanmaya-basladi/)

Araştırma

- [Raporlar Yeni Sektör raporları ve kaynak verisi](https://brantial.ai/tr/reports/)
- [AI Otorite Endeksi Haftalık kategori kıyas ölçütü](https://brantial.ai/tr/ai-authority-index/)
- [AI Sektör Endeksi Türkiye’de 18 sektörde AI’ın önerdiği markalar](https://brantial.ai/tr/ai-sektor-endeksi/)
- [GEO Sözlüğü Kategori terimleri, sade tanımlar](https://brantial.ai/tr/glossary/)

Öğren

- [Kaynak Merkezi Rehberler ve dokümanlar](https://brantial.ai/tr/resources/)
- [Yardım Merkezi Bağlantılar için adım adım kurulum](https://brantial.ai/tr/help/)
- [Blog GEO, AEO ve agentic commerce yazıları](https://brantial.ai/tr/blog/)
- [Brantial University Sokratik sertifikasyon, %80 kapısı](https://university.brantial.ai/tr)

Çözümler

- [Ekiplere göre Kurumsal, içerik, PR ve e-ticaret ekipleri](https://brantial.ai/tr/solutions/)
- [Sektörlere göre Sektör rehberleri, örnek sorular ve araştırmalar](https://brantial.ai/tr/industries/)

BRANTIAL

AI ajanlarıyla işleyen ticareti güvenilir kılmak

Ürün bilgisinden alışverişin tamamlanmasına kadar doğruluğu artırmaya odaklanan, Webtures LTD tarafından işletilen bir teknoloji girişimi.

KVKK GDPR · SOC 2 süreçte

[Hakkımızda](https://brantial.ai/tr/about/)

Brantial

- [Hakkımızda Agentic commerce vizyonumuz ve ilkelerimiz](https://brantial.ai/tr/about/)
- [Güven Merkezi KVKK, GDPR, SOC 2, veri yerleşimi](https://brantial.ai/tr/trust/)

Partnerler

- [Brantial Partners Sertifikalı ağ, toptan marj ve white-label](https://brantial.ai/tr/agency-partner/)

İletişim

- [İletişim Satış, destek, basın](https://brantial.ai/tr/contact/)
- [Kariyer Açık pozisyonlar](https://brantial.ai/tr/careers/)

Yardım

# Brantial olaylarını Zapier, Make, n8n veya kendi sisteminize gönderme

İmzalı JSON olaylarını Zapier, Make, n8n ya da kendi adresinize gönderin. Adresi alın, imzayı PHP, Node.js veya Python ile kontrol edin, sık görülen hataları çözün.

Güncellendi: 23 Ekim 2026

Webhook, projenizin uyarılarını ve raporlarını gerçekleştikleri anda JSON olarak Zapier, Make, n8n ya da kendi sisteminize gönderir. Oradan istediğiniz araca iletebilir, bir tabloya satır ekleyebilir ya da kayıt açabilirsiniz. Bütün olaylar tek adrese gelir ve her istek imzalıdır, böylece Brantial’dan geldiğini kontrol edebilirsiniz.

## Başlamadan önce

- **Webhook’u yalnızca proje sahibi bağlayabilir.**
- **Adres herkese açık olmalı ve HTTPS kullanmalı.** Yerel, özel ağ ve düz HTTP adresleri reddedilir.
- Bir projenin tek bir webhook adresi olur. Olayları birden fazla yere göndermek için iş akışınızda dağıtın.

## Adres alma

### Zapier

1. Bir Zap oluşturun ve tetikleyici olarak **Webhooks by Zapier**’ı seçin.
2. **Catch Hook** olayını seçip devam edin.
3. Zapier’ın gösterdiği webhook adresini kopyalayın. `https://hooks.zapier.com/` ile başlar.

### Make

1. Bir senaryo oluşturun ve **Webhooks → Custom webhook** modülünü ekleyin.
2. **Add**’e tıklayın, webhook’a bir ad verin ve kaydedin.
3. Make’in gösterdiği adresi kopyalayın ve dinlemeye devam etmesi için senaryoyu açın.

### n8n

1. Bir **Webhook** düğümü ekleyin ve **HTTP Method**’u `POST` yapın.
2. Test adresini değil, **Production URL**’yi kopyalayın.
3. İş akışını etkinleştirin. Üretim adresi yalnızca iş akışı etkinken yanıt verir.

### Kendi sisteminiz

JSON gövdeli bir `POST` isteğini kabul edip `2xx` durum koduyla yanıt veren her HTTPS adresi olur.

## Brantial’da bağlama

1. Brantial’da projenizi açın, **Ayarlar**’a gidin ve **Bildirimler** sekmesini açın.
2. **Webhook** kartında adresi **Webhook adresi** alanına yapıştırın.
3. **Webhook’u bağla**’ya tıklayın. Brantial önce bir `test` olayı gönderir ve adresi yalnızca kabul edilirse kaydeder.

![Brantial bildirim ayarlarındaki Webhook kartı; bir Zapier adresi dolu](https://brantial.ai/images/help/webhooks/tr/1-connect.webp)

Buradaki adres örnektir.

Bağlantı kurulunca kart **İmza anahtarı**nı ve her olay için bir düğme gösterir. İstemediğiniz olayları kapatın; değişiklikler hemen kaydedilir. **Test gönder** istediğiniz an yeni bir `test` olayı gönderir; iş akışınızı kurarken işe yarar.

![Bağlı Webhook kartı; imza anahtarı ve her olay adı için bir düğme](https://brantial.ai/images/help/webhooks/tr/2-connected.webp)

Buradaki anahtar örnektir. Sizinki kartınızda yazar.

## Brantial ne gönderir

Her olay aynı yapıdadır; bir iş akışı adımı olayı bilmeden `title`, `text` ve `url` alanlarını kullanabilir. Her olayın arkasındaki rakamlar `data` içindedir.

```
{
  "id": "6f1c2d4e-8a90-4b7c-9d2e-1f3a5b7c9d0e",
  "event": "report.summary",
  "created_at": "2026-10-26T07:00:00+00:00",
  "project": {
    "id": 1234,
    "name": "Example Outdoor",
    "domain": "example.com",
    "url": "https://app.brantial.ai/1234/overview"
  },
  "title": "Weekly report for Example Outdoor",
  "text": "Weekly report for Example Outdoor — visibility 42%, up 3 points.",
  "url": "https://app.brantial.ai/1234/overview",
  "data": {
    "cadence": "weekly",
    "period_start": "2026-10-19",
    "period_end": "2026-10-25",
    "metrics": {
      "visibility": { "value": 42, "change": 3 },
      "mentions": { "value": 118, "change": 12 },
      "average_position": { "value": 2.4, "change": -0.3 },
      "sentiment": { "value": 71, "change": 1 }
    },
    "strongest_prompts": [
      { "prompt": "best hiking boots for wide feet", "visibility": 80 }
    ]
  }
}
```

Yukarıdaki rakamlar örnektir. Her olayın `data` alanı:

| Olay | Ne zaman | `data` |
| --- | --- | --- |
| `test` | Bağlarken ya da **Test gönder**’e tıkladığınızda | Boş |
| `report.summary` | Her pazartesi; proje aylığa ayarlıysa ayda bir | `cadence`, `period_start`, `period_end`, `metrics`, `strongest_prompts` |
| `site_audit.finished` | Bir site denetimi bittiğinde ya da eşiklerinizi aştığında | `audit_id`, `site_health_score`, `ai_readiness_score` |
| `visibility.changed` | AI görünürlüğü bir haftada 10 puan veya daha fazla değiştiğinde | `current`, `previous`, `delta`, `answers` |
| `competitors.new` | AI, takip etmediğiniz bir markayı sürekli andığında | `brands` |
| `optimization.finished` | Optimize edilen sayfa hazır olduğunda ya da sizi beklediğinde | `optimization_id`, `page_url`, `status` |
| `crawler_access.changed` | Bir AI tarayıcısı engellendiğinde ya da izin verildiğinde | `changes`, `unreachable` |

Her istekte ayrıca şu başlıklar bulunur:

- `X-Brantial-Event`: Olay adı; gövdedeki `event` ile aynı.
- `X-Brantial-Delivery`: Olayın `id` değeri. Yeniden denenen olay aynı kimliği taşır, böylece daha önce işlediğinizi atlayabilirsiniz.
- `X-Brantial-Signature`: Aşağıda anlatılan imza.

## İmzayı kontrol etme

`X-Brantial-Signature`, `sha256=` ve ardından ham istek gövdesinin imza anahtarınızla hesaplanan HMAC-SHA256 değeridir. Aynı değeri kendi tarafınızda hesaplayıp karşılaştırın. Gövdeyi geldiği gibi kullanın: çatınız JSON’u önce çözüp yeniden kodlarsa imza tutmaz.

Zapier, Make ve n8n’de bu kontrol isteğe bağlıdır, çünkü adresi yalnızca Brantial bilir. Kendi sisteminizde her zaman kontrol edin.

**PHP**

```
$secret = getenv('BRANTIAL_WEBHOOK_SECRET');
$body = file_get_contents('php://input');
$expected = 'sha256='.hash_hmac('sha256', $body, $secret);
$received = $_SERVER['HTTP_X_BRANTIAL_SIGNATURE'] ?? '';

if (! hash_equals($expected, $received)) {
    http_response_code(401);
    exit;
}

$event = json_decode($body, true);
```

**Node.js**

```
import crypto from 'node:crypto';

export function isFromBrantial(rawBody, signature, secret) {
  const expected =
    'sha256=' +
    crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return (
    typeof signature === 'string' &&
    signature.length === expected.length &&
    crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))
  );
}
```

Express’te `req.body` ham bayt olsun diye gövdeyi `express.raw({ type: 'application/json' })` ile okuyun ve `req.get('X-Brantial-Signature')` değerini verin.

**Python**

```
import hashlib
import hmac

def is_from_brantial(raw_body: bytes, signature: str, secret: str) -> bool:
    expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, signature or "")
```

Flask’ta `request.get_data()` ve `request.headers.get("X-Brantial-Signature")` değerlerini verin.

**Anahtarı değiştirme.** Kartta **Yeni anahtar**’a tıklayın. Eski anahtar hemen çalışmaz olur, bu yüzden sisteminizi hemen ardından güncelleyin.

## Gönderim ve yeniden denemeler

- 10 saniye içinde herhangi bir `2xx` durum koduyla yanıt verin. Brantial yönlendirmeleri izlemez.
- Adresiniz zaman aşımına uğrarsa, `5xx` ile yanıt verirse ya da `429` ile yavaşlamasını isterse Brantial yeniden dener: 1, 5, 15 ve 30 dakika sonra, toplamda en fazla beş deneme.
- Adresiniz `404` veya `410` yanıtı verirse Brantial webhook’un kaldırıldığını kabul eder ve göndermeyi bırakır. Devam etmek için yeniden bağlayın.
- Uzun süren işi yanıt verdikten sonra yapın, önce değil; böylece istek zaman aşımına uğramaz.

## Sorun giderme

### “Herkese açık bir HTTPS adresi kullanın”

Adresi aracınızdan yeniden kopyalayın. `https://` ile başlamalı ve yerel ya da özel bir ağı göstermemeli.

### “Adres deneme olayını kabul etmedi”

Parantez içindeki sayı, adresinizin verdiği durum kodudur. Genellikle iş akışı kapalıdır: Zap’i, senaryoyu ya da n8n iş akışını açıp yeniden bağlayın. n8n’de **Production URL**’yi kopyaladığınızdan emin olun.

### “Adres artık var olmadığını bildirdi”

Hook, senaryo ya da iş akışı silinmiş veya kapatılmış. Yeniden açın ya da yenisini oluşturup yeni adresle bağlayın.

### “Webhook artık olay kabul etmiyor”

Bağlandıktan sonra adresiniz `404` veya `410` yanıtı verdi, bu yüzden Brantial göndermeyi bıraktı. İş akışını düzeltip yeniden bağlayın.

### “Son mesaj iletilemedi”

Bir olay tüm yeniden denemelerden sonra ulaşmadı. **Test gönder** çalışıyorsa sonraki olay her zamanki gibi gider.

### İmza kontrolüm tutmuyor

- Çözülüp yeniden kodlanmış bir kopyayı değil, ham gövdeyi kontrol edin.
- Güncel anahtarı kullandığınızdan emin olun. **Yeni anahtar**’dan sonra eskisi tutmaz.
- `sha256=` önekiyle birlikte başlık değerinin tamamını karşılaştırın.

## Bağlantıyı kesme

Webhook kartında **Bağlantıyı kes**’e tıklayın. Brantial adrese olay göndermeyi bırakır.

{"@context":"https://schema.org","@type":"FAQPage","inLanguage":"tr","mainEntity":[{"@type":"Question","name":"“Herkese açık bir HTTPS adresi kullanın”","acceptedAnswer":{"@type":"Answer","text":"Adresi aracınızdan yeniden kopyalayın. https:// ile başlamalı ve yerel ya da özel bir ağı göstermemeli."}},{"@type":"Question","name":"“Adres deneme olayını kabul etmedi”","acceptedAnswer":{"@type":"Answer","text":"Parantez içindeki sayı, adresinizin verdiği durum kodudur. Genellikle iş akışı kapalıdır: Zap’i, senaryoyu ya da n8n iş akışını açıp yeniden bağlayın. n8n’de Production URL ’yi kopyaladığınızdan emin olun."}},{"@type":"Question","name":"“Adres artık var olmadığını bildirdi”","acceptedAnswer":{"@type":"Answer","text":"Hook, senaryo ya da iş akışı silinmiş veya kapatılmış. Yeniden açın ya da yenisini oluşturup yeni adresle bağlayın."}},{"@type":"Question","name":"“Webhook artık olay kabul etmiyor”","acceptedAnswer":{"@type":"Answer","text":"Bağlandıktan sonra adresiniz 404 veya 410 yanıtı verdi, bu yüzden Brantial göndermeyi bıraktı. İş akışını düzeltip yeniden bağlayın."}},{"@type":"Question","name":"“Son mesaj iletilemedi”","acceptedAnswer":{"@type":"Answer","text":"Bir olay tüm yeniden denemelerden sonra ulaşmadı. Test gönder çalışıyorsa sonraki olay her zamanki gibi gider."}},{"@type":"Question","name":"İmza kontrolüm tutmuyor","acceptedAnswer":{"@type":"Answer","text":"Çözülüp yeniden kodlanmış bir kopyayı değil, ham gövdeyi kontrol edin. Güncel anahtarı kullandığınızdan emin olun. Yeni anahtar ’dan sonra eskisi tutmaz. sha256= önekiyle birlikte başlık değerinin tamamını karşılaştırın."}}]}

800 bin+ ANALİZ EDİLEN AI CEVABI

8 CEVAP MOTORU

HAFTALIK ENDEKS

TARANAN MOTORLAR:

ChatGPT Gemini Claude Perplexity Grok Mistral Meta AI DeepSeek

ÜRÜN:

[Platforma Genel Bakış](https://brantial.ai/tr/platform/) [Prompt Hacimleri](https://brantial.ai/tr/features/prompt-volumes/) [AI Otorite Endeksi](https://brantial.ai/tr/ai-authority-index/) [AI Sektör Endeksi](https://brantial.ai/tr/ai-sektor-endeksi/) [1 Analiz Hakkı](https://brantial.ai/tr/brandscore/) [Agent Analytics](https://brantial.ai/tr/features/agent-analytics/) [Entegrasyonlar](https://brantial.ai/tr/integrations/) [Fiyatlandırma](https://brantial.ai/tr/pricing/)

ŞİRKET:

[Hakkımızda](https://brantial.ai/tr/about/) [Güven Merkezi](https://brantial.ai/tr/trust/) [Kariyer](https://brantial.ai/tr/careers/) [Partner Programı](https://brantial.ai/tr/agency-partner/) [Brantial University](https://university.brantial.ai/tr) [Visionary Share](https://brantial.ai/community/visionary-share/) [Beyond Click](https://brantial.ai/tr/beyond-click/) [Vaka Çalışmaları](https://brantial.ai/tr/case-studies/) [İletişim](https://brantial.ai/tr/contact/)

KAYNAKLAR:

[Kaynak Merkezi](https://brantial.ai/tr/resources/) [Yardım Merkezi](https://brantial.ai/tr/help/) [Araştırma Raporları](https://brantial.ai/tr/reports/) [Sektörler](https://brantial.ai/tr/industries/) [Vaka Çalışmaları](https://brantial.ai/tr/case-studies/) [Türkiye AI Otorite Endeksi](https://brantial.ai/tr/ai-authority-index/) [AI Sektör Endeksi](https://brantial.ai/tr/ai-sektor-endeksi/) [Otomotiv AI Raporu](https://brantial.ai/tr/reports/otomotiv-sektorunde-ai-gorunurlugu-brantial-2026-raporu/) [GEO Sözlüğü](https://brantial.ai/tr/glossary/) [GEO Rehberi](https://brantial.ai/generative-engine-optimization-guide/) [Blog](https://brantial.ai/tr/blog/) [Karşılaştırma Merkezi](https://brantial.ai/tr/compare/)

![Brantial](https://brantial.ai/layout/logo-wordmark.svg)

Brantial, AI görünürlüğünü anlamak ve içerik çalışmalarını geliştirmek için araçlar sunar. Agentic commerce yönümüz, ürün bilgisi ve alışveriş görevlerinin doğruluğuna odaklanır. Webtures LTD tarafından işletilir.

WEBTURES LTD. · Şirket No. 11948574 494a Fulham Road, London, England, SW6 5NH [hello@brantial.ai](mailto:hello@brantial.ai)

SERTİFİKALAR:

KVKK GDPR SOC 2 · SÜREÇTE

[![Brantial Certified GEO Partner](https://brantial.ai/assets/geo-partner-badge.avif) Sertifikalı GEO Partner programı: rozet, dizin ve toptan marj](https://brantial.ai/tr/agency-partner/)

Haftalık Görünürlük Endeksi

Her hafta GEO trendleri ve içgörüler, e-postanda.

[Abone ol](https://www.linkedin.com/newsletters/g%C3%B6r%C3%BCn%C3%BCrl%C3%BCk-raporu-7449413673988583424/)

© 2026 Brantial · Webtures LTD

[TR](https://brantial.ai/tr/help/webhooks/) [EN](https://brantial.ai/help/webhooks/)

[Gizlilik](https://brantial.ai/privacy-policy/) [Şartlar](https://brantial.ai/terms-of-service/) [Çerezler](https://brantial.ai/cookie-policy/)

ÜCRETSİZ MARKA ANALİZİ

## Analiz hakkınızı kullanın

Brantial University

## Merhaba, hadi başlayalım!

Hızlı çözüm, tek mesaj uzağınızda.

**Sorunuzu ekibe yazın** Genellikle birkaç dakika içinde yanıtlarız

**Brantial University** GENELLİKLE BİRKAÇ DAKİKA İÇİNDE YANITLAR

div { min-width: 0; flex: 1; } .br-chat__header strong { display: block; font-size: 14px; font-weight: 600; line-height: normal; } .br-chat__header small { display: block; margin-top: 3px; color: var(--br-chat-faint); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 400; letter-spacing: 0.06em; line-height: 1.55; } .br-chat__log { display: flex; min-height: 0; flex: 1; flex-direction: column; gap: 8px; overflow-y: auto; padding: 14px; } .br-chat__messages { display: flex; flex-direction: column; gap: 8px; } .br-chat__bubble { max-width: 85%; margin: 0; padding: 8px 12px; overflow-wrap: anywhere; border-radius: 12px; color: var(--br-chat-copy); font-size: 13.5px; line-height: 1.55; white-space: pre-wrap; } .br-chat__bubble--visitor { align-self: flex-end; border: 1px solid var(--br-chat-outer-line); border-radius: 12px 12px 4px; background: var(--br-chat-visitor-bg); color: var(--br-chat-visitor-text); } .br-chat__bubble--team { align-self: flex-start; border-radius: 12px 12px 12px 4px; background: var(--br-chat-team-bg); } .br-chat__email-area { width: 100%; } .br-chat__email-form { display: grid; width: 100%; max-width: 292px; gap: 8px; padding: 8px 12px; border-radius: 12px 12px 12px 4px; background: var(--br-chat-team-bg); } .br-chat__email-form label { color: var(--br-chat-copy); font-size: 13.5px; font-weight: 400; line-height: 1.55; } .br-chat__email-form > div { display: flex; gap: 8px; } .br-chat__email-form input { min-width: 0; height: 38px; flex: 1; padding: 9px 10px; border: 1px solid var(--br-chat-line); border-radius: 8px; background: var(--br-chat-input); color: var(--br-chat-copy); font-size: 13.5px; } .br-chat__email-form input[aria-invalid='true'] { border-color: #d14343; } .br-chat__email-form button { display: flex; width: 38px; height: 38px; flex: 0 0 auto; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 8px; background: var(--br-chat-visitor-bg); color: var(--br-chat-visitor-text); font-size: 16px; cursor: pointer; } .br-chat__email-form button:disabled { cursor: wait; opacity: 0.62; } .br-chat__error { margin: 0; color: #d14343; font-size: 11.5px; line-height: 1.4; } .br-chat__composer { display: flex; min-height: 59px; align-items: center; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--br-chat-line); background: var(--br-chat-surface); } .br-chat__composer input { min-width: 0; height: 38px; flex: 1; padding: 9px 12px; border: 1px solid var(--br-chat-line); border-radius: 10px; background: var(--br-chat-input); color: var(--br-chat-copy); font-size: 13.5px; } .br-chat__composer button { display: flex; width: 40px; height: 38px; flex: 0 0 auto; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--br-chat-muted); cursor: pointer; } .br-chat__composer button:hover:not(:disabled) { color: var(--br-chat-text); } .br-chat__composer button:disabled, .br-chat__composer input:disabled { cursor: default; } .br-chat__composer button span { font-size: 17px; line-height: 1; } .br-chat__composer input::placeholder, .br-chat__email-form input::placeholder { color: var(--br-chat-faint); opacity: 1; } .br-chat__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } @media (max-width: 480px) { .br-chat__panel { right: 12px; bottom: 12px; width: calc(100vw - 24px); height: min(480px, calc(100dvh - 70px)); } .br-chat__icon-button { width: 44px; height: 44px; } .br-chat__composer input, .br-chat__email-form input { height: 44px; font-size: 16px; } .br-chat__composer button, .br-chat__email-form button { width: 44px; height: 44px; } .br-chat__start-card button { display: inline-flex; min-height: 44px; align-items: center; } } @media (prefers-reduced-motion: reduce) { .br-chat__launcher { transition: none; } }
