.lucide-icon,
.lucide {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  font-size: 24px;
  line-height: 1;
  vertical-align: -0.125em;
  color: inherit;
  stroke: currentColor;
}

.lucide-icon-stack {
  display: inline-flex;
  align-items: center;
  position: relative;
  line-height: 1;
}

.lucide-icon-stack > .lucide {
  font-size: inherit;
}

/*
 * Compatibilidade com os botões de ícone do Material Dashboard.
 * O tema original não reconhece automaticamente o SVG do Lucide.
 */
.btn.btn-fab,
.btn.btn-just-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

.btn.btn-lucide-content:not(.btn-fab):not(.btn-just-icon) {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem;
}

.btn.btn-lucide-content:not(.btn-fab):not(.btn-just-icon) > .lucide-icon,
.btn.btn-lucide-content:not(.btn-fab):not(.btn-just-icon) > .lucide {
  position: static !important;
  flex: 0 0 auto;
  margin: 0 !important;
  transform: none;
  vertical-align: middle !important;
}

.btn.btn-fab .lucide-icon,
.btn.btn-fab .lucide,
.btn.btn-just-icon .lucide-icon,
.btn.btn-just-icon .lucide {
  position: static !important;
  display: block !important;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin: 0 !important;
  transform: none;
  vertical-align: middle;
}

.btn.btn-fab.btn-sm .lucide-icon,
.btn.btn-fab.btn-sm .lucide,
.btn.btn-just-icon.btn-sm .lucide-icon,
.btn.btn-just-icon.btn-sm .lucide,
.btn-group-sm > .btn.btn-fab .lucide-icon,
.btn-group-sm > .btn.btn-fab .lucide,
.btn-group-sm > .btn.btn-just-icon .lucide-icon,
.btn-group-sm > .btn.btn-just-icon .lucide {
  width: 17px;
  height: 17px;
  flex-basis: 17px;
  font-size: 17px;
}

.btn.btn-fab.btn-lg .lucide-icon,
.btn.btn-fab.btn-lg .lucide,
.btn.btn-just-icon.btn-lg .lucide-icon,
.btn.btn-just-icon.btn-lg .lucide,
.btn-group-lg > .btn.btn-fab .lucide-icon,
.btn-group-lg > .btn.btn-fab .lucide,
.btn-group-lg > .btn.btn-just-icon .lucide-icon,
.btn-group-lg > .btn.btn-just-icon .lucide {
  width: 32px;
  height: 32px;
  flex-basis: 32px;
  font-size: 32px;
}

/*
 * Botões de ação antigos que não usam btn-just-icon, mas possuem
 * somente um ícone como conteúdo.
 */
.btn:not(.btn-just-icon):not(.btn-fab) > .lucide-icon:only-child,
.btn:not(.btn-just-icon):not(.btn-fab) > .lucide:only-child {
  position: static !important;
  display: block !important;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin: 0 !important;
  transform: none;
  vertical-align: middle;
}

@keyframes lucide-icon-spin {
  to {
    transform: rotate(360deg);
  }
}

.lucide-spin {
  animation: lucide-icon-spin 1s linear infinite;
}

.lucide-lg {
  width: 1.25em;
  height: 1.25em;
  flex-basis: 1.25em;
}

.lucide-3x {
  width: 3em;
  height: 3em;
  flex-basis: 3em;
}

.lucide-rotate-90,
.btn .lucide-rotate-90 {
  transform: rotate(90deg) !important;
}

.lucide-rotate-270,
.btn .lucide-rotate-270 {
  transform: rotate(270deg) !important;
}

/*
 * Indicadores de sincronização facial/cartão.
 * Esses ícones eram fontes e agora são SVGs substituídos pelo Lucide.
 */
.facial-check-icons > .lucide-icon,
.facial-check-icons > .facial-status {
  width: 32px !important;
  height: 32px !important;
  flex: 0 0 32px !important;
  padding: 6px;
  box-sizing: border-box;
  border-radius: 8px;
  color: #6b7280;
  stroke: currentColor !important;
}

.facial-check-icons > .facial-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.facial-check-icons > .lucide-icon.text-success,
.facial-check-icons > .facial-status.text-success {
  color: #198754 !important;
}

.facial-check-icons > .lucide-icon.text-danger,
.facial-check-icons > .facial-status.text-danger {
  color: #dc3545 !important;
}

.facial-check-icons > .lucide-icon.text-muted,
.facial-check-icons > .facial-status.text-muted {
  color: #6b7280 !important;
}

.facial-check-icons > .facial-status > .lucide-icon {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
  padding: 0;
  background: transparent !important;
  color: inherit !important;
  stroke: currentColor !important;
}

.facial-check-icons > .btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

.facial-check-icons > .btn > .lucide-icon {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
  padding: 0;
  background: transparent !important;
  stroke: currentColor !important;
}

.lucide-icon[data-lucide="info"] {
    width: 13px !important;
    height: 13px !important;
}
