/* CFZ icon system — Lucide (stroke icons, Vercel/Stripe-style) */

:root {
    --cfz-icon-size: 1em;
    --cfz-icon-stroke: 1.75;
    --cfz-icon-color: currentColor;
}

.cfz-icon,
svg.cfz-lucide,
svg.lucide.cfz-lucide {
    display: inline-block;
    vertical-align: -0.125em;
    width: var(--cfz-icon-size);
    height: var(--cfz-icon-size);
    color: var(--cfz-icon-color);
    stroke: currentColor;
    flex-shrink: 0;
}

.cfz-icon--spin,
.cfz-icon--spin svg {
    animation: cfz-icon-spin 1s linear infinite;
}

@keyframes cfz-icon-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* KPI / dashboard tiles */
.stat-tile-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    color: #0d6efd;
    flex-shrink: 0;
}

.stat-tile-icon .cfz-icon,
.stat-tile-icon svg.lucide {
    width: 2.5rem;
    height: 2.5rem;
    stroke-width: 1.5;
}

/* Sidebar nav icons */
.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li > a > .cfz-icon:first-of-type,
.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li > a > svg.lucide:first-of-type {
    width: 1.28em;
    height: 1.28em;
    text-align: center;
    flex-shrink: 0;
    color: inherit !important;
    font-size: 1.2rem;
    transition: color var(--cfz-sidebar-duration, 0.2s) var(--cfz-sidebar-ease, ease),
        transform 0.2s var(--cfz-sidebar-ease, ease);
}

.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li > a:hover > .cfz-icon:first-of-type,
.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li.mm-active > a > .cfz-icon:first-of-type,
.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li > a.has-arrow[aria-expanded="true"] > .cfz-icon:first-of-type,
.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li:has(ul.mm-show) > a > .cfz-icon:first-of-type,
.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li:has(ul.mm-collapsing) > a > .cfz-icon:first-of-type,
.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li > a:hover > svg.lucide:first-of-type,
.sidebar-wrapper.fasyl-sidebar-skin #menu.metismenu > li.mm-active > a > svg.lucide:first-of-type {
    transform: scale(1.03);
    color: var(--cfz-sidebar-accent-dark) !important;
}

/* Table / button action icons */
.cfz-dashboard-table-actions .cfz-icon,
.cfz-dashboard-table-actions svg.lucide,
.cfz-investor-table-actions .cfz-icon,
.cfz-investor-table-actions svg.lucide,
.order-actions .cfz-icon,
.order-actions svg.lucide {
    width: 1.05rem;
    height: 1.05rem;
}

/* Alert / notice icons */
.alert .cfz-icon,
.alert svg.lucide,
.cfz-flash__icon .cfz-icon,
.cfz-flash__icon svg.lucide {
    width: 0.875rem;
    height: 0.875rem;
}

/* Breadcrumb home */
.breadcrumb .cfz-icon,
.breadcrumb svg.lucide {
    width: 1rem;
    height: 1rem;
}

/* Prevent empty icon flash before Lucide migrates legacy <i> tags */
html:not(.cfz-icons-ready) i.bx,
html:not(.cfz-icons-ready) i.bxs,
html:not(.cfz-icons-ready) i.bxl,
html:not(.cfz-icons-ready) i.fas,
html:not(.cfz-icons-ready) i.far,
html:not(.cfz-icons-ready) i.fab,
html:not(.cfz-icons-ready) i.fa {
    visibility: hidden;
}

/* Size utilities */
.cfz-icon--xs { --cfz-icon-size: 0.75rem; }
.cfz-icon--sm { --cfz-icon-size: 1rem; }
.cfz-icon--md { --cfz-icon-size: 1.25rem; }
.cfz-icon--lg { --cfz-icon-size: 1.5rem; }
.cfz-icon--xl { --cfz-icon-size: 2rem; }

