/* === Local fallback for CDN assets (Font Awesome + flag-icons + Inter) ===
 * Подключается после CDN-стилей. Если CDN доступен — эти правила просто
 * дополняют его (без перекрытия, потому что font-family чётко разный).
 * Если CDN недоступен — Unicode/emoji-fallback делает интерфейс читаемым.
 */

/* Inter fallback → system stack */
body, html {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
                 "Roboto", "Helvetica Neue", Arial, sans-serif;
}

/* === Font Awesome offline fallback === */
/* Если класс .fas / .fa-* не смог подцепить шрифт FontAwesome,
 * показываем Unicode-символ. CDN-версия всегда имеет приоритет
 * (она использует font-family: "Font Awesome 6 Free").
 */
.fa-offline-fallback i.fas::before,
.fa-offline-fallback i.fab::before,
.fa-offline-fallback i.far::before {
    font-family: "Segoe UI Symbol", "Apple Color Emoji", sans-serif;
    font-weight: normal;
}

/* Маппинг самых часто используемых иконок на Unicode (работает всегда,
 * не зависит от FA loaded state). Ставит символ ПЕРЕД i::before через
 * data-fallback атрибут. Используется JS'ом если CDN failed. */
.fa-offline-fallback i.fa-users::before { content: "👥"; }
.fa-offline-fallback i.fa-wifi::before { content: "📶"; }
.fa-offline-fallback i.fa-bolt::before { content: "⚡"; }
.fa-offline-fallback i.fa-key::before { content: "🔑"; }
.fa-offline-fallback i.fa-xmark::before { content: "✕"; }
.fa-offline-fallback i.fa-chrome::before,
.fa-offline-fallback i.fa-brands.fa-chrome::before { content: "🌐"; }
.fa-offline-fallback i.fa-folder-open::before { content: "📂"; }
.fa-offline-fallback i.fa-caret-down::before { content: "▾"; }
.fa-offline-fallback i.fa-check::before { content: "✓"; }
.fa-offline-fallback i.fa-search::before { content: "🔍"; }
.fa-offline-fallback i.fa-gear::before,
.fa-offline-fallback i.fa-cog::before { content: "⚙"; }
.fa-offline-fallback i.fa-trash::before { content: "🗑"; }
.fa-offline-fallback i.fa-play::before { content: "▶"; }
.fa-offline-fallback i.fa-stop::before { content: "■"; }
.fa-offline-fallback i.fa-plus::before { content: "+"; }
.fa-offline-fallback i.fa-refresh::before,
.fa-offline-fallback i.fa-arrows-rotate::before { content: "↻"; }
.fa-offline-fallback i.fa-download::before { content: "↓"; }
.fa-offline-fallback i.fa-upload::before { content: "↑"; }

/* === flag-icons offline fallback === */
.fa-offline-fallback span.fi {
    display: inline-block;
    min-width: 20px;
    height: 14px;
    padding: 0 3px;
    border-radius: 2px;
    background: #3a3a4a;
    color: #fff;
    font-size: 9px;
    font-weight: 600;
    line-height: 14px;
    text-align: center;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    vertical-align: middle;
}

.fa-offline-fallback span.fi::before {
    content: attr(data-code);
}

/* Toast notification styling is owned by css/style.css (native dark palette).
   Fallback file kept for flag icons only. */
