/* ============================================
   Range Lab - Icon System Styles
   Animated SVG icons
   ============================================ */

/* Icon Wrapper */
.icon-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    vertical-align: middle;
}

.icon-svg {
    width: 100%;
    height: 100%;
    transition: all var(--transition-fast);
}

/* Icon Sizes */
.icon-xs { width: 14px; height: 14px; }
.icon-sm { width: 18px; height: 18px; }
.icon-md { width: 24px; height: 24px; }
.icon-lg { width: 32px; height: 32px; }
.icon-xl { width: 48px; height: 48px; }
.icon-2xl { width: 64px; height: 64px; }

/* Icon Colors */
.icon-primary { color: var(--color-primary); }
.icon-secondary { color: var(--color-text-secondary); }
.icon-muted { color: var(--color-text-muted); }
.icon-success { color: var(--color-green); }
.icon-danger { color: var(--color-red); }
.icon-gold { color: var(--color-gold); }

/* ===== Animations ===== */

/* Pulse Animation */
.icon-animated-pulse .icon-svg {
    animation: iconPulse 2s ease-in-out infinite;
}

@keyframes iconPulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.8;
        transform: scale(1.05);
    }
}

/* Glow Animation for AI icon */
.icon-animated-glow .icon-svg {
    filter: drop-shadow(0 0 2px var(--color-primary));
    animation: iconGlow 2s ease-in-out infinite;
}

@keyframes iconGlow {
    0%, 100% {
        filter: drop-shadow(0 0 2px var(--color-primary));
    }
    50% {
        filter: drop-shadow(0 0 8px var(--color-primary));
    }
}

/* Spin Animation */
.icon-animated-spin .icon-svg {
    animation: iconSpin 2s linear infinite;
}

@keyframes iconSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Bounce Animation */
.icon-animated-bounce .icon-svg {
    animation: iconBounce 1s ease infinite;
}

@keyframes iconBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}

/* Float Animation */
.icon-animated-float .icon-svg {
    animation: iconFloat 3s ease-in-out infinite;
}

@keyframes iconFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

/* Shake Animation (for errors/warnings) */
.icon-animated-shake .icon-svg {
    animation: iconShake 0.5s ease;
}

@keyframes iconShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    75% { transform: translateX(4px); }
}

/* ===== Category Icons - Custom Styles ===== */

.category-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary-muted);
    color: var(--color-primary);
    transition: all var(--transition-fast);
}

.category-icon:hover {
    transform: scale(1.1);
    background: var(--color-primary);
    color: var(--color-bg-primary);
}

/* ===== Quick Action Icons ===== */

.quick-action-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--color-primary-muted), transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    font-size: 24px;
    transition: all var(--transition-fast);
}

.quick-action:hover .quick-action-icon {
    background: var(--color-primary);
    color: var(--color-bg-primary);
    transform: scale(1.1);
    box-shadow: 0 0 20px var(--color-primary-muted);
}

/* ===== Lesson Visual Icons ===== */

.lesson-visual-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-xl);
    color: var(--color-primary);
    transition: all var(--transition-normal);
}

.lesson-card:hover .lesson-visual-icon {
    transform: scale(1.1) rotate(5deg);
    background: var(--color-primary);
    color: var(--color-bg-primary);
}

/* ===== Progress Stat Icons ===== */

.progress-stat-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    background: var(--color-bg-tertiary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
}

/* ===== Training Mode Icons ===== */

.training-mode-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-elevated);
    border-radius: var(--radius-md);
    color: var(--color-text-muted);
    font-size: 14px;
    font-weight: var(--font-bold);
    transition: all var(--transition-fast);
}

.training-mode.active .training-mode-icon,
.training-mode:hover .training-mode-icon {
    background: var(--color-primary);
    color: var(--color-bg-primary);
}

.training-mode-icon .icon-wrapper {
    width: 20px;
    height: 20px;
}

/* ===== Featured Lesson Icons ===== */

.featured-lesson-icon {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    background: var(--color-primary-muted);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--font-bold);
    font-size: var(--text-sm);
    transition: all var(--transition-fast);
}

.featured-lesson:hover .featured-lesson-icon {
    background: var(--color-primary);
    color: var(--color-bg-primary);
    transform: scale(1.05);
}

/* ===== Tool Card Icons ===== */

.tool-icon {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--color-primary-muted), transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    margin-bottom: var(--space-3);
    transition: all var(--transition-fast);
}

.tool-card:hover .tool-icon {
    background: var(--color-primary);
    color: var(--color-bg-primary);
    transform: scale(1.1);
    box-shadow: 0 0 30px var(--color-primary-muted);
}

/* ===== Result Panel Icons ===== */

.result-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    margin: 0 auto var(--space-4);
    transition: all var(--transition-normal);
}

.result-icon.correct {
    background: rgba(0, 212, 106, 0.2);
    color: var(--color-green);
    animation: resultPop 0.5s ease;
}

.result-icon.incorrect {
    background: rgba(255, 71, 87, 0.2);
    color: var(--color-red);
    animation: resultShake 0.5s ease;
}

@keyframes resultPop {
    0% { transform: scale(0); }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); }
}

@keyframes resultShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-10px); }
    75% { transform: translateX(10px); }
}

/* ===== Hover Effects ===== */

.icon-hover-lift:hover .icon-svg {
    transform: translateY(-2px);
}

.icon-hover-scale:hover .icon-svg {
    transform: scale(1.15);
}

.icon-hover-rotate:hover .icon-svg {
    transform: rotate(15deg);
}

.icon-hover-glow:hover .icon-svg {
    filter: drop-shadow(0 0 8px currentColor);
}
