/* ==========================================================================
   PRISMA · icons.css
   --------------------------------------------------------------------------
   A família de ícones do sistema é de CONTORNO, inteira. Por isso o padrão
   do sistema é contorno, e o preenchido é que precisa se declarar — e não o
   contrário. Sem esta folha, todo path vira mancha preta: `fill` é o padrão
   do SVG, e foi exatamente o defeito visto na primeira renderização
   (19/09/2026, auditoria do catálogo).

   Um <use> herda fill/stroke/stroke-width do <svg> que o referencia, então
   declarar aqui basta: o sprite não precisa repetir atributo em cada peça.
   ========================================================================== */

svg {
  fill: none;
  stroke: currentColor;
  stroke-width: var(--icone-traco);
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Escape para arte de verdade: ilustração, logo, gráfico, marca.
   Estes desenham com preenchimento e não devem herdar a regra de ícone. */
svg[data-cheio],
svg[data-cheio] *,
.ilustracao,
.ilustracao * {
  fill: revert;
  stroke: revert;
  stroke-width: revert;
}

/* --------------------------------------------------------------------------
   Tamanhos canônicos. Quatro, e nenhum entre eles.
   O traço NÃO cresce junto: ícone grande com traço grosso lê como infantil.
   -------------------------------------------------------------------------- */
.icone     { width: var(--icone-md); height: var(--icone-md); flex: none; }
.icone--sm { width: var(--icone-sm); height: var(--icone-sm); stroke-width: 1.8; }
.icone--lg { width: var(--icone-lg); height: var(--icone-lg); }
.icone--xl { width: var(--icone-xl); height: var(--icone-xl); stroke-width: 1.5; }

/* Ícone é decoração quando há texto ao lado (aria-hidden), e é conteúdo
   quando está sozinho — aí precisa de rótulo acessível no elemento pai. */
.icone[aria-hidden="true"] { pointer-events: none; }
