:root{
	--s7ca-primary:#2E5BFF;
	--s7ca-bg:#ffffff;
	--s7ca-border:#dfe3ea;
	--s7ca-text:#1f2937;
	--s7ca-panel-bg:#f7f9fc;
}

.s7ca-chat-root{
	position:fixed;
	bottom:20px;
	z-index:999999;
	font-family:Arial, Helvetica, sans-serif;
}

.s7ca-chat-root[data-position="right"]{ right:20px; }
.s7ca-chat-root[data-position="left"]{ left:20px; }

.s7ca-chat-toggle{
	display:inline-flex;
	align-items:center;
	gap:10px;
	border:none;
	background:var(--s7ca-primary);
	color:#fff;
	padding:14px 18px;
	border-radius:999px;
	cursor:pointer;
	box-shadow:0 10px 26px rgba(0,0,0,.18);
	font-size:14px;
	font-weight:700;
	line-height:1;
	min-height:52px;
}

.s7ca-chat-toggle:hover{
	opacity:.96;
}

.s7ca-chat-toggle-icon{
	font-size:18px;
	line-height:1;
	display:inline-flex;
	align-items:center;
	justify-content:center;
}

.s7ca-chat-toggle-text{
	display:inline-block;
}

.s7ca-chat-panel{
	width:380px;
	max-width:calc(100vw - 24px);
	height:min(680px, calc(100vh - 100px));
	background:var(--s7ca-bg);
	border:1px solid var(--s7ca-border);
	border-radius:18px;
	box-shadow:0 24px 60px rgba(0,0,0,.18);
	display:flex;
	flex-direction:column;
	overflow:hidden;
	margin-top:12px;
}

.s7ca-chat-header{
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:16px 18px;
	background:var(--s7ca-primary);
	color:#fff;
	flex:0 0 auto;
}

.s7ca-chat-header strong{
	font-size:16px;
	line-height:1.2;
}

.s7ca-chat-close{
	background:transparent;
	border:none;
	color:#fff;
	font-size:30px;
	line-height:1;
	cursor:pointer;
	padding:0;
}

.s7ca-chat-body{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--s7ca-panel-bg);
	overflow:hidden;
}

.s7ca-chat-messages{
	flex:1 1 auto;
	min-height:0;
	overflow-y:auto;
	padding:14px;
	display:flex;
	flex-direction:column;
	gap:12px;
	scroll-behavior:smooth;
}

.s7ca-chat-message{
	max-width:88%;
	padding:12px 14px;
	border-radius:14px;
	line-height:1.5;
	font-size:14px;
	white-space:pre-wrap;
	word-break:break-word;
	box-sizing:border-box;
}

.s7ca-chat-message.user{
	align-self:flex-end;
	background:var(--s7ca-primary);
	color:#fff;
	border-bottom-right-radius:4px;
}

.s7ca-chat-message.assistant{
	align-self:flex-start;
	background:#fff;
	color:var(--s7ca-text);
	border:1px solid var(--s7ca-border);
	border-bottom-left-radius:4px;
}

.s7ca-chat-quick-actions{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	padding:0 14px 14px;
	background:var(--s7ca-panel-bg);
	flex:0 0 auto;
}

.s7ca-chat-quick-actions.is-hidden{
	display:none;
}

.s7ca-chat-quick-actions button{
	border:1px solid var(--s7ca-border);
	background:#fff;
	border-radius:999px;
	padding:10px 14px;
	font-size:13px;
	cursor:pointer;
	line-height:1.2;
	color:var(--s7ca-text);
}

.s7ca-handoff-form,
.s7ca-rating-form{
	padding:14px;
	border-top:1px solid var(--s7ca-border);
	background:#fff;
	flex:0 0 auto;
	max-height:42%;
	overflow-y:auto;
}

.s7ca-handoff-form h4,
.s7ca-rating-form h4{
	margin:0 0 12px;
	font-size:18px;
	color:var(--s7ca-text);
}

.s7ca-handoff-form input,
.s7ca-handoff-form textarea,
.s7ca-rating-form textarea,
.s7ca-chat-input{
	width:100%;
	border:1px solid var(--s7ca-border);
	border-radius:12px;
	padding:12px 14px;
	box-sizing:border-box;
	font-size:14px;
	color:var(--s7ca-text);
	background:#fff;
}

.s7ca-handoff-form input,
.s7ca-handoff-form textarea,
.s7ca-rating-form textarea{
	margin-bottom:10px;
}

.s7ca-handoff-form textarea,
.s7ca-rating-form textarea{
	resize:vertical;
	min-height:90px;
}

.s7ca-rating-options{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:8px;
	margin-bottom:10px;
}

.s7ca-rating-options button{
	border:1px solid var(--s7ca-border);
	background:#fff;
	border-radius:10px;
	padding:10px;
	cursor:pointer;
	font-size:13px;
	color:var(--s7ca-text);
}

.s7ca-rating-options button.active{
	border-color:var(--s7ca-primary);
	color:var(--s7ca-primary);
	font-weight:700;
}

.s7ca-form-actions{
	margin-top:4px;
}

.s7ca-chat-form{
	padding:12px;
	border-top:1px solid var(--s7ca-border);
	background:#fff;
	flex:0 0 auto;
}

.s7ca-chat-input{
	min-height:86px;
	resize:none;
	margin-bottom:10px;
}

.s7ca-chat-send,
.s7ca-btn-primary{
	width:100%;
	border:none;
	background:var(--s7ca-primary);
	color:#fff;
	padding:14px 16px;
	border-radius:12px;
	cursor:pointer;
	font-weight:700;
	font-size:15px;
}

.s7ca-typing-indicator{
	display:flex;
	align-items:center;
	gap:10px;
}

.s7ca-typing-text{
	display:inline-block;
}

.s7ca-typing-dots{
	display:inline-flex;
	align-items:center;
	gap:4px;
	min-width:26px;
}

.s7ca-typing-dots span{
	width:6px;
	height:6px;
	border-radius:50%;
	background:currentColor;
	opacity:.25;
	animation:s7caTypingDots 1.4s infinite ease-in-out;
}

.s7ca-typing-dots span:nth-child(1){ animation-delay:0s; }
.s7ca-typing-dots span:nth-child(2){ animation-delay:.2s; }
.s7ca-typing-dots span:nth-child(3){ animation-delay:.4s; }

@keyframes s7caTypingDots{
	0%, 80%, 100%{
		transform:translateY(0);
		opacity:.25;
	}
	40%{
		transform:translateY(-3px);
		opacity:1;
	}
}

@media (max-width: 600px){
	.s7ca-chat-root[data-position="right"],
	.s7ca-chat-root[data-position="left"]{
		right:12px;
		left:12px;
	}

	.s7ca-chat-panel{
		width:auto;
		height:min(82vh, 700px);
		max-height:min(82vh, 700px);
		border-radius:18px;
	}

	.s7ca-chat-message{
		max-width:88%;
	}

	.s7ca-handoff-form,
	.s7ca-rating-form{
		max-height:45%;
	}

	.s7ca-chat-toggle{
		min-height:50px;
		justify-content:center;
	}
}