/* Minimal Bootstrap-like utilities and grid for CSP/local use */

/* Typography */
.display-4 { font-size: 2.5rem; font-weight: 700; line-height: 1.2; }
.lead { font-size: 1.125rem; font-weight: 400; }
.small { font-size: .875rem; }

/* Spacing utilities */
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: .25rem !important; }
.mt-2 { margin-top: .5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-auto { margin-top: auto !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: .25rem !important; }
.mb-2 { margin-bottom: .5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.py-1 { padding-top: .25rem !important; padding-bottom: .25rem !important; }
.py-2 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.px-2 { padding-left: .5rem !important; padding-right: .5rem !important; }
.px-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
.g-3 { gap: 1rem !important; }
.gap-1 { gap: .25rem !important; }
.gap-2 { gap: .5rem !important; }

/* Display & flex */
.d-flex { display: flex !important; }
.d-grid { display: grid !important; }
.flex-wrap { flex-wrap: wrap !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-end { justify-content: flex-end !important; }
.align-items-center { align-items: center !important; }

/* Visibility */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Grid (very small subset) */
.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}
.row > [class^="col-"], .row > [class*=" col-"], .row > .col { padding-left: .5rem; padding-right: .5rem; }
.col { flex: 1 0 0%; }
.col-auto { flex: 0 0 auto; width: auto; }
.col-12 { flex: 0 0 auto; width: 100%; }
.col-3 { flex: 0 0 auto; width: 25%; }

/* Buttons & badges (base, detailed styles in glass-bootstrap.css) */
.btn { display: inline-block; padding: .5rem 1rem; font-size: 1rem; text-align: center; cursor: pointer; user-select: none; border: 1px solid transparent; }
.btn:disabled { opacity: .6; cursor: not-allowed; }
.badge { display: inline-block; padding: .35em .6em; font-size: .85em; border-radius: .5rem; }

/* Forms */
.form-label { display: inline-block; margin-bottom: .5rem; }
.form-control {
  display: block; width: 100%;
  padding: .5rem .75rem;
  font-size: 1rem; line-height: 1.5;
  color: inherit; background-color: transparent;
  background-clip: padding-box;
  border: 1px solid var(--glass-border);
  border-radius: .5rem;
}
.form-control:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 .2rem rgba(120, 224, 255, .15);
}

/* Misc */
.stretched-link { position: relative; z-index: 0; }
.stretched-link::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: transparent;
}


