/* Self-hosted icon fix — replaces the missing Lucide webfont with local SVG masks. */
/* Real Lucide SVG icons (MIT licensed, lucide.dev), downloaded once, served locally — no CDN. */
[class^="icon-"], [class*=" icon-"] {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
}
[class^="icon-"]::before, [class*=" icon-"]::before { content: none !important; }
.icon-activity { -webkit-mask-image: url('../icons/activity.svg') !important; mask-image: url('../icons/activity.svg') !important; }
.icon-alarm-clock { -webkit-mask-image: url('../icons/alarm-clock.svg') !important; mask-image: url('../icons/alarm-clock.svg') !important; }
.icon-arrow-down { -webkit-mask-image: url('../icons/arrow-down.svg') !important; mask-image: url('../icons/arrow-down.svg') !important; }
.icon-arrow-left { -webkit-mask-image: url('../icons/arrow-left.svg') !important; mask-image: url('../icons/arrow-left.svg') !important; }
.icon-arrow-right-left { -webkit-mask-image: url('../icons/arrow-right-left.svg') !important; mask-image: url('../icons/arrow-right-left.svg') !important; }
.icon-arrow-up { -webkit-mask-image: url('../icons/arrow-up.svg') !important; mask-image: url('../icons/arrow-up.svg') !important; }
.icon-badge-check { -webkit-mask-image: url('../icons/badge-check.svg') !important; mask-image: url('../icons/badge-check.svg') !important; }
.icon-ban { -webkit-mask-image: url('../icons/ban.svg') !important; mask-image: url('../icons/ban.svg') !important; }
.icon-bar-chart-2 { -webkit-mask-image: url('../icons/bar-chart-2.svg') !important; mask-image: url('../icons/bar-chart-2.svg') !important; }
.icon-bell-off { -webkit-mask-image: url('../icons/bell-off.svg') !important; mask-image: url('../icons/bell-off.svg') !important; }
.icon-bell { -webkit-mask-image: url('../icons/bell.svg') !important; mask-image: url('../icons/bell.svg') !important; }
.icon-bot { -webkit-mask-image: url('../icons/bot.svg') !important; mask-image: url('../icons/bot.svg') !important; }
.icon-box { -webkit-mask-image: url('../icons/box.svg') !important; mask-image: url('../icons/box.svg') !important; }
.icon-brain { -webkit-mask-image: url('../icons/brain.svg') !important; mask-image: url('../icons/brain.svg') !important; }
.icon-briefcase-business { -webkit-mask-image: url('../icons/briefcase-business.svg') !important; mask-image: url('../icons/briefcase-business.svg') !important; }
.icon-building-2 { -webkit-mask-image: url('../icons/building-2.svg') !important; mask-image: url('../icons/building-2.svg') !important; }
.icon-calendar-check { -webkit-mask-image: url('../icons/calendar-check.svg') !important; mask-image: url('../icons/calendar-check.svg') !important; }
.icon-calendar-days { -webkit-mask-image: url('../icons/calendar-days.svg') !important; mask-image: url('../icons/calendar-days.svg') !important; }
.icon-calendar-x { -webkit-mask-image: url('../icons/calendar-x.svg') !important; mask-image: url('../icons/calendar-x.svg') !important; }
.icon-calendar { -webkit-mask-image: url('../icons/calendar.svg') !important; mask-image: url('../icons/calendar.svg') !important; }
.icon-camera { -webkit-mask-image: url('../icons/camera.svg') !important; mask-image: url('../icons/camera.svg') !important; }
.icon-check-check { -webkit-mask-image: url('../icons/check-check.svg') !important; mask-image: url('../icons/check-check.svg') !important; }
.icon-check { -webkit-mask-image: url('../icons/check.svg') !important; mask-image: url('../icons/check.svg') !important; }
.icon-chevron-down { -webkit-mask-image: url('../icons/chevron-down.svg') !important; mask-image: url('../icons/chevron-down.svg') !important; }
.icon-chevron-left { -webkit-mask-image: url('../icons/chevron-left.svg') !important; mask-image: url('../icons/chevron-left.svg') !important; }
.icon-chevron-right { -webkit-mask-image: url('../icons/chevron-right.svg') !important; mask-image: url('../icons/chevron-right.svg') !important; }
.icon-circle-alert { -webkit-mask-image: url('../icons/circle-alert.svg') !important; mask-image: url('../icons/circle-alert.svg') !important; }
.icon-circle-check { -webkit-mask-image: url('../icons/circle-check.svg') !important; mask-image: url('../icons/circle-check.svg') !important; }
.icon-circle-dot { -webkit-mask-image: url('../icons/circle-dot.svg') !important; mask-image: url('../icons/circle-dot.svg') !important; }
.icon-circle-plus { -webkit-mask-image: url('../icons/circle-plus.svg') !important; mask-image: url('../icons/circle-plus.svg') !important; }
.icon-circle-user { -webkit-mask-image: url('../icons/circle-user.svg') !important; mask-image: url('../icons/circle-user.svg') !important; }
.icon-clock { -webkit-mask-image: url('../icons/clock.svg') !important; mask-image: url('../icons/clock.svg') !important; }
.icon-cloud { -webkit-mask-image: url('../icons/cloud.svg') !important; mask-image: url('../icons/cloud.svg') !important; }
.icon-contact-round { -webkit-mask-image: url('../icons/contact-round.svg') !important; mask-image: url('../icons/contact-round.svg') !important; }
.icon-cpu { -webkit-mask-image: url('../icons/cpu.svg') !important; mask-image: url('../icons/cpu.svg') !important; }
.icon-credit-card { -webkit-mask-image: url('../icons/credit-card.svg') !important; mask-image: url('../icons/credit-card.svg') !important; }
.icon-crown { -webkit-mask-image: url('../icons/crown.svg') !important; mask-image: url('../icons/crown.svg') !important; }
.icon-database { -webkit-mask-image: url('../icons/database.svg') !important; mask-image: url('../icons/database.svg') !important; }
.icon-dollar-sign { -webkit-mask-image: url('../icons/dollar-sign.svg') !important; mask-image: url('../icons/dollar-sign.svg') !important; }
.icon-download { -webkit-mask-image: url('../icons/download.svg') !important; mask-image: url('../icons/download.svg') !important; }
.icon-ellipsis-vertical { -webkit-mask-image: url('../icons/ellipsis-vertical.svg') !important; mask-image: url('../icons/ellipsis-vertical.svg') !important; }
.icon-eye-off { -webkit-mask-image: url('../icons/eye-off.svg') !important; mask-image: url('../icons/eye-off.svg') !important; }
.icon-eye { -webkit-mask-image: url('../icons/eye.svg') !important; mask-image: url('../icons/eye.svg') !important; }
.icon-file-check { -webkit-mask-image: url('../icons/file-check.svg') !important; mask-image: url('../icons/file-check.svg') !important; }
.icon-file-down { -webkit-mask-image: url('../icons/file-down.svg') !important; mask-image: url('../icons/file-down.svg') !important; }
.icon-file-plus-2 { -webkit-mask-image: url('../icons/file-plus-2.svg') !important; mask-image: url('../icons/file-plus-2.svg') !important; }
.icon-file-spreadsheet { -webkit-mask-image: url('../icons/file-spreadsheet.svg') !important; mask-image: url('../icons/file-spreadsheet.svg') !important; }
.icon-file-text { -webkit-mask-image: url('../icons/file-text.svg') !important; mask-image: url('../icons/file-text.svg') !important; }
.icon-file { -webkit-mask-image: url('../icons/file.svg') !important; mask-image: url('../icons/file.svg') !important; }
.icon-filter { -webkit-mask-image: url('../icons/filter.svg') !important; mask-image: url('../icons/filter.svg') !important; }
.icon-flag { -webkit-mask-image: url('../icons/flag.svg') !important; mask-image: url('../icons/flag.svg') !important; }
.icon-flask-conical { -webkit-mask-image: url('../icons/flask-conical.svg') !important; mask-image: url('../icons/flask-conical.svg') !important; }
.icon-folder-kanban { -webkit-mask-image: url('../icons/folder-kanban.svg') !important; mask-image: url('../icons/folder-kanban.svg') !important; }
.icon-folder-open { -webkit-mask-image: url('../icons/folder-open.svg') !important; mask-image: url('../icons/folder-open.svg') !important; }
.icon-gauge { -webkit-mask-image: url('../icons/gauge.svg') !important; mask-image: url('../icons/gauge.svg') !important; }
.icon-ghost { -webkit-mask-image: url('../icons/ghost.svg') !important; mask-image: url('../icons/ghost.svg') !important; }
.icon-globe { -webkit-mask-image: url('../icons/globe.svg') !important; mask-image: url('../icons/globe.svg') !important; }
.icon-grip { -webkit-mask-image: url('../icons/grip.svg') !important; mask-image: url('../icons/grip.svg') !important; }
.icon-handshake { -webkit-mask-image: url('../icons/handshake.svg') !important; mask-image: url('../icons/handshake.svg') !important; }
.icon-hard-drive { -webkit-mask-image: url('../icons/hard-drive.svg') !important; mask-image: url('../icons/hard-drive.svg') !important; }
.icon-headset { -webkit-mask-image: url('../icons/headset.svg') !important; mask-image: url('../icons/headset.svg') !important; }
.icon-history { -webkit-mask-image: url('../icons/history.svg') !important; mask-image: url('../icons/history.svg') !important; }
.icon-home { -webkit-mask-image: url('../icons/home.svg') !important; mask-image: url('../icons/home.svg') !important; }
.icon-hourglass { -webkit-mask-image: url('../icons/hourglass.svg') !important; mask-image: url('../icons/hourglass.svg') !important; }
.icon-inbox { -webkit-mask-image: url('../icons/inbox.svg') !important; mask-image: url('../icons/inbox.svg') !important; }
.icon-info { -webkit-mask-image: url('../icons/info.svg') !important; mask-image: url('../icons/info.svg') !important; }
.icon-key { -webkit-mask-image: url('../icons/key.svg') !important; mask-image: url('../icons/key.svg') !important; }
.icon-layers { -webkit-mask-image: url('../icons/layers.svg') !important; mask-image: url('../icons/layers.svg') !important; }
.icon-layout-dashboard { -webkit-mask-image: url('../icons/layout-dashboard.svg') !important; mask-image: url('../icons/layout-dashboard.svg') !important; }
.icon-life-buoy { -webkit-mask-image: url('../icons/life-buoy.svg') !important; mask-image: url('../icons/life-buoy.svg') !important; }
.icon-list-checks { -webkit-mask-image: url('../icons/list-checks.svg') !important; mask-image: url('../icons/list-checks.svg') !important; }
.icon-list-collapse { -webkit-mask-image: url('../icons/list-collapse.svg') !important; mask-image: url('../icons/list-collapse.svg') !important; }
.icon-lock { -webkit-mask-image: url('../icons/lock.svg') !important; mask-image: url('../icons/lock.svg') !important; }
.icon-log-in { -webkit-mask-image: url('../icons/log-in.svg') !important; mask-image: url('../icons/log-in.svg') !important; }
.icon-log-out { -webkit-mask-image: url('../icons/log-out.svg') !important; mask-image: url('../icons/log-out.svg') !important; }
.icon-mail { -webkit-mask-image: url('../icons/mail.svg') !important; mask-image: url('../icons/mail.svg') !important; }
.icon-map-pin { -webkit-mask-image: url('../icons/map-pin.svg') !important; mask-image: url('../icons/map-pin.svg') !important; }
.icon-menu { -webkit-mask-image: url('../icons/menu.svg') !important; mask-image: url('../icons/menu.svg') !important; }
.icon-message-circle { -webkit-mask-image: url('../icons/message-circle.svg') !important; mask-image: url('../icons/message-circle.svg') !important; }
.icon-message-square { -webkit-mask-image: url('../icons/message-square.svg') !important; mask-image: url('../icons/message-square.svg') !important; }
.icon-mic { -webkit-mask-image: url('../icons/mic.svg') !important; mask-image: url('../icons/mic.svg') !important; }
.icon-monitor { -webkit-mask-image: url('../icons/monitor.svg') !important; mask-image: url('../icons/monitor.svg') !important; }
.icon-moon { -webkit-mask-image: url('../icons/moon.svg') !important; mask-image: url('../icons/moon.svg') !important; }
.icon-network { -webkit-mask-image: url('../icons/network.svg') !important; mask-image: url('../icons/network.svg') !important; }
.icon-package-x { -webkit-mask-image: url('../icons/package-x.svg') !important; mask-image: url('../icons/package-x.svg') !important; }
.icon-paperclip { -webkit-mask-image: url('../icons/paperclip.svg') !important; mask-image: url('../icons/paperclip.svg') !important; }
.icon-pen { -webkit-mask-image: url('../icons/pen.svg') !important; mask-image: url('../icons/pen.svg') !important; }
.icon-phone-off { -webkit-mask-image: url('../icons/phone-off.svg') !important; mask-image: url('../icons/phone-off.svg') !important; }
.icon-phone { -webkit-mask-image: url('../icons/phone.svg') !important; mask-image: url('../icons/phone.svg') !important; }
.icon-pin { -webkit-mask-image: url('../icons/pin.svg') !important; mask-image: url('../icons/pin.svg') !important; }
.icon-plus { -webkit-mask-image: url('../icons/plus.svg') !important; mask-image: url('../icons/plus.svg') !important; }
.icon-printer { -webkit-mask-image: url('../icons/printer.svg') !important; mask-image: url('../icons/printer.svg') !important; }
.icon-puzzle { -webkit-mask-image: url('../icons/puzzle.svg') !important; mask-image: url('../icons/puzzle.svg') !important; }
.icon-receipt { -webkit-mask-image: url('../icons/receipt.svg') !important; mask-image: url('../icons/receipt.svg') !important; }
.icon-refresh-cw { -webkit-mask-image: url('../icons/refresh-cw.svg') !important; mask-image: url('../icons/refresh-cw.svg') !important; }
.icon-rotate-cw { -webkit-mask-image: url('../icons/rotate-cw.svg') !important; mask-image: url('../icons/rotate-cw.svg') !important; }
.icon-save { -webkit-mask-image: url('../icons/save.svg') !important; mask-image: url('../icons/save.svg') !important; }
.icon-search { -webkit-mask-image: url('../icons/search.svg') !important; mask-image: url('../icons/search.svg') !important; }
.icon-send { -webkit-mask-image: url('../icons/send.svg') !important; mask-image: url('../icons/send.svg') !important; }
.icon-server { -webkit-mask-image: url('../icons/server.svg') !important; mask-image: url('../icons/server.svg') !important; }
.icon-settings { -webkit-mask-image: url('../icons/settings.svg') !important; mask-image: url('../icons/settings.svg') !important; }
.icon-shield-half { -webkit-mask-image: url('../icons/shield-half.svg') !important; mask-image: url('../icons/shield-half.svg') !important; }
.icon-shield { -webkit-mask-image: url('../icons/shield.svg') !important; mask-image: url('../icons/shield.svg') !important; }
.icon-shopping-bag { -webkit-mask-image: url('../icons/shopping-bag.svg') !important; mask-image: url('../icons/shopping-bag.svg') !important; }
.icon-shopping-cart { -webkit-mask-image: url('../icons/shopping-cart.svg') !important; mask-image: url('../icons/shopping-cart.svg') !important; }
.icon-siren { -webkit-mask-image: url('../icons/siren.svg') !important; mask-image: url('../icons/siren.svg') !important; }
.icon-sparkles { -webkit-mask-image: url('../icons/sparkles.svg') !important; mask-image: url('../icons/sparkles.svg') !important; }
.icon-square-check { -webkit-mask-image: url('../icons/square-check.svg') !important; mask-image: url('../icons/square-check.svg') !important; }
.icon-star { -webkit-mask-image: url('../icons/star.svg') !important; mask-image: url('../icons/star.svg') !important; }
.icon-store { -webkit-mask-image: url('../icons/store.svg') !important; mask-image: url('../icons/store.svg') !important; }
.icon-table { -webkit-mask-image: url('../icons/table.svg') !important; mask-image: url('../icons/table.svg') !important; }
.icon-tags { -webkit-mask-image: url('../icons/tags.svg') !important; mask-image: url('../icons/tags.svg') !important; }
.icon-target { -webkit-mask-image: url('../icons/target.svg') !important; mask-image: url('../icons/target.svg') !important; }
.icon-thermometer { -webkit-mask-image: url('../icons/thermometer.svg') !important; mask-image: url('../icons/thermometer.svg') !important; }
.icon-ticket { -webkit-mask-image: url('../icons/ticket.svg') !important; mask-image: url('../icons/ticket.svg') !important; }
.icon-trash-2 { -webkit-mask-image: url('../icons/trash-2.svg') !important; mask-image: url('../icons/trash-2.svg') !important; }
.icon-trending-up { -webkit-mask-image: url('../icons/trending-up.svg') !important; mask-image: url('../icons/trending-up.svg') !important; }
.icon-triangle-alert { -webkit-mask-image: url('../icons/triangle-alert.svg') !important; mask-image: url('../icons/triangle-alert.svg') !important; }
.icon-trophy { -webkit-mask-image: url('../icons/trophy.svg') !important; mask-image: url('../icons/trophy.svg') !important; }
.icon-upload { -webkit-mask-image: url('../icons/upload.svg') !important; mask-image: url('../icons/upload.svg') !important; }
.icon-user-cog { -webkit-mask-image: url('../icons/user-cog.svg') !important; mask-image: url('../icons/user-cog.svg') !important; }
.icon-user-pen { -webkit-mask-image: url('../icons/user-pen.svg') !important; mask-image: url('../icons/user-pen.svg') !important; }
.icon-user-plus { -webkit-mask-image: url('../icons/user-plus.svg') !important; mask-image: url('../icons/user-plus.svg') !important; }
.icon-user-x { -webkit-mask-image: url('../icons/user-x.svg') !important; mask-image: url('../icons/user-x.svg') !important; }
.icon-users-round { -webkit-mask-image: url('../icons/users-round.svg') !important; mask-image: url('../icons/users-round.svg') !important; }
.icon-users { -webkit-mask-image: url('../icons/users.svg') !important; mask-image: url('../icons/users.svg') !important; }
.icon-video { -webkit-mask-image: url('../icons/video.svg') !important; mask-image: url('../icons/video.svg') !important; }
.icon-volume-2 { -webkit-mask-image: url('../icons/volume-2.svg') !important; mask-image: url('../icons/volume-2.svg') !important; }
.icon-wallet { -webkit-mask-image: url('../icons/wallet.svg') !important; mask-image: url('../icons/wallet.svg') !important; }
.icon-wand-sparkles { -webkit-mask-image: url('../icons/wand-sparkles.svg') !important; mask-image: url('../icons/wand-sparkles.svg') !important; }
.icon-wifi { -webkit-mask-image: url('../icons/wifi.svg') !important; mask-image: url('../icons/wifi.svg') !important; }
.icon-workflow { -webkit-mask-image: url('../icons/workflow.svg') !important; mask-image: url('../icons/workflow.svg') !important; }
.icon-x { -webkit-mask-image: url('../icons/x.svg') !important; mask-image: url('../icons/x.svg') !important; }
.icon-copy { -webkit-mask-image: url('../icons/copy.svg') !important; mask-image: url('../icons/copy.svg') !important; }

