/**
 * Lumo SmartChat AI - Live Support widget styles
 *
 * Intake form card, waiting banner, agent bubble and system note. Loaded only
 * when Live Support is enabled.
 *
 * @package LumoSmartChat
 * @since 1.5.0
 */

/* ── Header status ── */

.lsc-chat-header-status.lsc-status-waiting::before,
.lsc-chat-header-status.lsc-status-live::before,
.lsc-chat-header-status.lsc-status-ended::before {
	content: '';
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-inline-end: 6px;
	border-radius: 0;
	vertical-align: middle;
}

.lsc-chat-header-status.lsc-status-waiting::before {
	background: #f59e0b;
	animation: lsc-ls-pulse 1.4s ease-in-out infinite;
}

.lsc-chat-header-status.lsc-status-live::before {
	background: #22c55e;
}

.lsc-chat-header-status.lsc-status-ended::before {
	background: #94a3b8;
}

@keyframes lsc-ls-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.35; }
}

/* ── Cards shared shell ──
   Widget CSS resets button/input with !important — every interactive control
   here must win that fight with equal or higher specificity. */

.lsc-widget-container .lsc-ls-card {
	margin: 12px 0 !important;
	padding: 16px !important;
	border: 1px solid var(--lsc-widget-divider, rgba(11, 18, 32, 0.12)) !important;
	border-radius: var(--lsc-widget-radius-sm, 0) !important;
	background: var(--lsc-widget-surface-elevated, #fff) !important;
	box-shadow: none !important;
	color: var(--lsc-widget-text, #0b1220) !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	box-sizing: border-box !important;
}

/* ── Step-by-step intake form ── */

.lsc-widget-container .lsc-ls-step {
	display: block !important;
	margin: 0 0 10px !important;
	padding: 0 !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	line-height: 1.45 !important;
	color: var(--lsc-widget-text, #0f172a) !important;
}

.lsc-widget-container .lsc-ls-input,
.lsc-widget-container input.lsc-ls-input,
.lsc-widget-container textarea.lsc-ls-input,
.lsc-widget-container select.lsc-ls-input {
	box-sizing: border-box !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 12px 14px !important;
	border: 1px solid var(--lsc-widget-line-strong, rgba(11, 18, 32, 0.22)) !important;
	border-radius: var(--lsc-widget-radius-sm, 0) !important;
	background: var(--lsc-widget-surface-muted, #f4f5f7) !important;
	color: var(--lsc-widget-text, #0f172a) !important;
	font: inherit !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.lsc-widget-container .lsc-ls-input:focus,
.lsc-widget-container input.lsc-ls-input:focus,
.lsc-widget-container textarea.lsc-ls-input:focus,
.lsc-widget-container select.lsc-ls-input:focus {
	outline: none !important;
	border-color: var(--lsc-widget-primary, #0f62fe) !important;
	background: var(--lsc-widget-surface, #fff) !important;
	box-shadow: 0 0 0 3px var(--lsc-widget-primary-soft, rgba(15, 98, 254, 0.14)) !important;
}

.lsc-widget-container textarea.lsc-ls-input {
	resize: vertical !important;
	min-height: 72px !important;
}

.lsc-widget-container .lsc-ls-error {
	display: block !important;
	margin: 6px 0 0 !important;
	padding: 0 !important;
	color: #dc2626 !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
}

.lsc-widget-container .lsc-ls-error:empty {
	display: none !important;
}

.lsc-widget-container .lsc-ls-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 8px !important;
	margin: 12px 0 0 !important;
	padding: 0 !important;
}

.lsc-widget-container button.lsc-ls-btn,
.lsc-widget-container .lsc-ls-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 11px 18px !important;
	border: 1px solid transparent !important;
	border-radius: var(--lsc-widget-radius-sm, 0) !important;
	font: inherit !important;
	font-size: 13px !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	cursor: pointer !important;
	box-shadow: none !important;
	text-align: center !important;
	transition: opacity 0.15s ease, background 0.15s ease, filter 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.lsc-widget-container button.lsc-ls-btn:disabled,
.lsc-widget-container .lsc-ls-btn:disabled {
	opacity: 0.55 !important;
	cursor: default !important;
}

.lsc-widget-container button.lsc-ls-btn-primary,
.lsc-widget-container .lsc-ls-btn-primary {
	background: var(--lsc-widget-primary, #0f62fe) !important;
	border-color: transparent !important;
	color: #fff !important;
}

.lsc-widget-container button.lsc-ls-btn-primary:hover:not(:disabled),
.lsc-widget-container .lsc-ls-btn-primary:hover:not(:disabled) {
	background: var(--lsc-widget-primary-dark, #2200cc) !important;
	color: #fff !important;
	filter: brightness(1.05);
}

.lsc-widget-container button.lsc-ls-btn-ghost,
.lsc-widget-container .lsc-ls-btn-ghost {
	background: transparent !important;
	border-color: var(--lsc-widget-divider, rgba(15, 23, 42, 0.18)) !important;
	color: var(--lsc-widget-text-muted, #475569) !important;
}

.lsc-widget-container button.lsc-ls-btn-ghost:hover:not(:disabled),
.lsc-widget-container .lsc-ls-btn-ghost:hover:not(:disabled) {
	background: var(--lsc-widget-surface-sunken, #f1f3f6) !important;
	color: var(--lsc-widget-text, #0f172a) !important;
}

/* ── Waiting banner ── */

.lsc-ls-waiting {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px;
}

.lsc-ls-waiting-body {
	flex: 1 1 auto;
	min-width: 0;
}

.lsc-ls-waiting-title {
	font-weight: 600;
}

.lsc-ls-waiting-hint,
.lsc-ls-waiting-timer {
	margin-top: 4px;
	color: var(--lsc-widget-text-muted, #475569);
	font-size: 12px;
}

.lsc-ls-waiting-timer {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.lsc-ls-spinner {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	border: 2px solid var(--lsc-widget-divider, rgba(15, 23, 42, 0.12));
	border-top-color: var(--lsc-widget-primary, #0f62fe);
	border-radius: 50%;
	animation: lsc-ls-spin 0.9s linear infinite;
}

@keyframes lsc-ls-spin {
	to { transform: rotate(360deg); }
}

.lsc-widget-container .lsc-ls-waiting-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 8px !important;
	width: 100% !important;
	margin: 4px 0 0 !important;
}

.lsc-ls-cancel,
.lsc-ls-leave-now {
	flex: 0 0 auto;
}

/* ── Agent bubble ── */

.lsc-message-agent .lsc-message-avatar {
	background: #16a34a;
	color: #fff;
}

.lsc-message-agent .lsc-message-avatar svg {
	fill: currentColor;
}

.lsc-widget-container .lsc-message-agent .lsc-message-bubble {
	border: 1px solid rgba(21, 127, 61, 0.3) !important;
	background: rgba(21, 127, 61, 0.07) !important;
}

.lsc-widget-container .lsc-message-agent .lsc-message-author {
	color: #15803d !important;
}

/* ── System note ── */

.lsc-widget-container .lsc-message-system {
	justify-content: center !important;
	align-self: center !important;
	max-width: 96% !important;
}

.lsc-widget-container .lsc-message-system .lsc-message-column {
	align-items: center !important;
}

.lsc-widget-container .lsc-message-system .lsc-message-bubble {
	max-width: 100% !important;
	border: 1px dashed var(--lsc-widget-divider, rgba(11, 18, 32, 0.16)) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--lsc-widget-text-muted, #45506a) !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	padding: 9px 12px !important;
	text-align: center !important;
}

/* ── RTL ── */

[dir="rtl"] .lsc-ls-spinner {
	animation-direction: reverse;
}

@media (prefers-reduced-motion: reduce) {
	.lsc-ls-spinner,
	.lsc-chat-header-status.lsc-status-waiting::before {
		animation: none;
	}
}
