/* ============================================================
   ICON
   ------------------------------------------------------------
   Icons are sized by their box, never by a hard-coded width on the
   SVG, so a component's size bundle controls its icon too.

   Stroke follows size automatically — there is no thin/thick
   choice to make. The pair is set together in one place per size;
   see the note on --icon-stroke-* in tokens/_size.css for why the
   numbers go down as the icon goes up.
   ============================================================ */

.ice-icon {
  inline-size: var(--_icon-size);
  block-size:  var(--_icon-size);
  stroke-width: var(--lucide-stroke);
  flex-shrink: 0;
  display: block;

  /* default = Icon M */
  --_icon-size:   var(--icon-m);
}

/* Judi's five Icon variables, under their own names. Anything else
   silently falls back to M — which is how a stale data-size="xs"
   turned a 12px link icon into a 20px one. */
.ice-icon[data-size="xs"] { --_icon-size: var(--icon-xs); }
.ice-icon[data-size="s"]  { --_icon-size: var(--icon-s); }
.ice-icon[data-size="m"]  { --_icon-size: var(--icon-m); }
.ice-icon[data-size="l"]  { --_icon-size: var(--icon-l); }
.ice-icon[data-size="xl"] { --_icon-size: var(--icon-xl); }


