.so-icon {
  --so-icon-size: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--so-icon-size);
  height: var(--so-icon-size);
  min-width: var(--so-icon-size);
  min-height: var(--so-icon-size);
  flex: 0 0 var(--so-icon-size);
  flex-shrink: 0;
  box-sizing: border-box;
  aspect-ratio: 1 / 1;
  line-height: 0;
  vertical-align: middle;
  color: currentColor;
}

.so-icon svg {
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  display: block;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
  vector-effect: non-scaling-stroke;
}

.sidebar-nav .so-icon,
.sidebar-toggle .so-icon,
.mobile-quick-nav .so-icon {
  color: rgba(246, 240, 232, 0.96);
}

.global-pm-close .so-icon,
.global-pm-thread-toggle .so-icon,
.global-pm-attachment-trigger .so-icon,
.global-pm-attachment-chip-clear .so-icon,
.chat-popup-close .so-icon,
.chat-direct-thread-toggle .so-icon,
.chat-attachment-trigger .so-icon,
.chat-attachment-chip-clear .so-icon,
.aq-modal-close .so-icon {
  color: rgba(248, 250, 252, 0.94);
}

.so-icon.so-icon-14 { --so-icon-size: 14px; }
.so-icon.so-icon-16 { --so-icon-size: 16px; }
.so-icon.so-icon-18 { --so-icon-size: 18px; }
.so-icon.so-icon-20 { --so-icon-size: 20px; }
.so-icon.so-icon-24 { --so-icon-size: 24px; }
.so-icon.so-icon-28 { --so-icon-size: 28px; }

.so-icon .so-anim {
  transform-origin: center;
  transition: transform 190ms ease, opacity 190ms ease;
}

.so-icon[data-so-active="1"] .so-anim {
  transform: scale(1.08) rotate(-3deg);
}

.so-icon[data-so-view-active="1"] .so-anim {
  animation: so-icon-view-pop 280ms ease-out;
}

@keyframes so-icon-view-pop {
  0% { transform: scale(0.92); opacity: 0.65; }
  100% { transform: scale(1); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .so-icon .so-anim {
    transition: none;
    animation: none !important;
  }
}
