/* Geometric line icons replace the mixed icon fonts, including Vue-inserted controls.
   Existing semantic classes stay in place for Bootstrap and application handlers. */
:root{
  --im-icon-default:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M4 4h16v16H4zM8 12h8m-4-4v8'/%3E%3C/svg%3E");
  --im-icon-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M4 12h16m-7-7 7 7-7 7'/%3E%3C/svg%3E");
  --im-icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='m5 8 7 7 7-7'/%3E%3C/svg%3E");
  --im-icon-grid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 3h7v7H3zm11 0h7v7h-7zM3 14h7v7H3zm11 0h7v7h-7z'/%3E%3C/svg%3E");
  --im-icon-bot:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M4 7h16v14H4zM12 7V2M1 12h3m16 0h3M8 16h8M7 11h3m4 0h3'/%3E%3C/svg%3E");
  --im-icon-user:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M8 3h8v8H8zM4 22v-6l8-3 8 3v6'/%3E%3C/svg%3E");
  --im-icon-chat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 4h18v13H10l-5 4v-4H3zM7 8h10M7 12h7'/%3E%3C/svg%3E");
  --im-icon-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M2 5h20v14H2zm0 0 10 9L22 5'/%3E%3C/svg%3E");
  --im-icon-send:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='m2 10 20-8-8 20-4-8-8-4Zm8 4L22 2'/%3E%3C/svg%3E");
  --im-icon-bell:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M5 17V8l7-5 7 5v9l2 2H3zm5 5h4M12 1v2'/%3E%3C/svg%3E");
  --im-icon-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 3h12v12H3zm12 12 7 7'/%3E%3C/svg%3E");
  --im-icon-edit:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='m4 15 12-12 5 5L9 20H4zm10-10 5 5M3 23h18'/%3E%3C/svg%3E");
  --im-icon-trash:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 5h18M6 5v17h12V5M9 5V2h6v3m-5 4v9m4-9v9'/%3E%3C/svg%3E");
  --im-icon-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9'%3E%3Cpath d='m3 12 6 6L21 5'/%3E%3C/svg%3E");
  --im-icon-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='m5 5 14 14M5 19 19 5'/%3E%3C/svg%3E");
  --im-icon-plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M12 3v18M3 12h18'/%3E%3C/svg%3E");
  --im-icon-menu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 6h18M3 12h18M3 18h18'/%3E%3C/svg%3E");
  --im-icon-settings:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 6h18M3 12h18M3 18h18M8 3v6m8 0v6m-6 0v6'/%3E%3C/svg%3E");
  --im-icon-help:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 3h18v18H3zM9 9c0-4 6-4 6 0 0 3-3 2-3 6m0 2v1'/%3E%3C/svg%3E");
  --im-icon-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 3h18v18H3zM12 10v7m0-11v1'/%3E%3C/svg%3E");
  --im-icon-wallet:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 5h18v15H3zM3 9h18m-6 5h3M6 17h4'/%3E%3C/svg%3E");
  --im-icon-calendar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 5h18v16H3zM3 10h18M8 2v6m8-6v6M7 14h3m4 0h3m-10 4h3'/%3E%3C/svg%3E");
  --im-icon-folder:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M2 5h8l3 4h9v12H2z'/%3E%3C/svg%3E");
  --im-icon-file:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M5 2h10l5 5v15H5zm10 0v6h5M9 12h7m-7 4h7'/%3E%3C/svg%3E");
  --im-icon-link:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='m8 13-3-3 8-8 7 7-8 8-3-3m7-3 3 3-8 8-7-7 8-8 3 3'/%3E%3C/svg%3E");
  --im-icon-exit:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M10 3H3v18h7m0-9h12m-6-6 6 6-6 6'/%3E%3C/svg%3E");
  --im-icon-eye:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='m2 12 7-7h6l7 7-7 7H9Zm7-3h6v6H9z'/%3E%3C/svg%3E");
  --im-icon-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 3h18v18H3zm0 14 6-6 5 5 3-3 4 4M15 7h2v2h-2z'/%3E%3C/svg%3E");
  --im-icon-chart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 3v18h19M7 17v-5m5 5V8m5 9V4'/%3E%3C/svg%3E");
  --im-icon-shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='m12 2 9 4v8l-9 8-9-8V6zm-5 9 4 4 6-7'/%3E%3C/svg%3E");
  --im-icon-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='m12 2 3 7 7 3-7 3-3 7-3-7-7-3 7-3z'/%3E%3C/svg%3E");
  --im-icon-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M3 3h18v18H3zM12 6v7h5'/%3E%3C/svg%3E");
  --im-icon-geo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M12 2 4 6v7l8 9 8-9V6Zm-3 5h6v6H9z'/%3E%3C/svg%3E");
}
.bi[class]::before,[class^="ri-"]::before,[class*=" ri-"]::before,.bx[class]::before,.fas[class]::before,.fab[class]::before,.fa-solid[class]::before{
  content:""!important;display:inline-block;width:1em;height:1em;background:currentColor;vertical-align:-.12em;mask:var(--im-glyph,var(--im-icon-default)) center/contain no-repeat;-webkit-mask:var(--im-glyph,var(--im-icon-default)) center/contain no-repeat;font-family:inherit!important
}
:is(.bi,.bx,.fas,.fab,[class*="ri-"])[class*="arrow"]{--im-glyph:var(--im-icon-arrow)}
[class*="arrow-up"]::before{transform:rotate(-90deg)}
[class*="arrow-down"]::before{transform:rotate(90deg)}
[class*="arrow-left"]::before{transform:rotate(180deg)}
:is(.bi,.bx,[class*="ri-"])[class*="chevron"]{--im-glyph:var(--im-icon-chevron)}
.bi-chevron-right::before{transform:rotate(-90deg)}.bi-chevron-left::before{transform:rotate(90deg)}.bi-chevron-up::before{transform:rotate(180deg)}
:is(.bi,.bx,[class*="ri-"])[class*="grid"],:is(.bi,[class*="ri-"])[class*="dashboard"]{--im-glyph:var(--im-icon-grid)}
[class*="robot"],.ri-bilibili-fill{--im-glyph:var(--im-icon-bot)}
[class*="person"],[class*="user"],.bi-people,.bi-people-fill,.fa-users{--im-glyph:var(--im-icon-user)}
[class*="chat"],[class*="message"],.fa-comments{--im-glyph:var(--im-icon-chat)}
[class*="envelope"],[class*="mail-"],.fa-envelope{--im-glyph:var(--im-icon-mail)}
[class*="telegram"],[class*="send-"],.bi-send,.fa-paper-plane{--im-glyph:var(--im-icon-send)}
.bi-bell,.bi-bell-fill{--im-glyph:var(--im-icon-bell)}
[class*="search"]{--im-glyph:var(--im-icon-search)}
[class*="pencil"],[class*="edit-"],.bi-pen{--im-glyph:var(--im-icon-edit)}
[class*="trash"],[class*="delete-"]{--im-glyph:var(--im-icon-trash)}
[class*="check"]{--im-glyph:var(--im-icon-check)}
.bi-x,.bi-x-lg,[class*="x-circle"],.ri-close-line{--im-glyph:var(--im-icon-close)}
[class*="plus"],.ri-add-line{--im-glyph:var(--im-icon-plus)}
.bi-list,[class*="menu-line"]{--im-glyph:var(--im-icon-menu)}
[class*="gear"],[class*="settings"],[class*="sliders"]{--im-glyph:var(--im-icon-settings)}
[class*="question"],.fa-question-circle{--im-glyph:var(--im-icon-help)}
[class*="info-circle"],[class*="exclamation"]{--im-glyph:var(--im-icon-info)}
[class*="wallet"],[class*="cash"],[class*="currency"],[class*="bank"],[class*="dollar"],[class*="coin"]{--im-glyph:var(--im-icon-wallet)}
[class*="calendar"]{--im-glyph:var(--im-icon-calendar)}
[class*="folder"]{--im-glyph:var(--im-icon-folder)}
[class*="file"],[class*="newspaper"],[class*="layout-text"]{--im-glyph:var(--im-icon-file)}
[class*="link-"],.bi-link{--im-glyph:var(--im-icon-link)}
[class*="box-arrow-right"],[class*="logout"]{--im-glyph:var(--im-icon-exit)}
[class*="eye"]{--im-glyph:var(--im-icon-eye)}
[class*="image"],[class*="easel"]{--im-glyph:var(--im-icon-image)}
[class*="graph"],[class*="chart"],.bi-activity{--im-glyph:var(--im-icon-chart)}
[class*="shield"],[class*="lock"]{--im-glyph:var(--im-icon-shield)}
[class*="star"],.fa-magic,.fa-bolt{--im-glyph:var(--im-icon-star)}
[class*="clock"],[class*="time-line"]{--im-glyph:var(--im-icon-clock)}
[class*="geo"],[class*="map"],[class*="backpack"]{--im-glyph:var(--im-icon-geo)}
.bi-circle::before{mask:none;-webkit-mask:none;width:.5em;height:.5em;transform:rotate(0)}
.bi:not([class*="bi-"])::before{display:none}
.im-pictogram{object-fit:contain;border-radius:0!important}
[style*="color:red"],[style*="color: red"]{color:var(--red)!important}
[style*="color:gray"],[style*="color: gray"]{color:var(--blue)!important}
