/**
 * AGS Icon System
 * Direct Font Awesome integration with AGS utility classes
 */

/* ===== ICON VARIABLES ===== */
:root {
  /* Icon sizes */
  --ags-icon-xs: 0.75rem;
  --ags-icon-sm: 0.875rem;
  --ags-icon-md: 1rem;
  --ags-icon-lg: 1.25rem;
  --ags-icon-xl: 1.5rem;
}

/* ===== ICON UTILITIES ===== */

/* Icon sizing utilities that work with Font Awesome */
.ags-icon-xs { font-size: var(--ags-icon-xs); }
.ags-icon-sm { font-size: var(--ags-icon-sm); }
.ags-icon-md { font-size: var(--ags-icon-md); }
.ags-icon-lg { font-size: var(--ags-icon-lg); }
.ags-icon-xl { font-size: var(--ags-icon-xl); }

/* Icon color utilities */
.ags-icon-primary { color: var(--ags-primary); }
.ags-icon-secondary { color: var(--ags-secondary); }
.ags-icon-accent { color: var(--ags-accent); }
.ags-icon-success { color: var(--ags-success); }
.ags-icon-error { color: var(--ags-error); }
.ags-icon-warning { color: var(--ags-warning); }
.ags-icon-info { color: var(--ags-info); }
.ags-icon-muted { color: var(--ags-text-muted); }

/* Icon containers for better presentation */
.ags-icon-circle {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background-color: var(--ags-surface);
  border: 2px solid var(--ags-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ags-icon-square {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--ags-radius);
  background-color: var(--ags-surface);
  border: 2px solid var(--ags-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Filled variants */
.ags-icon-circle-filled {
  background-color: var(--ags-accent);
  border-color: var(--ags-accent);
  color: white;
}

.ags-icon-square-filled {
  background-color: var(--ags-accent);
  border-color: var(--ags-accent);
  color: white;
}

/* Icon with text helper */
.ags-icon-text {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.ags-icon-text-lg {
  gap: 0.75rem;
}

/* Icon button styling */
.ags-icon-button {
  background: none;
  border: none;
  padding: 0.5rem;
  cursor: pointer;
  border-radius: var(--ags-radius);
  transition: all var(--ags-transition-fast);
  color: var(--ags-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ags-icon-button:hover {
  background-color: var(--ags-surface);
  color: var(--ags-accent);
}

.ags-icon-button:active {
  transform: scale(0.95);
}

/* Icon lists */
.ags-icon-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ags-icon-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: 0.75rem;
  gap: 0.75rem;
}

.ags-icon-list li i {
  flex-shrink: 0;
  margin-top: 0.125rem;
}