.lucide {
  width: 1em;
  height: 1em;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  vertical-align: -0.125em;
  display: inline-block;
}

/* Counter legacy 'svg path { fill: #242424 !important }' in style.css
   Lucide icons are stroke-based and require fill: none */
.lucide path,
.lucide line,
.lucide circle,
.lucide polyline,
.lucide polygon,
.lucide rect {
  fill: none !important;
}

.ui-icon--filled {
  fill: currentColor;
}

.ui-icon--spin {
  animation: sbos-lucide-spin 1.5s linear infinite;
}

.ui-icon--pulse {
  animation: sbos-lucide-spin 1s steps(8) infinite;
}

.ui-icon--xs {
  font-size: 0.75em;
}

.ui-icon--sm {
  font-size: 0.875em;
}

.ui-icon--lg {
  font-size: 1.33333em;
  line-height: 0.75em;
  vertical-align: -0.0667em;
}

.ui-icon--1x {
  font-size: 1em;
}

.ui-icon--2x {
  font-size: 2em;
}

.ui-icon--3x {
  font-size: 3em;
}

.ui-icon--4x {
  font-size: 4em;
}

.ui-icon--5x {
  font-size: 5em;
}

.ui-icon--6x {
  font-size: 6em;
}

.ui-icon--7x {
  font-size: 7em;
}

.ui-icon--8x {
  font-size: 8em;
}

.ui-icon--9x {
  font-size: 9em;
}

.ui-icon--10x {
  font-size: 10em;
}

.ui-icon--fw {
  width: 1.25em;
  text-align: center;
}

.ui-icon--rotate-90 {
  transform: rotate(90deg);
}

.ui-icon--rotate-180 {
  transform: rotate(180deg);
}

.ui-icon--rotate-270 {
  transform: rotate(270deg);
}

.ui-icon--flip-horizontal {
  transform: scaleX(-1);
}

.ui-icon--flip-vertical {
  transform: scaleY(-1);
}

.ui-icon--flip-both {
  transform: scale(-1);
}

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