/**
 * Status icons — animações premium (spinner / hourglass / check)
 * Regra: NUNCA misturar filter + transform no mesmo nó (trava rotate em vários browsers).
 */

@keyframes status-spin {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}

@keyframes status-hourglass {
	0%, 100% { transform: rotate(0deg) scale(1); opacity: 1; }
	25%      { transform: rotate(-16deg) scale(1.04); opacity: 0.88; }
	50%      { transform: rotate(0deg) scale(1); opacity: 1; }
	75%      { transform: rotate(16deg) scale(1.04); opacity: 0.88; }
}

@keyframes status-check-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50%      { transform: scale(1.1); opacity: 0.92; }
}

/* Soft ambient glow vive no CONTAINER (box-shadow), não no <i> */
@keyframes status-ambient-blue {
	0%, 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.0); }
	50%      { box-shadow: 0 0 12px 2px rgba(59, 130, 246, 0.28); }
}
@keyframes status-ambient-amber {
	0%, 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.0); }
	50%      { box-shadow: 0 0 12px 2px rgba(245, 158, 11, 0.28); }
}
@keyframes status-ambient-green {
	0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.0); }
	50%      { box-shadow: 0 0 12px 2px rgba(16, 185, 129, 0.28); }
}

/* ── Utilitários ─────────────────────────────────────────────────────────── */
.icon-spin-glow,
.icon-status-spin {
	display: inline-block !important;
	animation: status-spin 0.85s linear infinite !important;
	transform-origin: center;
}

.icon-hourglass,
.icon-status-hourglass {
	display: inline-block !important;
	animation: status-hourglass 1.8s ease-in-out infinite;
	transform-origin: center;
}

.icon-check-pulse,
.icon-status-check {
	display: inline-block !important;
	animation: status-check-pulse 2.4s ease-in-out infinite;
	transform-origin: center;
}

/* Ambient glow nos KPI wrappers */
.status-card .kpi-icon:has(.fa-circle-notch),
.status-card .kpi-icon:has(.fa-spinner),
.kpi-icon:has(.icon-spin-glow) {
	animation: status-ambient-blue 2s ease-in-out infinite;
}
.status-card .kpi-icon:has(.fa-hourglass-half),
.kpi-icon:has(.icon-hourglass) {
	animation: status-ambient-amber 2s ease-in-out infinite;
}
.status-card .kpi-icon:has(.fa-check-circle),
.kpi-icon:has(.icon-check-pulse) {
	animation: status-ambient-green 2.4s ease-in-out infinite;
}

/* Auto: KPI / status cards */
.status-card .fa-spinner,
.status-card .fa-circle-notch,
.kpi-icon .fa-spinner,
.kpi-icon .fa-circle-notch {
	display: inline-block !important;
	animation: status-spin 0.85s linear infinite !important;
	transform-origin: center;
}

.status-card .fa-hourglass-half,
.kpi-icon .fa-hourglass-half {
	display: inline-block !important;
	animation: status-hourglass 1.8s ease-in-out infinite;
	transform-origin: center;
}

.status-card .fa-check-circle,
.kpi-icon .fa-check-circle {
	display: inline-block !important;
	animation: status-check-pulse 2.4s ease-in-out infinite;
	transform-origin: center;
}

/* Auto: submenu admin */
.adm-nav-subitem .fa-spinner,
.adm-nav-subitem .fa-circle-notch {
	display: inline-block !important;
	animation: status-spin 0.85s linear infinite !important;
	transform-origin: center;
}
.adm-nav-subitem .fa-hourglass-half {
	display: inline-block !important;
	animation: status-hourglass 1.8s ease-in-out infinite;
	transform-origin: center;
}
.adm-nav-subitem .fa-check-circle {
	display: inline-block !important;
	animation: status-check-pulse 2.4s ease-in-out infinite;
	transform-origin: center;
}

/* Auto: badges */
.gs-status .fa-spinner,
.gs-status .fa-circle-notch,
.gs-status .icon-spin-glow,
.ord-status-badge .fa-spinner,
.ord-status-badge .fa-circle-notch,
.ord-status-badge .fa-sync-alt {
	display: inline-block !important;
	animation: status-spin 0.85s linear infinite !important;
	transform-origin: center;
}

