/* UniCell 图标系统 —— 单色线性图标，随 currentColor 变色
 *
 * 实现方式与 Google Workspace 一致：SVG 走 mask-image，前景由 background-color
 * 取 currentColor，因此同一套图标在浅色/深色主题、悬停高亮、禁用态下都自动跟随文字色，
 * 不需要为每个主题准备一套图片。
 *
 * 用法：在元素上写 data-ic="名字"，图标画在 ::before 上。
 *   <span class="rb-ic" data-ic="undo"></span>
 *   <button class="rb-ico" data-ic="cut" aria-label="剪切"></button>
 * 尺寸用 --ic-size 覆盖（默认 20px）。
 */

[data-ic]::before {
  content: "";
  display: inline-block;
  flex: none;
  width: var(--ic-size, 20px);
  height: var(--ic-size, 20px);
  background-color: currentColor;
  -webkit-mask: var(--ic-url) center / contain no-repeat;
  mask: var(--ic-url) center / contain no-repeat;
}
/* 图标按钮统一居中，避免 ::before 造成基线漂移 */
button[data-ic], span[data-ic] { display: inline-flex; align-items: center; justify-content: center; }

/* ================= 文件 ================= */
[data-ic="file-new"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M13.5 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8.5z'/><path d='M13.5 3v5.5H19'/><path d='M12 11.5v6M9 14.5h6'/></svg>"); }
[data-ic="folder-open"]{ --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4 18.5V6.5a1.5 1.5 0 0 1 1.5-1.5h3.6l2 2H17a1.5 1.5 0 0 1 1.5 1.5V10'/><path d='M3.6 19h13.9a1.5 1.5 0 0 0 1.44-1.08L20.6 12H7.1a1.5 1.5 0 0 0-1.44 1.08z'/></svg>"); }
[data-ic="save"]       { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M5 5.8A1.8 1.8 0 0 1 6.8 4h9L20 8.2v10A1.8 1.8 0 0 1 18.2 20H6.8A1.8 1.8 0 0 1 5 18.2z'/><path d='M8 4v5h7'/><path d='M8 20v-6h8v6'/></svg>"); }
[data-ic="save-as"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M9 9h9.2a1.5 1.5 0 0 1 1.5 1.5v9a1.5 1.5 0 0 1-1.5 1.5H9a1.5 1.5 0 0 1-1.5-1.5v-9A1.5 1.5 0 0 1 9 9z'/><path d='M16 6.2V4.9A1.5 1.5 0 0 0 14.5 3.4H5.8a1.5 1.5 0 0 0-1.5 1.5v8.7a1.5 1.5 0 0 0 1.5 1.5h1.4'/></svg>"); }
[data-ic="history"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M3.6 12a8.4 8.4 0 1 0 2.5-6'/><path d='M3.4 4.2v4.4h4.4'/><path d='M12 7.6V12l3.4 2'/></svg>"); }
[data-ic="restore"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M20.4 12a8.4 8.4 0 1 1-2.5-6'/><path d='M20.6 4.2v4.4h-4.4'/><path d='M12 8v4.4l3 1.8'/></svg>"); }
[data-ic="sheet"]      { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='4' width='16' height='16' rx='1.6'/><path d='M4 9.3h16M4 14.6h16M9.3 9.3V20M14.6 9.3V20'/></svg>"); }
[data-ic="globe"]      { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='8.5'/><path d='M3.7 9.3h16.6M3.7 14.7h16.6'/><path d='M12 3.5c2.3 2.3 3.5 5.3 3.5 8.5S14.3 18.2 12 20.5c-2.3-2.3-3.5-5.3-3.5-8.5S9.7 5.8 12 3.5z'/></svg>"); }
[data-ic="package"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='m12 3 8 4.4v9.2L12 21l-8-4.4V7.4z'/><path d='m4.2 7.5 7.8 4.3 7.8-4.3M12 11.8V21'/></svg>"); }
[data-ic="print"]      { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M7 9V4h10v5'/><path d='M7 17.5H5.4A1.9 1.9 0 0 1 3.5 15.6v-4.2A1.9 1.9 0 0 1 5.4 9.5h13.2a1.9 1.9 0 0 1 1.9 1.9v4.2a1.9 1.9 0 0 1-1.9 1.9H17'/><path d='M7 14.5h10V21H7z'/></svg>"); }

/* ================= 剪贴板 ================= */
[data-ic="paste"]  { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M9.2 5.4H7.4a1.9 1.9 0 0 0-1.9 1.9v11.8A1.9 1.9 0 0 0 7.4 21h9.2a1.9 1.9 0 0 0 1.9-1.9V7.3a1.9 1.9 0 0 0-1.9-1.9h-1.8'/><rect x='9.2' y='3' width='5.6' height='4.4' rx='1.1'/></svg>"); }
[data-ic="cut"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='6.4' cy='6.4' r='2.6'/><circle cx='6.4' cy='17.6' r='2.6'/><path d='m8.7 8.2 10.4 9.9M8.7 15.8 19.1 5.9'/></svg>"); }
[data-ic="copy"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='7.5' y='7.5' width='12.5' height='13' rx='1.6'/><path d='M16 5.6V4.6A1.6 1.6 0 0 0 14.4 3H5.6A1.6 1.6 0 0 0 4 4.6v8.8A1.6 1.6 0 0 0 5.6 15h1'/></svg>"); }
[data-ic="painter"]{ --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='4.2' y='3.5' width='12' height='5.4' rx='1.1'/><path d='M16.2 5.3h2.6a1.4 1.4 0 0 1 1.4 1.4v2.4a1.4 1.4 0 0 1-1.4 1.4H12v2.2'/><rect x='10' y='12.7' width='4.2' height='8' rx='1.2'/></svg>"); }
[data-ic="undo"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M8.6 14 3.8 9.2 8.6 4.4'/><path d='M3.8 9.2h9.6a6.3 6.3 0 0 1 0 12.6h-3.2'/></svg>"); }
[data-ic="redo"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='m15.4 14 4.8-4.8-4.8-4.8'/><path d='M20.2 9.2h-9.6a6.3 6.3 0 0 0 0 12.6h3.2'/></svg>"); }

/* ================= 字体 ================= */
[data-ic="bold"]      { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M7 4.5h6.4a3.9 3.9 0 0 1 0 7.8H7z'/><path d='M7 12.3h7.4a3.9 3.9 0 0 1 0 7.8H7z'/></svg>"); }
[data-ic="italic"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M10 4.6h8M6 19.4h8M14.6 4.6 9.4 19.4'/></svg>"); }
[data-ic="underline"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M6.6 3.8v6.9a5.4 5.4 0 0 0 10.8 0V3.8'/><path d='M4.8 20.2h14.4'/></svg>"); }
[data-ic="strike"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4 12h16'/><path d='M7.6 8.2V7a2.9 2.9 0 0 1 2.9-2.9h3a2.9 2.9 0 0 1 2.9 2.9'/><path d='M16.4 15.8V17a2.9 2.9 0 0 1-2.9 2.9h-3A2.9 2.9 0 0 1 7.6 17'/></svg>"); }
[data-ic="text-color"]{ --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='m4.8 19 5.9-14h2.6l5.9 14'/><path d='M7.5 13.8h9'/></svg>"); }
[data-ic="fill-color"]{ --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='m10.6 3.6 7.9 7.9-6.9 6.9a1.7 1.7 0 0 1-2.4 0l-5.5-5.5a1.7 1.7 0 0 1 0-2.4z'/><path d='M8.3 6 6 3.6'/><path d='M20.6 15.8c0 1.3-.8 2.3-1.8 2.3s-1.8-1-1.8-2.3 1.8-3.4 1.8-3.4 1.8 2.1 1.8 3.4z'/></svg>"); }
[data-ic="borders"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='4' width='16' height='16' rx='1.4'/><path d='M4 12h16M12 4v16' stroke-dasharray='2.6 2.4'/></svg>"); }

/* ================= 对齐 ================= */
[data-ic="align-left"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'><path d='M4 6h16M4 10.7h9.5M4 15.3h16M4 20h9.5'/></svg>"); }
[data-ic="align-center"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'><path d='M4 6h16M7.2 10.7h9.6M4 15.3h16M7.2 20h9.6'/></svg>"); }
[data-ic="align-right"]  { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'><path d='M4 6h16M10.5 10.7H20M4 15.3h16M10.5 20H20'/></svg>"); }
[data-ic="wrap"]         { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6h16'/><path d='M4 12h12.5a3.4 3.4 0 1 1 0 6.8h-3.2'/><path d='m15.2 16.4-2.4 2.4 2.4 2.4'/><path d='M4 18.8h4.4'/></svg>"); }
[data-ic="valign-top"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 4h15'/><path d='M12 20.2V8.2'/><path d='m8.4 11.8 3.6-3.6 3.6 3.6'/></svg>"); }
[data-ic="valign-mid"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 12h15'/><path d='M12 3.4v4.8m-2.5-2.4L12 3.4l2.5 2.4'/><path d='M12 20.6v-4.8m-2.5 2.4L12 20.6l2.5-2.4'/></svg>"); }
[data-ic="valign-bot"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 20h15'/><path d='M12 3.8v12'/><path d='m8.4 12.2 3.6 3.6 3.6-3.6'/></svg>"); }
[data-ic="merge"]        { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='5' width='17' height='14' rx='1.4'/><path d='M3.5 12h4.8M15.7 12h4.8'/><path d='m11.2 9.6-2.4 2.4 2.4 2.4M12.8 9.6l2.4 2.4-2.4 2.4'/></svg>"); }

/* ================= 样式 ================= */
[data-ic="cond-format"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='4' width='16' height='16' rx='1.6'/><path d='M4 13.4 13.4 4M4 19.4 19.4 4M9.4 20 20 9.4'/></svg>"); }
[data-ic="validate"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='8.4'/><path d='m8.2 12.2 2.7 2.7 5.1-5.6'/></svg>"); }
[data-ic="clear-format"]{ --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M8.6 4.6H19'/><path d='m14.6 4.6-2.4 8'/><path d='M8.6 19.4h6'/><path d='m4.2 4.2 15.6 15.6'/></svg>"); }

/* ================= 插入 ================= */
[data-ic="textbox"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='5' width='17' height='14' rx='1.6'/><path d='M8.6 9.4h6.8M12 9.4v5.4'/></svg>"); }
[data-ic="image"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='4.5' width='17' height='15' rx='1.8'/><circle cx='8.8' cy='9.6' r='1.6'/><path d='m3.9 17.2 4.6-4.6 3.9 3.9M11 15.4l3.2-3.2 6.3 6.3'/></svg>"); }
[data-ic="vector"]  { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='4' width='4' height='4' rx='.7'/><rect x='16' y='4' width='4' height='4' rx='.7'/><rect x='4' y='16' width='4' height='4' rx='.7'/><rect x='16' y='16' width='4' height='4' rx='.7'/><path d='M8 6h8M6 8v8M18 8v8M8 18h8'/></svg>"); }
[data-ic="video"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='2.8' y='6' width='13.4' height='12' rx='1.7'/><path d='m16.2 10.4 5-2.8v8.8l-5-2.8z'/></svg>"); }
[data-ic="code"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='m9 7.6-5 4.4 5 4.4M15 7.6l5 4.4-5 4.4'/></svg>"); }
[data-ic="anchor"]  { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='5.6' r='2.4'/><path d='M12 8v12.4'/><path d='M5.2 13H3.6a8.4 8.4 0 0 0 16.8 0h-1.6'/><path d='M8.8 11.6h6.4'/></svg>"); }
[data-ic="float"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3.4v17.2M3.4 12h17.2'/><path d='m9.2 6.6 2.8-3.2 2.8 3.2M9.2 17.4l2.8 3.2 2.8-3.2M6.6 9.2 3.4 12l3.2 2.8M17.4 9.2l3.2 2.8-3.2 2.8'/></svg>"); }
[data-ic="trash"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4.4 6.8h15.2'/><path d='M9.6 6.8V5.2a1.2 1.2 0 0 1 1.2-1.2h2.4a1.2 1.2 0 0 1 1.2 1.2v1.6'/><path d='m6.4 6.8 1 12.2A1.9 1.9 0 0 0 9.3 21h5.4a1.9 1.9 0 0 0 1.9-1.8l1-12.4'/><path d='M10.4 10.6v6.2M13.6 10.6v6.2'/></svg>"); }
[data-ic="formula"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4.4 6.6h15.2'/><path d='M9 6.6v11.8M15.4 6.6v11.8'/></svg>"); }
[data-ic="link"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M10.2 13.8a3.9 3.9 0 0 0 5.6 0l2.8-2.8a3.9 3.9 0 1 0-5.6-5.6l-1.4 1.4'/><path d='M13.8 10.2a3.9 3.9 0 0 0-5.6 0l-2.8 2.8a3.9 3.9 0 1 0 5.6 5.6l1.4-1.4'/></svg>"); }

/* ================= 公式 ================= */
[data-ic="fx"]      { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4.4 10.4h5.4'/><path d='M6 20V6.6A2.4 2.4 0 0 1 8.4 4.2h1.2'/><path d='m13 11 6 8M19 11l-6 8'/></svg>"); }
[data-ic="sigma"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M17.6 4.6H6.4l6 7.4-6 7.4h11.2'/></svg>"); }
[data-ic="tag"]     { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12.4 3.4H20v7.6l-8.8 8.8a1.6 1.6 0 0 1-2.3 0l-5.3-5.3a1.6 1.6 0 0 1 0-2.3z'/><circle cx='16.3' cy='7.7' r='1.3'/></svg>"); }
[data-ic="play"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M7.6 4.8 19 12 7.6 19.2z'/></svg>"); }

/* ================= 数据 ================= */
[data-ic="table"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.6' y='4.6' width='16.8' height='14.8' rx='1.5'/><path d='M3.6 9.6h16.8M10 9.6v9.8'/></svg>"); }
[data-ic="analytics"]{ --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4 19.4h16'/><path d='M7.2 19.4v-5.6M12 19.4V6.6M16.8 19.4v-8.6'/></svg>"); }
[data-ic="database"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='12' cy='5.8' rx='7.6' ry='2.8'/><path d='M4.4 5.8v12.4c0 1.5 3.4 2.8 7.6 2.8s7.6-1.3 7.6-2.8V5.8'/><path d='M19.6 12c0 1.5-3.4 2.8-7.6 2.8S4.4 13.5 4.4 12'/></svg>"); }
[data-ic="pivot"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.6' y='4.6' width='16.8' height='14.8' rx='1.5'/><path d='M3.6 9.6h16.8M9 4.6v14.8'/><path d='M13 13.4h4.2v4.2'/></svg>"); }
[data-ic="refresh"]  { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M20.2 12a8.2 8.2 0 1 1-2.4-5.8'/><path d='M20.4 4.4v4.6h-4.6'/></svg>"); }
[data-ic="filter"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4 5.4h16l-6.4 7.5v6.2l-3.2-2v-4.2z'/></svg>"); }
[data-ic="timeline"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12h18'/><circle cx='7.6' cy='12' r='2.4'/><circle cx='16.4' cy='12' r='2.4'/><path d='M7.6 7.2V4.4M16.4 19.6v-2.8'/></svg>"); }

/* ================= 视图 ================= */
[data-ic="page"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M6 3.4h8.2L18.6 8v12.6H6z'/><path d='M14.2 3.4V8h4.4'/><path d='M9 12.4h6.4M9 16.2h6.4'/></svg>"); }
[data-ic="people"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='9.2' cy='8' r='3.4'/><path d='M2.8 20a6.4 6.4 0 0 1 12.8 0'/><path d='M15.8 4.9a3.4 3.4 0 0 1 0 6.2'/><path d='M17 13.9a6.4 6.4 0 0 1 4.2 6.1'/></svg>"); }
[data-ic="freeze"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3v18'/><path d='m8.4 5.8 3.6 2.2 3.6-2.2M8.4 18.2l3.6-2.2 3.6 2.2'/><path d='M4.2 7.5 19.8 16.5M4.2 16.5 19.8 7.5'/><path d='m4.8 11.9.2-4.2 4 .8M19.2 12.1l-.2 4.2-4-.8M19.2 11.9l-.2-4.2-4 .8M4.8 12.1l.2 4.2 4-.8'/></svg>"); }
[data-ic="zoom-in"]  { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='10.8' cy='10.8' r='6.8'/><path d='m15.8 15.8 4.4 4.4'/><path d='M8.2 10.8h5.2M10.8 8.2v5.2'/></svg>"); }
[data-ic="zoom-out"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='10.8' cy='10.8' r='6.8'/><path d='m15.8 15.8 4.4 4.4'/><path d='M8.2 10.8h5.2'/></svg>"); }

/* ================= 通用 / 外壳 ================= */
[data-ic="search"]   { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='10.8' cy='10.8' r='6.8'/><path d='m15.8 15.8 4.4 4.4'/></svg>"); }
[data-ic="sparkle"]  { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2.8c.7 4.1 3.1 6.5 7.2 7.2-4.1.7-6.5 3.1-7.2 7.2-.7-4.1-3.1-6.5-7.2-7.2 4.1-.7 6.5-3.1 7.2-7.2z'/><path d='M18.6 15.4c.3 1.8 1.4 2.9 3.2 3.2-1.8.3-2.9 1.4-3.2 3.2-.3-1.8-1.4-2.9-3.2-3.2 1.8-.3 2.9-1.4 3.2-3.2z'/></svg>"); }
[data-ic="keyboard"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='2.6' y='6' width='18.8' height='12' rx='2'/><path d='M6.4 9.6h.01M9.8 9.6h.01M13.2 9.6h.01M16.6 9.6h.01M6.4 12.8h.01M9.8 12.8h.01M13.2 12.8h.01M16.6 12.8h.01M8.4 15.6h7.2'/></svg>"); }
[data-ic="light"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='4.2'/><path d='M12 2.6v2.4M12 19v2.4M4.4 12H2M22 12h-2.4M6.3 6.3 4.6 4.6M19.4 19.4l-1.7-1.7M17.7 6.3l1.7-1.7M4.6 19.4l1.7-1.7'/></svg>"); }
[data-ic="dark"]     { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M20.4 14.6A8.8 8.8 0 0 1 9.4 3.6a8.8 8.8 0 1 0 11 11z'/></svg>"); }
[data-ic="close"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'><path d='m6 6 12 12M18 6 6 18'/></svg>"); }
[data-ic="chevron-down"] { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='m6.8 9.6 5.2 5.2 5.2-5.2'/></svg>"); }
[data-ic="plus"]     { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'><path d='M12 5v14M5 12h14'/></svg>"); }
[data-ic="minus"]    { --ic-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'><path d='M5 12h14'/></svg>"); }
