/* 扁平化图标库 - 双色设计：白色主体 + 蓝色强调 */

.flat-icon {
  display: inline-block;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

/* 浅色主题下的图标样式 */
.light-theme .flat-icon {
  opacity: 0.9;
}

/* 导航和操作图标特殊尺寸 */
.nav-icon .flat-icon {
  width: 28px;
  height: 28px;
}

.action-icon .flat-icon {
  width: 32px;
  height: 32px;
}

.notification-icon .flat-icon {
  width: 24px;
  height: 24px;
}

.icon-bell {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M24 10A8 8 0 0 0 8 10c0 9-4 12-4 12h24s-4-2.67-4-12" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="16" cy="28" r="2" fill="%234A9EFF"/></svg>');
}

.icon-chart-line {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><polyline points="29 16 24 16 20 28 12 4 8 16 3 16" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="20" cy="28" r="2.5" fill="%234A9EFF"/><circle cx="12" cy="4" r="2.5" fill="%234A9EFF"/></svg>');
}

.icon-megaphone {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M4 15l24-7v16L4 17v-2z" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="white" fill-opacity="0.1"/><circle cx="10" cy="21" r="3" fill="%234A9EFF"/></svg>');
}

.icon-file {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M17 3H8a3 3 0 0 0-3 3v20a3 3 0 0 0 3 3h16a3 3 0 0 0 3-3V12z" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><polyline points="17 3 17 12 27 12" stroke="%234A9EFF" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="%234A9EFF" fill-opacity="0.3"/></svg>');
}

.icon-shopping {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M1 1h5l3.5 17.5a3 3 0 0 0 3 2h13a3 3 0 0 0 3-2L30 8H8" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="12" cy="28" r="2.5" fill="%234A9EFF"/><circle cx="26" cy="28" r="2.5" fill="%234A9EFF"/></svg>');
}

.icon-diamond {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M16 3L3 9L16 29L29 9L16 3Z" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="16" cy="16" r="4" fill="%234A9EFF"/></svg>');
}

.icon-brain {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><circle cx="10" cy="16" r="8" stroke="white" stroke-width="2.5" fill="white" fill-opacity="0.1"/><circle cx="22" cy="16" r="8" stroke="white" stroke-width="2.5" fill="white" fill-opacity="0.1"/><circle cx="10" cy="13" r="2" fill="%234A9EFF"/><circle cx="22" cy="13" r="2" fill="%234A9EFF"/><path d="M10 20c2 2 4 2 6 0c2 2 4 2 6 0" stroke="%234A9EFF" stroke-width="2" stroke-linecap="round"/></svg>');
}

.icon-zap {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><polygon points="17 3 4 18 16 18 15 29 28 14 16 14 17 3" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="%234A9EFF" fill-opacity="0.2"/></svg>');
}

.icon-check {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><circle cx="16" cy="16" r="13" stroke="white" stroke-width="2.5"/><polyline points="10 16 14 20 22 11" stroke="%234A9EFF" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

.icon-message {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M28 20a3 3 0 0 1-3 3H9l-5 5V7a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3z" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="16" cy="15" r="2" fill="%234A9EFF"/><circle cx="10" cy="15" r="2" fill="%234A9EFF"/><circle cx="22" cy="15" r="2" fill="%234A9EFF"/></svg>');
}

.icon-smartphone {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><rect x="7" y="3" width="18" height="26" rx="3" ry="3" stroke="white" stroke-width="2.5"/><circle cx="16" cy="24" r="2" fill="%234A9EFF"/></svg>');
}

.icon-home {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M4 12l12-9 12 9v15a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3z" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><rect x="12" y="17" width="8" height="13" fill="%234A9EFF"/></svg>');
}

.icon-chart-bar {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><line x1="16" y1="27" x2="16" y2="13" stroke="white" stroke-width="4" stroke-linecap="round"/><line x1="24" y1="27" x2="24" y2="5" stroke="%234A9EFF" stroke-width="4" stroke-linecap="round"/><line x1="8" y1="27" x2="8" y2="21" stroke="white" stroke-width="4" stroke-linecap="round"/></svg>');
}

.icon-clock {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><circle cx="16" cy="16" r="13" stroke="white" stroke-width="2.5"/><polyline points="16 8 16 16 21 19" stroke="%234A9EFF" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

.icon-clipboard {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M21 5h3a3 3 0 0 1 3 3v19a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V8a3 3 0 0 1 3-3h3" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><rect x="11" y="3" width="10" height="5" rx="1.5" stroke="%234A9EFF" stroke-width="2.5" fill="%234A9EFF"/></svg>');
}

.icon-user {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none"><path d="M27 28v-3a5 5 0 0 0-5-5H10a5 5 0 0 0-5 5v3" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="16" cy="9" r="5" stroke="%234A9EFF" stroke-width="2.5" fill="%234A9EFF" fill-opacity="0.4"/></svg>');
}

.icon-target {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="10" stroke="white" stroke-width="2"/><circle cx="12" cy="12" r="6" stroke="white" stroke-width="2"/><circle cx="12" cy="12" r="2" fill="%234A9EFF"/></svg>');
}

.icon-dollar {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><line x1="12" y1="1" x2="12" y2="23" stroke="%234A9EFF" stroke-width="2"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

.icon-edit {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" stroke="%234A9EFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

.icon-lock {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><rect x="3" y="11" width="18" height="11" rx="2" ry="2" stroke="white" stroke-width="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4" stroke="%234A9EFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

.icon-globe {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="10" stroke="white" stroke-width="2"/><line x1="2" y1="12" x2="22" y2="12" stroke="%234A9EFF" stroke-width="2"/><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" stroke="%234A9EFF" stroke-width="2"/></svg>');
}

.icon-info {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="10" stroke="white" stroke-width="2"/><line x1="12" y1="16" x2="12" y2="12" stroke="%234A9EFF" stroke-width="2.5" stroke-linecap="round"/><circle cx="12" cy="8" r="1.5" fill="%234A9EFF"/></svg>');
}

.icon-heart {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="%234A9EFF" fill-opacity="0.3"/></svg>');
}

.icon-palette {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z" stroke="white" stroke-width="2"/><circle cx="13.5" cy="6.5" r="1.5" fill="%234A9EFF"/><circle cx="17.5" cy="10.5" r="1.5" fill="%234A9EFF"/><circle cx="8.5" cy="7.5" r="1.5" fill="%234A9EFF"/><circle cx="6.5" cy="12.5" r="1.5" fill="%234A9EFF"/></svg>');
}

.icon-logout {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><polyline points="16 17 21 12 16 7" stroke="%234A9EFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="21" y1="12" x2="9" y2="12" stroke="%234A9EFF" stroke-width="2"/></svg>');
}

.icon-file-text {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><polyline points="14 2 14 8 20 8" stroke="%234A9EFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="16" y1="13" x2="8" y2="13" stroke="%234A9EFF" stroke-width="2" stroke-linecap="round"/><line x1="16" y1="17" x2="8" y2="17" stroke="%234A9EFF" stroke-width="2" stroke-linecap="round"/></svg>');
}

/* 设置图标特殊尺寸 */
.settings-icon .flat-icon {
  width: 26px;
  height: 26px;
}

.banner-icon .flat-icon {
  width: 20px;
  height: 20px;
}

.chart-placeholder .flat-icon {
  width: 40px;
  height: 40px;
}

