/* ==========================================================================
   DataProX ERP - Grid Compatibility Layer
   Provides a safe, minimal subset of Bootstrap 5 Grid for template compatibility.
   This file implements EXACTLY the 54 classes audited in Phase E3.
   Do not add unused utility variants to preserve size and simplicity.
   ========================================================================== */

/* 1. Containers */
.container,
.container-fluid,
.container-xxl {
  /* Shared page gutter: matches the dashboard's 16px inner inset. */
  --erp-gutter-x: var(--erp-space-8, 32px);
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding-right: calc(var(--erp-gutter-x) * 0.5);
  padding-left: calc(var(--erp-gutter-x) * 0.5);
  margin-right: auto;
  margin-left: auto;
}

/* Direct page containers receive the same inner top inset as the dashboard.
   Nested Bootstrap containers retain their component-level spacing. */
.erp-main-content > :is(.container, .container-fluid, .container-xxl) {
  padding-top: var(--erp-space-4);
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}
@media (min-width: 1400px) {
  .container,
  .container-xxl {
    max-width: 1320px;
  }
}

/* 2. Row */
.row {
  /* Default Bootstrap 5 gutters: 24px horizontal, 0px vertical */
  --erp-gutter-x: var(--erp-space-6, 24px);
  --erp-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--erp-gutter-y));
  margin-right: calc(-0.5 * var(--erp-gutter-x));
  margin-left: calc(-0.5 * var(--erp-gutter-x));
}

.row > * {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--erp-gutter-x) * 0.5);
  padding-left: calc(var(--erp-gutter-x) * 0.5);
  margin-top: var(--erp-gutter-y);
}

/* 3. Gutters (Mapped to Bootstrap 5's true pixel values via erp-tokens) */
.g-2 {
  /* g-2 in Bootstrap = 0.5rem (8px). Matches --erp-space-2 (8px) */
  --erp-gutter-x: var(--erp-space-2, 8px);
  --erp-gutter-y: var(--erp-space-2, 8px);
}
.g-3 {
  /* g-3 in Bootstrap = 1rem (16px). Matches --erp-space-4 (16px) */
  --erp-gutter-x: var(--erp-space-4, 16px);
  --erp-gutter-y: var(--erp-space-4, 16px);
}
.g-4 {
  /* g-4 in Bootstrap = 1.5rem (24px). Matches --erp-space-6 (24px) */
  --erp-gutter-x: var(--erp-space-6, 24px);
  --erp-gutter-y: var(--erp-space-6, 24px);
}

/* 4. Columns (Base) */
.col { flex: 1 0 0%; }
.col-3 { flex: 0 0 auto; width: 25%; }
.col-4 { flex: 0 0 auto; width: 33.33333333%; }
.col-5 { flex: 0 0 auto; width: 41.66666667%; }
.col-6 { flex: 0 0 auto; width: 50%; }
.col-7 { flex: 0 0 auto; width: 58.33333333%; }
.col-8 { flex: 0 0 auto; width: 66.66666667%; }
.col-12 { flex: 0 0 auto; width: 100%; }

/* 5. Responsive Breakpoints */

/* Breakpoint: sm (≥ 576px) */
@media (min-width: 576px) {
  .col-sm-2 { flex: 0 0 auto; width: 16.66666667%; }
  .col-sm-3 { flex: 0 0 auto; width: 25%; }
  .col-sm-4 { flex: 0 0 auto; width: 33.33333333%; }
  .col-sm-6 { flex: 0 0 auto; width: 50%; }
  .col-sm-8 { flex: 0 0 auto; width: 66.66666667%; }
  .col-sm-9 { flex: 0 0 auto; width: 75%; }
  .col-sm-10 { flex: 0 0 auto; width: 83.33333333%; }

  .offset-sm-2 { margin-left: 16.66666667%; }
}

/* Breakpoint: md (≥ 768px) */
@media (min-width: 768px) {
  .col-md-1 { flex: 0 0 auto; width: 8.33333333%; }
  .col-md-2 { flex: 0 0 auto; width: 16.66666667%; }
  .col-md-3 { flex: 0 0 auto; width: 25%; }
  .col-md-4 { flex: 0 0 auto; width: 33.33333333%; }
  .col-md-5 { flex: 0 0 auto; width: 41.66666667%; }
  .col-md-6 { flex: 0 0 auto; width: 50%; }
  .col-md-7 { flex: 0 0 auto; width: 58.33333333%; }
  .col-md-8 { flex: 0 0 auto; width: 66.66666667%; }
  .col-md-9 { flex: 0 0 auto; width: 75%; }
  .col-md-10 { flex: 0 0 auto; width: 83.33333333%; }
  .col-md-12 { flex: 0 0 auto; width: 100%; }
}

/* Breakpoint: lg (≥ 992px) */
@media (min-width: 992px) {
  .col-lg { flex: 1 0 0%; width: auto; }
  .col-lg-2 { flex: 0 0 auto; width: 16.66666667%; }
  .col-lg-3 { flex: 0 0 auto; width: 25%; }
  .col-lg-4 { flex: 0 0 auto; width: 33.33333333%; }
  .col-lg-5 { flex: 0 0 auto; width: 41.66666667%; }
  .col-lg-6 { flex: 0 0 auto; width: 50%; }
  .col-lg-7 { flex: 0 0 auto; width: 58.33333333%; }
  .col-lg-8 { flex: 0 0 auto; width: 66.66666667%; }
  .col-lg-10 { flex: 0 0 auto; width: 83.33333333%; }
  .col-lg-12 { flex: 0 0 auto; width: 100%; }
}

/* Breakpoint: xl (≥ 1200px) */
@media (min-width: 1200px) {
  .col-xl-2 { flex: 0 0 auto; width: 16.66666667%; }
  .col-xl-3 { flex: 0 0 auto; width: 25%; }
  .col-xl-4 { flex: 0 0 auto; width: 33.33333333%; }
  .col-xl-5 { flex: 0 0 auto; width: 41.66666667%; }
  .col-xl-6 { flex: 0 0 auto; width: 50%; }
  .col-xl-7 { flex: 0 0 auto; width: 58.33333333%; }
  .col-xl-8 { flex: 0 0 auto; width: 66.66666667%; }
  .col-xl-9 { flex: 0 0 auto; width: 75%; }
  .col-xl-10 { flex: 0 0 auto; width: 83.33333333%; }
  .col-xl-11 { flex: 0 0 auto; width: 91.66666667%; }
}
