/**
 * Phosphor Icons via CSS ::before pseudo-element + mask-image
 *
 * Using ::before (same pattern as Font Awesome) so the icon renders
 * correctly even when there is text inside the <i> tag, e.g.:
 *   <i class="ph ph-plus mr-2"></i>Add user
 *
 * Usage:  <i class="ph ph-trash text-red-500"></i>
 *
 * Icon size follows the inherited font-size (1em).
 */

/* ─── Base class ─────────────────────────────────────────────────────────── */
.ph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: -0.125em;
    line-height: 1;
}

.ph::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    flex-shrink: 0;
}

/* ─── Spin animation ─────────────────────────────────────────────────────── */
@keyframes ph-spin {
    from { transform: rotate(0deg);   }
    to   { transform: rotate(360deg); }
}
.ph.ph-spin::before {
    animation: ph-spin 1s linear infinite;
}

/* ─── Icon map ───────────────────────────────────────────────────────────── */

/* Arrows & Navigation */
.ph-arrow-left::before        { -webkit-mask-image: url('../icons/arrow-left.svg');         mask-image: url('../icons/arrow-left.svg'); }
.ph-arrow-right::before       { -webkit-mask-image: url('../icons/arrow-right.svg');        mask-image: url('../icons/arrow-right.svg'); }
.ph-arrow-up::before          { -webkit-mask-image: url('../icons/arrow-up.svg');           mask-image: url('../icons/arrow-up.svg'); }
.ph-arrow-down::before        { -webkit-mask-image: url('../icons/arrow-down.svg');         mask-image: url('../icons/arrow-down.svg'); }
.ph-arrow-clockwise::before   { -webkit-mask-image: url('../icons/arrow-clockwise.svg');    mask-image: url('../icons/arrow-clockwise.svg'); }
.ph-arrow-counter-clockwise::before { -webkit-mask-image: url('../icons/arrow-counter-clockwise.svg'); mask-image: url('../icons/arrow-counter-clockwise.svg'); }
.ph-arrows-clockwise::before  { -webkit-mask-image: url('../icons/arrows-clockwise.svg');   mask-image: url('../icons/arrows-clockwise.svg'); }
.ph-arrow-bend-right-down::before { -webkit-mask-image: url('../icons/arrow-bend-right-down.svg'); mask-image: url('../icons/arrow-bend-right-down.svg'); }
.ph-trend-up::before          { -webkit-mask-image: url('../icons/trend-up.svg');           mask-image: url('../icons/trend-up.svg'); }
.ph-arrow-square-out::before  { -webkit-mask-image: url('../icons/arrow-square-out.svg');   mask-image: url('../icons/arrow-square-out.svg'); }

/* Chevrons / Carets */
.ph-caret-up::before          { -webkit-mask-image: url('../icons/caret-up.svg');           mask-image: url('../icons/caret-up.svg'); }
.ph-caret-down::before        { -webkit-mask-image: url('../icons/caret-down.svg');         mask-image: url('../icons/caret-down.svg'); }
.ph-caret-left::before        { -webkit-mask-image: url('../icons/caret-left.svg');         mask-image: url('../icons/caret-left.svg'); }
.ph-caret-right::before       { -webkit-mask-image: url('../icons/caret-right.svg');        mask-image: url('../icons/caret-right.svg'); }
.ph-caret-up-down::before     { -webkit-mask-image: url('../icons/caret-up-down.svg');      mask-image: url('../icons/caret-up-down.svg'); }
.ph-arrows-down-up::before    { -webkit-mask-image: url('../icons/arrows-down-up.svg');     mask-image: url('../icons/arrows-down-up.svg'); }
.ph-caret-double-left::before { -webkit-mask-image: url('../icons/caret-double-left.svg');  mask-image: url('../icons/caret-double-left.svg'); }
.ph-caret-double-right::before{ -webkit-mask-image: url('../icons/caret-double-right.svg'); mask-image: url('../icons/caret-double-right.svg'); }

