/* 上机登记册 · 多校版 — 全站自定义样式 */

/* ========== 公共 ========== */
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

/* ---------- 学生端：大字号大按钮 ---------- */
.public-body {
    background: #eef2f7;
    font-size: 18px;
}
.public-container {
    max-width: 560px;
}
.public-card {
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 6px 24px rgba(30, 60, 120, .10);
}
.student-form .form-label {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: .35rem;
}
.student-form .form-control,
.student-form .form-select {
    font-size: 1.3rem;
    padding: .8rem 1rem;
    border-radius: .6rem;
}
.student-form .btn-submit {
    font-size: 1.5rem;
    padding: 1rem 2rem;
    border-radius: .8rem;
    letter-spacing: .5rem;
}
.reg-success {
    font-size: 1.6rem;
}
.public-error {
    font-size: 1.25rem;
}

/* ========== 登录页 ========== */
.login-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background:
        radial-gradient(900px 480px at 85% -10%, rgba(96, 150, 255, .35), transparent 60%),
        radial-gradient(700px 420px at -10% 110%, rgba(64, 108, 214, .45), transparent 60%),
        linear-gradient(135deg, #14284c 0%, #1c3a70 52%, #10203f 100%);
}
.login-card {
    display: flex;
    width: 100%;
    max-width: 920px;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 24px 70px rgba(6, 18, 44, .45);
}
/* 左侧品牌区 */
.login-brand {
    flex: 1 1 46%;
    min-width: 0;
    position: relative;
    overflow: hidden;
    color: #fff;
    padding: 52px 44px 36px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background:
        radial-gradient(520px 300px at 110% -10%, rgba(255, 255, 255, .14), transparent 60%),
        linear-gradient(160deg, #2d5fd7 0%, #1f4596 58%, #173270 100%);
}
.login-brand::after {
    content: "";
    position: absolute;
    right: -110px;
    bottom: -110px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    border: 44px solid rgba(255, 255, 255, .07);
}
.login-logo {
    width: 62px;
    height: 62px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .22);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
    margin-bottom: 22px;
}
.login-brand h1 {
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: 6px;
}
.login-brand .login-sub {
    color: rgba(255, 255, 255, .72);
    font-size: .92rem;
    margin-bottom: 30px;
}
.login-feats {
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
    z-index: 1;
}
.login-feats li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 0;
    color: rgba(255, 255, 255, .88);
    font-size: .93rem;
}
.login-feats i {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: rgba(255, 255, 255, .13);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}
.login-brand-foot {
    position: relative;
    z-index: 1;
    color: rgba(255, 255, 255, .55);
    font-size: .8rem;
}
/* 右侧表单区 */
.login-main {
    flex: 1 1 54%;
    min-width: 0;
    padding: 52px 46px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.login-main .login-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: #1e293b;
}
.login-main .login-hint {
    color: #8a94a6;
    font-size: .9rem;
    margin-bottom: 28px;
}
.login-field {
    position: relative;
}
.login-field > i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #9aa5b5;
    font-size: 1.05rem;
    pointer-events: none;
}
.login-field .form-control {
    padding-left: 42px;
    height: 48px;
    border-radius: 10px;
    border-color: #dfe4ec;
    background: #f8fafc;
}
.login-field .form-control:focus {
    background: #fff;
    border-color: #3b82f6;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, .12);
}
.login-label {
    font-size: .88rem;
    font-weight: 600;
    color: #3d4757;
    margin-bottom: 7px;
}
.login-captcha {
    height: 48px !important;
    border-radius: 10px !important;
    border: 1px solid #dfe4ec;
    cursor: pointer;
}
.login-btn {
    height: 48px;
    border: 0;
    border-radius: 10px;
    font-weight: 600;
    letter-spacing: 6px;
    text-indent: 6px;
    color: #fff;
    background: linear-gradient(135deg, #3b82f6, #2458d6);
    box-shadow: 0 8px 18px rgba(41, 98, 210, .32);
    transition: transform .12s ease, box-shadow .12s ease;
}
.login-btn:hover {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(41, 98, 210, .4);
}
.login-tip {
    background: #f4f7fc;
    border-radius: 10px;
    color: #7c8698;
    font-size: .82rem;
    padding: 10px 14px;
    text-align: center;
}

/* ========== 后台整体布局 ========== */
.admin-body {
    background: #f2f4f8;
    font-size: 15px;
}
/* 侧边栏（深色） */
.app-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 232px;
    z-index: 1035;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    background: linear-gradient(180deg, #17284a 0%, #101d38 100%);
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .18) transparent;
}
.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 18px 18px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    flex-shrink: 0;
}
.sidebar-brand .brand-logo {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: #fff;
    background: linear-gradient(135deg, #3b82f6, #2458d6);
    box-shadow: 0 4px 10px rgba(41, 98, 210, .4);
}
.sidebar-brand .brand-text {
    color: #fff;
    font-weight: 700;
    font-size: .98rem;
    line-height: 1.25;
}
.sidebar-brand .brand-text small {
    display: block;
    font-weight: 400;
    font-size: .72rem;
    color: rgba(255, 255, 255, .5);
    letter-spacing: 1px;
}
.sidebar-nav {
    padding: 12px 0;
    flex: 1;
}
.sidebar-nav .nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 2px 12px;
    padding: 10px 14px;
    border-radius: 9px;
    color: rgba(255, 255, 255, .68);
    font-size: .93rem;
    transition: background .12s ease, color .12s ease;
}
.sidebar-nav .nav-link i {
    font-size: 1.05rem;
    width: 20px;
    text-align: center;
}
.sidebar-nav .nav-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, .08);
}
.sidebar-nav .nav-link.active {
    color: #fff;
    font-weight: 600;
    background: linear-gradient(135deg, #3b82f6, #2a63dd);
    box-shadow: 0 4px 12px rgba(41, 98, 210, .38);
}
.sidebar-foot {
    flex-shrink: 0;
    padding: 14px 18px;
    border-top: 1px solid rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .38);
    font-size: .74rem;
}
/* 主区域 */
.admin-wrap {
    margin-left: 232px;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.app-topbar {
    position: sticky;
    top: 0;
    z-index: 1020;
    min-height: 60px;
    background: #fff;
    border-bottom: 1px solid #e8ecf2;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 24px;
    box-shadow: 0 1px 3px rgba(23, 43, 84, .04);
}
.topbar-title {
    font-size: 1.02rem;
    font-weight: 700;
    color: #1e293b;
}
.topbar-user {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f4f7fc;
    border: 1px solid #e8ecf2;
    border-radius: 999px;
    padding: 5px 14px 5px 10px;
    font-size: .86rem;
    color: #44506a;
}
.topbar-user i {
    color: #3b82f6;
    font-size: 1.05rem;
}
.admin-content {
    flex: 1;
    padding: 22px 24px 40px;
}
/* 页面标题 */
.admin-content > h5 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 1.14rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 18px !important;
}
.admin-content > h5 i {
    color: #3b82f6;
}
/* 卡片 */
.card {
    border: 1px solid #eceff4;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(23, 43, 84, .05);
}
.card-header {
    background: #fff;
    border-bottom: 1px solid #eef1f5;
    font-weight: 600;
    color: #33415c;
}
/* 统计卡 */
.stat-card {
    overflow: hidden;
    transition: transform .12s ease, box-shadow .12s ease;
}
.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(23, 43, 84, .10);
}
.stat-card .card-body {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 20px;
}
.stat-card .stat-num {
    font-size: 1.7rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.1;
}
.stat-card .stat-label {
    color: #7c8698;
    font-size: .84rem;
}
.stat-icon {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
}
.stat-icon.si-blue   { background: #e7f0ff; color: #2a63dd; }
.stat-icon.si-green  { background: #e5f7ed; color: #189a58; }
.stat-icon.si-purple { background: #f1ebff; color: #7443d6; }
.stat-icon.si-orange { background: #fff2e2; color: #d97706; }
/* 表格 */
.table {
    --bs-table-hover-bg: #f6f9ff;
}
.table thead th {
    white-space: nowrap;
    font-weight: 600;
    font-size: .84rem;
    color: #5b6478;
    background: #f8fafc;
    border-bottom: 1px solid #e8ecf2;
}
.table tbody td {
    vertical-align: middle;
}
/* 表单与按钮细节 */
.form-control, .form-select {
    border-color: #dfe4ec;
}
.form-control:focus, .form-select:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, .10);
}
.btn {
    border-radius: 8px;
}
.btn-primary {
    background: #2a63dd;
    border-color: #2a63dd;
}
.btn-primary:hover {
    background: #2453c4;
    border-color: #2453c4;
}
.btn-outline-primary {
    color: #2a63dd;
    border-color: #9dbcff;
}
.btn-outline-primary:hover {
    background: #2a63dd;
    border-color: #2a63dd;
}
/* 分页 */
.pagination {
    --bs-pagination-color: #2a63dd;
    --bs-pagination-focus-box-shadow: 0 0 0 4px rgba(59, 130, 246, .12);
    --bs-pagination-active-bg: #2a63dd;
    --bs-pagination-active-border-color: #2a63dd;
}
/* 徽章圆角 */
.badge {
    border-radius: 6px;
    font-weight: 500;
}
/* 二维码 / 登记入口 */
.qr-box {
    display: inline-block;
    padding: 12px;
    background: #fff;
    border: 1px solid #e5e9ef;
    border-radius: .5rem;
}
.entry-link {
    font-size: .95rem;
    word-break: break-all;
}

/* ========== 后台响应式（窄屏：侧栏变顶部横滑导航） ========== */
@media (max-width: 991.98px) {
    .app-sidebar {
        position: sticky;
        top: 0;
        width: 100%;
        height: auto;
        flex-direction: row;
        align-items: center;
        overflow-x: auto;
        overflow-y: hidden;
    }
    .sidebar-brand {
        border-bottom: 0;
        border-right: 1px solid rgba(255, 255, 255, .08);
        padding: 10px 14px;
    }
    .sidebar-brand .brand-text small {
        display: none;
    }
    .sidebar-nav {
        display: flex !important;
        align-items: center;
        padding: 4px 6px;
        flex-wrap: nowrap;
    }
    .sidebar-nav .nav-link {
        margin: 0 3px;
        padding: 7px 12px;
        white-space: nowrap;
    }
    .sidebar-foot {
        display: none;
    }
    .admin-wrap {
        margin-left: 0;
    }
    .admin-content {
        padding: 16px 14px 32px;
    }
    .login-brand {
        display: none;
    }
}

/* ===== 登记记录页（records.php）===== */
.rec-filter-card {
    border: 1px solid #e6ebf3;
    border-radius: .75rem;
    box-shadow: 0 1px 3px rgba(16, 42, 83, .05);
}
.rec-filter-title {
    font-weight: 600;
    font-size: .9rem;
    color: #2c3e5d;
}
.rec-filter-title .bi-funnel { color: var(--bs-primary); }
.rec-label {
    font-size: .78rem;
    color: #6b7a90;
    font-weight: 500;
}
.rec-label .bi { color: #94a3b8; }
.rec-table-card {
    border: 1px solid #e6ebf3;
    border-radius: .75rem;
    box-shadow: 0 1px 3px rgba(16, 42, 83, .05);
    overflow: hidden;
}
.rec-table-head {
    background: linear-gradient(180deg, #fbfcfe 0%, #f4f7fb 100%);
    border-bottom: 1px solid #e8ecf2;
    font-size: .92rem;
}
.rec-table thead th {
    background: #f8fafc;
    color: #5b6478;
    font-weight: 600;
    font-size: .78rem;
    white-space: nowrap;
    border-bottom: 1px solid #e8ecf2;
    padding: .6rem .75rem;
}
.rec-table thead th .bi { color: #9aa8bf; font-size: .82rem; }
.rec-table tbody td {
    padding: .55rem .75rem;
    vertical-align: middle;
    border-color: #f1f4f9;
}
.rec-table tbody tr:hover > td { background: #f6f9ff; }
.rec-chip {
    display: inline-flex;
    align-items: center;
    background: #eef4ff;
    color: #2b5aab;
    border-radius: 2rem;
    padding: .15rem .6rem;
    font-size: .8rem;
    white-space: nowrap;
}
.rec-grade {
    display: inline-block;
    background: #f0f5f1;
    color: #2f7d4f;
    font-size: .76rem;
    border-radius: .3rem;
    padding: .1rem .4rem;
    font-weight: 500;
}
.rec-stu-name { font-weight: 600; color: #1f2d40; }
.rec-stu-no {
    background: #f4f6fa;
    color: #8a94a6;
    border-radius: .3rem;
    padding: .05rem .35rem;
    font-size: .76rem;
}
.rec-pc-no {
    display: inline-flex;
    align-items: center;
    font-family: var(--bs-font-monospace);
    font-size: .8rem;
    font-weight: 600;
    color: #1d4ed8;
    background: #e8efff;
    border: 1px solid #d3e0fd;
    border-radius: .35rem;
    padding: .12rem .5rem;
}
.rec-pc-no .bi { font-size: .82rem; }
.rec-lesson { white-space: nowrap; }
.rec-vol {
    display: inline-block;
    font-size: .72rem;
    color: #92610a;
    background: #fdf3e1;
    border-radius: .3rem;
    padding: .06rem .35rem;
    margin-right: .35rem;
    font-weight: 500;
}
.rec-period {
    font-size: .8rem;
    color: #55647d;
    background: #f1f4f9;
    border-radius: .3rem;
    padding: .12rem .45rem;
    white-space: nowrap;
}
.rec-effect {
    font-size: .8rem;
    color: #2f7d4f;
    background: #eef8f1;
    border-radius: .3rem;
    padding: .12rem .45rem;
}
.pc-ok-yes {
    background: #e7f6ec;
    color: #22874c;
    font-weight: 500;
}
.pc-ok-no {
    background: #fdeaea;
    color: #c0392b;
    font-weight: 500;
}
.rec-empty-icon {
    font-size: 2.2rem;
    color: #c3cddb;
    margin-bottom: .35rem;
}

/* ---------- 微机室使用登记（上级检查台账） ---------- */
.lab-date {
    font-weight: 600;
    color: #24487f;
    white-space: nowrap;
}
.lab-sign {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    color: #7a3f12;
    background: #fdf6ee;
    border: 1px dashed #e6c9a4;
    border-radius: .35rem;
    padding: .1rem .5rem;
    white-space: nowrap;
}
.lab-sign .bi {
    font-size: .8rem;
    opacity: .75;
}

/* ===== 仪表盘 · 今日各机房登记（右侧卡片） ===== */
/* 标题行：左标题 + 右日期胶囊 */
.dash-room-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}
.dash-room-head .card-title {
    font-size: .95rem;
    font-weight: 700;
    color: #33415c;
}
.dash-room-head .card-title .bi { color: #3b82f6; }
.dash-room-date {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    font-size: .78rem;
    color: #7c8698;
    background: #f4f7fc;
    border: 1px solid #e8ecf2;
    border-radius: 999px;
    padding: 3px 10px;
    white-space: nowrap;
}
.dash-room-date .bi { color: #94a3b8; font-size: .82rem; }

/* 机房条目列表 */
.dash-room-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 2px;
}
.dash-room-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 10px;
    border-radius: 10px;
    transition: background .12s ease;
}
.dash-room-item:hover { background: #f7faff; }

/* 左侧圆角彩色图标块 */
.dash-room-ico {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    color: #2a63dd;
    background: #e7f0ff;
}
.dash-room-item.is-idle .dash-room-ico {
    color: #9aa8bf;
    background: #f1f4f9;
}

/* 中间：机房名 + 细进度条 */
.dash-room-main {
    flex: 1 1 auto;
    min-width: 0;
}
.dash-room-name {
    display: block;
    font-weight: 600;
    font-size: .92rem;
    color: #1f2d40;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dash-room-bar {
    display: block;
    height: 6px;
    margin-top: 6px;
    border-radius: 999px;
    background: #eef1f6;
    overflow: hidden;
}
.dash-room-bar-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #60a5fa, #2a63dd);
    transition: width .3s ease;
}

/* 右侧：次数 + 未使用徽标 */
.dash-room-count {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    min-width: 54px;
}
.dash-room-count-num {
    font-size: 1.35rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1;
}
.dash-room-count-unit {
    font-size: .72rem;
    font-weight: 500;
    color: #8a94a6;
    margin-left: 2px;
}
.dash-room-item.is-idle .dash-room-count-num { color: #b3bccb; }
.dash-room-idle {
    display: inline-block;
    font-size: .68rem;
    font-weight: 500;
    color: #8a94a6;
    background: #f1f4f9;
    border-radius: .3rem;
    padding: .05rem .35rem;
    white-space: nowrap;
}

/* 底部小结行 */
.dash-room-summary {
    margin-top: 12px;
    padding: 8px 12px;
    border-radius: 8px;
    background: #f4f7fc;
    border: 1px solid #eef1f5;
    font-size: .8rem;
    color: #5b6478;
}
.dash-room-summary .bi { color: #2a63dd; }
.dash-room-summary b { color: #2a63dd; font-weight: 700; }

/* 空态（与 .rec-empty-icon 视觉语言一致） */
.dash-room-empty {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 28px 12px;
    color: #8a94a6;
    font-size: .88rem;
}
.dash-room-empty-icon {
    font-size: 2.2rem;
    color: #c3cddb;
    margin-bottom: .4rem;
}

/* soft 主色按钮（浅蓝底 + 主色文字） */
.btn-soft-primary {
    color: #2a63dd;
    background: #eaf1ff;
    border: 1px solid #d5e2ff;
}
.btn-soft-primary:hover,
.btn-soft-primary:focus {
    color: #fff;
    background: #2a63dd;
    border-color: #2a63dd;
}

/* 登录页底部版权小字 */
.login-copyright {
    margin-top: .75rem;
    font-size: 12px;
    color: #8a94a6;
    text-align: center;
}

/* 登录页备案号（紧跟版权行，视觉更紧凑） */
.login-beian {
    margin-top: 3px;
}
.login-beian a {
    color: #8a94a6;
    text-decoration: none;
    transition: color .15s ease;
}
.login-beian a:hover {
    color: #6b7686;
    text-decoration: underline;
}

/* 对外页面（学生登记页等）底部备案号小字 */
.beian-foot {
    margin-top: 14px;
    font-size: 12px;
    color: #8a94a6;
    text-align: center;
}
.beian-foot a {
    color: #8a94a6;
    text-decoration: none;
    transition: color .15s ease;
}
.beian-foot a:hover {
    color: #6b7686;
    text-decoration: underline;
}

/* ===== 登记记录页 · 删除功能（勾选列 / 操作列 / 批量删除按钮） ===== */
/* 勾选列：紧凑居中，仅占图标宽度 */
.rec-table th.rec-check-col,
.rec-table td.rec-check-col {
    width: 36px;
    padding-left: .75rem;
    padding-right: .35rem;
    text-align: center;
}
.rec-table .rec-check-col .form-check-input {
    margin: 0;
    cursor: pointer;
}
.rec-table .rec-check-col .form-check-input:focus {
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .15);
    border-color: #3b82f6;
}
/* 操作列：仅容纳单个图标按钮 */
.rec-table th.rec-op-col {
    width: 64px;
}
.rec-table td.rec-op-cell {
    white-space: nowrap;
}
/* 行内单条删除图标按钮（红色系，默认浅红底，hover 反色） */
.rec-del-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 8px;
    color: #c0392b;
    background: #fdeaea;
    border: 1px solid #f7d4d0;
    line-height: 1;
    cursor: pointer;
    transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.rec-del-btn:hover,
.rec-del-btn:focus {
    color: #fff;
    background: #c0392b;
    border-color: #c0392b;
    outline: 0;
}
.rec-del-btn .bi {
    font-size: .95rem;
}
/* soft 危险色按钮（浅红底 + 深红字），与 .btn-soft-primary 同一视觉语言 */
.btn-soft-danger {
    color: #c0392b;
    background: #fdeaea;
    border: 1px solid #f7d4d0;
}
.btn-soft-danger:hover,
.btn-soft-danger:focus {
    color: #fff;
    background: #c0392b;
    border-color: #c0392b;
}
.btn-soft-danger:disabled,
.btn-soft-danger.disabled {
    color: #b98b86;
    background: #fbf1f0;
    border-color: #f2dedb;
    cursor: not-allowed;
}
/* ---------- 后台列表页：顶部操作按钮组美化 ---------- */
form .text-md-end {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
}
@media (max-width: 767.98px) {
    form .text-md-end {
        justify-content: flex-start;
    }
}

