/**
 * Lucide icons in place of Material Icons.
 *
 * MyListing renders icons as <i class="mi NAME"> with the glyph in :before.
 * Each rule below swaps that glyph for a Lucide SVG, painted in currentColor
 * through a CSS mask and sized to the same 1em box, so parent-theme markup,
 * icons configured in listing types and JS templates all switch over without
 * forking any parent file.
 *
 * Mapping is by Material name and stays true to the shape. Where a block needs
 * a semantically better icon, change the icon in its listing type config
 * instead — the same Material name is used in different contexts.
 *
 * Icons marked "guide" come from the prototype's icon style guide
 * (raskin-prototypes/sba3, src/data/iconGuide.ts); "functional" ones extend it
 * from the same Lucide set, as agreed on 2026-09-18. Not mapped on purpose:
 * verified_user, whose listing badge stays the theme's tick.svg for now.
 * Unmapped names fall back to the self-hosted Material font.
 *
 * SVGs: lucide-static 0.462.0 (the prototype's lucide-react version), ISC
 * licence, see ../icons/lucide/LICENSE. Ligature-style usage such as
 * <i class="material-icons">name</i> cannot be targeted by name in CSS and
 * keeps using the fallback font until its template is reworked.
 */

.mi[class*=" "]::before {
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

/* The listing categories widget centers the <i> in its circle with flex, but
 * the <i> inherits a line box taller than the 1em icon, which then sits at
 * the top of it. Seen on /success-stories/criteria-of-success/. */
.ac-front-side .cat-icon i {
	line-height: 1;
}

/* access_time -> clock (functional) */
.mi.access_time::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/clock.svg"); mask-image: url("../icons/lucide/clock.svg"); }

/* apps -> layout-grid (functional) */
.mi.apps::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/layout-grid.svg"); mask-image: url("../icons/lucide/layout-grid.svg"); }

/* arrow_back -> arrow-left (functional) */
.mi.arrow_back::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/arrow-left.svg"); mask-image: url("../icons/lucide/arrow-left.svg"); }

/* arrow_drop_up -> chevron-up (functional) */
.mi.arrow_drop_up::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/chevron-up.svg"); mask-image: url("../icons/lucide/chevron-up.svg"); }

/* arrow_forward -> arrow-right (guide: continue on this site) */
.mi.arrow_forward::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/arrow-right.svg"); mask-image: url("../icons/lucide/arrow-right.svg"); }

/* autorenew -> refresh-cw (functional) */
.mi.autorenew::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/refresh-cw.svg"); mask-image: url("../icons/lucide/refresh-cw.svg"); }

/* av_timer -> timer (functional) */
.mi.av_timer::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/timer.svg"); mask-image: url("../icons/lucide/timer.svg"); }

/* bookmark_border -> heart (guide: saved or favourite) */
.mi.bookmark_border::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/heart.svg"); mask-image: url("../icons/lucide/heart.svg"); }

/* business -> building-2 (guide: company or organization) */
.mi.business::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/building-2.svg"); mask-image: url("../icons/lucide/building-2.svg"); }

/* card_membership -> award (decision 2026-09-18) */
.mi.card_membership::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/award.svg"); mask-image: url("../icons/lucide/award.svg"); }

/* close -> x (guide: close) */
.mi.close::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/x.svg"); mask-image: url("../icons/lucide/x.svg"); }

/* compare -> arrow-left-right (functional: compare listings) */
.mi.compare::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/arrow-left-right.svg"); mask-image: url("../icons/lucide/arrow-left-right.svg"); }

/* email -> mail (guide: email contact) */
.mi.email::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/mail.svg"); mask-image: url("../icons/lucide/mail.svg"); }

/* error_outline -> circle-alert (functional) */
.mi.error_outline::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/circle-alert.svg"); mask-image: url("../icons/lucide/circle-alert.svg"); }

/* favorite_border -> heart (guide: saved or favourite) */
.mi.favorite_border::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/heart.svg"); mask-image: url("../icons/lucide/heart.svg"); }

/* filter_list -> sliders-horizontal (guide: filter the list) */
.mi.filter_list::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/sliders-horizontal.svg"); mask-image: url("../icons/lucide/sliders-horizontal.svg"); }

/* format_list_bulleted -> list (functional: explore filter select) */
.mi.format_list_bulleted::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/list.svg"); mask-image: url("../icons/lucide/list.svg"); }

/* info -> info (guide: additional explanation) */
.mi.info::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/info.svg"); mask-image: url("../icons/lucide/info.svg"); }

/* insert_photo -> image (functional) */
.mi.insert_photo::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/image.svg"); mask-image: url("../icons/lucide/image.svg"); }

/* keyboard_arrow_left -> chevron-left (functional: carousel navigation) */
.mi.keyboard_arrow_left::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/chevron-left.svg"); mask-image: url("../icons/lucide/chevron-left.svg"); }

/* keyboard_arrow_right -> chevron-right (functional: carousel navigation) */
.mi.keyboard_arrow_right::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/chevron-right.svg"); mask-image: url("../icons/lucide/chevron-right.svg"); }

/* keyboard_arrow_up -> chevron-up (functional: back to top) */
.mi.keyboard_arrow_up::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/chevron-up.svg"); mask-image: url("../icons/lucide/chevron-up.svg"); }

/* keyboard_backspace -> arrow-left (functional) */
.mi.keyboard_backspace::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/arrow-left.svg"); mask-image: url("../icons/lucide/arrow-left.svg"); }

/* layers -> layers (functional) */
.mi.layers::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/layers.svg"); mask-image: url("../icons/lucide/layers.svg"); }

/* lock -> lock (functional) */
.mi.lock::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/lock.svg"); mask-image: url("../icons/lucide/lock.svg"); }

/* map -> map-pin (guide: location) */
.mi.map::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/map-pin.svg"); mask-image: url("../icons/lucide/map-pin.svg"); }

/* menu -> menu (guide: open mobile navigation) */
.mi.menu::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/menu.svg"); mask-image: url("../icons/lucide/menu.svg"); }

/* mood_bad -> frown (functional: no results) */
.mi.mood_bad::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/frown.svg"); mask-image: url("../icons/lucide/frown.svg"); }

/* my_location -> locate-fixed (functional: show my location) */
.mi.my_location::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/locate-fixed.svg"); mask-image: url("../icons/lucide/locate-fixed.svg"); }

/* open_in_new -> arrow-up-right (guide: leaves the site) */
.mi.open_in_new::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/arrow-up-right.svg"); mask-image: url("../icons/lucide/arrow-up-right.svg"); }

/* person -> user (guide: sign in / member area) */
.mi.person::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/user.svg"); mask-image: url("../icons/lucide/user.svg"); }

/* playlist_add -> plus (decision 2026-09-18: add actions) */
.mi.playlist_add::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/plus.svg"); mask-image: url("../icons/lucide/plus.svg"); }

/* redo -> redo-2 (functional) */
.mi.redo::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/redo-2.svg"); mask-image: url("../icons/lucide/redo-2.svg"); }

/* refresh -> refresh-cw (functional) */
.mi.refresh::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/refresh-cw.svg"); mask-image: url("../icons/lucide/refresh-cw.svg"); }

/* remove_red_eye -> eye (functional) */
.mi.remove_red_eye::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/eye.svg"); mask-image: url("../icons/lucide/eye.svg"); }

/* save -> save (functional) */
.mi.save::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/save.svg"); mask-image: url("../icons/lucide/save.svg"); }

/* search -> search (functional) */
.mi.search::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/search.svg"); mask-image: url("../icons/lucide/search.svg"); }

/* share -> share-2 (functional) */
.mi.share::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/share-2.svg"); mask-image: url("../icons/lucide/share-2.svg"); }

/* shopping_basket -> shopping-basket (functional: cart) */
.mi.shopping_basket::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/shopping-basket.svg"); mask-image: url("../icons/lucide/shopping-basket.svg"); }

/* star -> star (functional) */
.mi.star::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/star.svg"); mask-image: url("../icons/lucide/star.svg"); }

/* videocam -> video (functional) */
.mi.videocam::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/video.svg"); mask-image: url("../icons/lucide/video.svg"); }

/* view_agenda -> list (functional: list view) */
.mi.view_agenda::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/list.svg"); mask-image: url("../icons/lucide/list.svg"); }

/* view_headline -> text (functional) */
.mi.view_headline::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/text.svg"); mask-image: url("../icons/lucide/text.svg"); }

/* view_module -> layout-grid (functional) */
.mi.view_module::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/layout-grid.svg"); mask-image: url("../icons/lucide/layout-grid.svg"); }

/* web -> globe (functional) */
.mi.web::before { content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: top; background-color: currentColor; -webkit-mask-image: url("../icons/lucide/globe.svg"); mask-image: url("../icons/lucide/globe.svg"); }
