/* FontAwesome Offline CSS - Unicode Fallbacks */

/* Core icon replacements with Unicode symbols */
.fa, .fas, .far, .fab, .fal, .fad {
    font-family: 'Arial Unicode MS', 'Segoe UI Symbol', 'Apple Symbols', sans-serif;
    font-weight: normal;
    font-style: normal;
    display: inline-block;
    text-decoration: none;
}

/* Icon mappings */
.fa-home::before, .fas.fa-home::before { content: "🏠"; }
.fa-user::before, .fas.fa-user::before { content: "👤"; }
.fa-users::before, .fas.fa-users::before { content: "👥"; }
.fa-cog::before, .fas.fa-cog::before { content: "⚙️"; }
.fa-chart-bar::before, .fas.fa-chart-bar::before { content: "📊"; }
.fa-file-alt::before, .fas.fa-file-alt::before { content: "📄"; }
.fa-plus::before, .fas.fa-plus::before { content: "➕"; }
.fa-minus::before, .fas.fa-minus::before { content: "➖"; }
.fa-edit::before, .fas.fa-edit::before { content: "✏️"; }
.fa-trash::before, .fas.fa-trash::before { content: "🗑️"; }
.fa-save::before, .fas.fa-save::before { content: "💾"; }
.fa-download::before, .fas.fa-download::before { content: "⬇️"; }
.fa-upload::before, .fas.fa-upload::before { content: "⬆️"; }
.fa-search::before, .fas.fa-search::before { content: "🔍"; }
.fa-filter::before, .fas.fa-filter::before { content: "🔽"; }
.fa-eye::before, .fas.fa-eye::before { content: "👁️"; }
.fa-eye-slash::before, .fas.fa-eye-slash::before { content: "🙈"; }
.fa-check::before, .fas.fa-check::before { content: "✅"; }
.fa-times::before, .fas.fa-times::before { content: "❌"; }
.fa-arrow-left::before, .fas.fa-arrow-left::before { content: "⬅️"; }
.fa-arrow-right::before, .fas.fa-arrow-right::before { content: "➡️"; }
.fa-arrow-up::before, .fas.fa-arrow-up::before { content: "⬆️"; }
.fa-arrow-down::before, .fas.fa-arrow-down::before { content: "⬇️"; }
.fa-print::before, .fas.fa-print::before { content: "🖨️"; }
.fa-envelope::before, .fas.fa-envelope::before { content: "✉️"; }
.fa-phone::before, .fas.fa-phone::before { content: "📞"; }
.fa-calendar::before, .fas.fa-calendar::before { content: "📅"; }
.fa-clock::before, .fas.fa-clock::before { content: "🕐"; }
.fa-star::before, .fas.fa-star::before { content: "⭐"; }
.fa-heart::before, .fas.fa-heart::before { content: "❤️"; }
.fa-thumbs-up::before, .fas.fa-thumbs-up::before { content: "👍"; }
.fa-thumbs-down::before, .fas.fa-thumbs-down::before { content: "👎"; }
.fa-info-circle::before, .fas.fa-info-circle::before { content: "ℹ️"; }
.fa-exclamation-triangle::before, .fas.fa-exclamation-triangle::before { content: "⚠️"; }
.fa-question-circle::before, .fas.fa-question-circle::before { content: "❓"; }
.fa-comments::before, .fas.fa-comments::before { content: "💬"; }
.fa-comment::before, .fas.fa-comment::before { content: "💭"; }
.fa-bars::before, .fas.fa-bars::before { content: "☰"; }
.fa-list::before, .fas.fa-list::before { content: "📋"; }
.fa-table::before, .fas.fa-table::before { content: "🗂️"; }
.fa-th::before, .fas.fa-th::before { content: "⊞"; }
.fa-th-list::before, .fas.fa-th-list::before { content: "☰"; }
.fa-clipboard::before, .fas.fa-clipboard::before { content: "📋"; }
.fa-copy::before, .fas.fa-copy::before { content: "📄"; }
.fa-paste::before, .fas.fa-paste::before { content: "📋"; }
.fa-cut::before, .fas.fa-cut::before { content: "✂️"; }
.fa-folder::before, .fas.fa-folder::before { content: "📁"; }
.fa-folder-open::before, .fas.fa-folder-open::before { content: "📂"; }
.fa-file::before, .fas.fa-file::before { content: "📄"; }
.fa-file-pdf::before, .fas.fa-file-pdf::before { content: "📕"; }
.fa-file-excel::before, .fas.fa-file-excel::before { content: "📗"; }
.fa-file-word::before, .fas.fa-file-word::before { content: "📘"; }
.fa-image::before, .fas.fa-image::before { content: "🖼️"; }
.fa-video::before, .fas.fa-video::before { content: "📹"; }
.fa-music::before, .fas.fa-music::before { content: "🎵"; }
.fa-play::before, .fas.fa-play::before { content: "▶️"; }
.fa-pause::before, .fas.fa-pause::before { content: "⏸️"; }
.fa-stop::before, .fas.fa-stop::before { content: "⏹️"; }
.fa-forward::before, .fas.fa-forward::before { content: "⏩"; }
.fa-backward::before, .fas.fa-backward::before { content: "⏪"; }
.fa-volume-up::before, .fas.fa-volume-up::before { content: "🔊"; }
.fa-volume-down::before, .fas.fa-volume-down::before { content: "🔉"; }
.fa-volume-mute::before, .fas.fa-volume-mute::before { content: "🔇"; }
.fa-wifi::before, .fas.fa-wifi::before { content: "📶"; }
.fa-signal::before, .fas.fa-signal::before { content: "📊"; }
.fa-battery-full::before, .fas.fa-battery-full::before { content: "🔋"; }
.fa-plug::before, .fas.fa-plug::before { content: "🔌"; }
.fa-lightbulb::before, .fas.fa-lightbulb::before { content: "💡"; }
.fa-sun::before, .fas.fa-sun::before { content: "☀️"; }
.fa-moon::before, .fas.fa-moon::before { content: "🌙"; }
.fa-cloud::before, .fas.fa-cloud::before { content: "☁️"; }
.fa-umbrella::before, .fas.fa-umbrella::before { content: "☂️"; }
.fa-fire::before, .fas.fa-fire::before { content: "🔥"; }
.fa-snowflake::before, .fas.fa-snowflake::before { content: "❄️"; }
.fa-tree::before, .fas.fa-tree::before { content: "🌳"; }
.fa-leaf::before, .fas.fa-leaf::before { content: "🍃"; }
.fa-flower::before, .fas.fa-flower::before { content: "🌸"; }
.fa-gift::before, .fas.fa-gift::before { content: "🎁"; }
.fa-birthday-cake::before, .fas.fa-birthday-cake::before { content: "🎂"; }
.fa-trophy::before, .fas.fa-trophy::before { content: "🏆"; }
.fa-medal::before, .fas.fa-medal::before { content: "🏅"; }
.fa-flag::before, .fas.fa-flag::before { content: "🚩"; }
.fa-map::before, .fas.fa-map::before { content: "🗺️"; }
.fa-compass::before, .fas.fa-compass::before { content: "🧭"; }
.fa-location-arrow::before, .fas.fa-location-arrow::before { content: "📍"; }
.fa-map-marker::before, .fas.fa-map-marker::before { content: "📌"; }
.fa-car::before, .fas.fa-car::before { content: "🚗"; }
.fa-truck::before, .fas.fa-truck::before { content: "🚚"; }
.fa-bus::before, .fas.fa-bus::before { content: "🚌"; }
.fa-train::before, .fas.fa-train::before { content: "🚆"; }
.fa-plane::before, .fas.fa-plane::before { content: "✈️"; }
.fa-ship::before, .fas.fa-ship::before { content: "🚢"; }
.fa-bicycle::before, .fas.fa-bicycle::before { content: "🚲"; }
.fa-motorcycle::before, .fas.fa-motorcycle::before { content: "🏍️"; }
.fa-gas-pump::before, .fas.fa-gas-pump::before { content: "⛽"; }
.fa-tools::before, .fas.fa-tools::before { content: "🔧"; }
.fa-wrench::before, .fas.fa-wrench::before { content: "🔧"; }
.fa-hammer::before, .fas.fa-hammer::before { content: "🔨"; }
.fa-screwdriver::before, .fas.fa-screwdriver::before { content: "🪛"; }
.fa-key::before, .fas.fa-key::before { content: "🔑"; }
.fa-lock::before, .fas.fa-lock::before { content: "🔒"; }
.fa-unlock::before, .fas.fa-unlock::before { content: "🔓"; }
.fa-shield::before, .fas.fa-shield::before { content: "🛡️"; }
.fa-fingerprint::before, .fas.fa-fingerprint::before { content: "👆"; }
.fa-id-card::before, .fas.fa-id-card::before { content: "🪪"; }
.fa-graduation-cap::before, .fas.fa-graduation-cap::before { content: "🎓"; }
.fa-book::before, .fas.fa-book::before { content: "📖"; }
.fa-bookmark::before, .fas.fa-bookmark::before { content: "🔖"; }
.fa-pen::before, .fas.fa-pen::before { content: "🖊️"; }
.fa-pencil::before, .fas.fa-pencil::before { content: "✏️"; }
.fa-eraser::before, .fas.fa-eraser::before { content: "🧹"; }
.fa-calculator::before, .fas.fa-calculator::before { content: "🧮"; }
.fa-globe::before, .fas.fa-globe::before { content: "🌐"; }
.fa-language::before, .fas.fa-language::before { content: "🌍"; }
.fa-translate::before, .fas.fa-translate::before { content: "🔤"; }

