/* Flex display */
.d-flex {
  display: flex !important;
}

.d-none {
  display: none !important;
}

/* Flex directions */
.flex-row {
  flex-direction: row !important;
}

.flex-row-reverse {
  flex-direction: row-reverse !important;
}

.flex-column {
  flex-direction: column !important;
}

.flex-column-reverse {
  flex-direction: column-reverse !important;
}

/* Justify content */
.justify-content-start {
  justify-content: flex-start !important;
}
.justify-content-end {
  justify-content: flex-end !important;
}
.justify-content-center {
  justify-content: center !important;
}
.justify-content-between {
  justify-content: space-between !important;
}
.justify-content-around {
  justify-content: space-around !important;
}
.justify-content-evenly {
  justify-content: space-evenly !important;
}

/* Align items */
.align-items-start {
  align-items: flex-start !important;
}
.align-items-end {
  align-items: flex-end !important;
}
.align-items-center {
  align-items: center !important;
}
.align-items-baseline {
  align-items: baseline !important;
}
.align-items-stretch {
  align-items: stretch !important;
}

/* Align self (per item) */
.align-self-start {
  align-self: flex-start !important;
}
.align-self-end {
  align-self: flex-end !important;
}
.align-self-center {
  align-self: center !important;
}
.align-self-baseline {
  align-self: baseline !important;
}
.align-self-stretch {
  align-self: stretch !important;
}

/* Flex wrap */
.flex-wrap {
  flex-wrap: wrap !important;
}
.flex-nowrap {
  flex-wrap: nowrap !important;
}
.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}

/* Gap support (optional, like Bootstrap 5) */
.gap-1 {
  gap: 0.25rem !important;
}
.gap-2 {
  gap: 0.5rem !important;
}
.gap-3 {
  gap: 1rem !important;
}
.gap-4 {
  gap: 1.5rem !important;
}
.gap-5 {
  gap: 3rem !important;
}

/* Negative vertical margins for column flex */
.flex-column.gap-n1 > * + * {
  margin-top: -0.25rem;
}
.flex-column.gap-n2 > * + * {
  margin-top: -0.5rem;
}
.flex-column.gap-n3 > * + * {
  margin-top: -1rem;
}
.flex-column.gap-n4 > * + * {
  margin-top: -1.5rem;
}
.flex-column.gap-n5 > * + * {
  margin-top: -3rem;
}

/* Negative horizontal margins for row flex */
.flex-row.gap-n1 > * + * {
  margin-left: -0.25rem;
}
.flex-row.gap-n2 > * + * {
  margin-left: -0.5rem;
}
.flex-row.gap-n3 > * + * {
  margin-left: -1rem;
}
.flex-row.gap-n4 > * + * {
  margin-left: -1.5rem;
}
.flex-row.gap-n5 > * + * {
  margin-left: -3rem;
}

.text-uppercase {
  text-transform: uppercase;
}

.text-muted {
  color: #6c757d; /* Bootstrap's muted gray color */
}
