
table.campaigns-table {
  width: 100%;  /* ensures table uses full width of container */
  table-layout: auto; /* or fixed if you want equal column widths */
  overflow-x: auto; /* enable horizontal scroll if needed */
}

table.campaigns-table th {
/* white-space: wrap !important; */
text-align: left!important;
}


.campaigns-table__edit-button,
.campaigns-table__delete-button {
  padding: 2px 6px;
  font-size: 0.85rem;
}

.plain-icon-btn {
  background: none;
  border: none;
  padding: 0;
  margin: 5px;
  color: inherit;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}

.plain-icon-btn:hover {
  color: var(--bs-danger); /* red on hover or customize */
}

.plain-icon-btn:first-child:hover {
  color: var(--bs-primary); /* blue for edit */
}
/* ============================
   1. NProgress Bar Styling
   ============================ */
#nprogress .bar {
  background: var(--bs-primary);
  height: 4px;
}

#nprogress .spinner {
  display: none !important; /* Hide default top-left spinner */
}

/* ============================
   3. Overlay & Spinner Styling
   ============================ */
.campaigns-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.7); /* Semi-transparent */
  display: none; /* Hidden by default */
  justify-content: center;
  align-items: center;
  pointer-events: none; /* Prevent clicks while overlay is hidden */
  opacity: 0;
  z-index: 9999; /* Above table */
  transition: opacity 0.3s ease;
}
.campaigns-overlay.visible {
  display: flex;
  opacity: 1;
  pointer-events: auto; /* Allow interaction */
}

.campaigns-overlay .spinner-border {
  width: 3rem;
  height: 3rem;
}

/* ============================
   4. Campaign Column Widths
   ============================ */
.campaign-column-width {
  min-width: 400px;
  max-width: 600px;
  white-space: normal !important;
  word-wrap: break-word;
  word-break: break-word;
  overflow-wrap: break-word;
}

.ellipsis {
  color: var(--bs-primary);
  font-size: 1rem; /* or try 14px */
  vertical-align: middle; /* keeps it aligned nicely with text */
}

.campaign-description-wrapper {
  font-size: 16px;
  line-height: 1.5;
}


.campaigns-table__search-icon {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  color: #6c757d;
  pointer-events: none; /* So clicks go through to input */
}


