/*
 * Icon — inline SVG from the sprite (public/assets/icons.svg) via the
 * icon() helper. Sized in em so it tracks the surrounding text; stroke
 * inherits currentColor so a danger button gets a danger icon for free.
 */
.icon {
    display: inline-block;
    width: 1.25em;
    height: 1.25em;
    flex-shrink: 0;
    vertical-align: -0.3em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.icon--sm { width: 1em;   height: 1em;   vertical-align: -0.15em; }
.icon--lg { width: 1.5em; height: 1.5em; vertical-align: -0.4em; }
.icon--xl { width: 2.5em; height: 2.5em; vertical-align: middle; }
.icon--muted   { color: var(--color-text-muted); }
.icon--success { color: var(--color-success); }
.icon--warning { color: var(--color-warning); }
.icon--danger  { color: var(--color-danger); }
.icon--primary { color: var(--color-primary-hi); }
.icon--spin    { animation: icon-spin 0.9s linear infinite; }
@keyframes icon-spin { to { transform: rotate(360deg); } }
