/* Sabaki icon primitives — consumed by src/*/public/icons.js + icons.svg.
 *
 * Sizes are whole-pixel for crisp rendering. currentColor inheritance is the
 * contract — every SVG symbol in icons.svg uses stroke:currentColor.
 *
 * Touch-target sizing (44x44) is NOT enforced here — it is the parent
 * button/link's responsibility, per WCAG 2.5.8. A 16px icon inside a
 * 44x44 button meets the guideline; a 16px bare <svg.icon> does not and
 * must not be used as the sole hit area. See practical-ui references/06-buttons.md.
 *
 * This file is byte-identical in src/dashboard/public/, src/landing/public/,
 * src/onboarding/public/, and src/platform/public/. Edit once, copy to all.
 */

.icon {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
  color: currentColor;
  fill: none;
  /* stroke inherits from currentColor via the sprite <symbol> shapes */
}

.icon-sm { width: 16px; height: 16px; }
.icon-md { width: 20px; height: 20px; }
.icon-lg { width: 24px; height: 24px; }
.icon-xl { width: 32px; height: 32px; }

/* No animation here. Reduced-motion is respected by default because no
 * transition/animation is declared. Future consumers introducing icon
 * motion must add a prefers-reduced-motion guard in this file. */
