/* ============================================================
   Bootstrap 5.3 兼容层 —— 补回 Bootstrap 4 的类名
   ------------------------------------------------------------
   背景：本项目升级到 Bootstrap 5.3 后，下列 BS4 类被官方移除，
        导致存量后台页面出现布局塌陷：
          · .form-row / .form-group  → 表单栅格失效，整行堆成单列
          · .badge-success 等颜色变体 → 徽章变成无底色灰字
          · .text-right / .float-right → 金额不右对齐、右上角按钮跑位
          · .ml-* / .mr-* → 水平间距丢失（BS5 改名为 ms-* / me-*）
   本文件是纯增量补丁，不覆盖 Bootstrap 5 的任何原生样式。
   引入方式：在 bootstrap.min.css 之后加载
             <link rel="stylesheet" href="/assets/css/bs4-compat.css">
   ============================================================ */

/* ---------------- 表单栅格 ---------------- */
.form-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -5px;
    margin-left: -5px;
}
.form-row > .col,
.form-row > [class*="col-"] {
    padding-right: 5px;
    padding-left: 5px;
}
.form-group { margin-bottom: 1rem; }
.form-inline { display: flex; flex-flow: row wrap; align-items: center; }

/* ---------------- 浮动 ---------------- */
.float-left  { float: left  !important; }
.float-right { float: right !important; }

/* ---------------- 文本对齐 ---------------- */
.text-left  { text-align: left  !important; }
.text-right { text-align: right !important; }

/* ---------------- 外边距：ml / mr（BS4）→ ms / me（BS5） ---------------- */
.ml-0 { margin-left: 0      !important; } .mr-0 { margin-right: 0      !important; }
.ml-1 { margin-left: .25rem !important; } .mr-1 { margin-right: .25rem !important; }
.ml-2 { margin-left: .5rem  !important; } .mr-2 { margin-right: .5rem  !important; }
.ml-3 { margin-left: 1rem   !important; } .mr-3 { margin-right: 1rem   !important; }
.ml-4 { margin-left: 1.5rem !important; } .mr-4 { margin-right: 1.5rem !important; }
.ml-5 { margin-left: 3rem   !important; } .mr-5 { margin-right: 3rem   !important; }
.ml-auto { margin-left: auto  !important; }
.mr-auto { margin-right: auto !important; }

/* 内边距：pl / pr（BS4）→ ps / pe（BS5） */
.pl-0 { padding-left: 0      !important; } .pr-0 { padding-right: 0      !important; }
.pl-1 { padding-left: .25rem !important; } .pr-1 { padding-right: .25rem !important; }
.pl-2 { padding-left: .5rem  !important; } .pr-2 { padding-right: .5rem  !important; }
.pl-3 { padding-left: 1rem   !important; } .pr-3 { padding-right: 1rem   !important; }

/* 响应式左右外边距（sm 断点起） */
@media (min-width: 576px) {
    .ml-sm-1 { margin-left: .25rem !important; } .mr-sm-1 { margin-right: .25rem !important; }
    .ml-sm-2 { margin-left: .5rem  !important; } .mr-sm-2 { margin-right: .5rem  !important; }
    .ml-sm-3 { margin-left: 1rem   !important; } .mr-sm-3 { margin-right: 1rem   !important; }
}

/* ---------------- 徽章：BS5 移除了 badge-* 颜色变体 ---------------- */
.badge-primary   { background-color: #0d6efd; color: #fff; }
.badge-secondary { background-color: #6c757d; color: #fff; }
.badge-success   { background-color: #198754; color: #fff; }
.badge-danger    { background-color: #dc3545; color: #fff; }
.badge-warning   { background-color: #ffc107; color: #212529; }
.badge-info      { background-color: #0dcaf0; color: #212529; }
.badge-light     { background-color: #f8f9fa; color: #212529; }
.badge-dark      { background-color: #212529; color: #fff; }
.badge-pill      { border-radius: 50rem; padding-right: .6em; padding-left: .6em; }

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

/* ---------------- 字重（BS5 改为 fw-*） ---------------- */
.font-weight-bold   { font-weight: 700 !important; }
.font-weight-600    { font-weight: 600 !important; }
.font-weight-normal { font-weight: 400 !important; }
.font-weight-light  { font-weight: 300 !important; }

/* ---------------- 其它常见 BS4 残留 ---------------- */
/* 模态框关闭按钮（BS4 的 .close + 文本 × 写法） */
.close {
    float: right;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #fff;
    opacity: .5;
    background: none;
    border: 0;
    padding: 0;
}
.close:hover { opacity: .75; text-decoration: none; }

/* 屏幕阅读器专用 */
.sr-only,
.sr-only-focusable {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* 输入框组（BS4 的 append / prepend） */
.input-group-append,
.input-group-prepend { display: flex; }

/* 卡片组与卡牌（BS4 的 card-deck） */
.card-deck { display: flex; flex-flow: row wrap; margin-right: -15px; margin-left: -15px; }
.card-deck .card { flex: 1 0 0%; margin-right: 15px; margin-left: 15px; }
