/* Bootstrap Icons */
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.0/font/bootstrap-icons.css");

/* Phosphor Icons */
@import url("https://unpkg.com/@phosphor-icons/web@2.0.3/src/bold/style.css");

/* Bootstrap Grid System */
.container-fluid {
  width: 100%;
  padding-right: var(--bs-gutter-x, 0.75rem);
  padding-left: var(--bs-gutter-x, 0.75rem);
  margin-right: auto;
  margin-left: auto;
}

.row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--bs-gutter-y));
  margin-right: calc(-0.5 * var(--bs-gutter-x));
  margin-left: calc(-0.5 * var(--bs-gutter-x));
}

.row > * {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--bs-gutter-x) * 0.5);
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  margin-top: var(--bs-gutter-y);
}

.col-12 { flex: 0 0 auto; width: 100%; }
.col-md-6 { flex: 0 0 auto; width: 50%; }
.col-xl-4 { flex: 0 0 auto; width: 33.333333%; }
.col-xl-6 { flex: 0 0 auto; width: 50%; }
.col-xl-8 { flex: 0 0 auto; width: 66.666667%; }

@media (min-width: 768px) {
  .col-md-6 { flex: 0 0 auto; width: 50%; }
}

@media (min-width: 1200px) {
  .col-xl-4 { flex: 0 0 auto; width: 33.333333%; }
  .col-xl-6 { flex: 0 0 auto; width: 50%; }
  .col-xl-8 { flex: 0 0 auto; width: 66.666667%; }
}

/* Bootstrap Utilities */
.d-flex { display: flex !important; }
.d-none { display: none !important; }
.flex-column { flex-direction: column !important; }
.flex-row { flex-direction: row !important; }
.flex-wrap { flex-wrap: wrap !important; }
.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; }
.align-items-start { align-items: flex-start !important; }
.align-items-center { align-items: center !important; }
.align-items-stretch { align-items: stretch !important; }
.align-items-md-stretch { align-items: stretch !important; }

.p-0 { padding: 0 !important; }
.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.g-0 { --bs-gutter-x: 0; --bs-gutter-y: 0; }
.gx-0 { --bs-gutter-x: 0; }

.small { font-size: 0.875em; }

@media (min-width: 576px) {
  .flex-sm-row { flex-direction: row !important; }
}

@media (min-width: 768px) {
  .flex-md-row { flex-direction: row !important; }
}