.zjl-v2 .zjl-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    color: currentColor;
    vertical-align: -0.125em;
}

.zjl-v2 .zjl-icon * {
    vector-effect: non-scaling-stroke;
}

.zjl-v2 .zjl-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--zjl-border-warm);
    border-radius: var(--zjl-radius-sm);
    background: var(--zjl-surface-card);
    color: var(--zjl-ink-primary);
}

.zjl-v2 .zjl-icon-badge .zjl-icon {
    width: 20px;
    height: 20px;
}

.zjl-v2 .zjl-icon-badge--accent {
    border-color: rgba(201, 22, 29, 0.28);
    background: var(--zjl-accent-soft);
    color: var(--zjl-accent);
}

.zjl-v2 .zjl-icon-row {
    display: flex;
    align-items: center;
    gap: var(--zjl-space-3);
}

.zjl-v2 .zjl-icon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: var(--zjl-space-3);
}

.zjl-v2 .zjl-icon-tile {
    display: flex;
    align-items: center;
    gap: var(--zjl-space-3);
    min-width: 0;
    padding: var(--zjl-space-3);
    border: 1px solid var(--zjl-border-cool);
    border-radius: var(--zjl-radius-sm);
    background: var(--zjl-surface-card);
    color: var(--zjl-ink-primary);
    font-size: var(--zjl-fs-small);
    font-weight: 700;
    line-height: 1.35;
}

.zjl-v2 .zjl-icon-tile .zjl-icon {
    width: 20px;
    height: 20px;
}