/* Actions */
.ph-plus::before              { -webkit-mask-image: url('../icons/plus.svg');               mask-image: url('../icons/plus.svg'); }
.ph-plus-circle::before       { -webkit-mask-image: url('../icons/plus-circle.svg');        mask-image: url('../icons/plus-circle.svg'); }
.ph-minus::before             { -webkit-mask-image: url('../icons/minus.svg');              mask-image: url('../icons/minus.svg'); }
.ph-x::before                 { -webkit-mask-image: url('../icons/x.svg');                  mask-image: url('../icons/x.svg'); }
.ph-x-circle::before          { -webkit-mask-image: url('../icons/x-circle.svg');           mask-image: url('../icons/x-circle.svg'); }
.ph-check::before             { -webkit-mask-image: url('../icons/check.svg');              mask-image: url('../icons/check.svg'); }
.ph-check-circle::before      { -webkit-mask-image: url('../icons/check-circle.svg');       mask-image: url('../icons/check-circle.svg'); }
.ph-check-square::before      { -webkit-mask-image: url('../icons/check-square.svg');       mask-image: url('../icons/check-square.svg'); }
.ph-checks::before            { -webkit-mask-image: url('../icons/checks.svg');             mask-image: url('../icons/checks.svg'); }
.ph-prohibit::before          { -webkit-mask-image: url('../icons/prohibit.svg');           mask-image: url('../icons/prohibit.svg'); }
.ph-trash::before             { -webkit-mask-image: url('../icons/trash.svg');              mask-image: url('../icons/trash.svg'); }
.ph-trash-alt::before         { -webkit-mask-image: url('../icons/trash.svg');              mask-image: url('../icons/trash.svg'); }
.ph-trash-simple::before      { -webkit-mask-image: url('../icons/trash-simple.svg');       mask-image: url('../icons/trash-simple.svg'); }
.ph-pencil-simple::before     { -webkit-mask-image: url('../icons/pencil-simple.svg');      mask-image: url('../icons/pencil-simple.svg'); }
.ph-pen::before               { -webkit-mask-image: url('../icons/pen.svg');                mask-image: url('../icons/pen.svg'); }
.ph-pencil::before            { -webkit-mask-image: url('../icons/pencil.svg');             mask-image: url('../icons/pencil.svg'); }
.ph-upload::before            { -webkit-mask-image: url('../icons/upload.svg');             mask-image: url('../icons/upload.svg'); }
.ph-upload-simple::before     { -webkit-mask-image: url('../icons/upload-simple.svg');      mask-image: url('../icons/upload-simple.svg'); }
.ph-download::before          { -webkit-mask-image: url('../icons/download.svg');           mask-image: url('../icons/download.svg'); }
.ph-download-simple::before   { -webkit-mask-image: url('../icons/download-simple.svg');    mask-image: url('../icons/download-simple.svg'); }
.ph-copy::before              { -webkit-mask-image: url('../icons/copy.svg');               mask-image: url('../icons/copy.svg'); }
.ph-share::before             { -webkit-mask-image: url('../icons/share.svg');              mask-image: url('../icons/share.svg'); }
.ph-share-network::before     { -webkit-mask-image: url('../icons/share-network.svg');      mask-image: url('../icons/share-network.svg'); }
.ph-floppy-disk::before       { -webkit-mask-image: url('../icons/floppy-disk.svg');        mask-image: url('../icons/floppy-disk.svg'); }
.ph-funnel::before            { -webkit-mask-image: url('../icons/funnel.svg');             mask-image: url('../icons/funnel.svg'); }
.ph-funnel-simple::before     { -webkit-mask-image: url('../icons/funnel-simple.svg');      mask-image: url('../icons/funnel-simple.svg'); }
.ph-sort-ascending::before    { -webkit-mask-image: url('../icons/sort-ascending.svg');     mask-image: url('../icons/sort-ascending.svg'); }
.ph-sort-descending::before   { -webkit-mask-image: url('../icons/sort-descending.svg');    mask-image: url('../icons/sort-descending.svg'); }

