/**
 * AI360 Voice Agent — visual orb.
 * Decorative only: the adjacent live status remains the accessible state source.
 */

.ai360va-orb {
	--ai360va-orb-cyan: #20c5f4;
	--ai360va-orb-violet: #635bff;
	--ai360va-orb-magenta: #f218a8;
	--ai360va-orb-glow: rgba(99, 91, 255, 0.3);
	position: relative;
	isolation: isolate;
	width: clamp(168px, 42vw, 248px);
	aspect-ratio: 1;
	margin: 2px auto 18px;
	border-radius: 50%;
	overflow: visible;
	contain: layout paint;
	background:
		radial-gradient(circle at 38% 32%, rgba(255, 255, 255, 0.12), transparent 28%),
		radial-gradient(circle, rgba(21, 25, 51, 0.96) 0 44%, rgba(14, 17, 38, 0.72) 62%, transparent 73%);
	filter: drop-shadow(0 18px 34px rgba(25, 28, 68, 0.18));
}

.ai360va-orb::before,
.ai360va-orb::after {
	content: '';
	position: absolute;
	inset: 10%;
	z-index: -1;
	border-radius: 50%;
	pointer-events: none;
}

.ai360va-orb::before {
	background: radial-gradient(circle, var(--ai360va-orb-glow) 0, transparent 66%);
	filter: blur(18px);
	opacity: 0.85;
}

.ai360va-orb::after {
	inset: 16%;
	border: 1px solid rgba(255, 255, 255, 0.14);
	box-shadow: inset 0 0 24px rgba(255, 255, 255, 0.05);
}

.ai360va-orb[data-orb="listening"] {
	--ai360va-orb-glow: rgba(32, 197, 244, 0.42);
}

.ai360va-orb[data-orb="processing"] {
	--ai360va-orb-glow: rgba(99, 91, 255, 0.45);
}

.ai360va-orb[data-orb="speaking"] {
	--ai360va-orb-glow: rgba(242, 24, 168, 0.42);
}

/* Error: mantiene la identidad de marca (violeta), sin rojo. */
.ai360va-orb[data-orb="error"] {
	--ai360va-orb-glow: rgba(99, 91, 255, 0.45);
}

.ai360va-orb__canvas {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	pointer-events: none;
}

@media (max-width: 600px) {
	.ai360va-orb {
		width: clamp(158px, 58vw, 218px);
		margin-bottom: 14px;
	}
}

@media (max-width: 380px) {
	.ai360va-orb {
		width: min(58vw, 196px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ai360va-orb,
	.ai360va-orb::before,
	.ai360va-orb::after,
	.ai360va-orb__canvas {
		animation: none !important;
		transition: none !important;
	}
}
