/* Color Architecture: Force inheritance of surrounding text typography styles */
.app-icon {
  color: currentColor; /* Matches high-contrast and automated dark-mode standards */
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

/* 9.10 Automated spin modifier pattern */
.animate-spin {
  animation: icon-spin 1s linear infinite;
}

@keyframes icon-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* 7.3 Interactivity: Minimum touch surface layout rule */
button.btn-icon-action {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  padding: 0;
}

/* 7.4 Visible keyboard navigation indicator */
button.btn-icon-action:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* 11. Core State Variations: Opacity rules for disabled controls */
button[disabled] .app-icon,
.disabled-container .app-icon {
  opacity: 0.60;
}