/* UI Elements */
.ph-list::before              { -webkit-mask-image: url('../icons/list.svg');               mask-image: url('../icons/list.svg'); }
.ph-list-bullets::before      { -webkit-mask-image: url('../icons/list-bullets.svg');       mask-image: url('../icons/list-bullets.svg'); }
.ph-list-checks::before       { -webkit-mask-image: url('../icons/list-checks.svg');        mask-image: url('../icons/list-checks.svg'); }
.ph-dots-three::before        { -webkit-mask-image: url('../icons/dots-three.svg');         mask-image: url('../icons/dots-three.svg'); }
.ph-dots-three-vertical::before { -webkit-mask-image: url('../icons/dots-three-vertical.svg'); mask-image: url('../icons/dots-three-vertical.svg'); }
.ph-sidebar::before           { -webkit-mask-image: url('../icons/sidebar.svg');            mask-image: url('../icons/sidebar.svg'); }
.ph-columns::before           { -webkit-mask-image: url('../icons/columns.svg');            mask-image: url('../icons/columns.svg'); }
.ph-squares-four::before      { -webkit-mask-image: url('../icons/squares-four.svg');       mask-image: url('../icons/squares-four.svg'); }
.ph-text-align-left::before   { -webkit-mask-image: url('../icons/text-align-left.svg');    mask-image: url('../icons/text-align-left.svg'); }
.ph-text-indent::before       { -webkit-mask-image: url('../icons/text-indent.svg');        mask-image: url('../icons/text-indent.svg'); }
.ph-text-outdent::before      { -webkit-mask-image: url('../icons/text-outdent.svg');       mask-image: url('../icons/text-outdent.svg'); }

/* Search */
.ph-magnifying-glass::before  { -webkit-mask-image: url('../icons/magnifying-glass.svg');   mask-image: url('../icons/magnifying-glass.svg'); }

/* Users & People */
.ph-user::before              { -webkit-mask-image: url('../icons/user.svg');               mask-image: url('../icons/user.svg'); }
.ph-user-circle::before       { -webkit-mask-image: url('../icons/user-circle.svg');        mask-image: url('../icons/user-circle.svg'); }
.ph-user-plus::before         { -webkit-mask-image: url('../icons/user-plus.svg');          mask-image: url('../icons/user-plus.svg'); }
.ph-user-minus::before        { -webkit-mask-image: url('../icons/user-minus.svg');         mask-image: url('../icons/user-minus.svg'); }
.ph-user-check::before        { -webkit-mask-image: url('../icons/user-check.svg');         mask-image: url('../icons/user-check.svg'); }
.ph-user-gear::before         { -webkit-mask-image: url('../icons/user-gear.svg');          mask-image: url('../icons/user-gear.svg'); }
.ph-users::before             { -webkit-mask-image: url('../icons/users.svg');              mask-image: url('../icons/users.svg'); }
.ph-users-three::before       { -webkit-mask-image: url('../icons/users-three.svg');        mask-image: url('../icons/users-three.svg'); }
.ph-person::before            { -webkit-mask-image: url('../icons/person.svg');             mask-image: url('../icons/person.svg'); }

/* Communication */
.ph-envelope::before          { -webkit-mask-image: url('../icons/envelope.svg');           mask-image: url('../icons/envelope.svg'); }
.ph-envelope-simple::before   { -webkit-mask-image: url('../icons/envelope-simple.svg');    mask-image: url('../icons/envelope-simple.svg'); }
.ph-phone::before             { -webkit-mask-image: url('../icons/phone.svg');              mask-image: url('../icons/phone.svg'); }
.ph-chat::before              { -webkit-mask-image: url('../icons/comment-bubble.svg');               mask-image: url('../icons/comment-bubble.svg'); }
.ph-chat-circle::before       { -webkit-mask-image: url('../icons/comment-bubble-circle.svg');        mask-image: url('../icons/comment-bubble-circle.svg'); }
.ph-chats::before             { -webkit-mask-image: url('../icons/comment-bubbles.svg');              mask-image: url('../icons/comment-bubbles.svg'); }
.ph-paper-plane::before       { -webkit-mask-image: url('../icons/paper-plane.svg');        mask-image: url('../icons/paper-plane.svg'); }
.ph-paper-plane-tilt::before  { -webkit-mask-image: url('../icons/paper-plane-tilt.svg');   mask-image: url('../icons/paper-plane-tilt.svg'); }
.ph-paperclip::before         { -webkit-mask-image: url('../icons/paperclip.svg');          mask-image: url('../icons/paperclip.svg'); }
.ph-bell::before              { -webkit-mask-image: url('../icons/bell.svg');               mask-image: url('../icons/bell.svg'); }
.ph-bell-slash::before        { -webkit-mask-image: url('../icons/bell-slash.svg');         mask-image: url('../icons/bell-slash.svg'); }
.ph-bell-ringing::before      { -webkit-mask-image: url('../icons/bell-ringing.svg');       mask-image: url('../icons/bell-ringing.svg'); }

