/* ═══════════════════════════════════════════════════════════════════
   Lucide SVG Icon Base Styles
   All icon SVGs use currentColor — they inherit button/text color.
   ═══════════════════════════════════════════════════════════════════ */

.lucide {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
    pointer-events: none;
}

/* Standard 16px toolbar icons */
.lucide[width="16"] {
    width: 1rem;
    height: 1rem;
}

/* Larger icons (e.g. empty-state illustrations) */
.lucide[width="24"] {
    width: 1.5rem;
    height: 1.5rem;
}

/* Spinner animation on .lucide-loader-2 when parent has .is-processing */
.is-processing .lucide-loader-2 {
    animation: processSpin 0.8s linear infinite;
}

/* Ensure SVG inside .btn-icon doesn't push layout */
.btn-icon svg,
.btn-process svg,
.tool-alert__close svg,
.drop-zone__label svg {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
    pointer-events: none;
}

/* Gap between icon and label text in buttons */
.btn-icon svg + span,
.btn-icon svg ~ * {
    margin-left: 0.25rem;
}

.btn-process svg {
    margin-right: var(--space-2, 0.5rem);
}
