/* ==========================================================================
   Bunny Chat — FAAST  ·  tampilan widget chat bertema kelinci
   Semua class diawali .bunny-chat agar tidak bentrok dengan tema WordPress.
   ========================================================================== */

.bunny-chat {
	--bc-bg: #f7f2ff;
	--bc-bg2: #eee5ff;
	--bc-card: #ffffff;
	--bc-ink: #3b2d63;
	--bc-ink-soft: #7d719c;
	--bc-ink-faint: #b3a9cc;
	--bc-border: #e8deff;
	--bc-purple: #8b6fea;
	--bc-purple-soft: #c9b9ff;
	--bc-pink: #f26b9e;
	--bc-pink-soft: #ffb8cf;
	--bc-pastel-pink: #ffe6ee;
	--bc-pastel-lilac: #efe8ff;
	--bc-mint: #4fcb98;
	--bc-shadow: 0 18px 40px rgba(139, 111, 234, .28), 0 4px 12px rgba(139, 111, 234, .16);
	--bc-radius: 28px;
	--bc-font: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--bc-font-display: "Fredoka", "Nunito", system-ui, sans-serif;

	/* ukuran bunny (desktop) */
	--bc-bunny: 96px;
	--bc-gap: 22px;

	position: fixed;
	bottom: var(--bc-gap);
	z-index: 999990;
	font-family: var(--bc-font);
	color: var(--bc-ink);
	line-height: 1.45;
	-webkit-font-smoothing: antialiased;
}
.bunny-chat--left  { left: var(--bc-gap); }
.bunny-chat--right { right: var(--bc-gap); }
.bunny-chat *, .bunny-chat *::before, .bunny-chat *::after { box-sizing: border-box; }
.bunny-chat button { font-family: inherit; cursor: pointer; }
.bunny-chat .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* ── Tombol Bunny ─────────────────────────────────────────────────────── */
.bunny-chat__launcher {
	position: relative;
	display: block;
	width: var(--bc-bunny);
	height: calc(var(--bc-bunny) * 1.07);
	padding: 0;
	border: 0;
	background: none;
	-webkit-tap-highlight-color: transparent;
	transition: transform .35s cubic-bezier(.34, 1.56, .64, 1);
}
.bunny-chat__launcher picture,
.bunny-chat__bunny {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
	user-select: none;
}
.bunny-chat__bunny {
	filter: drop-shadow(0 10px 14px rgba(139, 111, 234, .30));
	transform-origin: 50% 90%;
	animation: bc-float 3.2s ease-in-out infinite, bc-wiggle 7s ease-in-out infinite;
}
.bunny-chat__shadow {
	position: absolute;
	left: 18%; right: 18%; bottom: -2px;
	height: 12px;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(139, 111, 234, .30), transparent);
	animation: bc-shadow 3.2s ease-in-out infinite;
}
.bunny-chat__launcher:hover { transform: scale(1.06) rotate(-3deg); }
.bunny-chat__launcher:active { transform: scale(.94); }
.bunny-chat__launcher:focus-visible { outline: 3px solid var(--bc-pink-soft); outline-offset: 6px; border-radius: 30px; }

.bunny-chat__badge {
	position: absolute;
	top: 12%;
	left: 4%;
	min-width: 24px; height: 24px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--bc-pink);
	color: #fff;
	font: 800 12px/24px var(--bc-font);
	text-align: center;
	box-shadow: 0 0 0 3px #fff, 0 4px 10px rgba(242, 107, 158, .45);
	animation: bc-pop .6s cubic-bezier(.34, 1.56, .64, 1) 1s both, bc-pulse 2.4s ease-in-out 2s infinite;
}
.bunny-chat--right .bunny-chat__badge { left: auto; right: 4%; }
.bunny-chat[data-seen="1"] .bunny-chat__badge { display: none; }

.bunny-chat__hearts { position: absolute; top: 8%; left: 50%; pointer-events: none; }
.bunny-chat__hearts i {
	position: absolute;
	font-style: normal;
	color: var(--bc-pink);
	font-size: 14px;
	opacity: 0;
}
.bunny-chat__launcher:hover .bunny-chat__hearts i { animation: bc-heart 1.4s ease-out infinite; }
.bunny-chat__hearts i:nth-child(2) { left: -22px; font-size: 11px; color: var(--bc-purple-soft); animation-delay: .35s !important; }
.bunny-chat__hearts i:nth-child(3) { left: 18px;  font-size: 12px; color: var(--bc-pink-soft);  animation-delay: .7s !important; }

