/* Iconos locales de la Consola Contable. No requiere fuentes ni CDN. */
.bx {
    /* Valor de partida del catalogo: si manana el backend entrega una clase
       que todavia no tiene forma propia, el icono pinta este punto neutro en
       lugar de dejar el hueco vacio y descuadrar el texto del menu. */
    --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E");
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    line-height: 1;
    vertical-align: -0.125em;
}

.bx::before {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask: var(--speas-contable-icon) center / contain no-repeat;
    mask: var(--speas-contable-icon) center / contain no-repeat;
}

/* Todo icono utilizado tiene un fallback local para que una clase nueva nunca
   vuelva a abrir una dependencia hacia una fuente o CDN. */
.bx-archive,
.bx-archive-in,
.bx-arrow-back,
.bx-bank,
.bx-bar-chart-alt-2,
.bx-bar-chart-square,
.bx-been-here,
.bx-bell,
.bx-block,
.bx-bolt-circle,
.bx-book,
.bx-book-open,
.bx-brain,
.bx-briefcase-alt-2,
.bx-bug,
.bx-buildings,
.bx-calculator,
.bx-calendar,
.bx-calendar-check,
.bx-calendar-event,
.bx-calendar-exclamation,
.bx-calendar-plus,
.bx-calendar-x,
.bx-cart,
.bx-check,
.bx-check-circle,
.bx-check-double,
.bx-check-shield,
.bx-chevron-down,
.bx-chevron-right,
.bx-chevron-up,
.bx-cog,
.bx-comment,
.bx-comment-error,
.bx-copy,
.bx-copy-alt,
.bx-credit-card,
.bx-credit-card-front,
.bx-dollar-circle,
.bx-down-arrow-circle,
.bx-download,
.bx-edit,
.bx-edit-alt,
.bx-envelope,
.bx-error,
.bx-error-circle,
.bx-file,
.bx-file-find,
.bx-filter-alt,
.bx-flag,
.bx-folder,
.bx-folder-open,
.bx-ghost,
.bx-git-branch,
.bx-git-compare,
.bx-git-merge,
.bx-grid-alt,
.bx-hand-right,
.bx-hide,
.bx-history,
.bx-home-alt-2,
.bx-hourglass,
.bx-inbox,
.bx-info-circle,
.bx-key,
.bx-landmark,
.bx-layer,
.bx-layer-plus,
.bx-line-chart,
.bx-link-alt,
.bx-link-external,
.bx-list-check,
.bx-list-ul,
.bx-loader-alt,
.bx-lock-alt,
.bx-lock-open-alt,
.bx-log-out,
.bx-menu,
.bx-message-rounded-dots,
.bx-message-square-detail,
.bx-minus-circle,
.bx-mobile-alt,
.bx-money,
.bx-money-withdraw,
.bx-note,
.bx-notepad,
.bx-palette,
.bx-paperclip,
.bx-pause,
.bx-pause-circle,
.bx-pen,
.bx-pie-chart-alt-2,
.bx-play,
.bx-play-circle,
.bx-plus,
.bx-plus-circle,
.bx-purchase-tag,
.bx-purchase-tag-alt,
.bx-receipt,
.bx-refresh,
.bx-repeat,
.bx-revision,
.bx-right-arrow-alt,
.bx-save,
.bx-search,
.bx-search-alt,
.bx-send,
.bx-shape-triangle,
.bx-shield-quarter,
.bx-shield-x,
.bx-show,
.bx-sitemap,
.bx-spin,
.bx-spreadsheet,
.bx-square,
.bx-store,
.bx-sync,
.bx-tachometer,
.bx-target-lock,
.bx-time,
.bx-time-five,
.bx-transfer,
.bx-transfer-alt,
.bx-trash,
.bx-trending-down,
.bx-trending-up,
.bx-undo,
.bx-up-arrow-circle,
.bx-upload,
.bx-user,
.bx-user-check,
.bx-user-voice,
.bx-wallet,
.bx-water,
.bx-wifi-off,
.bx-x,
.bx-x-circle,
/* Unica clase con prefijo bxl- del catalogo: el modulo `meta` la declara asi. */
.bxl-meta {
    --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E");
}

