/* SabrePM icon set: the one place every toolbar, top bar and command-bar icon is drawn.
   Each icon is a 24x24 line drawing (2px stroke, round caps) used as a CSS mask and filled with currentColor, so it
   takes the text colour of whatever button or bar it sits in. Use it by class, never by copying a drawing:
     - Syncfusion IconCss / PrefixIcon / SuffixIcon:  IconCss="@GntIcons.Add"
     - plain markup:                                   <GNTIcon Icon="@GntIcons.Add" />
   GntIcons (Sabre.Shared.Web/Components/GntIcons.cs) names every class below; add a drawing here and a constant there
   together. Loaded by every host that shows Shared.Web components (App, Platform, Portal, Mobile web and MAUI); Public and the
   setup UI copy it in at build.
   Drawings are in the style of Lucide (ISC licence); write any new one in the same style. Keep "#" out of a drawing:
   it ends a data URI. */

/* The drawings, one custom property each. The classes below point at them; a stylesheet that needs an icon as a
   pseudo-element marker (an installer step tick) uses the property directly: mask: var(--gnticon-check) ... */
:root {
    --gnticon-add: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='M12 5v14'/></svg>");
    --gnticon-edit: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21.2 6.8a2.8 2.8 0 0 0-4-4L3.8 16.2a2 2 0 0 0-.5.8L2 21.4a.5.5 0 0 0 .6.6l4.4-1.3a2 2 0 0 0 .8-.5z'/><path d='m15 5 4 4'/></svg>");
    --gnticon-grid-edit: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h5'/><path d='M3 9h9'/><path d='M3 15h7'/><path d='M9 3v18'/><path d='M21.4 13.6a2 2 0 0 0-2.9-2.9L13 16.2l-.8 3.6 3.6-.8z'/></svg>");
    --gnticon-delete: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h18'/><path d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6'/><path d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><path d='M10 11v6'/><path d='M14 11v6'/></svg>");
    --gnticon-save: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z'/><path d='M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7'/><path d='M7 3v4a1 1 0 0 0 1 1h7'/></svg>");
    --gnticon-close: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>");
    --gnticon-refresh: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12a9 9 0 1 1-9-9c2.5 0 4.9 1 6.7 2.7L21 8'/><path d='M21 3v5h-5'/></svg>");
    --gnticon-sync: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 12a8 8 0 0 1-14.3 4.9M4 12a8 8 0 0 1 14.3-4.9'/><path d='M18.5 3v4.2h-4.2M5.5 21v-4.2h4.2'/></svg>");
    --gnticon-search: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");
    --gnticon-print: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/><path d='M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6'/><rect x='6' y='14' width='12' height='8' rx='1'/></svg>");
    --gnticon-import: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><path d='m17 8-5-5-5 5'/><path d='M12 3v12'/></svg>");
    --gnticon-export: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><path d='m7 10 5 5 5-5'/><path d='M12 15V3'/></svg>");
    --gnticon-show-detail: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><path d='M15 3v18'/><path d='m10 15-3-3 3-3'/></svg>");
    --gnticon-hide-detail: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><path d='M15 3v18'/><path d='m8 9 3 3-3 3'/></svg>");
    --gnticon-views: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2 2 7l10 5 10-5z'/><path d='m2 17 10 5 10-5'/><path d='m2 12 10 5 10-5'/></svg>");
    --gnticon-totals: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2'/></svg>");
    --gnticon-group-by: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12h-8'/><path d='M21 6H8'/><path d='M21 18h-8'/><path d='M3 6v4a2 2 0 0 0 2 2h3'/><path d='M3 10v6a2 2 0 0 0 2 2h3'/></svg>");
    --gnticon-gantt: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 6h8'/><path d='M12 16h6'/><path d='M3 3v16a2 2 0 0 0 2 2h16'/><path d='M8 11h7'/></svg>");
    --gnticon-cashflow: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8'/><path d='M12 18V6'/></svg>");
    --gnticon-indent: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12H11'/><path d='M21 18H11'/><path d='M21 6H11'/><path d='m3 8 4 4-4 4'/></svg>");
    --gnticon-outdent: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12H11'/><path d='M21 18H11'/><path d='M21 6H11'/><path d='m7 8-4 4 4 4'/></svg>");
    --gnticon-expand-all: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m7 6 5 5 5-5'/><path d='m7 13 5 5 5-5'/></svg>");
    --gnticon-collapse-all: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m17 11-5-5-5 5'/><path d='m17 18-5-5-5 5'/></svg>");
    --gnticon-zoom-in: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/><path d='M11 8v6'/><path d='M8 11h6'/></svg>");
    --gnticon-zoom-out: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/><path d='M8 11h6'/></svg>");
    --gnticon-today: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M8 2v4'/><path d='M16 2v4'/><rect x='3' y='4' width='18' height='18' rx='2'/><path d='M3 10h18'/><path d='M12 15h.01'/></svg>");
    --gnticon-folder: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.7-.9l-.8-1.2A2 2 0 0 0 7.9 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z'/></svg>");
    --gnticon-timer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 2h4'/><path d='m12 14 3-3'/><circle cx='12' cy='14' r='8'/></svg>");
    --gnticon-chevron-down: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
    --gnticon-chevron-up: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m18 15-6-6-6 6'/></svg>");
    --gnticon-chevron-left: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m15 18-6-6 6-6'/></svg>");
    --gnticon-chevron-right: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m9 18 6-6-6-6'/></svg>");
    --gnticon-home: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8'/><path d='M3 10a2 2 0 0 1 .7-1.5l7-6a2 2 0 0 1 2.6 0l7 6a2 2 0 0 1 .7 1.5v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/></svg>");
    --gnticon-menu: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 12h16'/><path d='M4 6h16'/><path d='M4 18h16'/></svg>");
    --gnticon-open-link: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 3h6v6'/><path d='M10 14 21 3'/><path d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/></svg>");
    --gnticon-sign-out: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/><path d='m16 17 5-5-5-5'/><path d='M21 12H9'/></svg>");
    --gnticon-help: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3'/><path d='M12 17h.01'/></svg>");
    --gnticon-settings: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='3'/><path d='M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z'/></svg>");
    --gnticon-info: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M12 16v-4'/><path d='M12 8h.01'/></svg>");
    --gnticon-tour: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='m16.2 7.8-2.1 6.3-6.3 2.1 2.1-6.3z'/></svg>");
    --gnticon-notifications: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9'/><path d='M13.7 21a2 2 0 0 1-3.4 0'/></svg>");
    --gnticon-assistant: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12 2.5l1.9 5.2 5.2 1.9-5.2 1.9L12 16.7l-1.9-5.2-5.2-1.9 5.2-1.9L12 2.5zM18.5 14l1 2.6 2.6 1-2.6 1-1 2.6-1-2.6-2.6-1 2.6-1 1-2.6zM5.5 15.5l.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7.7-1.8z'/></svg>");
    --gnticon-star: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z'/></svg>");
    --gnticon-star-filled: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z'/></svg>");
    --gnticon-calendar: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M8 2v4'/><path d='M16 2v4'/><rect x='3' y='4' width='18' height='18' rx='2'/><path d='M3 10h18'/></svg>");
    --gnticon-chart: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 3v16a2 2 0 0 0 2 2h16'/><path d='m19 9-5 5-4-4-3 3'/></svg>");
    --gnticon-flow: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='18' r='3'/><circle cx='6' cy='6' r='3'/><circle cx='18' cy='6' r='3'/><path d='M18 9v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V9'/><path d='M12 12v3'/></svg>");
    --gnticon-users: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/><circle cx='9' cy='7' r='4'/><path d='M22 21v-2a4 4 0 0 0-3-3.9'/><path d='M16 3.1a4 4 0 0 1 0 7.8'/></svg>");
    --gnticon-user: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>");
    --gnticon-document: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z'/><path d='M14 2v4a2 2 0 0 0 2 2h4'/><path d='M10 9H8'/><path d='M16 13H8'/><path d='M16 17H8'/></svg>");
    --gnticon-page: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z'/><path d='M14 2v4a2 2 0 0 0 2 2h4'/></svg>");
    --gnticon-grid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='7' rx='1'/><rect x='14' y='3' width='7' height='7' rx='1'/><rect x='14' y='14' width='7' height='7' rx='1'/><rect x='3' y='14' width='7' height='7' rx='1'/></svg>");
    --gnticon-map: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14.1 5.9 9 3.1a2 2 0 0 0-1.8 0L3.6 4.9A1 1 0 0 0 3 5.8v14.6a.5.5 0 0 0 .7.4l3.5-1.7a2 2 0 0 1 1.8 0l5.1 2.8a2 2 0 0 0 1.8 0l3.5-1.8a1 1 0 0 0 .6-.9V4.6a.5.5 0 0 0-.7-.4l-3.5 1.7a2 2 0 0 1-1.8 0z'/><path d='M15 5.8v15'/><path d='M9 3.2v15'/></svg>");
    --gnticon-mail: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='4' width='20' height='16' rx='2'/><path d='m22 7-9 5.7a2 2 0 0 1-2 0L2 7'/></svg>");
    --gnticon-lock: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='11' width='18' height='11' rx='2'/><path d='M7 11V7a5 5 0 0 1 10 0v4'/></svg>");
    --gnticon-clipboard: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='8' y='2' width='8' height='4' rx='1'/><path d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/></svg>");
    --gnticon-list: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h.01'/><path d='M3 12h.01'/><path d='M3 18h.01'/><path d='M8 6h13'/><path d='M8 12h13'/><path d='M8 18h13'/></svg>");
    --gnticon-logs: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M13 6h8'/><path d='M13 12h8'/><path d='M13 18h8'/><path d='M3 6h1'/><path d='M3 12h1'/><path d='M3 18h1'/><path d='M8 6h1'/><path d='M8 12h1'/><path d='M8 18h1'/></svg>");
    --gnticon-task: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><path d='m9 12 2 2 4-4'/></svg>");
    --gnticon-check: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");
    --gnticon-cloud: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M17.5 19H9a7 7 0 1 1 6.7-9h1.8a4.5 4.5 0 1 1 0 9z'/></svg>");
    --gnticon-link: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.8 1.7'/><path d='M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7'/></svg>");
    --gnticon-database: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='12' cy='5' rx='9' ry='3'/><path d='M3 5v14a9 3 0 0 0 18 0V5'/><path d='M3 12a9 3 0 0 0 18 0'/></svg>");
    --gnticon-clock: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M12 6v6l4 2'/></svg>");
    --gnticon-code: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m16 18 6-6-6-6'/><path d='m8 6-6 6 6 6'/></svg>");
    --gnticon-shuffle: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m18 14 4 4-4 4'/><path d='m18 2 4 4-4 4'/><path d='M2 18h1.4c1.3 0 2.5-.6 3.3-1.7l6.1-8.6c.7-1.1 2-1.7 3.3-1.7H22'/><path d='M2 6h1.9c1.5 0 2.9.9 3.6 2.2'/><path d='M22 18h-5.9c-1.3 0-2.6-.7-3.3-1.8l-.5-.8'/></svg>");
    --gnticon-repeat: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m17 2 4 4-4 4'/><path d='M3 11v-1a4 4 0 0 1 4-4h14'/><path d='m7 22-4-4 4-4'/><path d='M21 13v1a4 4 0 0 1-4 4H3'/></svg>");
    --gnticon-wrench: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z'/></svg>");
    --gnticon-sun: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='4'/><path d='M12 2v2'/><path d='M12 20v2'/><path d='m4.9 4.9 1.4 1.4'/><path d='m17.7 17.7 1.4 1.4'/><path d='M2 12h2'/><path d='M20 12h2'/><path d='m6.3 17.7-1.4 1.4'/><path d='m19.1 4.9-1.4 1.4'/></svg>");
    --gnticon-moon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z'/></svg>");
    --gnticon-globe: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20'/><path d='M2 12h20'/></svg>");
    --gnticon-chevrons-left: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m11 17-5-5 5-5'/><path d='m18 17-5-5 5-5'/></svg>");
    --gnticon-chevrons-right: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 17 5-5-5-5'/><path d='m13 17 5-5-5-5'/></svg>");
}