/* Label tetap "Tanya Bunny" supaya jelas Bunny bisa diklik untuk chat */
.bunny-chat__label {
	position: absolute;
	left: calc(var(--bc-bunny) * 0.86);
	bottom: calc(var(--bc-bunny) * 0.16);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 13px 6px 10px;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--bc-purple) 0%, var(--bc-pink) 100%);
	color: #fff;
	font: 800 13px/1 var(--bc-font);
	white-space: nowrap;
	box-shadow: 0 0 0 3px #fff, 0 6px 16px rgba(242, 107, 158, .40);
	transform-origin: 0 50%;
	pointer-events: none;
	animation: bc-pop .5s cubic-bezier(.34, 1.56, .64, 1) .6s both, bc-nudge 5s ease-in-out 3s infinite;
	transition: opacity .25s ease;
}
.bunny-chat__label-dot {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--bc-mint);
	box-shadow: 0 0 0 2px rgba(255, 255, 255, .85);
	animation: bc-blink 1.8s ease-in-out infinite;
}
.bunny-chat--right .bunny-chat__label { left: auto; right: calc(var(--bc-bunny) * 0.86); transform-origin: 100% 50%; }
/* Label hilang saat chat terbuka atau saat balon sapaan tampil (supaya tidak menumpuk) */
.bunny-chat[data-state="open"] .bunny-chat__label { opacity: 0; }
.bunny-chat__bubble-text { display: inline-block; transition: opacity .25s ease, transform .25s ease; }
.bunny-chat__bubble-text.is-swap { opacity: 0; transform: translateY(4px); }

