/* Zeah icon system — Lucide Outline, locally vendored.
   The NAV BAR is deliberately Font Awesome Solid: its <i> elements carry
   .sidebar-native-icon, which this file's translation selectors exempt, so
   Font Awesome's own stylesheet styles them untouched (preference, 2026-08-26).
   Everything else is Lucide — legacy Font Awesome class names are translated
   to a Lucide mask below, so dynamic templates need no rewriting. */
.ui-icon {
  display:inline-block;
  width:1em;
  height:1em;
  flex:0 0 auto;
  background-color:currentColor;
  -webkit-mask:var(--ui-icon) center / contain no-repeat;
  mask:var(--ui-icon) center / contain no-repeat;
  vertical-align:-.125em;
}

i:is(.fas,.fa-solid,.fa-regular)[class*="fa-"]:not(.sidebar-native-icon) {
  font-family:inherit;
  font-weight:400;
  font-style:normal;
}
i:is(.fas,.fa-solid,.fa-regular)[class*="fa-"]:not(.sidebar-native-icon)::before {
  content:"";
  display:inline-block;
  width:1em;
  height:1em;
  background-color:currentColor;
  -webkit-mask:var(--ui-icon) center / contain no-repeat;
  mask:var(--ui-icon) center / contain no-repeat;
  vertical-align:-.125em;
}

.fa-arrow-right{--ui-icon:url('/lib/lucide/icons/arrow-right.svg')}
.fa-bars{--ui-icon:url('/lib/lucide/icons/menu.svg')}
.fa-bell{--ui-icon:url('/lib/lucide/icons/bell.svg')}
.fa-briefcase{--ui-icon:url('/lib/lucide/icons/briefcase-business.svg')}
.fa-building{--ui-icon:url('/lib/lucide/icons/building-2.svg')}
.fa-building-columns{--ui-icon:url('/lib/lucide/icons/landmark.svg')}
.fa-calculator{--ui-icon:url('/lib/lucide/icons/calculator.svg')}
/* Selected direction (docs/icon-review/zeah-icons-selected-keep.png):
   comments -> MessagesSquare, keeping the two-bubble reading;
   crossed tools -> Wrench, the closest direct match. */
.fa-comment,
.fa-comments{--ui-icon:url('/lib/lucide/icons/messages-square.svg')}
.fa-screwdriver-wrench{--ui-icon:url('/lib/lucide/icons/wrench.svg')}
.fa-calendar-alt{--ui-icon:url('/lib/lucide/icons/calendar-days.svg')}
.fa-camera{--ui-icon:url('/lib/lucide/icons/images.svg')}
.fa-chart-bar,
/* fa-table-cells-large is the Overview icon; without this line it has no
   mask and renders as an empty box. */
.fa-table-cells-large{--ui-icon:url('/lib/lucide/icons/layout-dashboard.svg')}
.fa-chart-line{--ui-icon:url('/lib/lucide/icons/chart-line.svg')}
.fa-chart-pie{--ui-icon:url('/lib/lucide/icons/chart-pie.svg')}
.fa-chart-simple{--ui-icon:url('/lib/lucide/icons/chart-no-axes-column.svg')}
.fa-chevron-left{--ui-icon:url('/lib/lucide/icons/chevron-left.svg')}
.fa-chevron-right{--ui-icon:url('/lib/lucide/icons/chevron-right.svg')}
.fa-circle{--ui-icon:url('/lib/lucide/icons/circle.svg')}
.fa-circle-check{--ui-icon:url('/lib/lucide/icons/circle-check.svg')}
.fa-clipboard-check{--ui-icon:url('/lib/lucide/icons/clipboard-check.svg')}
.fa-clock{--ui-icon:url('/lib/lucide/icons/clock.svg')}
.fa-clock-rotate-left,.fa-history{--ui-icon:url('/lib/lucide/icons/history.svg')}
.fa-cog{--ui-icon:url('/lib/lucide/icons/settings.svg')}
.fa-coins{--ui-icon:url('/lib/lucide/icons/coins.svg')}
.fa-columns{--ui-icon:url('/lib/lucide/icons/columns-2.svg')}
.fa-credit-card{--ui-icon:url('/lib/lucide/icons/credit-card.svg')}
.fa-dollar-sign{--ui-icon:url('/lib/lucide/icons/chart-no-axes-column-increasing.svg')}
.fa-download{--ui-icon:url('/lib/lucide/icons/download.svg')}
.fa-exclamation-triangle{--ui-icon:url('/lib/lucide/icons/triangle-alert.svg')}
.fa-eye{--ui-icon:url('/lib/lucide/icons/eye.svg')}
.fa-eye-slash{--ui-icon:url('/lib/lucide/icons/eye-off.svg')}
.fa-file-alt,.fa-file-pdf{--ui-icon:url('/lib/lucide/icons/file-text.svg')}
.fa-file-contract{--ui-icon:url('/lib/lucide/icons/file-signature.svg')}
.fa-file-signature{--ui-icon:url('/lib/lucide/icons/file-signature.svg')}
.fa-folder-open{--ui-icon:url('/lib/lucide/icons/folder-open.svg')}
.fa-grip-vertical{--ui-icon:url('/lib/lucide/icons/grip-vertical.svg')}
.fa-hand-holding-dollar,.fa-money-bill-wave,.fa-money-check-dollar{--ui-icon:url('/lib/lucide/icons/hand-coins.svg')}
.fa-hard-hat{--ui-icon:url('/lib/lucide/icons/hard-hat.svg')}
.fa-heart-pulse{--ui-icon:url('/lib/lucide/icons/activity.svg')}
.fa-home{--ui-icon:url('/lib/lucide/icons/house.svg')}
.fa-image{--ui-icon:url('/lib/lucide/icons/images.svg')}
.fa-info-circle{--ui-icon:url('/lib/lucide/icons/info.svg')}
.fa-landmark{--ui-icon:url('/lib/lucide/icons/landmark.svg')}
.fa-location-dot{--ui-icon:url('/lib/lucide/icons/map-pin.svg')}
.fa-note-sticky{--ui-icon:url('/lib/lucide/icons/sticky-note.svg')}
.fa-pen{--ui-icon:url('/lib/lucide/icons/pen-line.svg')}
.fa-plus{--ui-icon:url('/lib/lucide/icons/plus.svg')}
.fa-plus-circle{--ui-icon:url('/lib/lucide/icons/circle-plus.svg')}
.fa-receipt{--ui-icon:url('/lib/lucide/icons/receipt-euro.svg')}
.fa-rotate{--ui-icon:url('/lib/lucide/icons/refresh-cw.svg')}
.fa-scale-balanced{--ui-icon:url('/lib/lucide/icons/scale.svg')}
.fa-sign-out-alt{--ui-icon:url('/lib/lucide/icons/log-out.svg')}
.fa-sliders{--ui-icon:url('/lib/lucide/icons/sliders-horizontal.svg')}
.fa-spinner{--ui-icon:url('/lib/lucide/icons/loader-circle.svg')}
.fa-star{--ui-icon:url('/lib/lucide/icons/star.svg')}
.fa-trash,.fa-trash-can{--ui-icon:url('/lib/lucide/icons/trash-2.svg')}
.fa-undo-alt{--ui-icon:url('/lib/lucide/icons/undo-2.svg')}
.fa-up-right-from-square{--ui-icon:url('/lib/lucide/icons/external-link.svg')}
.fa-upload{--ui-icon:url('/lib/lucide/icons/upload.svg')}
.fa-user-shield{--ui-icon:url('/lib/lucide/icons/user-shield.svg')}
.fa-users{--ui-icon:url('/lib/lucide/icons/users.svg')}
.fa-wallet{--ui-icon:url('/lib/lucide/icons/wallet-cards.svg')}

