/*
 * mini-grid.css — hand-written replacement for bootstrap.min.css (v5.0.2).
 *
 * The site only ever used a small subset of Bootstrap: the grid
 * (container/row/col), a few flex + spacing + text utilities, and the
 * base .collapse rule. Shipping the full 224 KB framework to load ~30
 * classes was the single biggest render-blocking cost on every page.
 *
 * This file reproduces exactly those classes, byte-behaviour-identical to
 * Bootstrap 5.0.2 (same container widths 540/720/960/1140/1320 at the same
 * breakpoints 576/768/992/1200/1400, same 1.5rem gutter). No JS, no forms,
 * no buttons — the site defines its own .btn / .form-control elsewhere.
 *
 * If a new page introduces a Bootstrap class not listed here, add it here.
 */

/* ---- gutter tokens (Bootstrap defaults) ---- */
:root { --bs-gutter-x: 1.5rem; --bs-gutter-y: 0; }

/* ---- containers ---- */
.container,
.container-fluid {
  width: 100%;
  padding-right: var(--bs-gutter-x, .75rem);
  padding-left: var(--bs-gutter-x, .75rem);
  margin-right: auto;
  margin-left: auto;
}
@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 { max-width: 1320px; } }

/* ---- row ---- */
.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(-.5 * var(--bs-gutter-x));
  margin-left: calc(-.5 * var(--bs-gutter-x));
}
.row > * {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--bs-gutter-x) * .5);
  padding-left: calc(var(--bs-gutter-x) * .5);
  margin-top: var(--bs-gutter-y);
}

/* ---- columns (only the ones the site uses) ---- */
.col { flex: 1 0 0%; }
.col-12 { flex: 0 0 auto; width: 100%; }

@media (min-width: 768px) {
  .col-md-6  { flex: 0 0 auto; width: 50%; }
  .col-md-10 { flex: 0 0 auto; width: 83.33333333%; }
  .col-md-12 { flex: 0 0 auto; width: 100%; }
}
@media (min-width: 992px) {
  .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-12 { flex: 0 0 auto; width: 100%; }
}
@media (min-width: 1200px) {
  .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-12 { flex: 0 0 auto; width: 100%; }
  .mt-xl-0   { margin-top: 0 !important; }
}

/* ---- gutters (.g-3 / .g-4) ---- */
.g-3, .gx-3 { --bs-gutter-x: 1rem; }
.g-3, .gy-3 { --bs-gutter-y: 1rem; }
.g-4, .gx-4 { --bs-gutter-x: 1.5rem; }
.g-4, .gy-4 { --bs-gutter-y: 1.5rem; }

/* ---- display / flex utilities ---- */
.d-flex        { display: flex !important; }
.d-inline-flex { display: inline-flex !important; }
.justify-content-center  { justify-content: center !important; }
.justify-content-between { justify-content: space-between !important; }
.align-items-center      { align-items: center !important; }

/* ---- text / weight ---- */
.text-center { text-align: center !important; }
.fw-bold     { font-weight: 700 !important; }

/* ---- list-unstyled (profile-share) ---- */
.list-unstyled { padding-left: 0; list-style: none; }

/* ---- form-check (login "remember me" checkbox row) ---- */
.form-check {
  display: block;
  min-height: 1.5rem;
  padding-left: 1.5em;
  margin-bottom: .125rem;
}
.form-check .form-check-input { float: left; margin-left: -1.5em; }
.form-check-input {
  width: 1em;
  height: 1em;
  margin-top: .25em;
  vertical-align: top;
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  border: 1px solid rgba(0, 0, 0, .25);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-print-color-adjust: exact;
  color-adjust: exact;
  print-color-adjust: exact;
}
.form-check-input[type=checkbox] { border-radius: .25em; }
.form-check-input:checked {
  background-color: #0d6efd;
  border-color: #0d6efd;
}
.form-check-input:checked[type=checkbox] {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}
.form-check-label { cursor: pointer; }

/* ---- borders ---- */
.border-0 { border: 0 !important; }

/* ---- spacing (only the steps the site uses) ---- */
.m-0  { margin: 0 !important; }
.w-100 { width: 100% !important; }

.mt-2 { margin-top: .5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.mt-5 { margin-top: 3rem !important; }

.mb-2 { margin-bottom: .5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5 { margin-bottom: 3rem !important; }

.me-1 { margin-right: .25rem !important; }
.me-2 { margin-right: .5rem !important; }

.pt-0 { padding-top: 0 !important; }
.pb-4 { padding-bottom: 1.5rem !important; }
.px-2 { padding-right: .5rem !important; padding-left: .5rem !important; }
.px-4 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; }
.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }

/* ---- collapse base (admin uses .collapse; no JS toggle, CSS-only) ---- */
.collapse:not(.show) { display: none; }