/* ── Balon sapaan ─────────────────────────────────────────────────────── */
.bunny-chat__bubble {
	position: absolute;
	bottom: calc(var(--bc-bunny) * 0.86);
	left: calc(var(--bc-bunny) * 0.78);
	width: max-content;
	max-width: 220px;
	padding: 12px 34px 12px 16px;
	border-radius: 22px 22px 22px 6px;
	background: #fff;
	border: 2px solid var(--bc-border);
	box-shadow: var(--bc-shadow);
	font-weight: 700;
	font-size: 14px;
	color: var(--bc-ink);
	opacity: 0;
	transform: translateY(10px) scale(.85);
	transform-origin: 0 100%;
	pointer-events: none;
	transition: opacity .3s ease, transform .4s cubic-bezier(.34, 1.56, .64, 1);
}
.bunny-chat--right .bunny-chat__bubble {
	left: auto;
	right: calc(var(--bc-bunny) * 0.78);
	border-radius: 22px 22px 6px 22px;
	transform-origin: 100% 100%;
}
.bunny-chat[data-bubble="1"][data-state="closed"] .bunny-chat__bubble {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
.bunny-chat__bubble::after {
	content: "🐾";
	position: absolute;
	right: 10px; bottom: -14px;
	font-size: 14px;
	transform: rotate(18deg);
}
.bunny-chat__bubble-x {
	position: absolute;
	top: 6px; right: 8px;
	width: 22px; height: 22px;
	border: 0; border-radius: 50%;
	background: var(--bc-pastel-lilac);
	color: var(--bc-ink-soft);
	font: 800 14px/22px var(--bc-font);
	padding: 0;
}

/* ── Panel chat ───────────────────────────────────────────────────────── */
.bunny-chat__panel {
	position: absolute;
	bottom: calc(var(--bc-bunny) * 0.9);
	left: calc(var(--bc-bunny) * 0.35);
	width: 380px;
	height: min(600px, calc(100vh - var(--bc-bunny) - 70px));
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--bc-radius);
	background: linear-gradient(180deg, var(--bc-bg) 0%, var(--bc-bg2) 100%);
	border: 2px solid #fff;
	box-shadow: var(--bc-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(24px) scale(.88);
	transform-origin: 0 100%;
	transition: opacity .25s ease, transform .45s cubic-bezier(.34, 1.56, .64, 1), visibility 0s linear .45s;
}
.bunny-chat--right .bunny-chat__panel { left: auto; right: calc(var(--bc-bunny) * 0.35); transform-origin: 100% 100%; }
.bunny-chat[data-state="open"] .bunny-chat__panel {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity .25s ease, transform .45s cubic-bezier(.34, 1.56, .64, 1), visibility 0s;
}
.bunny-chat[data-state="open"] .bunny-chat__launcher { transform: scale(.82) rotate(-6deg); }

/* Header */
.bunny-chat__header {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 16px 18px;
	background: linear-gradient(120deg, #b9a4ff 0%, #d6a6f0 50%, #ffb3cf 100%);
	color: #fff;
	border-radius: 0 0 26px 26px;
	box-shadow: 0 8px 20px rgba(139, 111, 234, .25);
	z-index: 1;
}
.bunny-chat__avatar { position: relative; flex: none; }
.bunny-chat__avatar img {
	display: block;
	width: 48px; height: 48px;
	border-radius: 50%;
	object-fit: cover;
	background: #fff;
	border: 3px solid #fff;
	box-shadow: 0 4px 10px rgba(59, 45, 99, .18);
}
.bunny-chat__online {
	position: absolute; right: 0; bottom: 2px;
	width: 13px; height: 13px;
	border-radius: 50%;
	background: var(--bc-mint);
	border: 2.5px solid #fff;
}
.bunny-chat__heading { flex: 1; min-width: 0; }
.bunny-chat__heading h2 {
	margin: 0;
	font: 700 19px/1.15 var(--bc-font-display);
	color: #fff;
	letter-spacing: .2px;
	text-shadow: 0 2px 6px rgba(110, 84, 217, .35);
}
.bunny-chat__status { margin: 2px 0 0; font-size: 12.5px; font-weight: 700; opacity: .95; }
.bunny-chat__close {
	flex: none;
	width: 38px; height: 38px;
	display: grid; place-items: center;
	border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .28);
	color: #fff;
	transition: background .2s, transform .2s;
}
.bunny-chat__close:hover { background: rgba(255, 255, 255, .45); transform: rotate(90deg); }
.bunny-chat__paws {
	position: absolute; right: 64px; bottom: 6px;
	width: 46px; height: 18px;
	background:
		radial-gradient(circle at 6px 10px, rgba(255, 255, 255, .55) 4px, transparent 4.5px),
		radial-gradient(circle at 26px 6px, rgba(255, 255, 255, .45) 3.5px, transparent 4px),
		radial-gradient(circle at 40px 12px, rgba(255, 255, 255, .35) 3px, transparent 3.5px);
	pointer-events: none;
}

/* Area pesan */
.bunny-chat__messages {
	flex: 1;
	overflow-y: auto;
	padding: 18px 14px 8px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	scroll-behavior: smooth;
	overscroll-behavior: contain;
	background-image:
		radial-gradient(circle at 12% 18%, rgba(201, 185, 255, .25) 0 6px, transparent 7px),
		radial-gradient(circle at 88% 42%, rgba(255, 184, 207, .25) 0 5px, transparent 6px),
		radial-gradient(circle at 30% 78%, rgba(201, 185, 255, .2) 0 4px, transparent 5px);
	background-size: 220px 260px;
}
.bunny-chat__messages::-webkit-scrollbar { width: 6px; }
.bunny-chat__messages::-webkit-scrollbar-thumb { background: var(--bc-purple-soft); border-radius: 6px; }

.bunny-chat__day {
	align-self: center;
	padding: 3px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .8);
	color: var(--bc-ink-soft);
	font-size: 11px; font-weight: 800;
}