.gnt-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: var(--gnticon-size, 18px);
    height: var(--gnticon-size, 18px);
    font-style: normal;
    line-height: 1;
    vertical-align: middle;
}

.gnt-icon::before {
    content: "" !important;
    display: block;
    width: var(--gnticon-size, 18px);
    height: var(--gnticon-size, 18px);
    background-color: currentColor;
    -webkit-mask: var(--gnticon-svg) center / contain no-repeat;
    mask: var(--gnticon-svg) center / contain no-repeat;
}

/* Sizes: small for dropdown carets and inline remove buttons, large for touch bars. */
.gnt-icon--sm { --gnticon-size: 14px; }
.gnt-icon--lg { --gnticon-size: 22px; }

/* A spinning icon (sync in progress). */
.gnt-icon--spin::before { animation: gnt-icon-spin 1s linear infinite; }
@keyframes gnt-icon-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .gnt-icon--spin::before { animation: none; } }

/* ---- Record commands ---- */
.gnt-icon-add { --gnticon-svg: var(--gnticon-add); }
.gnt-icon-edit { --gnticon-svg: var(--gnticon-edit); }
.gnt-icon-grid-edit { --gnticon-svg: var(--gnticon-grid-edit); }
.gnt-icon-delete { --gnticon-svg: var(--gnticon-delete); }
.gnt-icon-save { --gnticon-svg: var(--gnticon-save); }
/* Cancel edits, close a panel, dismiss a message, remove a row: one cross. */
.gnt-icon-close { --gnticon-svg: var(--gnticon-close); }
.gnt-icon-refresh { --gnticon-svg: var(--gnticon-refresh); }
/* Sync: send pending offline changes and fetch (Mobile). */
.gnt-icon-sync { --gnticon-svg: var(--gnticon-sync); }
.gnt-icon-search { --gnticon-svg: var(--gnticon-search); }
.gnt-icon-print { --gnticon-svg: var(--gnticon-print); }
.gnt-icon-import { --gnticon-svg: var(--gnticon-import); }
.gnt-icon-export { --gnticon-svg: var(--gnticon-export); }

