/* Vector SVG Icons System */
.svg-icon {
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  vertical-align: -0.2em;
  flex-shrink: 0;
  transition: stroke 0.15s ease, transform 0.15s ease;
}

.svg-icon.xs {
  width: 14px;
  height: 14px;
  vertical-align: -0.15em;
}

.svg-icon.sm {
  width: 16px;
  height: 16px;
  vertical-align: -0.18em;
}

.svg-icon.md {
  width: 20px;
  height: 20px;
  vertical-align: -0.22em;
}

.svg-icon.lg {
  width: 24px;
  height: 24px;
  vertical-align: -0.25em;
}

.svg-icon.xl {
  width: 32px;
  height: 32px;
}

/* Spinner animation */
.svg-icon.spinner {
  animation: svg-spin 0.75s linear infinite;
}

@keyframes svg-spin {
  100% {
    transform: rotate(360deg);
  }
}

/* Icon containers & badges */
.icon-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  flex-shrink: 0;
}

.icon-badge.blue {
  background: #1877f2;
  color: #ffffff;
}

.icon-badge.light-blue {
  background: #e7f5ff;
  color: #1877f2;
}

.icon-badge.amber {
  background: #fff4e6;
  color: #f59e0b;
}

.icon-badge.green {
  background: #ebfbee;
  color: #10b981;
}

.icon-badge.teal {
  background: #e6fcf5;
  color: #0ca678;
}

body.dark .icon-badge.light-blue {
  background: rgba(24, 119, 242, 0.18);
  color: #60a5fa;
}

body.dark .icon-badge.amber {
  background: rgba(245, 158, 11, 0.18);
  color: #fbbf24;
}

body.dark .icon-badge.green {
  background: rgba(16, 185, 129, 0.18);
  color: #34d399;
}

body.dark .icon-badge.teal {
  background: rgba(12, 166, 120, 0.18);
  color: #2dd4bf;
}
