/* ==========================================================================
   apple-icons.css — Apple / SF-Symbols-style icon remap (pure CSS, no markup
   changes). Re-renders every Glyphicons Halflings and Font Awesome icon class
   used in this app with a glyph from the Framework7 Icons ligature font (MIT).

   REQUIRES (loaded BEFORE this file in base.html):
     https://cdn.jsdelivr.net/npm/framework7-icons@5/css/framework7-icons.css
   which provides @font-face "Framework7 Icons".

   How it works:
   1) One grouped rule below re-points the :before pseudo-element of every
      mapped icon class at the "Framework7 Icons" font (ligatures enabled).
   2) One rule per icon replaces the legacy codepoint content with the
      verified F7 ligature name, e.g. content: "clock".

   Every ligature used here is verified against the official icon list in
   framework7io/framework7-icons (package/svg/*.svg names, v5).

   NOTE: .fa-spin is deliberately NOT touched. Its keyframes in Font Awesome
   6.5.1 (all.min.css, loaded from cdnjs in base.html) animate only
   transform: rotate() on the element itself and have no font dependency,
   so spinners (e.g. .fa.fa-spinner.fa-spin) keep spinning after the remap.
   Likewise .fa / .fa-solid / .fa-regular base classes are left alone — they
   still provide display:inline-block on the host element.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Shared font block: applies ONLY to the icon classes mapped in this file.
   -------------------------------------------------------------------------- */
.glyphicon-list-alt:before,
.glyphicon-lock:before,
.glyphicon-comment:before,
.glyphicon-plus:before,
.glyphicon-pushpin:before,
.glyphicon-trash:before,
.glyphicon-pencil:before,
.glyphicon-warning-sign:before,
.glyphicon-time:before,
.glyphicon-map-marker:before,
.glyphicon-folder-open:before,
.glyphicon-chevron-down:before,
.glyphicon-send:before,
.glyphicon-paperclip:before,
.glyphicon-ok-circle:before,
.glyphicon-file:before,
.glyphicon-exclamation-sign:before,
.glyphicon-cog:before,
.glyphicon-chevron-right:before,
.glyphicon-chevron-left:before,
.glyphicon-user:before,
.glyphicon-repeat:before,
.glyphicon-ok:before,
.glyphicon-education:before,
.glyphicon-calendar:before,
.glyphicon-wrench:before,
.glyphicon-th-list:before,
.glyphicon-signal:before,
.glyphicon-remove:before,
.glyphicon-record:before,
.glyphicon-plane:before,
.glyphicon-hdd:before,
.glyphicon-eye-open:before,
.glyphicon-duplicate:before,
.glyphicon-download-alt:before,
.glyphicon-download:before,
.glyphicon-book:before,
.glyphicon-bell:before,
.glyphicon-arrow-left:before,
.fa-arrow-left:before,
.fa-check:before,
.fa-robot:before,
.fa-play:before,
.fa-book:before,
.fa-spinner:before,
.fa-pause:before,
.fa-chevron-down:before,
.fa-chevron-up:before,
.fa-microphone:before,
.fa-file-text-o:before,
.fa-file-text:before,
.fa-magic:before,
.fa-calendar:before,
.fa-calendar-o:before,
.fa-user:before,
.fa-user-o:before,
.fa-save:before,
.fa-folder-open:before,
.fa-folder-o:before,
.fa-map-marker:before,
.fa-location-dot:before,
.fa-file-pdf-o:before,
.fa-comments:before,
.fa-comment:before,
.fa-heart:before,
.fa-walkie-talkie:before,
.fa-circle-xmark:before,
.fa-circle-check:before,
.fa-check-circle:before,
.fa-check-circle-o:before,
.fa-times-circle:before,
.fa-ban:before,
.fa-user-secret:before,
.fa-superpowers:before,
.fa-sign-out:before,
.fa-shield:before,
.fa-search:before,
.fa-pencil:before,
.fa-paperclip:before,
.fa-list:before,
.fa-eye:before,
.fa-download:before,
.fa-clock-o:before,
.fa-warning:before,
.fa-triangle-exclamation:before,
.fa-wand-magic-sparkles:before,
.fa-tasks:before,
.fa-trash:before,
.fa-upload:before,
.fa-plus:before,
.fa-refresh:before,
.fa-file-o:before,
.fa-file-audio-o:before,
.fa-file-word-o:before,
.fa-file-excel-o:before,
.fa-file-powerpoint-o:before,
.fa-file-image-o:before,
.fa-lightbulb-o:before,
.fa-keyboard-o:before,
.fa-headphones:before,
.fa-info-circle:before,
.fa-circle-info:before,
.fa-line-chart:before,
.fa-brain:before,
.fa-external-link:before,
.glyphicon-star:before,
.glyphicon-star-empty:before,
.glyphicon-usd:before,
.glyphicon-pause:before,
.glyphicon-flash:before,
.glyphicon-dashboard:before,
.glyphicon-link:before,
.glyphicon-flag:before,
.glyphicon-th-large:before,
.glyphicon-stats:before,
.glyphicon-search:before,
.glyphicon-screenshot:before,
.glyphicon-log-out:before,
.glyphicon-inbox:before,
.glyphicon-home:before,
.glyphicon-heart:before,
.glyphicon-check:before,
.glyphicon-upload:before,
.glyphicon-transfer:before,
.glyphicon-tasks:before,
.glyphicon-road:before,
.glyphicon-plus-sign:before,
.glyphicon-piggy-bank:before,
.glyphicon-minus:before,
.glyphicon-magic:before,
.glyphicon-list:before,
.glyphicon-info-sign:before,
.glyphicon-folder-close:before,
.glyphicon-filter:before,
.glyphicon-cloud:before,
.glyphicon-certificate:before,
.glyphicon-bullhorn:before,
.glyphicon-asterisk:before,
.glyphicon-arrow-right:before,
.fa-angle-down:before {
  font-family: "Framework7 Icons" !important;
  font-weight: normal !important;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  letter-spacing: 0;
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  /* size harmony: F7 glyphs draw slightly small next to legacy metrics */
  font-size: 1.05em;
}