/* DataTables' own search-box icon isn't an .icon-* element — it's a bare ::before glyph from the
   broken 'lucide' webfont (zentic.css), so the universal fix above never reaches it. Replace it
   with the same self-hosted SVG-mask approach, same position as the original rule. */
div.dataTables_wrapper div.dataTables_filter label::before {
  content: '' !important;
  font-family: initial !important;
  display: inline-block;
  width: 14px;
  height: 14px;
  background-color: var(--zc-text-muted);
  -webkit-mask-image: url('../icons/search.svg') !important;
  mask-image: url('../icons/search.svg') !important;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
}

/* The DataTables "per page" length <select> collapses to its shortest-option intrinsic width
   (the template's own `width: 70% !important` never resolves against its inline-level container),
   cramming "10"/"100" against the native arrow. Give it a fixed, comfortable width instead. */
.dataTables_wrapper .dataTables_length select {
  width: 72px !important;
  min-width: 72px;
}

/* Real Webyne brand logo — wrapped in a white chip so it stays legible on the
   dark sidebar/topbar background in dark mode too (the logo's own text is dark navy). */
.brand-logo-chip {
  display: inline-flex;
  align-items: center;
  background: #fff;
  border-radius: 8px;
  padding: 5px 10px;
  line-height: 0;
}
.brand-logo-chip img {
  display: block;
  width: auto;
}
