/* Foundation: shared primitives used across components */
.fcs-icon { display: inline-block; vertical-align: middle; flex: 0 0 auto; }

/* Visually-hidden (accessible labels) */
.fcs-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Keyframes shared by spinner / skeleton / toast */
@keyframes fcs-spin { to { transform: rotate(360deg); } }
@keyframes fcs-shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes fcs-toast-in {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes fcs-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.45; } }
