/* Shared artwork geometry. Theme colors, logos, maps and printed output stay authored. */
@layer gentri-refinement {
@media screen {
  html:root[data-bims-theme] body .bpw-icon.ico {
    --bims-icon-size: 18px;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 var(--bims-icon-size) !important;
    width: var(--bims-icon-size) !important;
    min-width: var(--bims-icon-size) !important;
    max-width: var(--bims-icon-size) !important;
    height: var(--bims-icon-size) !important;
    min-height: var(--bims-icon-size) !important;
    max-height: var(--bims-icon-size) !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    vertical-align: -.125em !important;
  }

  html:root[data-bims-theme] body .bpw-icon.ico > svg {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    margin: 0 !important;
  }

  /* Keep semantic sizes; only an icon's artwork fills these square slots. */
  html:root[data-bims-theme] body .bpw-icon.ico.module-icon { --bims-icon-size: 22px; }
  html:root[data-bims-theme] body .bpw-icon.ico:is(.metric-icon,.health-check-icon) { --bims-icon-size: 24px; }
  html:root[data-bims-theme] body .bpw-icon.ico:is(.workflow-icon,.health-section-icon) { --bims-icon-size: 20px; }
  html:root[data-bims-theme] body .bpw-icon.ico.category-hero-icon { --bims-icon-size: 28px; }
  html:root[data-bims-theme] body :is(.payroll-entry-icon,.bims-workspace-card-icon) > .bpw-icon.ico { --bims-icon-size: 21px; }

  /* Decorative artwork stays upright; stateful disclosure arrows keep their rotation. */
  html:root[data-bims-theme] body :is(.payroll-entry-icon,.bims-workspace-card-icon) > .bpw-icon.ico,
  html:root[data-bims-theme] body .module-card > .bpw-icon.ico,
  html:root[data-bims-theme] body .module-card .module-card-top > .bpw-icon.ico,
  html:root[data-bims-theme] body :is(h1,h2,h3):not([aria-expanded]) > .bpw-icon.ico {
    transform: none !important;
  }

  /* A heading is one row of artwork and copy, including JS-inserted icons. */
  html:root[data-bims-theme] body.bims-admin-shell :is(h1,h2,h3,h4.form-section-title):not([data-no-auto-icon]):has(> .bpw-icon.ico) {
    display: flex !important;
    align-items: center !important;
    column-gap: 10px !important;
    min-width: 0;
  }
  html:root[data-bims-theme] body.bims-admin-shell h1 > .bpw-icon.ico { --bims-icon-size: 22px; }
  html:root[data-bims-theme] body.bims-admin-shell h2 > .bpw-icon.ico { --bims-icon-size: 20px; }

  /* The explicit tile is the card's icon; generated title icons add no meaning. */
  html:root[data-bims-theme] body [data-no-auto-icon] > .bpw-icon.ico.heading-auto-icon,
  html:root[data-bims-theme] body :is(.payroll-entry-card,.bims-workspace-card) :is(h2,h3) > .bpw-icon.ico.heading-auto-icon,
  html:root[data-bims-theme] body .bpw-icon.ico[hidden] {
    display: none !important;
  }

  html:root[data-bims-theme] body.bims-admin-shell .nav-group-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
  }
  html:root[data-bims-theme] body.bims-admin-shell :is(.nav,.side-nav) :is(a,summary) > .bpw-icon.ico {
    align-self: center;
  }
  html:root[data-bims-theme] body :is(.btn,.button) > .bpw-icon.ico {
    --bims-icon-size: 18px;
    align-self: center;
  }
}
}
