/* dsi-* custom icon set — mask-image based, coexists with the existing di-duotone/di-filled font.
   This file is loaded as a plain, unlayered stylesheet, separate from the Tailwind-compiled
   bundle (ds-api-*.css) where ds-icon-N lives inside @layer components. Per CSS Cascade Layers,
   unlayered rules always beat layered ones regardless of specificity - so ds-icon-N is marked
   !important in theme/v1/template.css to guarantee it still wins here. Do not remove that
   !important without also solving the layering mismatch some other way. */

    /* Sizing lives in a zero-specificity :where() block so any per-instance size class
       (Tailwind w-5/h-5, w-3.5/h-3.5, ds-icon-N, etc.) always wins regardless of <link> order. */
    :where([class^="dsi-"], [class*=" dsi-"]) {
        display: inline-block;
        width: 1em;
        height: 1em;
        vertical-align: -0.125em;
    }

    [class^="dsi-"],
    [class*=" dsi-"] {
        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;
    }

    /* Inside the sidebar, the .ds-nav-icon wrapper already fixes the box to 18x18 -
       fill it exactly instead of relying on inherited font-size. Kept at zero
       specificity so an explicit ds-icon-N class always wins here too. */
    :where(.ds-nav-icon [class^="dsi-"], .ds-nav-icon [class*=" dsi-"]) {
        width: 100%;
        height: 100%;
    }

    /* Dashboard module-launcher tiles (screens/dashboard/main-data.html) render the
       root menu's icon directly with no sizing wrapper - this is the equivalent of
       the old "text-3xl" utility that used to be baked into the icon string. Same
       zero-specificity treatment as above. */
    :where(.entry-callout-bg [class^="dsi-"], .entry-callout-bg [class*=" dsi-"]) {
        width: 1.875rem;
        height: 1.875rem;
    }

    .dsi-create { -webkit-mask-image: url('/css/icons/dsi-create-e65550742adc03f91e1634915f75636e.svg'); mask-image: url('/css/icons/dsi-create-e65550742adc03f91e1634915f75636e.svg'); }
    .dsi-add { -webkit-mask-image: url('/css/icons/dsi-add-e9701e165d29337c56ee0b1fef81524e.svg'); mask-image: url('/css/icons/dsi-add-e9701e165d29337c56ee0b1fef81524e.svg'); }
    .dsi-edit { -webkit-mask-image: url('/css/icons/dsi-edit-68b9b7c460ac39ec6f0bccb52443912b.svg'); mask-image: url('/css/icons/dsi-edit-68b9b7c460ac39ec6f0bccb52443912b.svg'); }
    .dsi-view { -webkit-mask-image: url('/css/icons/dsi-view-ff7fae0fcd73dc5f6b47e76b150783c7.svg'); mask-image: url('/css/icons/dsi-view-ff7fae0fcd73dc5f6b47e76b150783c7.svg'); }
    .dsi-delete { -webkit-mask-image: url('/css/icons/dsi-delete-1f06755fcb5a7c7295edd24287087048.svg'); mask-image: url('/css/icons/dsi-delete-1f06755fcb5a7c7295edd24287087048.svg'); }
    .dsi-print { -webkit-mask-image: url('/css/icons/dsi-print-931bacba9607d4d1445f38fa971863a9.svg'); mask-image: url('/css/icons/dsi-print-931bacba9607d4d1445f38fa971863a9.svg'); }
    .dsi-export { -webkit-mask-image: url('/css/icons/dsi-export-23cf3a7a82b1f090bf9a52b34a99fcf0.svg'); mask-image: url('/css/icons/dsi-export-23cf3a7a82b1f090bf9a52b34a99fcf0.svg'); }
    .dsi-import { -webkit-mask-image: url('/css/icons/dsi-import-e8e2a3c975e79d6dcd44736ce0398a3f.svg'); mask-image: url('/css/icons/dsi-import-e8e2a3c975e79d6dcd44736ce0398a3f.svg'); }
    .dsi-search { -webkit-mask-image: url('/css/icons/dsi-search-f3606f43c313cdad4931a376318f736d.svg'); mask-image: url('/css/icons/dsi-search-f3606f43c313cdad4931a376318f736d.svg'); }
    .dsi-approve { -webkit-mask-image: url('/css/icons/dsi-approve-8eceba4cc56cf96ed378a50495fd4163.svg'); mask-image: url('/css/icons/dsi-approve-8eceba4cc56cf96ed378a50495fd4163.svg'); }
    .dsi-cancel { -webkit-mask-image: url('/css/icons/dsi-cancel-9f8b2c7ec3301eaca930d9583db30c37.svg'); mask-image: url('/css/icons/dsi-cancel-9f8b2c7ec3301eaca930d9583db30c37.svg'); }
    .dsi-list { -webkit-mask-image: url('/css/icons/dsi-list-aa8923675a18c97a9512274365d32e55.svg'); mask-image: url('/css/icons/dsi-list-aa8923675a18c97a9512274365d32e55.svg'); }
    .dsi-duplicate { -webkit-mask-image: url('/css/icons/dsi-duplicate-8e72d2a29540ab916bc1558c4217b3ec.svg'); mask-image: url('/css/icons/dsi-duplicate-8e72d2a29540ab916bc1558c4217b3ec.svg'); }
    .dsi-filter { -webkit-mask-image: url('/css/icons/dsi-filter-8a3e174bcef5e0e0b984d369bcaed6e9.svg'); mask-image: url('/css/icons/dsi-filter-8a3e174bcef5e0e0b984d369bcaed6e9.svg'); }
    .dsi-person { -webkit-mask-image: url('/css/icons/dsi-person-ae968a39fdee2645c8c422dc7609d026.svg'); mask-image: url('/css/icons/dsi-person-ae968a39fdee2645c8c422dc7609d026.svg'); }
    .dsi-group { -webkit-mask-image: url('/css/icons/dsi-group-97692d0fdf67d7558f529ab7b407ba6e.svg'); mask-image: url('/css/icons/dsi-group-97692d0fdf67d7558f529ab7b407ba6e.svg'); }
    .dsi-building { -webkit-mask-image: url('/css/icons/dsi-building-f74f36b2e1cf59d4a4b4b2ae30b3a4e3.svg'); mask-image: url('/css/icons/dsi-building-f74f36b2e1cf59d4a4b4b2ae30b3a4e3.svg'); }
    .dsi-box { -webkit-mask-image: url('/css/icons/dsi-box-fac2ca826d593fda2fb1665d914d05a8.svg'); mask-image: url('/css/icons/dsi-box-fac2ca826d593fda2fb1665d914d05a8.svg'); }
    .dsi-document { -webkit-mask-image: url('/css/icons/dsi-document-9575e42375031c213afb6f940c839cc1.svg'); mask-image: url('/css/icons/dsi-document-9575e42375031c213afb6f940c839cc1.svg'); }
    .dsi-cart { -webkit-mask-image: url('/css/icons/dsi-cart-6c7393da0bfa7058ddaebbe7095dc707.svg'); mask-image: url('/css/icons/dsi-cart-6c7393da0bfa7058ddaebbe7095dc707.svg'); }
    .dsi-truck { -webkit-mask-image: url('/css/icons/dsi-truck-d6c6c9ee7ace96f6f7b99a4027349328.svg'); mask-image: url('/css/icons/dsi-truck-d6c6c9ee7ace96f6f7b99a4027349328.svg'); }
    .dsi-factory { -webkit-mask-image: url('/css/icons/dsi-factory-f3ac1ff92e84abdb210adf485d356957.svg'); mask-image: url('/css/icons/dsi-factory-f3ac1ff92e84abdb210adf485d356957.svg'); }
    .dsi-book { -webkit-mask-image: url('/css/icons/dsi-book-56a9113a8265cd414ba8df3545347331.svg'); mask-image: url('/css/icons/dsi-book-56a9113a8265cd414ba8df3545347331.svg'); }
    .dsi-money { -webkit-mask-image: url('/css/icons/dsi-money-7c8609ba67397c37216fe418d2bdd386.svg'); mask-image: url('/css/icons/dsi-money-7c8609ba67397c37216fe418d2bdd386.svg'); }
    .dsi-calendar { -webkit-mask-image: url('/css/icons/dsi-calendar-c75bcf72a9bc29b94d909a8a80d7acaf.svg'); mask-image: url('/css/icons/dsi-calendar-c75bcf72a9bc29b94d909a8a80d7acaf.svg'); }
    .dsi-chart { -webkit-mask-image: url('/css/icons/dsi-chart-0dd8d05c3098da51db08b36df7dd97f7.svg'); mask-image: url('/css/icons/dsi-chart-0dd8d05c3098da51db08b36df7dd97f7.svg'); }
    .dsi-folder { -webkit-mask-image: url('/css/icons/dsi-folder-d62539ae791c35ea48324d27914eae9e.svg'); mask-image: url('/css/icons/dsi-folder-d62539ae791c35ea48324d27914eae9e.svg'); }
    .dsi-tag { -webkit-mask-image: url('/css/icons/dsi-tag-4455080128f885234feae3fd15e3be81.svg'); mask-image: url('/css/icons/dsi-tag-4455080128f885234feae3fd15e3be81.svg'); }
    .dsi-settings { -webkit-mask-image: url('/css/icons/dsi-settings-98fd60d4b5902bd2bdc66d74e609454f.svg'); mask-image: url('/css/icons/dsi-settings-98fd60d4b5902bd2bdc66d74e609454f.svg'); }
    .dsi-hostel { -webkit-mask-image: url('/css/icons/dsi-hostel-6046f0aea32344e44629b9e096325a5c.svg'); mask-image: url('/css/icons/dsi-hostel-6046f0aea32344e44629b9e096325a5c.svg'); }
    .dsi-graduation-cap { -webkit-mask-image: url('/css/icons/dsi-graduation-cap-e6b5fbd3bb7ec46775ac76cdde0cf846.svg'); mask-image: url('/css/icons/dsi-graduation-cap-e6b5fbd3bb7ec46775ac76cdde0cf846.svg'); }
    .dsi-forklift { -webkit-mask-image: url('/css/icons/dsi-forklift-28bc21b4743ae98c916995ea848a076f.svg'); mask-image: url('/css/icons/dsi-forklift-28bc21b4743ae98c916995ea848a076f.svg'); }
    .dsi-inspection { -webkit-mask-image: url('/css/icons/dsi-inspection-86e19ba49ecb212decea8d2572d60865.svg'); mask-image: url('/css/icons/dsi-inspection-86e19ba49ecb212decea8d2572d60865.svg'); }
    .dsi-warehouse { -webkit-mask-image: url('/css/icons/dsi-warehouse-850d734bbdd868d89140f6472e0ccbd7.svg'); mask-image: url('/css/icons/dsi-warehouse-850d734bbdd868d89140f6472e0ccbd7.svg'); }
    .dsi-security { -webkit-mask-image: url('/css/icons/dsi-security-703ab46441db2e20baa39f4de4f1eafa.svg'); mask-image: url('/css/icons/dsi-security-703ab46441db2e20baa39f4de4f1eafa.svg'); }
    .dsi-audit { -webkit-mask-image: url('/css/icons/dsi-audit-3250802c9c6bda284939b524d01f470a.svg'); mask-image: url('/css/icons/dsi-audit-3250802c9c6bda284939b524d01f470a.svg'); }
    .dsi-message { -webkit-mask-image: url('/css/icons/dsi-message-577107353f0d7177988a2bc01c0d6c1a.svg'); mask-image: url('/css/icons/dsi-message-577107353f0d7177988a2bc01c0d6c1a.svg'); }
    .dsi-examination { -webkit-mask-image: url('/css/icons/dsi-examination-1f89c575ca6d253141efdc7493bc66f5.svg'); mask-image: url('/css/icons/dsi-examination-1f89c575ca6d253141efdc7493bc66f5.svg'); }
    .dsi-membership { -webkit-mask-image: url('/css/icons/dsi-membership-82dc3acd8cf64aaaea7890cdf2010cb6.svg'); mask-image: url('/css/icons/dsi-membership-82dc3acd8cf64aaaea7890cdf2010cb6.svg'); }
    .dsi-asset { -webkit-mask-image: url('/css/icons/dsi-asset-c17067cf13c0a80393a35374b7a17955.svg'); mask-image: url('/css/icons/dsi-asset-c17067cf13c0a80393a35374b7a17955.svg'); }
    .dsi-dashboard { -webkit-mask-image: url('/css/icons/dsi-dashboard-da5f09ce24f5cb8c15f77a43d159d48e.svg'); mask-image: url('/css/icons/dsi-dashboard-da5f09ce24f5cb8c15f77a43d159d48e.svg'); }
    .dsi-frontdesk { -webkit-mask-image: url('/css/icons/dsi-frontdesk-1bbe13657ac60264f48e7c264b4ee15e.svg'); mask-image: url('/css/icons/dsi-frontdesk-1bbe13657ac60264f48e7c264b4ee15e.svg'); }
    .dsi-attendance { -webkit-mask-image: url('/css/icons/dsi-attendance-8dfa0e0a286a18c4dc56baed3554439f.svg'); mask-image: url('/css/icons/dsi-attendance-8dfa0e0a286a18c4dc56baed3554439f.svg'); }
    .dsi-store { -webkit-mask-image: url('/css/icons/dsi-store-9867bd1610aa67004df3a91401eba772.svg'); mask-image: url('/css/icons/dsi-store-9867bd1610aa67004df3a91401eba772.svg'); }
    .dsi-finance { -webkit-mask-image: url('/css/icons/dsi-finance-e11e93c31d465780b26fc313240ebafc.svg'); mask-image: url('/css/icons/dsi-finance-e11e93c31d465780b26fc313240ebafc.svg'); }
    .dsi-payroll { -webkit-mask-image: url('/css/icons/dsi-payroll-61b96317aaf0b5af56c1af3dc889a34f.svg'); mask-image: url('/css/icons/dsi-payroll-61b96317aaf0b5af56c1af3dc889a34f.svg'); }
    .dsi-service { -webkit-mask-image: url('/css/icons/dsi-service-daf8ad43d144bf992a428083a8f69377.svg'); mask-image: url('/css/icons/dsi-service-daf8ad43d144bf992a428083a8f69377.svg'); }
    .dsi-workflow { -webkit-mask-image: url('/css/icons/dsi-workflow-3d3db92075e939db5e1688c568b8dd4c.svg'); mask-image: url('/css/icons/dsi-workflow-3d3db92075e939db5e1688c568b8dd4c.svg'); }
    .dsi-home { -webkit-mask-image: url('/css/icons/dsi-home-bafad17d18140ac4f28f15e3aa1795f9.svg'); mask-image: url('/css/icons/dsi-home-bafad17d18140ac4f28f15e3aa1795f9.svg'); }

    /* UI-chrome icons - found hardcoded as inline <svg>/lucide-* markup across
       layouts/, screens/, partials/, components/. */
    .dsi-close { -webkit-mask-image: url('/css/icons/dsi-close-7efd277d10a95b82ebf987e85d4df656.svg'); mask-image: url('/css/icons/dsi-close-7efd277d10a95b82ebf987e85d4df656.svg'); }
    .dsi-refresh { -webkit-mask-image: url('/css/icons/dsi-refresh-6bc7a29e708e5c65c30be89266c138d2.svg'); mask-image: url('/css/icons/dsi-refresh-6bc7a29e708e5c65c30be89266c138d2.svg'); }
    .dsi-chevron-down { -webkit-mask-image: url('/css/icons/dsi-chevron-down-401cb93b87962ef28fc973f14c62cedf.svg'); mask-image: url('/css/icons/dsi-chevron-down-401cb93b87962ef28fc973f14c62cedf.svg'); }
    .dsi-chevron-right { -webkit-mask-image: url('/css/icons/dsi-chevron-right-04f1c1b73b2bb5e3441190d605757af9.svg'); mask-image: url('/css/icons/dsi-chevron-right-04f1c1b73b2bb5e3441190d605757af9.svg'); }
    .dsi-ellipsis { -webkit-mask-image: url('/css/icons/dsi-ellipsis-6a21fd1b3561b5cb7343dd89ec0024c1.svg'); mask-image: url('/css/icons/dsi-ellipsis-6a21fd1b3561b5cb7343dd89ec0024c1.svg'); }
    .dsi-external-link { -webkit-mask-image: url('/css/icons/dsi-external-link-bbdd1d2bd89515818cb21e745178f9ab.svg'); mask-image: url('/css/icons/dsi-external-link-bbdd1d2bd89515818cb21e745178f9ab.svg'); }
    .dsi-layers { -webkit-mask-image: url('/css/icons/dsi-layers-22e3e947dd17d3c10adef202e2ac0718.svg'); mask-image: url('/css/icons/dsi-layers-22e3e947dd17d3c10adef202e2ac0718.svg'); }
    .dsi-barcode { -webkit-mask-image: url('/css/icons/dsi-barcode-2ca93f0b98910643550ccb38b5ad161d.svg'); mask-image: url('/css/icons/dsi-barcode-2ca93f0b98910643550ccb38b5ad161d.svg'); }
    .dsi-book-user { -webkit-mask-image: url('/css/icons/dsi-book-user-5c37ea983f92d11660cb59bedd3ca2ea.svg'); mask-image: url('/css/icons/dsi-book-user-5c37ea983f92d11660cb59bedd3ca2ea.svg'); }
    .dsi-phone { -webkit-mask-image: url('/css/icons/dsi-phone-e2df12afef84c99ba57245e9c5160d15.svg'); mask-image: url('/css/icons/dsi-phone-e2df12afef84c99ba57245e9c5160d15.svg'); }
    .dsi-bell { -webkit-mask-image: url('/css/icons/dsi-bell-8fb1819e1a76039974e8a9d3514160f2.svg'); mask-image: url('/css/icons/dsi-bell-8fb1819e1a76039974e8a9d3514160f2.svg'); }
    .dsi-menu { -webkit-mask-image: url('/css/icons/dsi-menu-b68e747f489a75602f1f83615850ae65.svg'); mask-image: url('/css/icons/dsi-menu-b68e747f489a75602f1f83615850ae65.svg'); }
    .dsi-grid { -webkit-mask-image: url('/css/icons/dsi-grid-1e72e67ff0e1b63ad3b6a619aa5d229d.svg'); mask-image: url('/css/icons/dsi-grid-1e72e67ff0e1b63ad3b6a619aa5d229d.svg'); }
    .dsi-table { -webkit-mask-image: url('/css/icons/dsi-table-1e6b46a7fdbebc1cc9d7125be18d3cad.svg'); mask-image: url('/css/icons/dsi-table-1e6b46a7fdbebc1cc9d7125be18d3cad.svg'); }
    .dsi-sun { -webkit-mask-image: url('/css/icons/dsi-sun-6ca8c90935c556c692b295b9aebe88fa.svg'); mask-image: url('/css/icons/dsi-sun-6ca8c90935c556c692b295b9aebe88fa.svg'); }
    .dsi-moon { -webkit-mask-image: url('/css/icons/dsi-moon-99f709d8c328d8f3ca860c25666b0060.svg'); mask-image: url('/css/icons/dsi-moon-99f709d8c328d8f3ca860c25666b0060.svg'); }
    .dsi-alert { -webkit-mask-image: url('/css/icons/dsi-alert-1fc8ac0182b29c5494e043bccfb15ecc.svg'); mask-image: url('/css/icons/dsi-alert-1fc8ac0182b29c5494e043bccfb15ecc.svg'); }
    .dsi-undo { -webkit-mask-image: url('/css/icons/dsi-undo-b1456d959d9f38a93ff4665c3b4ce8f7.svg'); mask-image: url('/css/icons/dsi-undo-b1456d959d9f38a93ff4665c3b4ce8f7.svg'); }
    .dsi-eye-off { -webkit-mask-image: url('/css/icons/dsi-eye-off-f05fc156a5283bb0c167cfc19e3427c1.svg'); mask-image: url('/css/icons/dsi-eye-off-f05fc156a5283bb0c167cfc19e3427c1.svg'); }
    .dsi-download { -webkit-mask-image: url('/css/icons/dsi-download-33ee6405e1a516dedf1e051bd87798e8.svg'); mask-image: url('/css/icons/dsi-download-33ee6405e1a516dedf1e051bd87798e8.svg'); }
