/* AppIcon — o papel resolve tamanho e espessura. A tela não escolhe stroke. */

.app-icon {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  color: inherit;
}
/* Placeholders Lucide antes do createIcons: reserva o espaço do papel. */
span.app-icon[data-lucide] {
  box-sizing: content-box;
}
.app-icon-dense {
  width: var(--icon-size-dense);
  height: var(--icon-size-dense);
  stroke-width: var(--icon-stroke-dense);
}
.app-icon-compact {
  width: var(--icon-size-compact);
  height: var(--icon-size-compact);
  stroke-width: var(--icon-stroke-compact);
}
.app-icon-control {
  width: var(--icon-size-control);
  height: var(--icon-size-control);
  stroke-width: var(--icon-stroke-control);
}
.app-icon-feature {
  width: var(--icon-size-feature);
  height: var(--icon-size-feature);
  stroke-width: var(--icon-stroke-feature);
}
.app-icon-disabled,
[aria-disabled="true"] > .app-icon,
:disabled .app-icon {
  color: var(--icon-color-disabled);
  opacity: var(--icon-opacity-disabled);
}