/* Additional utility classes */
.fa-fw {
    width: 1.28571429em;
    text-align: center;
}

.fa-lg {
    font-size: 1.33333333em;
    line-height: 0.75em;
    vertical-align: -15%;
}

.fa-2x { font-size: 2em; }
.fa-3x { font-size: 3em; }
.fa-4x { font-size: 4em; }
.fa-5x { font-size: 5em; }

.fa-spin {
    animation: fa-spin 2s infinite linear;
}

@keyframes fa-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(359deg); }
}

.fa-pulse {
    animation: fa-pulse 1s infinite steps(8);
}

@keyframes fa-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

/* Fallback untuk browser yang tidak support emoji */
@media (max-width: 0px) {
    .fa::before { content: "●"; }
    .fa-home::before { content: "⌂"; }
    .fa-user::before { content: "👤"; }
    .fa-cog::before { content: "⚙"; }
    .fa-plus::before { content: "+"; }
    .fa-minus::before { content: "-"; }
    .fa-times::before { content: "×"; }
    .fa-check::before { content: "✓"; }
    .fa-arrow-left::before { content: "←"; }
    .fa-arrow-right::before { content: "→"; }
    .fa-arrow-up::before { content: "↑"; }
    .fa-arrow-down::before { content: "↓"; }
}