/* Files & Folders */
.ph-file::before              { -webkit-mask-image: url('../icons/file.svg');               mask-image: url('../icons/file.svg'); }
.ph-file-plus::before         { -webkit-mask-image: url('../icons/file-plus.svg');          mask-image: url('../icons/file-plus.svg'); }
.ph-file-text::before         { -webkit-mask-image: url('../icons/file-text.svg');          mask-image: url('../icons/file-text.svg'); }
.ph-file-alt::before          { -webkit-mask-image: url('../icons/file-text.svg');          mask-image: url('../icons/file-text.svg'); }
.ph-file-archive::before      { -webkit-mask-image: url('../icons/file-archive.svg');       mask-image: url('../icons/file-archive.svg'); }
.ph-file-audio::before        { -webkit-mask-image: url('../icons/file-audio.svg');         mask-image: url('../icons/file-audio.svg'); }
.ph-file-image::before        { -webkit-mask-image: url('../icons/file-image.svg');         mask-image: url('../icons/file-image.svg'); }
.ph-file-pdf::before          { -webkit-mask-image: url('../icons/file-pdf.svg');           mask-image: url('../icons/file-pdf.svg'); }
.ph-file-video::before        { -webkit-mask-image: url('../icons/file-video.svg');         mask-image: url('../icons/file-video.svg'); }
.ph-file-xls::before          { -webkit-mask-image: url('../icons/file-xls.svg');           mask-image: url('../icons/file-xls.svg'); }
.ph-file-csv::before          { -webkit-mask-image: url('../icons/file-csv.svg');           mask-image: url('../icons/file-csv.svg'); }
.ph-file-doc::before          { -webkit-mask-image: url('../icons/file-doc.svg');           mask-image: url('../icons/file-doc.svg'); }
.ph-file-ppt::before          { -webkit-mask-image: url('../icons/file-ppt.svg');           mask-image: url('../icons/file-ppt.svg'); }
.ph-folder::before            { -webkit-mask-image: url('../icons/folder.svg');             mask-image: url('../icons/folder.svg'); }
.ph-folder-open::before       { -webkit-mask-image: url('../icons/folder-open.svg');        mask-image: url('../icons/folder-open.svg'); }
.ph-folder-simple::before     { -webkit-mask-image: url('../icons/folder-simple.svg');      mask-image: url('../icons/folder-simple.svg'); }
.ph-archive::before           { -webkit-mask-image: url('../icons/archive.svg');            mask-image: url('../icons/archive.svg'); }
.ph-stack::before             { -webkit-mask-image: url('../icons/stack.svg');              mask-image: url('../icons/stack.svg'); }
.ph-tray::before              { -webkit-mask-image: url('../icons/tray.svg');               mask-image: url('../icons/tray.svg'); }
.ph-cloud-arrow-up::before     { -webkit-mask-image: url('../icons/cloud-arrow-up.svg');     mask-image: url('../icons/cloud-arrow-up.svg'); }
.ph-cloud-arrow-down::before   { -webkit-mask-image: url('../icons/cloud-arrow-down.svg');   mask-image: url('../icons/cloud-arrow-down.svg'); }