/* --------------------------------------------------------------------------
   Per-icon ligature mappings (class -> verified F7 icon name)
   -------------------------------------------------------------------------- */

/* Navigation / chrome */
.glyphicon-arrow-left:before, .fa-arrow-left:before { content: "arrow_left" !important; }
.glyphicon-chevron-left:before                      { content: "chevron_left" !important; }
.glyphicon-chevron-right:before                     { content: "chevron_right" !important; }
.glyphicon-chevron-down:before, .fa-chevron-down:before, .fa-angle-down:before { content: "chevron_down" !important; }
.fa-chevron-up:before                               { content: "chevron_up" !important; }
.fa-sign-out:before                                 { content: "square_arrow_right" !important; }
.fa-external-link:before                            { content: "arrow_up_right_square" !important; }

/* Lists / documents */
.glyphicon-list-alt:before                          { content: "list_bullet_below_rectangle" !important; }
.glyphicon-th-list:before, .fa-list:before          { content: "list_bullet" !important; }
.fa-tasks:before                                    { content: "checkmark_square" !important; }
.glyphicon-file:before, .fa-file-o:before           { content: "doc" !important; }
.fa-file-text-o:before, .fa-file-word-o:before      { content: "doc_text" !important; }
.fa-file-text:before                                { content: "doc_text_fill" !important; }
.fa-file-pdf-o:before                               { content: "doc_richtext" !important; }
.fa-file-audio-o:before                             { content: "waveform" !important; }
.fa-file-excel-o:before                             { content: "doc_chart" !important; }
.fa-file-powerpoint-o:before                        { content: "rectangle_on_rectangle" !important; }
.fa-file-image-o:before                             { content: "photo" !important; }
.glyphicon-duplicate:before                         { content: "doc_on_doc" !important; }
.glyphicon-folder-open:before, .fa-folder-open:before, .fa-folder-o:before { content: "folder" !important; }
.glyphicon-book:before, .fa-book:before             { content: "book" !important; }
.glyphicon-education:before                         { content: "rosette" !important; }

/* Communication */
.glyphicon-comment:before                           { content: "chat_bubble" !important; }
.fa-comments:before                                 { content: "chat_bubble_2" !important; }
.fa-comment:before                                  { content: "chat_bubble" !important; }
.fa-heart:before                                    { content: "heart" !important; }
.fa-walkie-talkie:before                            { content: "antenna_radiowaves_left_right" !important; }
.glyphicon-send:before                              { content: "paperplane" !important; }
.glyphicon-paperclip:before, .fa-paperclip:before   { content: "paperclip" !important; }
.glyphicon-bell:before                              { content: "bell" !important; }

/* People */
.glyphicon-user:before, .fa-user:before, .fa-user-o:before { content: "person" !important; }
.fa-user-secret:before                              { content: "eye_slash" !important; }

/* Favourites (task-folder star) */
.glyphicon-star:before                              { content: "star_fill" !important; }
.glyphicon-star-empty:before                        { content: "star" !important; }

/* Admin quick-action section icons */
.glyphicon-usd:before                               { content: "money_dollar" !important; }
.glyphicon-pause:before                             { content: "pause" !important; }

/* Status / feedback */
.glyphicon-ok:before, .fa-check:before              { content: "checkmark_alt" !important; }
.glyphicon-ok-circle:before, .fa-check-circle:before, .fa-circle-check:before { content: "checkmark_alt_circle" !important; }
.fa-check-circle-o:before                           { content: "checkmark_circle" !important; }
.glyphicon-remove:before                            { content: "xmark" !important; }
.fa-times-circle:before, .fa-circle-xmark:before    { content: "xmark_circle" !important; }
.glyphicon-warning-sign:before, .fa-warning:before, .fa-triangle-exclamation:before { content: "exclamationmark_triangle" !important; }
.glyphicon-exclamation-sign:before                  { content: "exclamationmark_circle" !important; }
.fa-info-circle:before, .fa-circle-info:before      { content: "info_circle" !important; }
.fa-ban:before                                      { content: "nosign" !important; }
.fa-shield:before                                   { content: "shield" !important; }

