/* Shared geometry for Material Symbols and the SVG icons used in recovery. */
:root body i[data-lucide]:not([hidden]) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: var(--icon-size, 20px) !important;
  height: var(--icon-size, 20px) !important;
  min-width: var(--icon-size, 20px) !important;
  padding: 0 !important;
  font-style: normal;
  line-height: 1 !important;
  vertical-align: middle;
}

:root body .material-symbols-outlined:not(.icon-font-preload):not([hidden]) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: none !important;
  width: 1em !important;
  height: 1em !important;
  min-width: 1em !important;
  padding: 0 !important;
  font-size: var(--icon-size, 20px) !important;
  font-style: normal !important;
  line-height: 1 !important;
  letter-spacing: normal !important;
  text-indent: 0 !important;
  text-transform: none !important;
  white-space: nowrap;
  vertical-align: middle;
}

:root body i[data-lucide] > .material-symbols-outlined {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
  transform: none !important;
}

:root body i[data-lucide] > svg {
  display: block;
  flex: none;
  width: 100%;
  height: 100%;
  margin: 0;
}

/* Center the glyph inside its colored tile, without affecting adjacent text. */
:root body :is(.home-shortcut-icon, .report-icon, .referral-hero-icon,
  .referral-reward-icon, .birthday-alert-icon, .management-avatar,
  .booking-upload-empty-visual, .compact-upload-circle,
  .portal-popup-icon, .portal-brand-avatar, .portal-appbar-avatar) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

:root body :is(.icon-button, .appbar-icon-button, .sidebar-toggle,
  .mobile-sidebar-toggle, .password-toggle, .date-picker-button,
  .portal-modal-icon-button, .portal-date-picker-button, .agenda-column-handle) {
  align-items: center !important;
  justify-content: center !important;
  place-items: center !important;
}

/* Disclosure arrows keep their smaller grid column and their rotation. */
:root body .sidebar .nav-group-chevron[data-lucide] {
  --icon-size: 16px;
  width: 16px !important;
  min-width: 16px !important;
  height: 16px !important;
  flex-basis: 16px !important;
}

:root body .sidebar .nav-group-chevron .material-symbols-outlined {
  font-size: 16px !important;
}

/* A geometric plus replaces the font-dependent '+' and mobile pseudo-icon. */
.appbar-primary-action .appbar-plus-icon,
.top-controls .appbar-primary-action .appbar-plus-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  min-width: 20px !important;
  height: 20px !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
  transform: none !important;
}

.appbar-plus-icon > svg { display: block; }

.appbar-primary-action::before,
.top-controls .appbar-primary-action::before {
  content: none !important;
  display: none !important;
}

/* Glyph dimensions only: keep existing button/tile touch areas. */
:root body :is(.button, .file-button, .action-menu, .agenda-column-handle,
  .home-shortcut-arrow, .portal-choice-chevron, .password-toggle) {
  --icon-size: 16px;
}
:root body :is(.home-shortcut-icon, .report-icon, .notification-settings-icon,
  .browser-notification-icon, .portal-popup-icon, .referral-hero-icon) {
  --icon-size: 24px;
}
:root body :is(svg.lucide, .appbar-plus-icon > svg, .portal-social-button > svg) {
  width: var(--icon-size, 20px) !important;
  height: var(--icon-size, 20px) !important;
  flex-shrink: 0;
}
