/*
 * YesMadam icon aliases — ym-* → Font Awesome 7 Free Solid
 *
 * Library:  Font Awesome 7 Free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1)
 * Font:     resources/vendors/font-awesome-7/fonts/fa-solid-900.woff2
 *
 * Design rule:
 *   All icons render as solid/filled by default — matches FA4 visual weight.
 *   ym-icon-on adds the accent colour; no glyph change needed (already solid).
 *
 * Usage:
 *   <i class="ym-icon-lock" aria-hidden="true"></i>
 *   <i class="ym-icon-lock ym-icon-on" aria-hidden="true"></i>  ← accent colour
 *
 * To add a new icon:
 *   1. Find the icon at https://fontawesome.com/icons?s=solid&o=r
 *   2. Grab the Unicode codepoint from the icon's detail page (e.g. f023)
 *   3. Add .ym-icon-<name>::before with content: "\<codepoint>"
 *   4. Register it in resources/js/icon-constants.js and resources/dev/icon-reference.html
 */

/* ── Font face ────────────────────────────────────────────────────── */
@font-face {
    font-family: "FontAwesome7Solid";
    font-display: block;
    font-style: normal;
    font-weight: 900;
    src: url("/resources/vendors/font-awesome-7/fonts/fa-solid-900-a63cfce76b01fe6d248131f2ce355f37.woff2") format("woff2");
}