.gs-status .fa-hourglass-half,
.gs-status .icon-hourglass,
.ord-status-badge .fa-hourglass-half {
	display: inline-block !important;
	animation: status-hourglass 1.8s ease-in-out infinite;
	transform-origin: center;
}

.gs-status[data-status="completed"] .fa-circle-check,
.gs-status[data-status="completed"] .fa-check-circle,
.gs-status .icon-check-pulse,
.ord-status-badge .fa-check-circle {
	display: inline-block !important;
	animation: status-check-pulse 2.4s ease-in-out infinite;
	transform-origin: center;
}

/* Auto: métricas + dashboard user */
.uds-orders-stats .fa-spinner,
.uds-orders-stats .fa-circle-notch,
.uds-dash-kpi .fa-spinner,
.uds-dash-kpi .fa-circle-notch {
	display: inline-block !important;
	animation: status-spin 0.85s linear infinite !important;
	transform-origin: center;
}

.uds-orders-stats .fa-check-circle,
.uds-dash-kpi .fa-circle-check,
.uds-dash-kpi .fa-check-circle {
	display: inline-block !important;
	animation: status-check-pulse 2.4s ease-in-out infinite;
	transform-origin: center;
}

.uds-orders-stats .fa-hourglass-half,
.uds-orders-stats .fa-clock,
.uds-dash-kpi .fa-hourglass-half,
.uds-dash-kpi .fa-clock {
	display: inline-block !important;
	animation: status-hourglass 1.8s ease-in-out infinite;
	transform-origin: center;
}

/* Processing pill — leve pulse de borda (novidade) */
.gs-status[data-status="processing"] {
	animation: status-ambient-blue 2.2s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
	.icon-hourglass,
	.icon-status-hourglass,
	.icon-check-pulse,
	.icon-status-check,
	.status-card .fa-hourglass-half,
	.status-card .fa-check-circle,
	.kpi-icon .fa-hourglass-half,
	.kpi-icon .fa-check-circle,
	.adm-nav-subitem .fa-hourglass-half,
	.adm-nav-subitem .fa-check-circle,
	.gs-status .fa-hourglass-half,
	.gs-status .icon-hourglass,
	.gs-status[data-status="completed"] .fa-circle-check,
	.gs-status[data-status="completed"] .fa-check-circle,
	.gs-status .icon-check-pulse,
	.ord-status-badge .fa-hourglass-half,
	.ord-status-badge .fa-check-circle,
	.uds-orders-stats .fa-check-circle,
	.uds-orders-stats .fa-hourglass-half,
	.uds-orders-stats .fa-clock,
	.uds-dash-kpi .fa-hourglass-half,
	.uds-dash-kpi .fa-clock,
	.uds-dash-kpi .fa-circle-check,
	.uds-dash-kpi .fa-check-circle,
	.status-card .kpi-icon:has(.fa-circle-notch),
	.status-card .kpi-icon:has(.fa-spinner),
	.status-card .kpi-icon:has(.fa-hourglass-half),
	.status-card .kpi-icon:has(.fa-check-circle),
	.kpi-icon:has(.icon-spin-glow),
	.kpi-icon:has(.icon-hourglass),
	.kpi-icon:has(.icon-check-pulse),
	.gs-status[data-status="processing"] {
		animation: none !important;
	}

	.icon-spin-glow,
	.icon-status-spin,
	.gs-status[data-status="processing"] > i,
	.gs-status .fa-spinner,
	.gs-status .fa-circle-notch,
	.status-card .fa-spinner,
	.status-card .fa-circle-notch,
	.kpi-icon .fa-spinner,
	.kpi-icon .fa-circle-notch,
	.adm-nav-subitem .fa-spinner,
	.adm-nav-subitem .fa-circle-notch,
	.ord-status-badge .fa-spinner,
	.ord-status-badge .fa-circle-notch,
	.ord-status-badge .fa-sync-alt,
	.uds-orders-stats .fa-spinner,
	.uds-orders-stats .fa-circle-notch,
	.uds-dash-kpi .fa-spinner,
	.uds-dash-kpi .fa-circle-notch {
		animation: status-spin 1.4s linear infinite !important;
	}
}
