/**
 * Icon sizing guard — every inline SVG icon (no explicit width attr) gets a
 * sane size so nothing ever blows up to fill its container.
 */
svg:not([width]) {
  width: 1.15em;
  height: 1.15em;
  fill: currentColor;
  flex-shrink: 0;
  vertical-align: -0.2em;
}

.ico { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex-shrink: 0; }
.ico svg { width: 100%; height: 100%; }

.modal-title svg:not([width]) { width: 18px; height: 18px; }
.chip svg:not([width]), .badge svg:not([width]) { width: 12px; height: 12px; }
th svg:not([width]), td svg:not([width]) { width: 14px; height: 14px; }
.toast svg:not([width]) { width: 18px; height: 18px; }
.nav-icon { width: 22px; height: 22px; }
h1 svg:not([width]), h2 svg:not([width]), h3 svg:not([width]) { width: 1.1em; height: 1.1em; }

/* Large decorative empty-state icons stay modest */
.empty-state svg:not([width]), .cart-empty-state svg { width: 48px !important; height: 48px !important; fill: #b0b8c4; }
.kds-empty svg:not([width]) { width: 56px; height: 56px; fill: #64748b; }
.emoji, .module-emoji { font-size: 1.1em; line-height: 1; display: inline-block; }