.bx-buildings,
.bx-bank,
.bx-landmark,
.bx-store { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 20h18v2H3v-2Zm2-9h2v7H5v-7Zm4 0h2v7H9v-7Zm4 0h2v7h-2v-7Zm4 0h2v7h-2v-7ZM12 2l10 6v2H2V8l10-6Z'/%3E%3C/svg%3E"); }

.bx-bar-chart-alt-2,
.bx-bar-chart-square,
.bx-line-chart,
.bx-pie-chart-alt-2,
.bx-tachometer,
.bx-trending-down,
.bx-trending-up { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h2v16h16v2H3V3Zm4 11 4-4 3 3 5-7 2 1.5-6.5 9-3.5-3.5-2.5 2.5L7 14Z'/%3E%3C/svg%3E"); }

.bx-archive,
.bx-archive-in,
.bx-folder,
.bx-folder-open,
.bx-inbox { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h7l2 2h9v13H3V5Zm2 4v9h14V9H5Z'/%3E%3C/svg%3E"); }

.bx-book,
.bx-book-open,
.bx-file,
.bx-file-find,
.bx-note,
.bx-notepad,
.bx-receipt,
.bx-spreadsheet { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 2h10l4 4v16H5V2Zm10 2v4h4l-4-4ZM8 11h8v2H8v-2Zm0 4h8v2H8v-2Z'/%3E%3C/svg%3E"); }

.bx-calendar,
.bx-calendar-check,
.bx-calendar-event,
.bx-calendar-exclamation,
.bx-calendar-plus,
.bx-calendar-x,
.bx-time,
.bx-time-five,
.bx-history,
.bx-hourglass { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 2h2v2h10V2h2v2h3v18H2V4h3V2Zm15 8H4v10h16V10ZM4 6v2h16V6H4Z'/%3E%3C/svg%3E"); }

.bx-check,
.bx-check-circle,
.bx-check-double,
.bx-check-shield,
.bx-been-here,
.bx-user-check { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9.2 18-6-6 2.1-2.1 3.9 3.9 9.5-9.5 2.1 2.1L9.2 18Z'/%3E%3C/svg%3E"); }

.bx-shield-quarter,
.bx-key,
.bx-lock-alt,
.bx-lock-open-alt,
.bx-target-lock { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4 5v6c0 5.2 3.4 9.7 8 11 4.6-1.3 8-5.8 8-11V5l-8-3Zm-1 6h2v3h3v2h-3v3h-2v-3H8v-2h3V8Z'/%3E%3C/svg%3E"); }

.bx-error,
.bx-error-circle,
.bx-shield-x,
.bx-x,
.bx-x-circle,
.bx-calendar-x,
.bx-block { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 4 6 6 6-6 2 2-6 6 6 6-2 2-6-6-6 6-2-2 6-6-6-6 2-2Z'/%3E%3C/svg%3E"); }

.bx-arrow-back,
.bx-right-arrow-alt,
.bx-transfer,
.bx-transfer-alt,
.bx-up-arrow-circle,
.bx-down-arrow-circle,
.bx-undo,
.bx-refresh,
.bx-repeat,
.bx-revision,
.bx-sync { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 7h11V3l6 6-6 6v-4H4V7Zm16 10H9v4l-6-6 6-6v4h11v4Z'/%3E%3C/svg%3E"); }

.bx-chevron-down,
.bx-chevron-up { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4 8 8 8 8-8-2-2-6 6-6-6-2 2Z'/%3E%3C/svg%3E"); }
.bx-chevron-right { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m8 4 8 8-8 8-2-2 6-6-6-6 2-2Z'/%3E%3C/svg%3E"); }

.bx-wallet,
.bx-credit-card,
.bx-credit-card-front,
.bx-dollar-circle,
.bx-money,
.bx-money-withdraw,
.bx-cart { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v14H3V5Zm2 3h14V7H5v1Zm0 3v6h14v-6H5Zm9 2h3v2h-3v-2Z'/%3E%3C/svg%3E"); }

.bx-envelope,
.bx-send,
.bx-comment,
.bx-comment-error,
.bx-message-rounded-dots,
.bx-message-square-detail,
.bx-user-voice { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h18v14H8l-5 4V3Zm4 5v2h10V8H7Zm0 4v2h7v-2H7Z'/%3E%3C/svg%3E"); }

.bx-user,
.bx-mobile-alt,
.bx-briefcase-alt-2 { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 12c5.5 0 9 2.5 9 6v2H3v-2c0-3.5 3.5-6 9-6Z'/%3E%3C/svg%3E"); }

.bx-edit,
.bx-edit-alt,
.bx-pen,
.bx-flag,
.bx-filter-alt,
.bx-purchase-tag,
.bx-purchase-tag-alt { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4 17 12-12 3 3L7 20H4v-3Zm13-14 2-2 4 4-2 2-4-4Z'/%3E%3C/svg%3E"); }

.bx-plus,
.bx-plus-circle,
.bx-layer-plus { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 2h4v8h8v4h-8v8h-4v-8H2v-4h8V2Z'/%3E%3C/svg%3E"); }

.bx-minus-circle { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 10h16v4H4v-4Z'/%3E%3C/svg%3E"); }

.bx-search,
.bx-search-alt,
.bx-show,
.bx-hide { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 2a8 8 0 1 1-4.9 14.3L1.4 20 4 22.6l3.7-3.7A8 8 0 0 1 10 2Zm0 3a5 5 0 1 0 0 10 5 5 0 0 0 0-10Z'/%3E%3C/svg%3E"); }

.bx-upload,
.bx-download,
.bx-archive-in { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 6 6h-4v7h-4V9H6l6-6ZM4 18h16v3H4v-3Z'/%3E%3C/svg%3E"); }

.bx-play,
.bx-play-circle,
.bx-pause,
.bx-pause-circle { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 4v16l12-8L8 4Z'/%3E%3C/svg%3E"); }

.bx-loader-alt { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 1 10 10h-3a7 7 0 1 0-7 7v3a10 10 0 0 1 0-20Z'/%3E%3C/svg%3E"); }
.bx-menu,
.bx-grid-alt,
.bx-list-ul,
.bx-list-check,
.bx-sitemap,
.bx-git-branch,
.bx-git-compare,
.bx-git-merge { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v2H3V5Zm0 6h18v2H3v-2Zm0 6h18v2H3v-2Z'/%3E%3C/svg%3E"); }
.bx-log-out { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 2h10v3H6v14h7v3H3V2Zm13 5 6 5-6 5v-3H9v-4h7V7Z'/%3E%3C/svg%3E"); }
.bx-save { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 2h15l3 3v17H3V2Zm3 3v5h10V5H6Zm1 9v5h10v-5H7Z'/%3E%3C/svg%3E"); }
.bx-trash { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 2h8l1 2h4v3H3V4h4l1-2ZM5 9h14l-1 13H6L5 9Z'/%3E%3C/svg%3E"); }
.bx-info-circle,
.bx-bolt-circle,
.bx-bell,
.bx-bug,
.bx-brain,
.bx-calculator,
.bx-link-alt,
.bx-link-external,
.bx-paperclip,
.bx-wifi-off { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20Zm-1 8v8h2v-8h-2Zm0-4v2h2V6h-2Z'/%3E%3C/svg%3E"); }

/* Formas propias de las clases que el menu entrega y que no encajaban en
   ninguna familia anterior. `bx-bank` ya tenia la suya (fachada con
   columnas) y por eso el grupo `Tesoreria y bancos` vuelve a alinear. */
.bx-home-alt-2 { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 12h3v9h6v-6h2v6h6v-9h3L12 3Z'/%3E%3C/svg%3E"); }
.bx-cog { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h9v2H4V5Zm11 0h5v2h-5V5Zm-2-2h2v6h-2V3ZM4 11h4v2H4v-2Zm6 0h10v2H10v-2ZM8 9h2v6H8V9Zm-4 8h9v2H4v-2Zm11 0h5v2h-5v-2Zm-2-2h2v6h-2v-6Z'/%3E%3C/svg%3E"); }
.bx-water { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2s7 7.6 7 12a7 7 0 0 1-14 0c0-4.4 7-12 7-12Z'/%3E%3C/svg%3E"); }
.bx-palette { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 3a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm8 0a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm-4 10a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z'/%3E%3C/svg%3E"); }
.bxl-meta { --speas-contable-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 6c2.3 0 3.8 1.7 5 3.4l1-1.4C13.4 6.5 15 6 16.5 6 20 6 22 8.7 22 12s-2 6-5.5 6c-1.6 0-3-.8-4.1-2.3l-1.6-2.3-1.6 2.3C8.1 17.2 6.8 18 5.2 18 2.5 18 1 15.7 1 12.6 1 9 3 6 6 6Zm-.4 3C4.2 9 3.4 10.6 3.4 12.5c0 1.7.7 2.7 1.9 2.7 1 0 1.8-.6 2.9-2.2l1-1.5C8.1 9.9 7 9 5.6 9Zm10.8 0c-1 0-1.9.6-3 2.2l-1 1.5c1.1 1.6 2.2 2.5 3.6 2.5 1.4 0 2.2-1.2 2.2-3.1S17.6 9 16.4 9Z'/%3E%3C/svg%3E"); }

.bx-spin::before { animation: speas-contable-icon-spin 0.8s linear infinite; }
@keyframes speas-contable-icon-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .bx-spin::before { animation-duration: 1.8s; } }
