/* ==================================
   DCA Calculator 图标系统规范 v2024
   Heroicons 统一标准 + Emoji 装饰规范
   ================================== */

/* ===================================
   Heroicons 图标基础样式
   =================================== */

/* 通用图标样式 */
.icon {
    flex-shrink: 0;
    transition: all 0.2s ease;
    stroke: currentColor;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

/* 图标尺寸标准 */
.icon-xs { width: 12px; height: 12px; }
.icon-sm { width: 16px; height: 16px; }
.icon-base { width: 20px; height: 20px; }
.icon-lg { width: 24px; height: 24px; }
.icon-xl { width: 32px; height: 32px; }

/* 图标颜色变体 */
.icon-primary { color: var(--color-primary-600); }
.icon-secondary { color: var(--color-secondary-600); }
.icon-success { color: var(--color-success-600); }
.icon-warning { color: var(--color-warning-600); }
.icon-danger { color: var(--color-danger-600); }
.icon-neutral { color: var(--text-secondary); }

/* 深色主题适配 */
.dark .icon-primary { color: rgb(var(--color-primary-400)); }
.dark .icon-secondary { color: rgb(var(--color-secondary-400)); }
.dark .icon-success { color: rgb(var(--color-success-400)); }
.dark .icon-warning { color: rgb(var(--color-warning-400)); }
.dark .icon-danger { color: rgb(var(--color-danger-400)); }

/* ===================================
   功能图标标准化组件
   =================================== */

/* 计算器图标 */
.calculator-icon {
    width: 20px;
    height: 20px;
    margin-right: 12px;
}

/* 图表图标 */
.chart-icon {
    width: 20px;
    height: 20px;
    margin-right: 12px;
}

/* 帮助文档图标 */
.help-icon {
    width: 20px;
    height: 20px;
    margin-right: 12px;
}

/* 主题切换图标 */
.theme-icon {
    width: 20px;
    height: 20px;
    transition: all 0.3s ease;
}

.theme-icon.sun {
    color: #f59e0b; /* amber-500 */
}

.theme-icon.moon {
    color: #60a5fa; /* blue-400 */
}

/* 状态图标 */
.status-icon {
    width: 16px;
    height: 16px;
    margin-right: 8px;
}

.status-icon.success { color: var(--status-profit); }
.status-icon.error { color: var(--status-loss); }
.status-icon.warning { color: rgb(var(--color-warning-500)); }
.status-icon.info { color: var(--status-neutral); }

/* 操作按钮图标 */
.action-icon {
    width: 16px;
    height: 16px;
    margin-right: 6px;
}

/* ===================================
   Emoji 装饰使用规范
   =================================== */

/* Emoji 仅用于品牌标识和情感表达，不用于功能图标 */

/* 品牌标识 Emoji - 保留 */
.brand-emoji {
    font-size: 1.5rem;
    line-height: 1;
    margin-right: 8px;
    filter: none; /* 保持原生 Emoji 样式 */
}

/* 侧边栏品牌 Emoji */
.sidebar-brand-emoji {
    font-size: 2rem;
    line-height: 1;
    transition: transform 0.2s ease;
}

.sidebar-brand-emoji:hover {
    transform: scale(1.05);
}

/* 装饰性 Emoji - 谨慎使用 */
.decorative-emoji {
    font-size: 1.25rem;
    line-height: 1;
    margin: 0 4px;
    opacity: 0.8;
}

/* 移动端 Emoji 优化 */
@media (max-width: 768px) {
    .brand-emoji {
        font-size: 1.25rem;
        margin-right: 6px;
    }
    
    .sidebar-brand-emoji {
        font-size: 1.75rem;
    }
    
    .decorative-emoji {
        font-size: 1rem;
        margin: 0 2px;
    }
}

/* ===================================
   图标与文字组合样式
   =================================== */

/* 图标 + 文字的布局 */
.icon-text {
    display: flex;
    align-items: center;
    gap: 8px;
}

.icon-text-vertical {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}

/* 按钮中的图标 */
button .icon {
    margin-right: 8px;
}

button:only-child .icon {
    margin-right: 0;
}

/* 链接中的图标 */
a .icon {
    margin-right: 6px;
}

/* 导航项中的图标 */
.nav-item .icon {
    margin-right: 12px;
    width: 20px;
    height: 20px;
}

/* ===================================
   动画和交互效果
   =================================== */

/* 图标悬停效果 */
.icon-interactive {
    cursor: pointer;
    transition: all 0.2s ease;
}

.icon-interactive:hover {
    transform: scale(1.1);
    opacity: 0.8;
}

.icon-interactive:active {
    transform: scale(0.95);
}

/* 旋转动画（用于加载状态） */
.icon-spin {
    animation: icon-spin 1s linear infinite;
}

@keyframes icon-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* 脉冲动画（用于通知状态） */
.icon-pulse {
    animation: icon-pulse 2s infinite;
}

@keyframes icon-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* ===================================
   无障碍和兼容性
   =================================== */

/* 高对比度模式 */
@media (prefers-contrast: high) {
    .icon {
        stroke-width: 2.5;
    }
    
    .icon-primary,
    .icon-secondary,
    .icon-success,
    .icon-warning,
    .icon-danger {
        color: currentColor;
    }
}

/* 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {
    .icon,
    .icon-interactive,
    .theme-icon,
    .sidebar-brand-emoji {
        transition: none;
        animation: none;
    }
    
    .icon-interactive:hover {
        transform: none;
    }
}

/* 打印样式 */
@media print {
    .icon {
        color: black !important;
        opacity: 0.7;
    }
    
    .brand-emoji,
    .decorative-emoji {
        display: none;
    }
}

/* ===================================
   使用指南注释
   =================================== */

/*
图标使用规范：

1. 功能图标：优先使用 Heroicons
   - 计算器：calculator-icon + <svg>...</svg>
   - 图表：chart-icon + <svg>...</svg>  
   - 设置：cog-icon + <svg>...</svg>
   - 帮助：question-mark-circle + <svg>...</svg>

2. Emoji 装饰：仅用于品牌和情感表达
   - 品牌标识：🏦 (银行/金融)
   - 项目类型：📊 (数据分析)
   - 文档说明：📋 (清单/文档)

3. 状态指示：统一使用颜色 + Heroicons
   - 成功：check-circle + green
   - 错误：x-circle + red
   - 警告：exclamation-triangle + yellow
   - 信息：information-circle + blue

4. 响应式适配：
   - 移动端：适当缩小图标尺寸
   - 深色主题：使用更亮的颜色变体
   - 高对比度：加粗描边，使用系统颜色

5. 性能优化：
   - SVG 图标内联使用
   - 避免过多的 CSS 动画
   - 利用 CSS 变量实现主题切换
*/