/* System-wide readable text size - applied across entire application */
html {
  font-size: 16px;
}
body,
.main-content,
.page-content {
  font-size: 1rem;
}
.card-body,
.card-header,
.alert,
.form-label,
.form-control,
.form-select,
.form-check-label,
.table,
.table th,
.table td,
.btn,
.text-muted,
small,
.small {
  font-size: 1rem !important;
}
h5 { font-size: 1.2rem !important; }
h6 { font-size: 1.1rem !important; }

/* PharmX toast notifications – semantic colors (success / failure / warning / info) */
#pharmx-toast-container {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
#pharmx-toast-container .toast {
  pointer-events: auto;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  border-radius: 0.5rem;
  border: none;
  min-width: 280px;
  max-width: min(420px, calc(100vw - 2rem));
}
#pharmx-toast-container .toast .toast-body {
  word-wrap: break-word;
  overflow-wrap: break-word;
  word-break: break-word;
}
/* Success – green/teal, white text */
#pharmx-toast-container .pharmx-toast-success {
  background-color: var(--vz-success, #0ab39c);
  color: #fff;
}
#pharmx-toast-container .pharmx-toast-success .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}
/* Failure / Error – red, white text */
#pharmx-toast-container .pharmx-toast-danger {
  background-color: var(--vz-danger, #dc3545);
  color: #fff;
}
#pharmx-toast-container .pharmx-toast-danger .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}
/* Warning – amber, dark text for readability */
#pharmx-toast-container .pharmx-toast-warning {
  background-color: var(--vz-warning, #ffc107);
  color: #212529;
}
#pharmx-toast-container .pharmx-toast-warning .btn-close {
  filter: none;
}
/* Info – blue, white text */
#pharmx-toast-container .pharmx-toast-info {
  background-color: var(--vz-info, #299cdb);
  color: #fff;
}
#pharmx-toast-container .pharmx-toast-info .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}
#pharmx-toast-container .pharmx-toast-icon {
  font-size: 1.25rem;
}

/* Import loading – animated bar moving left to right; show when used as HTMX indicator */
#import-loading-bar.htmx-request,
.import-loading-bar.htmx-request {
  display: block !important;
}
.import-loading-bar {
  height: 4px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--vz-primary, #405189) 25%,
    var(--vz-success, #0ab39c) 50%,
    var(--vz-primary, #405189) 75%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: import-loading-slide 1.2s ease-in-out infinite;
  border-radius: 2px;
}
@keyframes import-loading-slide {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* When trial-ended banner is shown, reduce gap between banner and main content */
.main-content.has-trial-banner .page-content {
  padding-top: 1rem;
}

/* Hide vertical scrollbar on select[multiple] (e.g. OrgRoleForm permissions/users) */
.select-no-scrollbar::-webkit-scrollbar {
  display: none;
}

/* Roles & permissions – modern UI */
.role-permissions-modern .permission-check-item:hover,
.role-staff-modern .staff-check-item:hover {
  background-color: rgba(0, 0, 0, 0.03);
}
[data-layout-mode="dark"] .role-permissions-modern .permission-check-item:hover,
[data-layout-mode="dark"] .role-staff-modern .staff-check-item:hover {
  background-color: rgba(255, 255, 255, 0.05);
}

/* Notification bell dropdown */
.notification-dropdown-body .notification-item {
  white-space: normal;
  overflow-wrap: break-word;
  min-width: 0;
}
.notification-dropdown-body .notification-item .flex-grow-1 {
  min-width: 0;
}
.notification-dropdown-body .channel-badge {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}
.notification-dropdown-body .channel-fcm { background: rgba(41, 156, 219, 0.15); color: var(--vz-info, #299cdb); }
.notification-dropdown-body .channel-sms { background: rgba(15, 179, 156, 0.15); color: var(--vz-success, #0ab39c); }
.notification-dropdown-body .channel-whatsapp { background: rgba(37, 211, 102, 0.2); color: #25d366; }

/* Notification list page – prevent overflow */
.notification-list-item .flex-grow-1 {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Product list – sticky toolbar (search + tabs) when page scrolls */
.product-list-sticky-header {
  position: sticky;
  top: 0;
  z-index: 102;
  background: var(--vz-body-bg, #fff);
  border-radius: inherit;
}
.product-list-sticky-header .card-header:last-child {
  border-bottom: 0;
}
[data-layout-mode="dark"] .product-list-sticky-header {
  background: var(--vz-body-bg, #292e40);
}

/* Product table – scrollable body, sticky table header */
.product-table-scroll-wrapper {
  max-height: calc(100vh - 340px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.product-table-scroll-wrapper .table-sticky-header thead th {
  position: sticky;
  top: 0;
  z-index: 10;
  background: #f3f6f9 !important;
  box-shadow: 0 1px 0 0 var(--vz-border-color, #eceef1);
}
[data-layout-mode="dark"] .product-table-scroll-wrapper .table-sticky-header thead th {
  background: var(--vz-secondary-bg, #32394e) !important;
  box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.08);
}

/*# sourceMappingURL=custom.min.css.map */