/* ── Base rendering ───────────────────────────────────────────────── */
[class^="ym-icon-"]::before,
[class*=" ym-icon-"]::before {
    font-family: "FontAwesome7Solid" !important;
    font-style: normal;
    font-weight: 900 !important;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    vertical-align: -0.125em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ── Active / accent state — applies to ALL ym-* icons ───────────── */
.ym-icon-on {
    color: var(--adm-accent, #2f6fe0);
}

/* ── Spin animation (replaces fa-spin) ────────────────────────────── */
@keyframes ym-spin { to { transform: rotate(360deg); } }
.ym-spin { animation: ym-spin 1s linear infinite; display: inline-block; }

/* ── Navigation ────────────────────────────────────────── */
.ym-icon-home::before                   { content: "\f015"; }  /* house */
.ym-icon-menu::before                   { content: "\f0c9"; }  /* bars */
.ym-icon-back::before                   { content: "\f060"; }  /* arrow-left */
.ym-icon-forward::before                { content: "\f061"; }  /* arrow-right */
.ym-icon-long-right::before             { content: "\f061"; }  /* arrow-right */
.ym-icon-chevron-down::before           { content: "\f078"; }  /* chevron-down */
.ym-icon-chevron-up::before             { content: "\f077"; }  /* chevron-up */
.ym-icon-collapse::before               { content: "\f078"; }  /* chevron-down */
.ym-icon-expand::before                 { content: "\f054"; }  /* chevron-right */
.ym-icon-logout::before                 { content: "\f2f5"; }  /* right-from-bracket */

/* ── Actions ───────────────────────────────────────────── */
.ym-icon-add::before                    { content: "\2b"; }  /* plus */
.ym-icon-add-circle::before             { content: "\f055"; }  /* circle-plus */
.ym-icon-add-square::before             { content: "\f0fe"; }  /* square-plus */
.ym-icon-minus::before                  { content: "\f068"; }  /* minus */
.ym-icon-minus-circle::before           { content: "\f056"; }  /* circle-minus */
.ym-icon-minus-square::before           { content: "\f146"; }  /* square-minus */
.ym-icon-edit::before                   { content: "\f044"; }  /* pen-to-square */
.ym-icon-pencil::before                 { content: "\f303"; }  /* pencil */
.ym-icon-save::before                   { content: "\f0c7"; }  /* floppy-disk */
.ym-icon-delete::before                 { content: "\f1f8"; }  /* trash */
.ym-icon-close::before                  { content: "\f00d"; }  /* xmark */
.ym-icon-close-circle::before           { content: "\f057"; }  /* circle-xmark */
.ym-icon-download::before               { content: "\f019"; }  /* download */
.ym-icon-upload::before                 { content: "\f093"; }  /* upload */
.ym-icon-copy::before                   { content: "\f0c5"; }  /* copy */
.ym-icon-duplicate::before              { content: "\f0c5"; }  /* copy */
.ym-icon-undo::before                   { content: "\f2ea"; }  /* rotate-left */
.ym-icon-refresh::before                { content: "\f021"; }  /* arrows-rotate */
.ym-icon-wrench::before                 { content: "\f0ad"; }  /* wrench */
.ym-icon-unlink::before                 { content: "\f127"; }  /* link-slash */
.ym-icon-zoom-in::before                { content: "\f00e"; }  /* magnifying-glass-plus */

/* ── Search & filter ───────────────────────────────────── */
.ym-icon-search::before                 { content: "\f002"; }  /* magnifying-glass */
.ym-icon-filter::before                 { content: "\f0b0"; }  /* filter */
.ym-icon-sliders::before                { content: "\f1de"; }  /* sliders */
.ym-icon-sort::before                   { content: "\f0dc"; }  /* sort */
.ym-icon-sort-asc::before               { content: "\f0de"; }  /* sort-up */
.ym-icon-sort-desc::before              { content: "\f0dd"; }  /* sort-down */

/* ── Status ────────────────────────────────────────────── */
.ym-icon-check::before                  { content: "\f00c"; }  /* check */
.ym-icon-check-double::before           { content: "\f560"; }  /* check-double */
.ym-icon-success::before                { content: "\f058"; }  /* circle-check */
.ym-icon-checked::before                { content: "\f14a"; }  /* square-check */
.ym-icon-fail::before                   { content: "\f057"; }  /* circle-xmark */
.ym-icon-block::before                  { content: "\f05e"; }  /* ban */
.ym-icon-alert::before                  { content: "\f06a"; }  /* circle-exclamation */
.ym-icon-warning::before                { content: "\f071"; }  /* triangle-exclamation */
.ym-icon-info::before                   { content: "\f05a"; }  /* circle-info */
.ym-icon-dot::before                    { content: "\f111"; }  /* circle */
.ym-icon-flag::before                   { content: "\f024"; }  /* flag */
.ym-icon-notify::before                 { content: "\f0f3"; }  /* bell */

/* ── Time & schedule ───────────────────────────────────── */
.ym-icon-date::before                   { content: "\f133"; }  /* calendar */
.ym-icon-date-pick::before              { content: "\f133"; }  /* calendar */
.ym-icon-date-new::before               { content: "\f271"; }  /* calendar-plus */
.ym-icon-date-done::before              { content: "\f274"; }  /* calendar-check */
.ym-icon-time::before                   { content: "\f017"; }  /* clock */
.ym-icon-history::before                { content: "\f1da"; }  /* clock-rotate-left */
.ym-icon-loading::before                { content: "\f021"; }  /* arrows-rotate */

/* ── Orders ────────────────────────────────────────────── */
.ym-icon-order::before                  { content: "\f0ae"; }  /* list-check */
.ym-icon-tag::before                    { content: "\f02b"; }  /* tag */
.ym-icon-ticket::before                 { content: "\f145"; }  /* ticket */
.ym-icon-inbox::before                  { content: "\f01c"; }  /* inbox */
.ym-icon-cart-add::before               { content: "\f217"; }  /* cart-plus */
.ym-icon-open-link::before              { content: "\f08e"; }  /* arrow-up-right-from-square */
.ym-icon-pin::before                    { content: "\f08d"; }  /* thumbtack */
.ym-icon-barcode::before                { content: "\f02a"; }  /* barcode */

/* ── Data & reports ────────────────────────────────────── */
.ym-icon-chart-simple::before           { content: "\e473"; }  /* chart-simple */
.ym-icon-bar-chart::before              { content: "\f080"; }  /* chart-bar */
.ym-icon-line-chart::before             { content: "\f201"; }  /* chart-line */
.ym-icon-trend::before                  { content: "\f201"; }  /* chart-line */
.ym-icon-pie-chart::before              { content: "\f200"; }  /* chart-pie */
.ym-icon-dashboard::before              { content: "\f625"; }  /* gauge-high */
.ym-icon-database::before               { content: "\f1c0"; }  /* database */
.ym-icon-table::before                  { content: "\f0ce"; }  /* table */
.ym-icon-grid::before                   { content: "\f009"; }  /* table-cells-large */
.ym-icon-list::before                   { content: "\f03a"; }  /* list */
.ym-icon-section::before                { content: "\f03a"; }  /* list */
.ym-icon-hierarchy::before              { content: "\f0e8"; }  /* sitemap */
.ym-icon-packages::before               { content: "\f468"; }  /* boxes-stacked */
.ym-icon-signal::before                 { content: "\f012"; }  /* signal */

/* ── Files & docs ──────────────────────────────────────── */
.ym-icon-file::before                   { content: "\f15b"; }  /* file */
.ym-icon-doc::before                    { content: "\f15c"; }  /* file-lines */
.ym-icon-excel::before                  { content: "\f1c3"; }  /* file-excel */
.ym-icon-pdf::before                    { content: "\f1c1"; }  /* file-pdf */
.ym-icon-clipboard::before              { content: "\f328"; }  /* clipboard */
.ym-icon-book::before                   { content: "\f02d"; }  /* book */
.ym-icon-link::before                   { content: "\f0c1"; }  /* link */

/* ── Users & roles ─────────────────────────────────────── */
.ym-icon-user::before                   { content: "\f007"; }  /* user */
.ym-icon-team::before                   { content: "\f0c0"; }  /* users */
.ym-icon-add-user::before               { content: "\f234"; }  /* user-plus */
.ym-icon-expert::before                 { content: "\f0f0"; }  /* user-doctor */
.ym-icon-admin::before                  { content: "\f505"; }  /* user-shield */
.ym-icon-customer::before               { content: "\f007"; }  /* user */

/* ── Security ──────────────────────────────────────────── */
.ym-icon-lock::before                   { content: "\f023"; }  /* lock */
.ym-icon-key::before                    { content: "\f084"; }  /* key */
.ym-icon-shield::before                 { content: "\f3ed"; }  /* shield-halved */
.ym-icon-visible::before                { content: "\f06e"; }  /* eye */
.ym-icon-hidden::before                 { content: "\f070"; }  /* eye-slash */

/* ── System ────────────────────────────────────────────── */
.ym-icon-laptop-code::before            { content: "\f5fc"; }  /* laptop-code */
.ym-icon-settings::before               { content: "\f1de"; }  /* sliders */
.ym-icon-gear::before                   { content: "\f013"; }  /* gear */
.ym-icon-lightning::before              { content: "\f0e7"; }  /* bolt */
.ym-icon-live::before                   { content: "\f519"; }  /* tower-broadcast */
.ym-icon-region::before                 { content: "\f0ac"; }  /* globe */
.ym-icon-india::before                  { content: "\f0ac"; }  /* globe */
.ym-icon-storage::before                { content: "\f0a0"; }  /* hard-drive */
.ym-icon-plug::before                   { content: "\f1e6"; }  /* plug */
.ym-icon-dropbox::before                { content: "\f466"; }  /* box (dropbox substitute — brand icon not in FA7 Free) */

/* ── Media controls ────────────────────────────────────── */
.ym-icon-play::before                   { content: "\f04b"; }  /* play */
.ym-icon-pause::before                  { content: "\f04c"; }  /* pause */
.ym-icon-stop::before                   { content: "\f04d"; }  /* stop */
.ym-icon-music::before                  { content: "\f001"; }  /* music */
.ym-icon-mic::before                    { content: "\f130"; }  /* microphone */
.ym-icon-camera::before                 { content: "\f030"; }  /* camera */
.ym-icon-volume::before                 { content: "\f028"; }  /* volume-high */
.ym-icon-mute::before                   { content: "\f6a9"; }  /* volume-xmark */
.ym-icon-broadcast::before              { content: "\f519"; }  /* tower-broadcast */

/* ── Comms ─────────────────────────────────────────────── */
.ym-icon-phone::before                  { content: "\f095"; }  /* phone */
.ym-icon-mobile::before                 { content: "\f3cf"; }  /* mobile-screen */
.ym-icon-email::before                  { content: "\f0e0"; }  /* envelope */
.ym-icon-video::before                  { content: "\f03d"; }  /* video */
.ym-icon-location::before               { content: "\f3c5"; }  /* location-dot */
.ym-icon-chat::before                   { content: "\f086"; }  /* comments */
.ym-icon-send::before                   { content: "\f1d8"; }  /* paper-plane */
.ym-icon-wifi::before                   { content: "\f1eb"; }  /* wifi */

/* ── Misc ──────────────────────────────────────────────── */
.ym-icon-rating::before                 { content: "\f005"; }  /* star */
.ym-icon-approve::before                { content: "\f164"; }  /* thumbs-up */
.ym-icon-photo::before                  { content: "\f03e"; }  /* image */
.ym-icon-reward::before                 { content: "\f06b"; }  /* gift */
.ym-icon-gifts::before                  { content: "\f79c"; }  /* gifts (two boxes) */
.ym-icon-payment::before                { content: "\f0d6"; }  /* money-bill */
.ym-icon-card::before                   { content: "\f09d"; }  /* credit-card */
.ym-icon-business::before               { content: "\f0b1"; }  /* briefcase */
.ym-icon-travel::before                 { content: "\f0f2"; }  /* suitcase */
.ym-icon-level::before                  { content: "\f19d"; }  /* graduation-cap */
.ym-icon-media::before                  { content: "\f03e"; }  /* image */
.ym-icon-heart::before                  { content: "\f004"; }  /* heart */
.ym-icon-heart-pulse::before            { content: "\f21e"; }  /* heart-pulse */
.ym-icon-bookmark::before               { content: "\f02e"; }  /* bookmark */
.ym-icon-wallet::before                 { content: "\f555"; }  /* wallet */
.ym-icon-trophy::before                 { content: "\f091"; }  /* trophy */
.ym-icon-award::before                  { content: "\f559"; }  /* award */
.ym-icon-layers::before                 { content: "\f5fd"; }  /* layer-group */
.ym-icon-building::before               { content: "\f1ad"; }  /* building */
.ym-icon-shop::before                   { content: "\f54e"; }  /* store */
.ym-icon-gem::before                    { content: "\f3a5"; }  /* gem */
.ym-icon-fire::before                   { content: "\f06d"; }  /* fire */
.ym-icon-cloud::before                  { content: "\f0c2"; }  /* cloud */
.ym-icon-moon::before                   { content: "\f186"; }  /* moon */
.ym-icon-sun::before                    { content: "\f185"; }  /* sun */
.ym-icon-pin-map::before                { content: "\f276"; }  /* map-pin */
.ym-icon-person-fault::before           { content: "\e53f"; }  /* person-circle-exclamation */
.ym-icon-business-time::before          { content: "\f64a"; }  /* business-time */
