/* Bootstrap 3 → 5 互換CSS */
/* Bootstrap 3のクラス名をBootstrap 5で動くようにするブリッジ */

/* pull-left / pull-right → float */
.pull-left { float: left !important; }
.pull-right { float: right !important; }

/* hidden-xs / visible-xs 等 */
@media (max-width: 575.98px) {
  .hidden-xs { display: none !important; }
  .visible-sm, .visible-md, .visible-lg { display: none !important; }
  .visible-xs { display: block !important; }
}
@media (min-width: 576px) and (max-width: 767.98px) {
  .hidden-sm { display: none !important; }
  .visible-xs, .visible-md, .visible-lg { display: none !important; }
  .visible-sm { display: block !important; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .hidden-md { display: none !important; }
  .visible-xs, .visible-sm, .visible-lg { display: none !important; }
  .visible-md { display: block !important; }
}
@media (min-width: 992px) {
  .hidden-lg { display: none !important; }
  .visible-xs, .visible-sm, .visible-md { display: none !important; }
  .visible-lg { display: block !important; }
}
@media (min-width: 576px) {
  .visible-xs { display: none !important; }
}

/* panel → card compat */
.panel { border: 1px solid rgba(0,0,0,.125); border-radius: 0.375rem; margin-bottom: 1rem; }
.panel-default { background-color: #fff; }
.panel-heading { padding: 0.75rem 1rem; background-color: #f8f9fa; border-bottom: 1px solid rgba(0,0,0,.125); border-radius: 0.375rem 0.375rem 0 0; font-weight: bold; }
.panel-body { padding: 1rem; }

/* label → badge compat */
span.label { display: inline-block; padding: 0.35em 0.65em; font-size: 0.75em; font-weight: 700; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: 0.375rem; }

/* btn-xs (BS3 → BS5) */
.btn-xs, .btn-group-xs > .btn { padding: 0.25rem 0.5rem; font-size: 0.78rem; line-height: 1.5; border-radius: 0.25rem; }

/* btn-block */
.btn-block { display: block; width: 100%; }

/* navbar compat */
.navbar-default { background-color: #fff; border-bottom: 1px solid #eee; }
.navbar-header { display: flex; align-items: center; }
.navbar-brand { padding: 0.5rem 1rem; text-decoration: none; }
.navbar-brand img { height: 34px; }
.nav-icon { font-size: 12px; }
.navbar-nav > li { list-style: none; }
.navbar-nav > li > a { display: block; padding: 0.5rem 1rem; color: #333; text-decoration: none; }
.navbar-nav > li > a:hover { color: #e74c3c; }

/* sr-only */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* list-inline compat */
.list-inline { padding-left: 0; list-style: none; }
.list-inline > li { display: inline-block; padding-right: 5px; }

/* list-unstyled */
.list-unstyled { padding-left: 0; list-style: none; }

/* clearfix */
.clearfix::after { display: block; clear: both; content: ""; }

/* pagination */
.pagination { display: flex; padding-left: 0; list-style: none; }
.pagination > li { display: list-item; }
.pagination > li > a { position: relative; display: block; padding: 0.375rem 0.75rem; text-decoration: none; color: #0d6efd; background-color: #fff; border: 1px solid #dee2e6; }
.pagination > li.active > a { z-index: 3; color: #fff; background-color: #0d6efd; border-color: #0d6efd; }

/* form compat */
.form-group { margin-bottom: 1rem; }
.form-group-sm .form-control { font-size: 0.875rem; padding: 0.25rem 0.5rem; }
.control-label { font-weight: 600; margin-bottom: 0.5rem; }
.form-control-static { padding-top: 0.375rem; margin-bottom: 0; }
select.form-control,
select:not(.form-select):not([multiple]) { display: block; width: auto; padding: 0.375rem 2.25rem 0.375rem 0.75rem; font-size: 0.875rem; font-weight: 400; line-height: 1.5; color: #212529; background-color: #fff; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 0.75rem center; background-size: 16px 12px; border: 1px solid #dee2e6; border-radius: 0.375rem; appearance: none; }
select.form-control { width: 100%; }

/* input-group compat */
.input-group-btn { display: flex; }

/* col-sm-offset */
.col-sm-offset-9 { margin-left: 75%; }

/* alert compat - inherit BS5 */
.alert-dismissible .close { display: none; }

/* breadcrumb_wrap */
.breadcrumb_wrap { background-color: #f8f9fa; padding: 0.5rem 0; }
.breadcrumb { margin-bottom: 0; padding: 0; background-color: transparent; }
.breadcrumb > li + li::before { content: "/"; padding: 0 0.5rem; color: #6c757d; }

/* sp class for responsive line breaks */
br.sp { display: none; }
@media (max-width: 575.98px) {
  br.sp { display: block; }
}

/* collapse compat */
.collapse:not(.show) { display: none; }

/* navbar-collapse */
.navbar-collapse.collapse:not(.show) { display: none; }
@media (min-width: 768px) {
  .navbar-collapse.collapse { display: flex !important; }
  .navbar-collapse { flex-basis: auto; }
}
