/* Font Awesome SVG controls. Scoped: brands, barcode SVG and receipts untouched. */
.fa-icon {
  display: inline-block;
  flex: 0 0 auto;
  overflow: visible;
  vertical-align: -.125em;
  fill: currentColor;
  stroke: none;
  pointer-events: none;
}
.fa-icon path { fill: currentColor; stroke: none; }
.btn .fa-icon, .has-ui-icon .fa-icon { width: 16px; height: 16px; }
.btn-lg .fa-icon { width: 18px; height: 18px; }
.icon-btn > .fa-icon, .side-link .fa-icon, .dd-item .fa-icon { width: 18px; height: 18px; }
.side-link .fa-icon, .dd-item .fa-icon { opacity: .82; }
.side-link.is-active .fa-icon { opacity: 1; }
.has-ui-icon { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.btn.has-ui-icon, .booking-panel button, .icon-btn { transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease; }
.btn.has-ui-icon:hover:not(:disabled) { box-shadow: 0 2px 7px rgb(15 38 64 / .12); }
.btn.has-ui-icon:focus-visible, .icon-btn:focus-visible, .booking-panel button:focus-visible {
  outline: 2px solid var(--brand, #2169d1); outline-offset: 3px;
}
.btn:disabled .fa-icon { opacity: .7; }
.card-head .row .btn { gap: 7px; }
#bookingRoot .booking-actions .fa-icon, #bookingsRoot .booking-actions .fa-icon { width: 15px; height: 15px; }
#bookingResourceSave, #bookingSubmit, #productLabelsPrint { gap: 8px; }
.home-nav .nav-order .fa-icon { width: 15px; height: 15px; }
.hero-actions .fa-icon { width: 17px; height: 17px; }
@media (prefers-reduced-motion: reduce) {
  .btn.has-ui-icon, .booking-panel button, .icon-btn { transition: none; }
}
@media print {
  #receiptHost .fa-icon, #productLabelPrintHost .fa-icon { display: none; }
}