.bunny-chat__row { display: flex; align-items: flex-end; gap: 8px; animation: bc-msg-in .35s cubic-bezier(.34, 1.56, .64, 1) both; }
.bunny-chat__row--user { justify-content: flex-end; }
.bunny-chat__row-avatar {
	flex: none;
	width: 30px; height: 30px;
	border-radius: 50%;
	object-fit: cover;
	background: #fff;
	border: 2px solid #fff;
	box-shadow: 0 3px 8px rgba(139, 111, 234, .22);
}
.bunny-chat__msg {
	position: relative;
	max-width: 78%;
	padding: 10px 14px;
	font-size: 14.5px;
	font-weight: 600;
	word-wrap: break-word;
	overflow-wrap: anywhere;
	white-space: pre-wrap;
}
.bunny-chat__row--bot .bunny-chat__msg {
	background: #fff;
	color: var(--bc-ink);
	border-radius: 20px 20px 20px 6px;
	box-shadow: 0 4px 14px rgba(139, 111, 234, .14);
}
.bunny-chat__row--user .bunny-chat__msg {
	background: linear-gradient(135deg, var(--bc-purple) 0%, var(--bc-pink) 100%);
	color: #fff;
	border-radius: 20px 20px 6px 20px;
	box-shadow: 0 6px 14px rgba(242, 107, 158, .28);
}
.bunny-chat__msg a { color: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.bunny-chat__time { display: block; margin-top: 4px; font-size: 10.5px; font-weight: 700; opacity: .6; text-align: right; }

/* Mengetik… */
.bunny-chat__typing { display: inline-flex; gap: 5px; padding: 4px 2px; }
.bunny-chat__typing span {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--bc-purple-soft);
	animation: bc-bounce 1.1s ease-in-out infinite;
}
.bunny-chat__typing span:nth-child(2) { background: var(--bc-pink-soft); animation-delay: .15s; }
.bunny-chat__typing span:nth-child(3) { background: var(--bc-purple); animation-delay: .3s; }

