/* ------------------------------------------------------------------
   Bootstrap 3 -> 5 compatibility shim
   Re-implements only the BS3 classes this application actually uses,
   so existing markup keeps working under Bootstrap 5 without a
   137-file find-and-replace. Remove a rule here once the markup that
   depends on it has been migrated.
   ------------------------------------------------------------------ */

/* BS3 .col-xs-* == BS5 .col-* (always-on, smallest breakpoint) */
.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,
.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{
  position:relative;width:100%;padding-right:calc(var(--bs-gutter-x,1.5rem) * .5);
  padding-left:calc(var(--bs-gutter-x,1.5rem) * .5);flex:0 0 auto;
}
.col-xs-1{width:8.33333333%}.col-xs-2{width:16.66666667%}.col-xs-3{width:25%}
.col-xs-4{width:33.33333333%}.col-xs-5{width:41.66666667%}.col-xs-6{width:50%}
.col-xs-7{width:58.33333333%}.col-xs-8{width:66.66666667%}.col-xs-9{width:75%}
.col-xs-10{width:83.33333333%}.col-xs-11{width:91.66666667%}.col-xs-12{width:100%}

/* Visibility utilities dropped in BS5 */
.hidden{display:none !important}
.show{display:block !important}
.invisible{visibility:hidden}
@media print{.hidden-print{display:none !important}}
@media (max-width:767.98px){.hidden-xs{display:none !important}}
@media (min-width:768px) and (max-width:991.98px){.hidden-sm{display:none !important}}
@media (min-width:992px) and (max-width:1199.98px){.hidden-md{display:none !important}}
@media (min-width:1200px){.hidden-lg{display:none !important}}

/* Float + text helpers renamed in BS5 */
.pull-right{float:right !important}
.pull-left{float:left !important}
.text-right{text-align:right !important}
.text-left{text-align:left !important}
.center-block{display:block;margin-right:auto;margin-left:auto}
.img-responsive{display:block;max-width:100%;height:auto}
.clearfix::after{display:block;clear:both;content:""}

/* Form classes removed in BS5 */
.form-group{margin-bottom:1rem}
.form-inline{display:flex;flex-flow:row wrap;align-items:center;gap:.75rem}
.form-inline .form-group{display:flex;align-items:center;gap:.5rem;margin-bottom:0}
.input-group-addon{
  display:flex;align-items:center;padding:.5rem .75rem;font-size:.95rem;
  color:var(--bs-secondary-color,#5b6b7f);background-color:#eef2f7;
  border:1px solid #d6dee8;border-radius:.5rem;
}
.help-block{display:block;margin-top:.35rem;font-size:.875rem;color:#6c7a89}
.control-label{font-weight:600}

/* .btn-default is BS3-only */
.btn-default{
  color:#22364d;background-color:#eef2f7;border-color:#d6dee8;
}
.btn-default:hover{background-color:#e2e9f2;border-color:#c5d2e0;color:#22364d}

/* BS3 dropdown caret */
.caret{
  display:inline-block;width:0;height:0;margin-left:.25rem;vertical-align:middle;
  border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;
}

/* BS3 .label -> BS5 .badge */
.label{
  display:inline-block;padding:.35em .6em;font-size:.75em;font-weight:700;
  line-height:1;color:#fff;text-align:center;white-space:nowrap;
  vertical-align:baseline;border-radius:.375rem;
}
.label-success{background-color:#1a9d5b}.label-danger{background-color:#d13c3c}
.label-warning{background-color:#e08a1e}.label-info{background-color:#2b7fc4}
.label-primary{background-color:#012c61}.label-default{background-color:#6c7a89}

/* .well */
.well{
  padding:1rem;margin-bottom:1rem;background-color:#f6f8fb;
  border:1px solid #e3e9f0;border-radius:.65rem;
}

/* BS3 modal close button (BS5 uses .btn-close) */
.close{
  float:right;padding:0;margin:-.25rem -.25rem -.25rem auto;
  font-size:1.5rem;font-weight:700;line-height:1;color:#5b6b7f;
  background:transparent;border:0;opacity:.6;cursor:pointer;
}
.close:hover{opacity:1;color:#1e2a38}
