/* Icon Fallback CSS - Unicode alternatives for critical icons */
/* This file provides Unicode fallbacks when Font Awesome fails to load */

.icon-fallback {
    font-family: Arial, sans-serif !important;
    font-style: normal !important;
    font-weight: normal !important;
    display: inline-block;
    text-decoration: inherit;
}

/* Font Awesome fallbacks using Unicode */
.fas.fa-user::before, .fa.fa-user::before { content: "👤"; }
.fas.fa-tachometer-alt::before, .fa.fa-tachometer-alt::before { content: "📊"; }
.fas.fa-clipboard-list::before, .fa.fa-clipboard-list::before { content: "📋"; }
.fas.fa-shopping-bag::before, .fa.fa-shopping-bag::before { content: "🛒"; }
.fas.fa-cog::before, .fa.fa-cog::before { content: "⚙️"; }
.fas.fa-sign-out-alt::before, .fa.fa-sign-out-alt::before { content: "🚪"; }
.fas.fa-star::before, .fa.fa-star::before { content: "⭐"; }
.fas.fa-users::before, .fa.fa-users::before { content: "👥"; }
.fas.fa-graduation-cap::before, .fa.fa-graduation-cap::before { content: "🎓"; }
.fas.fa-rupee-sign::before, .fa.fa-rupee-sign::before { content: "₹"; }
.fas.fa-trophy::before, .fa.fa-trophy::before { content: "🏆"; }
.fas.fa-rocket::before, .fa.fa-rocket::before { content: "🚀"; }
.fas.fa-play::before, .fa.fa-play::before { content: "▶️"; }
.fas.fa-fire::before, .fa.fa-fire::before { content: "🔥"; }
.fas.fa-th-large::before, .fa.fa-th-large::before { content: "▦"; }
.fas.fa-cogs::before, .fa.fa-cogs::before { content: "⚙️"; }
.fas.fa-heartbeat::before, .fa.fa-heartbeat::before { content: "💓"; }
.fas.fa-map-marker-alt::before, .fa.fa-map-marker-alt::before { content: "📍"; }
.fas.fa-check::before, .fa.fa-check::before { content: "✅"; }
.fas.fa-times::before, .fa.fa-times::before { content: "❌"; }
.fas.fa-info::before, .fa.fa-info::before { content: "ℹ️"; }
.fas.fa-warning::before, .fa.fa-warning::before { content: "⚠️"; }
.fas.fa-home::before, .fa.fa-home::before { content: "🏠"; }
.fas.fa-search::before, .fa.fa-search::before { content: "🔍"; }
.fas.fa-envelope::before, .fa.fa-envelope::before { content: "✉️"; }
.fas.fa-phone::before, .fa.fa-phone::before { content: "📞"; }
.fas.fa-download::before, .fa.fa-download::before { content: "⬇️"; }
.fas.fa-upload::before, .fa.fa-upload::before { content: "⬆️"; }
.fas.fa-edit::before, .fa.fa-edit::before { content: "✏️"; }
.fas.fa-trash::before, .fa.fa-trash::before { content: "🗑️"; }
.fas.fa-save::before, .fa.fa-save::before { content: "💾"; }
.fas.fa-print::before, .fa.fa-print::before { content: "🖨️"; }
.fas.fa-share::before, .fa.fa-share::before { content: "📤"; }
.fas.fa-link::before, .fa.fa-link::before { content: "🔗"; }

/* Ensure fallback icons are visible */
.fas[class*="fa-"]::before,
.fa[class*="fa-"]::before {
    font-family: 'Font Awesome 5 Free', 'Font Awesome 6 Free', Arial, sans-serif !important;
    font-weight: 900;
}

/* Spinner animation fallback */
.fas.fa-spinner::before, .fa.fa-spinner::before { 
    content: "⏳"; 
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Loading states */
.icon-loading {
    opacity: 0.6;
    animation: pulse 1.5s ease-in-out infinite alternate;
}

@keyframes pulse {
    from { opacity: 0.6; }
    to { opacity: 1; }
}

/* Error states */
.icon-error::before {
    content: "❌";
    color: #dc3545;
}

/* Success states */
.icon-success::before {
    content: "✅";
    color: #28a745;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .fas[class*="fa-"]::before,
    .fa[class*="fa-"]::before {
        text-shadow: 1px 1px 1px rgba(0,0,0,0.5);
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .fas.fa-spinner::before,
    .fa.fa-spinner::before,
    .icon-loading {
        animation: none;
    }
}