/* ---- Grid layout and views ---- */
.gnt-icon-show-detail { --gnticon-svg: var(--gnticon-show-detail); }
.gnt-icon-hide-detail { --gnticon-svg: var(--gnticon-hide-detail); }
.gnt-icon-views { --gnticon-svg: var(--gnticon-views); }
.gnt-icon-totals { --gnticon-svg: var(--gnticon-totals); }
.gnt-icon-group-by { --gnticon-svg: var(--gnticon-group-by); }
.gnt-icon-gantt { --gnticon-svg: var(--gnticon-gantt); }
.gnt-icon-cashflow { --gnticon-svg: var(--gnticon-cashflow); }
.gnt-icon-indent { --gnticon-svg: var(--gnticon-indent); }
.gnt-icon-outdent { --gnticon-svg: var(--gnticon-outdent); }
.gnt-icon-expand-all { --gnticon-svg: var(--gnticon-expand-all); }
.gnt-icon-collapse-all { --gnticon-svg: var(--gnticon-collapse-all); }
.gnt-icon-zoom-in { --gnticon-svg: var(--gnticon-zoom-in); }
.gnt-icon-zoom-out { --gnticon-svg: var(--gnticon-zoom-out); }
.gnt-icon-today { --gnticon-svg: var(--gnticon-today); }
.gnt-icon-folder { --gnticon-svg: var(--gnticon-folder); }
.gnt-icon-timer { --gnticon-svg: var(--gnticon-timer); }

