/*
 * utilities.css — helper/utility classes.
 * Bootstrap 5 ships its own utility set (m-*, p-*, d-*, text-start/end...).
 * This file only re-adds the specific BS3-era utility names Bootstrap 5
 * renamed or removed that are still used across the app's views:
 * pull-right/left, text-right/left, hidden-xs/visible-xs, col-xs-*.
 */

.pull-right { float: right !important; }
.pull-left { float: left !important; }
.text-right { text-align: right !important; }
.text-left { text-align: left !important; }

.hidden-xs { display: none !important; }
@media (min-width: 768px) {
  .hidden-xs { display: revert !important; }
}
.visible-xs { display: none !important; }
@media (max-width: 767.98px) {
  .visible-xs { display: block !important; }
}

/* col-xs-* grid alias (Bootstrap 3, dropped from BS4/5 in favor of bare .col-*) */
@media (max-width: 575.98px) {
  .col-xs-1  { flex: 0 0 auto; width: 8.3333%; }
  .col-xs-2  { flex: 0 0 auto; width: 16.6667%; }
  .col-xs-3  { flex: 0 0 auto; width: 25%; }
  .col-xs-4  { flex: 0 0 auto; width: 33.3333%; }
  .col-xs-5  { flex: 0 0 auto; width: 41.6667%; }
  .col-xs-6  { flex: 0 0 auto; width: 50%; }
  .col-xs-7  { flex: 0 0 auto; width: 58.3333%; }
  .col-xs-8  { flex: 0 0 auto; width: 66.6667%; }
  .col-xs-9  { flex: 0 0 auto; width: 75%; }
  .col-xs-10 { flex: 0 0 auto; width: 83.3333%; }
  .col-xs-11 { flex: 0 0 auto; width: 91.6667%; }
  .col-xs-12 { flex: 0 0 auto; width: 100%; }
}
[class*="col-xs-"] {
  position: relative;
  padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5);
  padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5);
}

/* ---------- Named spacing scale (a parallel system to Bootstrap 5's own
   numeric m-1..m-5 utilities; this app's views use the named scale
   throughout, so both coexist rather than rewriting every view) ---------- */
.mt-none { margin-top: 0 !important; }
.mt-xs { margin-top: 5px !important; }
.mt-sm { margin-top: 10px !important; }
.mt-md { margin-top: 15px !important; }
.mt-lg { margin-top: 20px !important; }
.mt-xl { margin-top: 25px !important; }

.mb-none { margin-bottom: 0 !important; }
.mb-xs { margin-bottom: 5px !important; }
.mb-sm { margin-bottom: 10px !important; }
.mb-md { margin-bottom: 15px !important; }
.mb-lg { margin-bottom: 20px !important; }
.mb-xl { margin-bottom: 25px !important; }

.ml-none { margin-left: 0 !important; }
.ml-xs { margin-left: 5px !important; }
.ml-sm { margin-left: 10px !important; }
.ml-md { margin-left: 15px !important; }
.ml-lg { margin-left: 20px !important; }

.mr-none { margin-right: 0 !important; }
.mr-xs { margin-right: 5px !important; }
.mr-sm { margin-right: 10px !important; }
.mr-md { margin-right: 15px !important; }
.mr-lg { margin-right: 20px !important; }

.p-xs { padding: 5px !important; }
.p-sm { padding: 10px !important; }
.p-md { padding: 15px !important; }
.p-lg { padding: 20px !important; }

.pl-xs { padding-left: 5px !important; }
.pl-sm { padding-left: 10px !important; }
.pl-md { padding-left: 15px !important; }
.pl-lg { padding-left: 20px !important; }
.pl-xl { padding-left: 25px !important; }

/* ---------- Misc ---------- */
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* .table-condensed (BS3, renamed .table-sm in BS4/5) */
.table-condensed th,
.table-condensed td {
  padding: 0.3rem !important;
}
