/* =========================================================
   Component: back_to_top
   Bottom-left (chat-floating ocupa bottom-right).
   ========================================================= */

.back-to-top {
	position: fixed;
	left: var(--space-4);
	bottom: var(--space-4);
	z-index: var(--z-sticky);
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--color-bg-surface);
	color: var(--color-ink-primary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-pill);
	box-shadow: var(--shadow-md);
	opacity: 0;
	transform: translateY(8px);
	pointer-events: none;
	transition: opacity var(--duration-base) var(--easing-default),
	            transform var(--duration-base) var(--easing-default),
	            background var(--duration-fast) var(--easing-default),
	            color var(--duration-fast) var(--easing-default);
	cursor: pointer;
}

.back-to-top.is-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.back-to-top:hover {
	background: var(--color-brand-primary);
	color: var(--color-bg-base);
	border-color: var(--color-brand-primary);
}

.back-to-top:focus-visible {
	outline: none;
	box-shadow: var(--shadow-focus), var(--shadow-md);
}

.back-to-top[hidden] { display: none; }

@media (max-width: 540px) {
	.back-to-top {
		left: var(--space-3);
		bottom: var(--space-3);
	}
}

@media (prefers-reduced-motion: reduce) {
	.back-to-top { transition: opacity 0ms; transform: none; }
}