/* ---- Navigation and direction ---- */
.gnt-icon-chevron-down { --gnticon-svg: var(--gnticon-chevron-down); }
.gnt-icon-chevron-up { --gnticon-svg: var(--gnticon-chevron-up); }
.gnt-icon-chevron-left { --gnticon-svg: var(--gnticon-chevron-left); }
.gnt-icon-chevron-right { --gnticon-svg: var(--gnticon-chevron-right); }
.gnt-icon-home { --gnticon-svg: var(--gnticon-home); }
.gnt-icon-menu { --gnticon-svg: var(--gnticon-menu); }
.gnt-icon-open-link { --gnticon-svg: var(--gnticon-open-link); }
.gnt-icon-sign-out { --gnticon-svg: var(--gnticon-sign-out); }

/* ---- Shell: help, settings, information, notifications, assistant, favourites ---- */
.gnt-icon-help { --gnticon-svg: var(--gnticon-help); }
/* The settings cog (Greg, 2026-10-13: the Mobile top bar's cog is the standard for every app). */
.gnt-icon-settings { --gnticon-svg: var(--gnticon-settings); }
.gnt-icon-info { --gnticon-svg: var(--gnticon-info); }
.gnt-icon-tour { --gnticon-svg: var(--gnticon-tour); }
.gnt-icon-notifications { --gnticon-svg: var(--gnticon-notifications); }
.gnt-icon-assistant { --gnticon-svg: var(--gnticon-assistant); }
.gnt-icon-star { --gnticon-svg: var(--gnticon-star); }
.gnt-icon-star-filled { --gnticon-svg: var(--gnticon-star-filled); }