/* Pilihan cepat */
.bunny-chat__quick {
	display: flex;
	gap: 8px;
	padding: 4px 14px 10px;
	overflow-x: auto;
	scrollbar-width: none;
}
.bunny-chat__quick::-webkit-scrollbar { display: none; }
/* Tepi memudar = masih ada pilihan di sisi itu (diatur JS lewat data-more) */
.bunny-chat__quick[data-more="right"] { -webkit-mask-image: linear-gradient(90deg, #000 82%, transparent); mask-image: linear-gradient(90deg, #000 82%, transparent); }
.bunny-chat__quick[data-more="left"]  { -webkit-mask-image: linear-gradient(90deg, transparent, #000 18%); mask-image: linear-gradient(90deg, transparent, #000 18%); }
.bunny-chat__quick[data-more="both"]  { -webkit-mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); }
.bunny-chat__quick:empty { display: none; }
.bunny-chat__chip {
	flex: none;
	padding: 8px 14px;
	border-radius: 999px;
	border: 2px solid var(--bc-border);
	background: #fff;
	color: var(--bc-purple);
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
	transition: transform .2s cubic-bezier(.34, 1.56, .64, 1), background .2s, color .2s, border-color .2s;
}
.bunny-chat__chip:hover { background: var(--bc-pastel-pink); color: var(--bc-pink); border-color: var(--bc-pink-soft); transform: translateY(-2px); }

/* Kolom tulis */
.bunny-chat__composer {
	display: flex;
	align-items: flex-end;
	gap: 8px;
	margin: 0 12px;
	padding: 6px 6px 6px 16px;
	border-radius: 26px;
	background: #fff;
	border: 2px solid var(--bc-border);
	box-shadow: 0 6px 16px rgba(139, 111, 234, .14);
	transition: border-color .2s, box-shadow .2s;
}
.bunny-chat__composer:focus-within { border-color: var(--bc-pink-soft); box-shadow: 0 6px 18px rgba(242, 107, 158, .22); }
.bunny-chat__input {
	flex: 1;
	min-height: 24px;
	max-height: 110px;
	margin: 0 0 7px;
	padding: 0;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	resize: none;
	color: var(--bc-ink);
	font: 600 15px/1.45 var(--bc-font);
}
.bunny-chat__input::placeholder { color: var(--bc-ink-faint); }
.bunny-chat__send {
	flex: none;
	width: 42px; height: 42px;
	display: grid; place-items: center;
	border: 0; border-radius: 50%;
	background: linear-gradient(135deg, var(--bc-purple), var(--bc-pink));
	color: #fff;
	box-shadow: 0 6px 12px rgba(242, 107, 158, .35);
	transition: transform .2s cubic-bezier(.34, 1.56, .64, 1), opacity .2s;
}
.bunny-chat__send:hover { transform: scale(1.08) rotate(-8deg); }
.bunny-chat__send:disabled { opacity: .45; transform: none; cursor: default; }
/* Catatan kecil di bawah kolom tulis: Bunny bisa keliru, pastikan ke admin */
.bunny-chat__composer { margin-bottom: 0; }
#bunny-chat p.bunny-chat__footnote {
	margin: 0 !important;
	padding: 9px 18px 10px !important;
	min-height: 34px;
	background: none !important;
	text-align: center;
	font: 700 11px/1.4 var(--bc-font) !important;
	color: var(--bc-ink-faint) !important;
	letter-spacing: .2px;
}
#bunny-chat p.bunny-chat__footnote a { color: inherit !important; font-weight: inherit; text-decoration: underline dotted; text-underline-offset: 2px; }
#bunny-chat p.bunny-chat__footnote a:hover { color: var(--bc-ink-soft) !important; }
.bunny-chat__composer:last-child { margin-bottom: 34px; } /* tanpa catatan: tetap ada ruang kosong */

/* ── Pelindung dari CSS tema ──────────────────────────────────────────────
   Tema/Elementor memberi gaya umum ke textarea dan button (termasuk saat :hover/:focus/:active),
   misalnya padding besar dan sudut kotak. Aturan di bawah memakai #bunny-chat supaya gaya Bunny menang. */
#bunny-chat textarea.bunny-chat__input,
#bunny-chat textarea.bunny-chat__input:hover,
#bunny-chat textarea.bunny-chat__input:focus,
#bunny-chat textarea.bunny-chat__input:focus-visible,
#bunny-chat textarea.bunny-chat__input:active {
	flex: 1; width: auto; min-width: 0;
	min-height: 24px; max-height: 110px;
	margin: 0 0 7px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	color: var(--bc-ink) !important;
	font: 600 15px/1.45 var(--bc-font) !important;
	letter-spacing: normal; text-transform: none;
	resize: none;
}
#bunny-chat button.bunny-chat__send,
#bunny-chat button.bunny-chat__send:hover,
#bunny-chat button.bunny-chat__send:focus,
#bunny-chat button.bunny-chat__send:active,
#bunny-chat button.bunny-chat__send:disabled {
	flex: none;
	width: 42px !important; height: 42px !important;
	min-width: 0 !important; min-height: 0 !important;
	margin: 0 !important; padding: 0 !important;
	display: grid !important; place-items: center;
	border: 0 !important;
	border-radius: 50% !important;
	background: linear-gradient(135deg, var(--bc-purple), var(--bc-pink)) !important;
	color: #fff !important;
	line-height: 1 !important;
	text-transform: none; letter-spacing: normal;
	box-shadow: 0 6px 12px rgba(242, 107, 158, .35) !important;
	outline: 0;
}
#bunny-chat button.bunny-chat__send:focus-visible { outline: 3px solid var(--bc-pink-soft) !important; outline-offset: 2px; }
#bunny-chat button.bunny-chat__send:disabled { box-shadow: none !important; }
#bunny-chat button.bunny-chat__chip,
#bunny-chat button.bunny-chat__chip:focus,
#bunny-chat button.bunny-chat__chip:active { border-radius: 999px !important; padding: 8px 14px !important; margin: 0 !important; line-height: 1.2 !important; min-height: 0 !important; background: #fff !important; color: var(--bc-purple) !important; border: 2px solid var(--bc-border) !important; box-shadow: none !important; text-transform: none; letter-spacing: normal; }
#bunny-chat button.bunny-chat__chip:hover { border-radius: 999px !important; padding: 8px 14px !important; background: var(--bc-pastel-pink) !important; color: var(--bc-pink) !important; border: 2px solid var(--bc-pink-soft) !important; }
#bunny-chat button.bunny-chat__close,
#bunny-chat button.bunny-chat__close:hover,
#bunny-chat button.bunny-chat__close:focus,
#bunny-chat button.bunny-chat__close:active,
#bunny-chat button.bunny-chat__bubble-x,
#bunny-chat button.bunny-chat__bubble-x:hover,
#bunny-chat button.bunny-chat__bubble-x:focus { border-radius: 50% !important; padding: 0 !important; min-height: 0 !important; box-shadow: none; text-transform: none; }
#bunny-chat button.bunny-chat__close { background: rgba(255, 255, 255, .28) !important; color: #fff !important; border: 0 !important; width: 38px !important; height: 38px !important; }
#bunny-chat button.bunny-chat__close:hover,
#bunny-chat button.bunny-chat__close:focus { background: rgba(255, 255, 255, .45) !important; color: #fff !important; border: 0 !important; }
#bunny-chat button.bunny-chat__bubble-x,
#bunny-chat button.bunny-chat__bubble-x:hover,
#bunny-chat button.bunny-chat__bubble-x:focus { background: var(--bc-pastel-lilac) !important; color: var(--bc-ink-soft) !important; border: 0 !important; width: 22px !important; height: 22px !important; line-height: 22px !important; }
#bunny-chat button.bunny-chat__launcher,
#bunny-chat button.bunny-chat__launcher:hover,
#bunny-chat button.bunny-chat__launcher:focus,
#bunny-chat button.bunny-chat__launcher:active { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }

