/* Offline icon fallback when CDN/bootstrap font files are unavailable */
[class^="bi-"]::before,
[class*=" bi-"]::before {
    display: inline-block;
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    font-family: inherit;
}

.bi-list::before { content: "☰"; }
.bi-grid-1x2-fill::before { content: "▦"; }
.bi-calendar2-week::before { content: "📅"; }
.bi-people::before { content: "👥"; }
.bi-bar-chart-line::before { content: "📊"; }
.bi-gear::before { content: "⚙"; }
.bi-person-circle::before { content: "👤"; }
.bi-box-arrow-left::before { content: "↩"; }
.bi-box-arrow-in-left::before { content: "→"; }
.bi-box-arrow-right::before { content: "↪"; }
.bi-envelope::before { content: "✉"; }
.bi-lock::before { content: "🔒"; }
.bi-info-circle::before { content: "ℹ"; }
.bi-search::before { content: "🔍"; }
.bi-sliders::before { content: "⚗"; }
.bi-graph-up::before { content: "📈"; }
.bi-play-fill::before { content: "▶"; }
.bi-calendar-check::before { content: "✓"; }
.bi-graph-up-arrow::before { content: "↑"; }
.bi-heart-pulse::before { content: "♥"; }
.bi-person-plus::before { content: "+"; }
.bi-cloud-arrow-down::before { content: "↓"; }
.bi-check-circle::before { content: "✓"; }
.bi-arrow-up-short::before { content: "↑"; }
.bi-arrow-down-short::before { content: "↓"; }
.bi-printer::before { content: "🖨"; }
.bi-file-earmark-pdf::before { content: "📄"; }
.bi-download::before { content: "⬇"; }