/* Calendar & Time */
.ph-calendar::before          { -webkit-mask-image: url('../icons/calendar.svg');           mask-image: url('../icons/calendar.svg'); }
.ph-calendar-blank::before    { -webkit-mask-image: url('../icons/calendar-blank.svg');     mask-image: url('../icons/calendar-blank.svg'); }
.ph-calendar-alt::before      { -webkit-mask-image: url('../icons/calendar-blank.svg');     mask-image: url('../icons/calendar-blank.svg'); }
.ph-calendar-day::before      { -webkit-mask-image: url('../icons/calendar-dot.svg');        mask-image: url('../icons/calendar-dot.svg'); }
.ph-calendar-check::before    { -webkit-mask-image: url('../icons/calendar-check.svg');     mask-image: url('../icons/calendar-check.svg'); }
.ph-calendar-x::before        { -webkit-mask-image: url('../icons/calendar-x.svg');         mask-image: url('../icons/calendar-x.svg'); }
.ph-calendar-times::before    { -webkit-mask-image: url('../icons/calendar-x.svg');         mask-image: url('../icons/calendar-x.svg'); }
.ph-calendar-dot::before      { -webkit-mask-image: url('../icons/calendar-dot.svg');       mask-image: url('../icons/calendar-dot.svg'); }
.ph-clock::before             { -webkit-mask-image: url('../icons/clock.svg');              mask-image: url('../icons/clock.svg'); }
.ph-clock-countdown::before   { -webkit-mask-image: url('../icons/clock-countdown.svg');    mask-image: url('../icons/clock-countdown.svg'); }
.ph-timer::before             { -webkit-mask-image: url('../icons/timer.svg');              mask-image: url('../icons/timer.svg'); }
.ph-hourglass::before         { -webkit-mask-image: url('../icons/hourglass.svg');          mask-image: url('../icons/hourglass.svg'); }
.ph-clock-counter-clockwise::before { -webkit-mask-image: url('../icons/clock-counter-clockwise.svg'); mask-image: url('../icons/clock-counter-clockwise.svg'); }

/* Charts & Data */
.ph-chart-bar::before              { -webkit-mask-image: url('../icons/chart-bar.svg');              mask-image: url('../icons/chart-bar.svg'); }
.ph-chart-bar-horizontal::before   { -webkit-mask-image: url('../icons/chart-bar-horizontal.svg');   mask-image: url('../icons/chart-bar-horizontal.svg'); }
.ph-chart-line::before             { -webkit-mask-image: url('../icons/chart-line.svg');             mask-image: url('../icons/chart-line.svg'); }
.ph-chart-pie::before              { -webkit-mask-image: url('../icons/chart-pie.svg');              mask-image: url('../icons/chart-pie.svg'); }
.ph-chart-pie-slice::before        { -webkit-mask-image: url('../icons/chart-pie-slice.svg');        mask-image: url('../icons/chart-pie-slice.svg'); }
.ph-database::before               { -webkit-mask-image: url('../icons/database.svg');               mask-image: url('../icons/database.svg'); }

/* Devices */
.ph-device-mobile::before          { -webkit-mask-image: url('../icons/device-mobile.svg');          mask-image: url('../icons/device-mobile.svg'); }
.ph-device-mobile-camera::before   { -webkit-mask-image: url('../icons/device-mobile-camera.svg');   mask-image: url('../icons/device-mobile-camera.svg'); }
.ph-device-mobile-speaker::before  { -webkit-mask-image: url('../icons/device-mobile-speaker.svg');  mask-image: url('../icons/device-mobile-speaker.svg'); }

/* Security & Access */
.ph-lock::before              { -webkit-mask-image: url('../icons/lock.svg');               mask-image: url('../icons/lock.svg'); }
.ph-lock-key::before          { -webkit-mask-image: url('../icons/lock-key.svg');           mask-image: url('../icons/lock-key.svg'); }
.ph-lock-open::before         { -webkit-mask-image: url('../icons/lock-open.svg');          mask-image: url('../icons/lock-open.svg'); }
.ph-lock-simple::before       { -webkit-mask-image: url('../icons/lock-simple.svg');        mask-image: url('../icons/lock-simple.svg'); }
.ph-lock-simple-open::before  { -webkit-mask-image: url('../icons/lock-simple-open.svg');   mask-image: url('../icons/lock-simple-open.svg'); }
.ph-key::before               { -webkit-mask-image: url('../icons/key.svg');                mask-image: url('../icons/key.svg'); }
.ph-shield::before            { -webkit-mask-image: url('../icons/shield.svg');             mask-image: url('../icons/shield.svg'); }
.ph-shield-check::before      { -webkit-mask-image: url('../icons/shield-check.svg');       mask-image: url('../icons/shield-check.svg'); }
.ph-eye::before               { -webkit-mask-image: url('../icons/eye.svg');                mask-image: url('../icons/eye.svg'); }
.ph-eye-slash::before         { -webkit-mask-image: url('../icons/eye-slash.svg');          mask-image: url('../icons/eye-slash.svg'); }
.ph-sign-in::before           { -webkit-mask-image: url('../icons/sign-in.svg');            mask-image: url('../icons/sign-in.svg'); }
.ph-sign-out::before          { -webkit-mask-image: url('../icons/sign-out.svg');           mask-image: url('../icons/sign-out.svg'); }