/* Context-specific meanings that share a legacy Font Awesome class. */
.sidebar-btn[data-tab-id="rent"] .fa-home,
#workspacePrimaryAction .fa-home{--ui-icon:url('/lib/lucide/icons/key-round.svg')}
.sidebar-btn[data-tab-id="tenantDocuments"] .fa-file-alt{--ui-icon:url('/lib/lucide/icons/send.svg')}
.sidebar-btn[data-tab-id="transactions"] .fa-receipt{--ui-icon:url('/lib/lucide/icons/receipt-text.svg')}
.mobile-more-item .fa-bars{--ui-icon:url('/lib/lucide/icons/ellipsis.svg')}
.cal-sidebar-toggle .fa-bars{--ui-icon:url('/lib/lucide/icons/panel-left-open.svg')}
.overview-stat-icon .fa-chart-pie{--ui-icon:url('/lib/lucide/icons/gauge.svg')}

/* KPI stat-card discs get a heavier stroke so they carry the larger disc.
   Stroke width is baked into the SVG -- these render as CSS masks, and a mask
   keeps only the source's alpha -- so the weight cannot come from CSS. The
   bold copies are generated by scripts/make-bold-icons.js; this selector
   (0,2,0) outranks the plain .fa-* mapping (0,1,0). A card icon swapped for
   one with no bold copy just renders at normal weight. */
.overview-stat-icon .fa-file-contract{--ui-icon:url('/lib/lucide/icons/bold/file-signature.svg')}
.overview-stat-icon .fa-money-check-dollar{--ui-icon:url('/lib/lucide/icons/bold/hand-coins.svg')}
.overview-stat-icon .fa-users{--ui-icon:url('/lib/lucide/icons/bold/users.svg')}
.overview-stat-icon .fa-receipt{--ui-icon:url('/lib/lucide/icons/bold/receipt-euro.svg')}

/* Match the sizing rules that previously targeted only Font Awesome <i>. */
.sidebar-btn .ui-icon{width:20px;height:20px}
.workspace-icon-btn .ui-icon,.workspace-primary-action .ui-icon{font-size:1em}
.btn-icon .ui-icon{font-size:1em}
.cmodal-icon .ui-icon{width:48px;height:48px;vertical-align:0}
.fmodal-head-icon .ui-icon{width:24px;height:24px;vertical-align:0}
.toast-icon .ui-icon{width:18px;height:18px;vertical-align:0}
.chat-empty-icon .ui-icon{width:2.5rem;height:2.5rem;vertical-align:0}
button .ui-icon,.btn .ui-icon,.btn-secondary .ui-icon,.btn-accent .ui-icon,.btn-danger .ui-icon,.mbtn .ui-icon{
  vertical-align:-.15em;
  margin-right:.3em;
}
button.btn-icon .ui-icon,.settings-modal-close-btn .ui-icon,.ios-install-dismiss .ui-icon,
.fmodal-close .ui-icon,.carousel-close .ui-icon,.chat-send-btn .ui-icon{
  margin-right:0;
}
.ui-icon-spin{animation:ui-icon-spin 1s linear infinite}
@keyframes ui-icon-spin{to{transform:rotate(360deg)}}