/* ── HP ───────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
	/* Panel turun dekat bawah layar; tombol melayang plugin lain (mis. WhatsApp) jatuh di ruang kosong bawah panel,
	   bukan menutupi tombol kirim. --bc-safe-bottom = jarak panel dari bawah, --bc-foot = ruang kosong di bawah kolom tulis */
	.bunny-chat { --bc-bunny: 76px; --bc-gap: 12px; --bc-safe-bottom: 36px; --bc-foot: 56px; }
	.bunny-chat__composer:last-child { margin-bottom: var(--bc-foot); }
	/* Catatan rata kiri dan memberi ruang di kanan untuk tombol melayang plugin lain (mis. WhatsApp) */
	#bunny-chat p.bunny-chat__footnote { min-height: var(--bc-foot); padding: 8px 76px 10px !important; text-align: center; font-size: 11px !important; }
	.bunny-chat__bubble { max-width: 180px; font-size: 13px; padding: 10px 30px 10px 13px; }
	.bunny-chat__label { font-size: 12px; padding: 6px 11px 6px 9px; }
	.bunny-chat__panel,
	.bunny-chat--right .bunny-chat__panel {
		position: fixed;
		left: 10px; right: 10px;
		bottom: calc(var(--bc-safe-bottom) + env(safe-area-inset-bottom, 0px));
		width: auto;
		height: min(80vh, 640px, calc(100vh - var(--bc-safe-bottom) - 24px));
		height: min(80dvh, 640px, calc(100dvh - var(--bc-safe-bottom) - 24px));
		border-radius: 26px;
		transform-origin: 50% 100%;
	}
	.bunny-chat[data-state="open"] .bunny-chat__launcher {
		opacity: 0;
		pointer-events: none;
		transform: scale(.6);
	}
	.bunny-chat__msg { max-width: 82%; font-size: 15px; }
	.bunny-chat__input,
	#bunny-chat textarea.bunny-chat__input,
	#bunny-chat textarea.bunny-chat__input:focus { font-size: 16px !important; } /* cegah auto-zoom iOS */
}
@media (min-width: 601px) and (max-width: 1024px) {
	.bunny-chat { --bc-bunny: 88px; }
}
@media (max-height: 560px) and (min-width: 601px) {
	.bunny-chat__panel { height: calc(100vh - 40px); bottom: 0; left: calc(var(--bc-bunny) + 8px); }
	.bunny-chat--right .bunny-chat__panel { left: auto; right: calc(var(--bc-bunny) + 8px); }
}

/* ── Animasi ──────────────────────────────────────────────────────────── */
@keyframes bc-float   { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
@keyframes bc-wiggle  { 0%, 88%, 100% { rotate: 0deg; } 91% { rotate: -6deg; } 94% { rotate: 5deg; } 97% { rotate: -3deg; } }
@keyframes bc-shadow  { 0%, 100% { transform: scaleX(1); opacity: 1; } 50% { transform: scaleX(.78); opacity: .6; } }
@keyframes bc-pop     { from { transform: scale(0); } to { transform: scale(1); } }
.bunny-chat__label { animation-name: bc-pop, bc-nudge; }
@keyframes bc-nudge   { 0%, 84%, 100% { transform: scale(1); } 88% { transform: scale(1.1); } 92% { transform: scale(.97); } 96% { transform: scale(1.04); } }
@keyframes bc-blink   { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes bc-pulse   { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }
@keyframes bc-heart   { 0% { opacity: 0; transform: translateY(0) scale(.6); } 25% { opacity: 1; } 100% { opacity: 0; transform: translateY(-34px) scale(1.1); } }
@keyframes bc-msg-in  { from { opacity: 0; transform: translateY(10px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes bc-bounce  { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-6px); } }

@media (prefers-reduced-motion: reduce) {
	.bunny-chat *, .bunny-chat *::before, .bunny-chat *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}