/* ---- Navigation (ribbon and menu items; NavigationItems.IconPath) and the footer tray ---- */
.gnt-icon-calendar { --gnticon-svg: var(--gnticon-calendar); }
.gnt-icon-chart { --gnticon-svg: var(--gnticon-chart); }
.gnt-icon-flow { --gnticon-svg: var(--gnticon-flow); }
.gnt-icon-users { --gnticon-svg: var(--gnticon-users); }
.gnt-icon-user { --gnticon-svg: var(--gnticon-user); }
.gnt-icon-document { --gnticon-svg: var(--gnticon-document); }
.gnt-icon-page { --gnticon-svg: var(--gnticon-page); }
.gnt-icon-grid { --gnticon-svg: var(--gnticon-grid); }
.gnt-icon-map { --gnticon-svg: var(--gnticon-map); }
.gnt-icon-mail { --gnticon-svg: var(--gnticon-mail); }
.gnt-icon-lock { --gnticon-svg: var(--gnticon-lock); }
.gnt-icon-clipboard { --gnticon-svg: var(--gnticon-clipboard); }
.gnt-icon-list { --gnticon-svg: var(--gnticon-list); }
.gnt-icon-logs { --gnticon-svg: var(--gnticon-logs); }
.gnt-icon-task { --gnticon-svg: var(--gnticon-task); }
.gnt-icon-check { --gnticon-svg: var(--gnticon-check); }
.gnt-icon-cloud { --gnticon-svg: var(--gnticon-cloud); }
.gnt-icon-link { --gnticon-svg: var(--gnticon-link); }
.gnt-icon-database { --gnticon-svg: var(--gnticon-database); }
.gnt-icon-clock { --gnticon-svg: var(--gnticon-clock); }
.gnt-icon-code { --gnticon-svg: var(--gnticon-code); }
.gnt-icon-shuffle { --gnticon-svg: var(--gnticon-shuffle); }
.gnt-icon-repeat { --gnticon-svg: var(--gnticon-repeat); }
.gnt-icon-wrench { --gnticon-svg: var(--gnticon-wrench); }
.gnt-icon-sun { --gnticon-svg: var(--gnticon-sun); }
.gnt-icon-moon { --gnticon-svg: var(--gnticon-moon); }
.gnt-icon-globe { --gnticon-svg: var(--gnticon-globe); }
.gnt-icon-chevrons-left { --gnticon-svg: var(--gnticon-chevrons-left); }
.gnt-icon-chevrons-right { --gnticon-svg: var(--gnticon-chevrons-right); }