/* Status & Alerts */
.ph-warning::before           { -webkit-mask-image: url('../icons/warning.svg');            mask-image: url('../icons/warning.svg'); }
.ph-warning-circle::before    { -webkit-mask-image: url('../icons/warning-circle.svg');     mask-image: url('../icons/warning-circle.svg'); }
.ph-warning-octagon::before   { -webkit-mask-image: url('../icons/warning-octagon.svg');    mask-image: url('../icons/warning-octagon.svg'); }
.ph-info::before              { -webkit-mask-image: url('../icons/info.svg');               mask-image: url('../icons/info.svg'); }
.ph-circle::before            { -webkit-mask-image: url('../icons/circle.svg');             mask-image: url('../icons/circle.svg'); }
.ph-spinner::before           { -webkit-mask-image: url('../icons/spinner.svg');            mask-image: url('../icons/spinner.svg'); }
.ph-spinner-gap::before       { -webkit-mask-image: url('../icons/spinner-gap.svg');        mask-image: url('../icons/spinner-gap.svg'); }
.ph-pause-circle::before      { -webkit-mask-image: url('../icons/pause-circle.svg');       mask-image: url('../icons/pause-circle.svg'); }

/* App Elements */
.ph-star::before              { -webkit-mask-image: url('../icons/star.svg');               mask-image: url('../icons/star.svg'); }
.ph-star-half::before         { -webkit-mask-image: url('../icons/star-half.svg');          mask-image: url('../icons/star-half.svg'); }
.ph-link::before              { -webkit-mask-image: url('../icons/link.svg');               mask-image: url('../icons/link.svg'); }
.ph-link-simple::before       { -webkit-mask-image: url('../icons/link-simple.svg');        mask-image: url('../icons/link-simple.svg'); }
.ph-tag::before               { -webkit-mask-image: url('../icons/tag.svg');                mask-image: url('../icons/tag.svg'); }
.ph-rocket::before            { -webkit-mask-image: url('../icons/rocket.svg');             mask-image: url('../icons/rocket.svg'); }
.ph-rocket-launch::before     { -webkit-mask-image: url('../icons/rocket-launch.svg');      mask-image: url('../icons/rocket-launch.svg'); }
.ph-building::before          { -webkit-mask-image: url('../icons/building.svg');           mask-image: url('../icons/building.svg'); }
.ph-buildings::before         { -webkit-mask-image: url('../icons/buildings.svg');          mask-image: url('../icons/buildings.svg'); }
.ph-briefcase::before         { -webkit-mask-image: url('../icons/briefcase.svg');          mask-image: url('../icons/briefcase.svg'); }
.ph-map-pin::before           { -webkit-mask-image: url('../icons/map-pin.svg');            mask-image: url('../icons/map-pin.svg'); }
.ph-map-pin-simple::before    { -webkit-mask-image: url('../icons/map-pin-simple.svg');     mask-image: url('../icons/map-pin-simple.svg'); }
.ph-palette::before           { -webkit-mask-image: url('../icons/palette.svg');            mask-image: url('../icons/palette.svg'); }
.ph-bread::before             { -webkit-mask-image: url('../icons/bread.svg');              mask-image: url('../icons/bread.svg'); }
.ph-factory::before           { -webkit-mask-image: url('../icons/factory.svg');            mask-image: url('../icons/factory.svg'); }
.ph-ice-cream::before         { -webkit-mask-image: url('../icons/ice-cream.svg');          mask-image: url('../icons/ice-cream.svg'); }
.ph-wine::before              { -webkit-mask-image: url('../icons/wine.svg');               mask-image: url('../icons/wine.svg'); }
.ph-building-office::before   { -webkit-mask-image: url('../icons/building-office.svg');    mask-image: url('../icons/building-office.svg'); }
.ph-coins::before             { -webkit-mask-image: url('../icons/coins.svg');              mask-image: url('../icons/coins.svg'); }
.ph-book-open::before         { -webkit-mask-image: url('../icons/book-open.svg');          mask-image: url('../icons/book-open.svg'); }
.ph-books::before             { -webkit-mask-image: url('../icons/books.svg');              mask-image: url('../icons/books.svg'); }
.ph-book-bookmark::before     { -webkit-mask-image: url('../icons/book-bookmark.svg');      mask-image: url('../icons/book-bookmark.svg'); }
.ph-clipboard-text::before    { -webkit-mask-image: url('../icons/clipboard-text.svg');     mask-image: url('../icons/clipboard-text.svg'); }
.ph-clipboard::before         { -webkit-mask-image: url('../icons/clipboard.svg');          mask-image: url('../icons/clipboard.svg'); }
.ph-gear::before              { -webkit-mask-image: url('../icons/gear.svg');               mask-image: url('../icons/gear.svg'); }
.ph-gear-six::before          { -webkit-mask-image: url('../icons/gear-six.svg');           mask-image: url('../icons/gear-six.svg'); }
.ph-tools::before             { -webkit-mask-image: url('../icons/wrench.svg');             mask-image: url('../icons/wrench.svg'); }
.ph-wrench::before            { -webkit-mask-image: url('../icons/wrench.svg');             mask-image: url('../icons/wrench.svg'); }
.ph-gauge::before             { -webkit-mask-image: url('../icons/gauge.svg');              mask-image: url('../icons/gauge.svg'); }
.ph-speedometer::before       { -webkit-mask-image: url('../icons/speedometer.svg');        mask-image: url('../icons/speedometer.svg'); }
.ph-ticket::before            { -webkit-mask-image: url('../icons/ticket.svg');             mask-image: url('../icons/ticket.svg'); }
.ph-bug::before               { -webkit-mask-image: url('../icons/bug.svg');                mask-image: url('../icons/bug.svg'); }
.ph-kanban::before            { -webkit-mask-image: url('../icons/kanban.svg');             mask-image: url('../icons/kanban.svg'); }
.ph-tree-structure::before    { -webkit-mask-image: url('../icons/tree-structure.svg');     mask-image: url('../icons/tree-structure.svg'); }
.ph-graph::before             { -webkit-mask-image: url('../icons/graph.svg');              mask-image: url('../icons/graph.svg'); }
.ph-lifebuoy::before          { -webkit-mask-image: url('../icons/lifebuoy.svg');           mask-image: url('../icons/lifebuoy.svg'); }
.ph-lightning::before         { -webkit-mask-image: url('../icons/lightning.svg');          mask-image: url('../icons/lightning.svg'); }
.ph-hand-pointing::before     { -webkit-mask-image: url('../icons/hand-pointing.svg');      mask-image: url('../icons/hand-pointing.svg'); }
.ph-network::before           { -webkit-mask-image: url('../icons/network.svg');            mask-image: url('../icons/network.svg'); }
.ph-sitemap::before           { -webkit-mask-image: url('../icons/tree-structure.svg');     mask-image: url('../icons/tree-structure.svg'); }
.ph-flask::before             { -webkit-mask-image: url('../icons/flask.svg');              mask-image: url('../icons/flask.svg'); }
.ph-scales::before            { -webkit-mask-image: url('../icons/scales.svg');             mask-image: url('../icons/scales.svg'); }
.ph-notification::before      { -webkit-mask-image: url('../icons/notification.svg');       mask-image: url('../icons/notification.svg'); }
.ph-target::before            { -webkit-mask-image: url('../icons/target.svg');             mask-image: url('../icons/target.svg'); }
.ph-activity::before          { -webkit-mask-image: url('../icons/pulse.svg');              mask-image: url('../icons/pulse.svg'); }
.ph-seal-check::before        { -webkit-mask-image: url('../icons/seal-check.svg');         mask-image: url('../icons/seal-check.svg'); }
.ph-coffee::before            { -webkit-mask-image: url('../icons/coffee.svg');             mask-image: url('../icons/coffee.svg'); }
.ph-planet::before            { -webkit-mask-image: url('../icons/planet.svg');             mask-image: url('../icons/planet.svg'); }