/* Time / place */
.glyphicon-time:before, .fa-clock-o:before          { content: "clock" !important; }
.glyphicon-calendar:before, .fa-calendar:before, .fa-calendar-o:before { content: "calendar" !important; }
.glyphicon-map-marker:before, .fa-map-marker:before, .fa-location-dot:before { content: "placemark" !important; }
.glyphicon-plane:before                             { content: "airplane" !important; }

/* Actions */
.glyphicon-plus:before, .fa-plus:before             { content: "plus" !important; }
.glyphicon-pushpin:before                           { content: "pin" !important; }
.glyphicon-trash:before, .fa-trash:before           { content: "trash" !important; }
.glyphicon-pencil:before, .fa-pencil:before         { content: "pencil" !important; }
.fa-search:before                                   { content: "search" !important; }
.glyphicon-eye-open:before, .fa-eye:before          { content: "eye" !important; }
.fa-save:before                                     { content: "floppy_disk" !important; }
.glyphicon-download:before, .fa-download:before     { content: "arrow_down_circle" !important; }
.glyphicon-download-alt:before                      { content: "tray_arrow_down" !important; }
.fa-upload:before                                   { content: "cloud_upload" !important; }
.glyphicon-repeat:before                            { content: "arrow_2_circlepath" !important; }
.fa-refresh:before                                  { content: "arrow_clockwise" !important; }
/* fa-spinner pairs with .fa-spin (rotation untouched, see header note) */
.fa-spinner:before                                  { content: "arrow_2_circlepath" !important; }

/* Media / recording */
.fa-microphone:before                               { content: "mic" !important; }
.fa-play:before                                     { content: "play_fill" !important; }
.fa-pause:before                                    { content: "pause_fill" !important; }
.glyphicon-record:before                            { content: "largecircle_fill_circle" !important; }
.fa-headphones:before                               { content: "headphones" !important; }
.fa-keyboard-o:before                               { content: "keyboard" !important; }

/* System / misc */
.glyphicon-lock:before                              { content: "lock" !important; }
.glyphicon-cog:before                               { content: "gear_alt" !important; }
.glyphicon-wrench:before                            { content: "wrench" !important; }
.glyphicon-hdd:before                               { content: "archivebox" !important; }
.glyphicon-signal:before                            { content: "chart_bar" !important; }
.fa-line-chart:before                               { content: "graph_square" !important; }

/* AI / assistant flavor */
.fa-robot:before                                    { content: "sparkles" !important; }
.fa-magic:before, .fa-wand-magic-sparkles:before    { content: "wand_stars" !important; }
.fa-superpowers:before                              { content: "bolt" !important; }
.fa-brain:before, .fa-lightbulb-o:before            { content: "lightbulb" !important; }

/* Remaining Glyphicons (Sections menu, cards, buttons): every icon in the app is an outline glyph. */
.glyphicon-flash:before                             { content: "bolt" !important; }
.glyphicon-dashboard:before                         { content: "speedometer" !important; }
.glyphicon-link:before                              { content: "link" !important; }
.glyphicon-flag:before                              { content: "flag" !important; }
.glyphicon-th-large:before                          { content: "square_grid_2x2" !important; }
.glyphicon-stats:before                             { content: "chart_bar" !important; }
.glyphicon-search:before                            { content: "search" !important; }
.glyphicon-screenshot:before                        { content: "scope" !important; }
.glyphicon-log-out:before                           { content: "square_arrow_right" !important; }
.glyphicon-inbox:before                             { content: "tray" !important; }
.glyphicon-home:before                              { content: "house" !important; }
.glyphicon-heart:before                             { content: "heart" !important; }
.glyphicon-check:before                             { content: "checkmark_square" !important; }
.glyphicon-upload:before                            { content: "cloud_upload" !important; }
.glyphicon-transfer:before                          { content: "arrow_right_arrow_left" !important; }
.glyphicon-tasks:before                             { content: "square_list" !important; }
.glyphicon-road:before                              { content: "creditcard" !important; }
.glyphicon-plus-sign:before                         { content: "plus_circle" !important; }
.glyphicon-piggy-bank:before                        { content: "money_dollar_circle" !important; }
.glyphicon-minus:before                             { content: "minus" !important; }
.glyphicon-magic:before                             { content: "wand_stars" !important; }
.glyphicon-list:before                              { content: "list_bullet" !important; }
.glyphicon-info-sign:before                         { content: "info_circle" !important; }
.glyphicon-folder-close:before                      { content: "folder" !important; }
.glyphicon-filter:before                            { content: "line_horizontal_3_decrease" !important; }
.glyphicon-cloud:before                             { content: "cloud" !important; }
.glyphicon-certificate:before                       { content: "checkmark_seal" !important; }
.glyphicon-bullhorn:before                          { content: "speaker_2" !important; }
.glyphicon-asterisk:before                          { content: "asterisk_circle" !important; }
.glyphicon-arrow-right:before                       { content: "arrow_right" !important; }
