:root {
  --content-max-width: 1200px;
  --content-padding-x: 16px;
  --content-padding-x-lg: 24px;
}

/* Shared content container for admin and advertiser portals */
.content-container {
  width: 100%;
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--content-padding-x);
  padding-right: var(--content-padding-x);
}

@media (min-width: 768px) {
  .content-container {
    padding-left: var(--content-padding-x-lg);
    padding-right: var(--content-padding-x-lg);
  }
}

/* Optional: standard spacing helpers */
.content-stack-24>*+* {
  margin-top: 24px;
}

/* Ensure headers align with content container */
.main-header {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--content-max-width);
}

/* Global horizontal scroll support for tables */
.table-responsive {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* When a card body contains a table, remove x-padding entirely (modern browsers) */
.card .card-body:has(.table-responsive),
.card .card-body:has(> table.table) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Fallback: nudge table containers to card edges when parent keeps padding */
.card .card-body>.table-responsive {
  margin-left: 0;
  margin-right: 0;
}

/* Make tables scrollable on smaller screens even if not wrapped */
@media (max-width: 992px) {

  .content-container table.table,
  .public-container table.table,
  .container table.table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Mobile-specific fixes for horizontal scrolling */
@media (max-width: 767px) {

  /* Prevent horizontal scrolling on main content only, not on body/html */
  main,
  .main-content {
    overflow-x: hidden;
    max-width: 100%;
  }

  /* Ensure all containers respect viewport width */
  .container,
  .container-fluid {
    max-width: 100%;
    /* Remove overflow-x hidden to allow proper scrolling */
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  /* Fix for Bootstrap grid system */
  .row {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
  }

  .col,
  .col-* {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    max-width: 100%;
  }

  /* Ensure content doesn't overflow */
  .card,
  .card-body {
    max-width: 100%;
    /* Remove overflow-x hidden to allow proper scrolling */
  }

  /* Fix for flex containers */
  .d-flex,
  .d-inline-flex {
    flex-wrap: wrap;
    max-width: 100%;
  }

  /* Fix for tables */
  .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Fix for navigation */
  .nav,
  .navbar-nav {
    flex-wrap: wrap;
    max-width: 100%;
  }

  /* Fix for button groups */
  .btn-group {
    flex-wrap: wrap;
    max-width: 100%;
  }

  /* Fix for very small screens */
  @media (max-width: 480px) {

    .container,
    .container-fluid {
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }

    .col,
    .col-* {
      padding-left: 0.25rem;
      padding-right: 0.25rem;
    }
  }
}

/* Global overflow prevention for specific elements only */
* {
  box-sizing: border-box;
}

/* Ensure all elements respect container boundaries */
img,
video,
iframe,
object,
embed {
  max-width: 100%;
  height: auto;
}

/* Fix for long text content */
.text-break {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* Fix for pre and code blocks */
pre,
code {
  white-space: pre-wrap;
  word-wrap: break-word;
  max-width: 100%;
  overflow-x: auto;
}

/* Allow proper vertical scrolling */
html,
body {
  overflow-y: auto;
  /* Only prevent horizontal scrolling on specific content areas */
}

/* Prevent horizontal scrolling on main content areas */
main,
.main-content,
.content-area {
  overflow-x: hidden;
  max-width: 100%;
}

/* Public card padding utility for consistent inner spacing on public pages */
.public-card-pad {
  padding: 1rem;
}

@media (min-width: 768px) {
  .public-card-pad {
    padding: 1.25rem;
  }
}