/* ─── Aliases for missed FA classes ─────────────────────────────────────── */
.ph-star-half-alt::before     { -webkit-mask-image: url('../icons/star-half.svg');          mask-image: url('../icons/star-half.svg'); }
.ph-user-shield::before       { -webkit-mask-image: url('../icons/shield-check.svg');       mask-image: url('../icons/shield-check.svg'); }
.ph-check-double::before      { -webkit-mask-image: url('../icons/checks.svg');             mask-image: url('../icons/checks.svg'); }
.ph-exchange-alt::before      { -webkit-mask-image: url('../icons/arrows-clockwise.svg');   mask-image: url('../icons/arrows-clockwise.svg'); }
.ph-sync-alt::before          { -webkit-mask-image: url('../icons/arrows-clockwise.svg');   mask-image: url('../icons/arrows-clockwise.svg'); }
.ph-redo::before              { -webkit-mask-image: url('../icons/arrow-clockwise.svg');    mask-image: url('../icons/arrow-clockwise.svg'); }
.ph-undo::before              { -webkit-mask-image: url('../icons/arrow-counter-clockwise.svg'); mask-image: url('../icons/arrow-counter-clockwise.svg'); }
.ph-cog::before               { -webkit-mask-image: url('../icons/gear-six.svg');           mask-image: url('../icons/gear-six.svg'); }
.ph-edit::before              { -webkit-mask-image: url('../icons/pencil-simple.svg');      mask-image: url('../icons/pencil-simple.svg'); }
.ph-sign-in-alt::before       { -webkit-mask-image: url('../icons/sign-in.svg');            mask-image: url('../icons/sign-in.svg'); }
.ph-sign-out-alt::before      { -webkit-mask-image: url('../icons/sign-out.svg');           mask-image: url('../icons/sign-out.svg'); }
.ph-tachometer-alt::before    { -webkit-mask-image: url('../icons/gauge.svg');              mask-image: url('../icons/gauge.svg'); }
.ph-ticket-alt::before        { -webkit-mask-image: url('../icons/ticket.svg');             mask-image: url('../icons/ticket.svg'); }
.ph-shield-alt::before        { -webkit-mask-image: url('../icons/shield-check.svg');       mask-image: url('../icons/shield-check.svg'); }
.ph-exclamation-triangle::before { -webkit-mask-image: url('../icons/warning.svg');         mask-image: url('../icons/warning.svg'); }
.ph-exclamation-circle::before   { -webkit-mask-image: url('../icons/warning-circle.svg');  mask-image: url('../icons/warning-circle.svg'); }
.ph-external-link-alt::before    { -webkit-mask-image: url('../icons/arrow-square-out.svg'); mask-image: url('../icons/arrow-square-out.svg'); }
.ph-cloud-upload-alt::before     { -webkit-mask-image: url('../icons/upload-simple.svg');    mask-image: url('../icons/upload-simple.svg'); }
.ph-arrow-trend-up::before       { -webkit-mask-image: url('../icons/trend-up.svg');         mask-image: url('../icons/trend-up.svg'); }
.ph-project-diagram::before      { -webkit-mask-image: url('../icons/tree-structure.svg');   mask-image: url('../icons/tree-structure.svg'); }
.ph-users-cog::before            { -webkit-mask-image: url('../icons/user-gear.svg');         mask-image: url('../icons/user-gear.svg'); }
.ph-level-up-alt::before         { -webkit-mask-image: url('../icons/arrow-bend-right-down.svg'); mask-image: url('../icons/arrow-bend-right-down.svg'); }
 
/* Miscellaneous */
.ph-sparkle::before           { -webkit-mask-image: url('../icons/sparkle.svg');            mask-image: url('../icons/sparkle.svg'); }
