/**
 * AlgoBK Pro — SVG Icon System (Phase 5 Complete)
 * Professional icons using inline SVG data URIs
 * All emoji replaced with corresponding SVG icons
 */

/* Icon container foundation */
.abk-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--icon-md);
  height: var(--icon-md);
  color: currentColor;
  vertical-align: middle;
}

.abk-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.abk-icon--xs { width: var(--icon-xs); height: var(--icon-xs); }
.abk-icon--sm { width: var(--icon-sm); height: var(--icon-sm); }
.abk-icon--md { width: var(--icon-md); height: var(--icon-md); }
.abk-icon--lg { width: var(--icon-lg); height: var(--icon-lg); }
.abk-icon--xl { width: var(--icon-xl); height: var(--icon-xl); }

.abk-icon--primary { color: var(--color-primary); }
.abk-icon--success { color: var(--color-success); }
.abk-icon--warning { color: var(--color-warning); }
.abk-icon--danger { color: var(--color-danger); }
.abk-icon--muted { color: var(--color-text-3); }

/* ═══ SVG ICON DEFINITIONS ═══ */

/* Navigation Icons */
[data-icon="home"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="bot"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="9" cy="9" r="1"/><circle cx="15" cy="9" r="1"/><path d="M9 15a3 3 0 0 1 6 0"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="ledger"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><line x1="9" y1="9" x2="15" y2="9"/><line x1="9" y1="15" x2="15" y2="15"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="charts"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="3" x2="3" y2="21"/><line x1="3" y1="21" x2="21" y2="21"/><path d="M7 14l3-3 3 3 5-5"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="live-data"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><line x1="12" y1="7" x2="12" y2="17"/><line x1="7" y1="12" x2="17" y2="12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="trades"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 6 13.5 15.5 8 10 1 17"/><polyline points="17 6 23 6 23 12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="flash"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* User & Auth Icons */
[data-icon="user"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="login"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"/><polyline points="10 17 15 12 10 7"/><line x1="15" y1="12" x2="3" y2="12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="logout"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><polyline points="16 17 21 12 16 7"/><line x1="21" y1="12" x2="9" y2="12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Action Icons */
[data-icon="note"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="edit"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="delete"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" y1="11" x2="10" y2="17"/><line x1="14" y1="11" x2="14" y2="17"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="view"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="close"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="refresh"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M23 4v6h-6"/><path d="M1 20v-6h6"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36M4.13 15a9 9 0 0 0 15.64 3.65"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="stop"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><rect x="4" y="4" width="16" height="16" rx="2"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="play"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><polygon points="5 3 19 12 5 21 5 3"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="launch"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 2l-7 20-4-9-9-4 20-7z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Chart & Data Icons */
[data-icon="chart"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="3" x2="3" y2="21"/><line x1="3" y1="21" x2="21" y2="21"/><path d="M7 14l3-3 3 3 5-5"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="money"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="1"/><path d="M12 1v6m0 6v4"/><path d="M4.22 4.22l4.24 4.24m2.52 2.52l4.24 4.24"/><path d="M1 12h6m6 0h4"/><path d="M4.22 19.78l4.24-4.24m2.52-2.52l4.24-4.24"/><path d="M19.78 4.22l-4.24 4.24m-2.52 2.52l-4.24 4.24"/><path d="M23 12h-6m-6 0h-4"/><path d="M19.78 19.78l-4.24-4.24m-2.52-2.52l-4.24-4.24"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="calendar"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="target"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="9"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="award"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="8" r="7"/><polyline points="8 14 12 17 16 14"/><line x1="3" y1="21" x2="21" y2="21"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Status & Alert Icons */
[data-icon="check"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="error"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="warning"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2L2 20h20L12 2zm0 5l6 10H6l6-10z"/><circle cx="12" cy="17" r="1"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="info"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="idea"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="settings"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/><path d="M12 1v6m0 6v4M4.22 4.22l4.24 4.24m2.52 2.52l4.24 4.24M1 12h6m6 0h4M4.22 19.78l4.24-4.24m2.52-2.52l4.24-4.24M19.78 4.22l-4.24 4.24m-2.52 2.52l-4.24 4.24M23 12h-6m-6 0h-4M19.78 19.78l-4.24-4.24m-2.52-2.52l-4.24-4.24"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Data & Content Icons */
[data-icon="package"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="16.5" y1="9.4" x2="7.5" y2="4.21"/><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="download"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="globe"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="search"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="empty"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7v10c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V7l-10-5z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Rating & Status Icons */
[data-icon="star"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="star-empty"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* UI Control Icons */
[data-icon="arrow-right"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="arrow-left"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="19" y1="12" x2="5" y2="12"/><polyline points="12 19 5 12 12 5"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="arrow-up"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="arrow-down"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><polyline points="19 12 12 19 5 12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="menu"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="clock"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="expand"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="15 3 21 3 21 9"/><polyline points="9 21 3 21 3 15"/><line x1="21" y1="3" x2="3" y2="21"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="collapse"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="9 3 3 3 3 9"/><polyline points="21 21 27 21 27 15"/><line x1="3" y1="3" x2="21" y2="21"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Backtest & Strategy Icons */
[data-icon="backtest"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="3" x2="3" y2="21"/><line x1="3" y1="21" x2="21" y2="21"/><rect x="7" y="5" width="3" height="11"/><rect x="14" y="8" width="3" height="8"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="strategy"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 3h18v18H3z"/><circle cx="7" cy="7" r="1.5"/><circle cx="7" cy="12" r="1.5"/><circle cx="7" cy="17" r="1.5"/><line x1="12" y1="6" x2="19" y2="6"/><line x1="12" y1="11" x2="19" y2="11"/><line x1="12" y1="16" x2="19" y2="16"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="backtest-report"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="12" y1="13" x2="12" y2="17"/><line x1="9" y1="15" x2="15" y2="15"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Transaction Icons */
[data-icon="buy"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 12h12"/><polyline points="18 9 21 12 18 15"/><path d="M3 20h18a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="sell"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 12h12"/><polyline points="6 9 3 12 6 15"/><path d="M3 20h18a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="wallet"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 12a1 1 0 0 0-1 1v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h13a2 2 0 0 1 2 2v1a1 1 0 0 0 1 1z"/><circle cx="16" cy="19" r="1"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="exchange"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><polyline points="19 12 12 19 5 12"/><polyline points="19 6 12 13 5 6"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Broker & Account Icons */
[data-icon="broker"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"/><path d="M16 4l-4-2-4 2"/><line x1="6" y1="12" x2="18" y2="12"/><circle cx="10" cy="12" r="1"/><circle cx="14" cy="12" r="1"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="account"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="key"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 2l-9 4m0 0L5 2m0 0l9 4m0 0v16m-9-4l9 4m0 0l9-4m0 0v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-2a2 2 0 0 0-2-2H3a2 2 0 0 0-2 2v4"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Additional Trading Icons */
[data-icon="position"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="order"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z"/><line x1="9" y1="7" x2="15" y2="7"/><line x1="9" y1="11" x2="15" y2="11"/><line x1="9" y1="15" x2="13" y2="15"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="pnl"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="3" x2="3" y2="21"/><line x1="3" y1="21" x2="21" y2="21"/><polyline points="7 14 12 9 17 14"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="risk"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2L2 7v5c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V7l-10-5z"/><line x1="12" y1="10" x2="12" y2="14"/><circle cx="12" cy="18" r="0.5"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* Utility Icons */
[data-icon="loading"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2" stroke-dasharray="15.7" stroke-dashoffset="0"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

[data-icon="link"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="folder"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

[data-icon="copy"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><rect x="8" y="2" width="8" height="4" rx="1" ry="1"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}

/* ═══ PHASE 7 — Additional Icons (Full Emoji Cleanup) ═══ */
[data-icon="lock"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="unlock"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 9.9-1"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="block"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="flag"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/><line x1="4" y1="22" x2="4" y2="15"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="coin"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M12 7v10M9 9.5c0-1 1.3-1.8 3-1.8s3 .8 3 1.8-1.3 1.5-3 2-3 1-3 2 1.3 1.8 3 1.8 3-.8 3-1.8"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="fire"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2s-5 5.5-5 10a5 5 0 0 0 10 0c0-1.8-.7-2.8-.7-2.8s-.3 2-2 2-1.8-1.6-1.8-3.2c0-1.8 1.5-3.6 1.5-6z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="recovery"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17 2.1l4 4-4 4"/><path d="M3 12.9V12a9 9 0 0 1 9-9h9"/><path d="M7 21.9l-4-4 4-4"/><path d="M21 11.1V12a9 9 0 0 1-9 9H3"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="basket"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 9h16l-1.5 10.5a2 2 0 0 1-2 1.5H7.5a2 2 0 0 1-2-1.5z"/><path d="M8 9V6a4 4 0 0 1 8 0v3"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="users"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="health"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9-6-18-3 9H2"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="plug"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 2v6M15 2v6M6 10h12v4a6 6 0 0 1-12 0z"/><path d="M12 20v2"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="save"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"/><polyline points="17 21 17 13 7 13 7 21"/><polyline points="7 3 7 8 15 8"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="book"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
[data-icon="add"]::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="16" y1="12" x2="8" y2="12"/></svg>');
  width: var(--icon-size, 20px); height: var(--icon-size, 20px);
  display: inline-block; vertical-align: middle;
}
