/*!
 * 瓦研社 管理后台 · mini 主题（theme-mini.css）
 * ------------------------------------------------------------------
 * 与 wllt-mini 小程序视觉规范对齐：
 *   页面底 #f6f8fd / 白色圆角卡片 / 柔和阴影 0 6px 18px rgba(40,70,115,.06)
 *   标题深蓝 #193964、正文 #18325b、次要文字 #7182a3
 *   主色蓝 #388cf1、品牌粉红 #ff5263
 *   辅助色板 rose #ff4961 / blue #388cf1 / purple #8754ec / mint #20b8a9
 *              orange #ff9c38 / indigo #7062e7
 * 说明：本文件为**纯视觉覆盖层**，必须最后加载；不修改任何 DOM 结构与交互逻辑，
 *       原有页面、菜单、按钮、表单、弹窗功能全部保持不变。
 * ------------------------------------------------------------------
 */

/* ============ 0. 设计变量与基础 ============ */
:root {
    --m-page: #f6f8fd;
    --m-card: #ffffff;
    --m-title: #193964;
    --m-text: #18325b;
    --m-sub: #7182a3;
    --m-muted: #8a97ad;
    --m-line: #eef2fa;
    --m-line-2: #e3eaf5;
    --m-primary: #388cf1;
    --m-primary-dark: #2a7de3;
    --m-primary-soft: #eaf3ff;
    --m-primary-softer: #f2f6ff;
    --m-pink: #ff5263;
    --m-rose: #ff4961;
    --m-purple: #8754ec;
    --m-mint: #20b8a9;
    --m-orange: #ff9c38;
    --m-indigo: #7062e7;
    --m-radius: 14px;
    --m-radius-sm: 10px;
    --m-radius-pill: 999px;
    --m-shadow: 0 6px 18px rgba(40, 70, 115, .06);
    --m-shadow-hover: 0 10px 26px rgba(40, 70, 115, .10);
    --m-font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
}

html, body {
    font-family: var(--m-font);
}

body,
body.gray-bg,
.gray-bg,
#page-wrapper,
.wrapper-content,
.mainContent {
    background-color: var(--m-page) !important;
    color: var(--m-text);
}

.RuoYi_iframe,
iframe {
    background-color: var(--m-page);
}

a { color: var(--m-primary); }
a:hover, a:focus { color: var(--m-primary-dark); }

/* 滚动条 */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d5deee; border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: #c2cfe5; }

/* ============ 1. 左侧导航（白底卡片式） ============ */
.navbar-static-side,
body.canvas-menu nav.navbar-static-side,
.theme-dark .navbar-static-side,
.theme-light .navbar-static-side,
.theme-blue .navbar-static-side {
    background-color: #ffffff !important;
    border-right: 1px solid var(--m-line) !important;
    box-shadow: 2px 0 12px rgba(40, 70, 115, .04) !important;
}

.navbar-default {
    background-color: transparent !important;
    border-color: var(--m-line) !important;
}

/* Logo 区 */
.logo,
.skin-blue .logo, .skin-green .logo, .skin-red .logo,
.skin-yellow .logo, .skin-purple .logo,
.skin-blue.layout-top-nav > .logo {
    background-color: #ffffff !important;
    color: var(--m-title) !important;
    border-bottom: 1px solid #f3f6fd !important;
}
.logo:hover,
.skin-blue .logo:hover, .skin-green .logo:hover, .skin-red .logo:hover,
.skin-yellow .logo:hover, .skin-purple .logo:hover {
    background-color: #f7faff !important;
}
.logo .logo-lg {
    color: var(--m-title);
    font-weight: 800;
    letter-spacing: .5px;
}
.logo-element { color: var(--m-title) !important; }

/* 一级菜单 */
.navbar-default .nav > li > a,
.navbar .nav > li > a,
.skin-blue .navbar .nav > li > a,
.skin-green .navbar .nav > li > a,
.skin-red .navbar .nav > li > a,
.skin-yellow .navbar .nav > li > a,
.skin-purple .navbar .nav > li > a,
body[class*="theme-"] .nav > li > a {
    color: #5b6b8c !important;
    font-weight: 600;
    border-radius: var(--m-radius-sm);
    margin: 2px 10px;
    padding: 11px 14px !important;
    transition: background-color .18s ease, color .18s ease;
}

.navbar-default .nav > li > a:hover,
.navbar-default .nav > li > a:focus,
.navbar .nav > li > a:hover,
.skin-blue .navbar .nav > li > a:hover,
.skin-blue .navbar .nav > li > a:active,
.skin-blue .navbar .nav > li > a:focus,
.skin-blue .navbar .nav .open > a,
.skin-blue .navbar .nav > .active > a {
    background-color: var(--m-primary-softer) !important;
    color: var(--m-primary) !important;
    box-shadow: none !important;
}

/* 选中 / 激活态：淡蓝药丸 */
.navbar-default .nav > li.active > a,
.navbar-default .nav > li.selected > a,
.skin-blue .navbar-default .nav > li.selected > a,
.skin-blue .navbar-default .nav > li.selected > a:focus,
.nav:not(.navbar-toolbar) > li.active > a {
    background-color: var(--m-primary-soft) !important;
    color: var(--m-primary) !important;
    font-weight: 700;
}
.skin-blue .nav:not(.navbar-toolbar) > li.active,
.skin-green .nav:not(.navbar-toolbar) > li.active,
.skin-red .nav:not(.navbar-toolbar) > li.active,
.skin-yellow .nav:not(.navbar-toolbar) > li.active,
.skin-purple .nav:not(.navbar-toolbar) > li.active {
    background: transparent !important;
    border-left: none !important;
}

/* 子菜单 */
.nav-second-level li a { padding-left: 44px !important; }
.nav-third-level li a { padding-left: 64px !important; }
.nav-four-level li a { padding-left: 84px !important; }
.nav > li.active > ul li.active { border-left: none !important; }
.nav-second-level li:last-child { margin-bottom: 6px; }
.nav > li > ul { background: transparent !important; }

/* 迷你（收起）模式悬浮态 */
.fixed-sidebar.mini-navbar .nav li:hover > a > span.nav-label { background-color: #ffffff !important; color: var(--m-primary) !important; box-shadow: var(--m-shadow); }
.fixed-sidebar.mini-navbar .nav li:hover > .nav-second-level,
.fixed-sidebar.theme-light.mini-navbar .nav li:hover > .nav-second-level,
.fixed-sidebar.theme-dark.mini-navbar .nav li:hover > .nav-second-level,
.fixed-sidebar.theme-blue.mini-navbar .nav li:hover > .nav-second-level,
.canvas-menu.mini-navbar .nav-second-level {
    background-color: #ffffff !important;
    border-radius: var(--m-radius-sm);
    box-shadow: var(--m-shadow-hover);
}

/* 用户信息块：强制白底，去掉 skins.css 主题自带的深色直角色块（#2f4050 / rgba(15,41,80)） */
.sidebar .user-panel,
.navbar-static-side .user-panel,
body[class*="theme-"] .user-panel,
.theme-dark .user-panel,
.theme-light .user-panel,
.theme-blue .user-panel,
.skin-blue .user-panel,
.skin-green .user-panel,
.skin-red .user-panel,
.skin-yellow .user-panel,
.skin-purple .user-panel {
    background-color: #ffffff !important;
    border-bottom: 1px solid var(--m-line) !important;
}
.user-panel .image img { border-radius: 50%; border: 2px solid #eef4ff; box-shadow: var(--m-shadow); }
.skin-blue .user-panel > .info,
.skin-blue .user-panel > .info > a,
.skin-green .user-panel > .info,
.skin-green .user-panel > .info > a,
.user-panel > .info,
.user-panel > .info > a {
    color: var(--m-text) !important;
}
.user-panel > .info > p { color: var(--m-title); font-weight: 700; }
.nav > li.header { color: var(--m-sub) !important; background: transparent !important; }
.sidebar a { color: #5b6b8c !important; }

/* ============ 2. 顶栏（白底 + 柔和投影） ============ */
.navbar-static-top {
    background-color: #ffffff !important;
    border-bottom: 1px solid var(--m-line) !important;
    box-shadow: 0 2px 10px rgba(40, 70, 115, .05);
}
.navbar-static-top .navbar-header .minimalize-styl-2,
.minimalize-styl-2 {
    color: #33517c !important;
    background-color: var(--m-primary-softer);
    border-radius: var(--m-radius-sm);
    padding: 6px 12px;
    margin: 10px 5px 5px 15px;
}
.minimalize-styl-2:hover { background-color: var(--m-primary-soft); color: var(--m-primary) !important; }

.navbar-top-links li a,
.skin-blue .navbar .sidebar-toggle,
.navbar .navbar-top-links > li > a {
    color: #33517c !important;
    font-weight: 600;
}
.navbar-top-links li a:hover,
.navbar-top-links li a:focus,
.skin-blue .navbar .nav > li > a:hover,
.skin-blue .navbar .nav > li > a:focus,
.skin-blue .navbar .nav .open > a {
    color: var(--m-primary) !important;
    background: transparent !important;
}
.navbar-top-links li a i { color: inherit; }
.navbar-top-links .user-menu .user-image,
.navbar-top-links .user-image {
    border-radius: 50%;
    border: 2px solid #eef4ff;
    box-shadow: 0 2px 8px rgba(40, 70, 115, .10);
}

/* 顶栏下拉菜单 */
.dropdown-menu {
    background-color: #ffffff;
    border: 1px solid var(--m-line) !important;
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(40, 70, 115, .12);
    padding: 6px;
    margin-top: 6px;
}
.dropdown-menu > li > a,
.skin-blue .navbar .dropdown-menu li a,
.skin-blue .dropdown-menu > li > a {
    color: #33517c !important;
    border-radius: 8px;
    padding: 8px 12px;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.skin-blue .navbar .dropdown-menu li a:hover,
.skin-blue .dropdown-menu > .active > a {
    background-color: var(--m-primary-softer) !important;
    color: var(--m-primary) !important;
}
.dropdown-menu > li.divider,
.skin-blue .navbar .dropdown-menu li.divider {
    background-color: var(--m-line) !important;
}
.dropdown-menu li.mt5 { margin-top: 0; }

/* ============ 3. 页签栏（药丸式） ============ */
.content-tabs,
.skin-blue .content-tabs, .skin-green .content-tabs, .skin-red .content-tabs,
.skin-yellow .content-tabs, .skin-purple .content-tabs {
    background-color: #ffffff !important;
    border-bottom: 1px solid var(--m-line) !important;
    height: 40px;
    line-height: 40px;
}
.content-tabs button {
    background: transparent !important;
    color: var(--m-muted);
    height: 39px;
}
.content-tabs button:hover { background: var(--m-primary-softer) !important; color: var(--m-primary); }
.content-tabs .roll-nav { color: var(--m-muted); border: none !important; }
.content-tabs .roll-left, .content-tabs .roll-right { border: none !important; }
.content-tabs .roll-nav:hover { color: var(--m-primary); background: var(--m-primary-softer); }

.page-tabs a {
    color: #5b6b8c !important;
    background: #f7faff !important;
    border: 1px solid var(--m-line-2) !important;
    border-radius: var(--m-radius-pill) !important;
    line-height: 28px !important;
    margin: 6px 0 0 6px !important;
    padding: 0 14px !important;
    font-weight: 600;
}
/* 关闭图标：不参与药丸化（原先把 a.active i 一起写进上一条，导致图标出现浅色圆块 + 白字不可见） */
.page-tabs a i {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 0 0 6px !important;
    line-height: inherit !important;
    font-size: 13px;
    opacity: .8;
    transition: opacity .15s ease;
}
.page-tabs a i:hover { opacity: 1; }
.page-tabs a:hover { color: var(--m-primary) !important; border-color: #cfe0f7 !important; background: var(--m-primary-softer) !important; }

/* 激活页签需压过 skins.css 中的 !important 规则 */
body[class*="skin-"] .page-tabs a.active,
body .page-tabs a.active,
.skin-blue .page-tabs a.active {
    background: var(--m-primary) !important;
    border: 1px solid var(--m-primary) !important;
    color: #ffffff !important;
    box-shadow: 0 6px 14px rgba(56, 140, 241, .25);
}
body[class*="skin-"] .page-tabs a.active i,
.page-tabs a.active i { color: #ffffff !important; }

/* ============ 4. 内容容器与卡片 ============ */
.wrapper-content { padding: 20px 25px 40px; }

.ibox {
    background-color: var(--m-card);
    border: 1px solid var(--m-line) !important;
    border-radius: var(--m-radius) !important;
    box-shadow: var(--m-shadow) !important;
    margin-bottom: 20px;
    overflow: hidden;
}
.ibox-title {
    background-color: #ffffff !important;
    border: 0 !important;
    border-bottom: 1px solid #f3f6fd !important;
    padding: 16px 18px 12px !important;
}
.ibox-title h5 { color: var(--m-title) !important; font-weight: 800; font-size: 15px; }
.ibox-content, .ibox-content.no-padding { border: 0 !important; }
.ibox-content { padding: 18px; }
.ibox-title-gray {
    background-color: #ffffff !important;
    color: var(--m-title) !important;
    border-bottom: 1px solid #f3f6fd !important;
    font-weight: 800;
    border-radius: var(--m-radius) var(--m-radius) 0 0;
}
/* 个人中心页标题条本身叠加了 gray-bg，保持浅色通栏而非页面底色 */
.ibox-title.gray-bg,
.ibox-title-gray.gray-bg,
.dashboard-header.gray-bg {
    background-color: #f7f9ff !important;
}

/* 内嵌表单/工具面板 */
.box-main {
    background: transparent;
    border: 0;
    box-shadow: none;
}
.box-main > .box-header { border-bottom: 1px solid #f3f6fd; padding: 14px 16px 8px; }
.box-main > .box-header .box-title { color: var(--m-title); font-weight: 800; }
.box-main form > .box-footer,
.nav-main form > .box-footer {
    background: transparent !important;
    border-top: 1px solid #f3f6fd;
}
.box-main form > .box-footer .btn { margin-bottom: 6px; }

/* 查询条件面板 */
.search-collapse,
.select-table {
    background: var(--m-card) !important;
    border: 1px solid var(--m-line) !important;
    border-radius: var(--m-radius) !important;
    box-shadow: var(--m-shadow) !important;
    padding: 14px 14px 6px;
    margin-top: 12px;
}
.search-collapse .col-sm-6 .control-label,
.search-collapse .control-label { color: #5b6b8c !important; }

.panel {
    background-color: var(--m-card);
    border: 1px solid var(--m-line) !important;
    border-radius: var(--m-radius) !important;
    box-shadow: var(--m-shadow) !important;
}
.panel-heading {
    background-color: #ffffff !important;
    border-bottom: 1px solid #f3f6fd !important;
    color: var(--m-title) !important;
    font-weight: 800;
    border-radius: var(--m-radius) var(--m-radius) 0 0;
}
.list-group-striped > .list-group-item { border-color: var(--m-line); color: var(--m-text); }
.list-group-item { border-color: var(--m-line); }

/* 选项卡 */
.nav-tabs { border-bottom: 1px solid var(--m-line); }
.nav-tabs > li > a { color: #5b6b8c; border-radius: var(--m-radius-sm) var(--m-radius-sm) 0 0; font-weight: 600; }
.nav-tabs > li > a:hover { background: var(--m-primary-softer); border-color: transparent; color: var(--m-primary); }
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
    color: var(--m-primary) !important;
    border-color: var(--m-line) var(--m-line) #ffffff !important;
    font-weight: 700;
}
.nav-tabs-custom { border-radius: var(--m-radius); box-shadow: var(--m-shadow); background: var(--m-card); border: 1px solid var(--m-line); }
.nav-tabs-custom > .nav-tabs { border-bottom: 1px solid var(--m-line); }
.nav-tabs-custom > .nav-tabs > li.active { border-top-color: var(--m-primary); }
.nav-tabs-custom > .nav-tabs > li.active > a { color: var(--m-title); }
.nav-tabs-custom > .tab-content { background: var(--m-card); }

/* 首页/仪表盘 */
.dashboard-header {
    background: var(--m-card);
    border: 1px solid var(--m-line);
    border-radius: var(--m-radius);
    box-shadow: var(--m-shadow);
    padding: 18px 20px;
}
.dashboard-header h5, .dashboard-header h2 { color: var(--m-title); }

/* ============ 5. 表格 ============ */
.table > thead > tr > th,
.table-striped .table thead {
    background-color: #f7f9ff !important;
}
.table > thead > tr > th {
    color: var(--m-title) !important;
    font-weight: 700;
    font-size: 13px;
    border-bottom: 1px solid #e7eefb !important;
}
.table-striped .table > thead > tr > th,
.table-striped .table > tbody > tr > th {
    border-bottom: 1px solid #e7eefb !important;
    color: var(--m-title);
    font-weight: 700;
}
.table > tbody > tr > td {
    border-color: var(--m-line) !important;
    color: #33517c;
    font-size: 13px;
}
.table-hover > tbody > tr:hover > td,
.bootstrap-table .table-hover > tbody > tr.hover > td {
    background-color: #f7faff !important;
}
.table-bordered,
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
    border-color: #eaf0fb !important;
}
.table .label, .table .badge { font-weight: 600; }

.fixed-table-container { border: 0; border-radius: 12px; overflow: hidden; }
.fixed-table-toolbar { padding: 0 0 8px; }
.fixed-table-pagination,
.fixed-table-pagination .pagination-detail {
    color: var(--m-sub);
}
.bootstrap-table .fixed-table-container .table tbody tr.selected td,
.bootstrap-table .fixed-table-container .table tbody tr.selected td:hover {
    background-color: var(--m-primary-soft) !important;
    color: var(--m-primary) !important;
}
.pagination > li > a,
.pagination > li > span {
    color: #5b6b8c;
    background: #ffffff;
    border: 1px solid var(--m-line-2);
    border-radius: 8px !important;
    margin: 0 3px;
}
.page-list .pagination > li > a { border-radius: 8px !important; }
.pagination > li > a:hover { background: var(--m-primary-softer); color: var(--m-primary); border-color: #cfe0f7; }
.pagination > .active > a,
.pagination > .active > a:hover,
.pagination > .active > span {
    background-color: var(--m-primary) !important;
    border-color: var(--m-primary) !important;
    color: #ffffff !important;
}
.pagination > .disabled > a { color: #c3cde0; background: #fbfcff; }

/* ============ 6. 按钮 ============ */
.btn {
    border-radius: var(--m-radius-sm);
    font-weight: 600;
    box-shadow: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.btn-primary { background-color: var(--m-primary); border-color: var(--m-primary); color: #ffffff; }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary {
    background-color: var(--m-primary-dark); border-color: var(--m-primary-dark); color: #ffffff;
}
.btn-success { background-color: var(--m-mint); border-color: var(--m-mint); color: #ffffff; }
.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success {
    background-color: #17a294; border-color: #17a294; color: #ffffff;
}
.btn-info { background-color: var(--m-indigo); border-color: var(--m-indigo); color: #ffffff; }
.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info {
    background-color: #6052db; border-color: #6052db; color: #ffffff;
}
.btn-warning { background-color: var(--m-orange); border-color: var(--m-orange); color: #ffffff; }
.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .open > .dropdown-toggle.btn-warning {
    background-color: #f0912c; border-color: #f0912c; color: #ffffff;
}
.btn-danger { background-color: var(--m-rose); border-color: var(--m-rose); color: #ffffff; }
.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .open > .dropdown-toggle.btn-danger {
    background-color: #f03750; border-color: #f03750; color: #ffffff;
}
.btn-default,
.select-list .btn-default,
.bootstrap-select.form-control .btn-default,
.file-input .btn-default {
    background-color: #f4f7fd !important;
    border: 1px solid var(--m-line-2) !important;
    color: #33517c !important;
    border-radius: var(--m-radius-sm) !important;
}
.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active,
.open > .dropdown-toggle.btn-default,
.select-list .btn-default:hover, .select-list .btn-default:focus,
.bootstrap-select.form-control .btn-default:hover, .bootstrap-select.form-control .btn-default:focus {
    background-color: var(--m-primary-soft) !important;
    border-color: #cfe0f7 !important;
    color: var(--m-primary) !important;
}
.btn-link { color: var(--m-primary); font-weight: 600; }
.btn-link:hover { color: var(--m-primary-dark); }
.btn-box-tool { color: var(--m-muted); border-radius: 8px; }
.btn-box-tool:hover, .open .btn-box-tool { color: var(--m-primary); background: var(--m-primary-softer); }
.search-btn {
    background-color: var(--m-primary) !important;
    border-color: var(--m-primary) !important;
    color: #ffffff !important;
    border-radius: var(--m-radius-sm) !important;
}
.search-btn:hover { background-color: var(--m-primary-dark) !important; border-color: var(--m-primary-dark) !important; }
.btn-xs { border-radius: 8px; }
.btn-sm { border-radius: 9px; }
.btn-lg { border-radius: 12px; }

/* ============ 7. 表单 ============ */
.form-control,
.single-line {
    border-radius: var(--m-radius-sm) !important;
    border: 1px solid var(--m-line-2) !important;
    color: var(--m-text);
    background-color: #ffffff;
    box-shadow: none;
}
.form-control:focus,
.single-line:focus {
    border-color: var(--m-primary) !important;
    box-shadow: 0 0 0 3px rgba(56, 140, 241, .12) !important;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
    background-color: #f7f9ff;
    color: var(--m-sub);
}
textarea.form-control { height: auto !important; }
.form-control-plaintext { border-bottom: 1px dashed #dbe4f3; color: var(--m-text); }
.form-control-plaintext-no-content { color: #c3cde0 !important; }

.control-label, .form-group > label { color: #5b6b8c; font-weight: 600; }
.control-label.is-required:before, .required { color: var(--m-pink) !important; }
label.error, .Validform_wrong { color: var(--m-pink); }
input.error, textarea.error, select.error,
.Validform_error,
select.error + label.error + .select2-container--bootstrap .select2-selection--single {
    background-color: #fff5f7 !important;
    border-color: #ffc3cb !important;
    color: var(--m-pink) !important;
}
.help-block { color: var(--m-sub); }

.input-group-addon {
    background-color: #f7faff;
    border: 1px solid var(--m-line-2);
    color: #5b6b8c;
    border-radius: var(--m-radius-sm);
}
.input-group-btn:last-child > .btn { border-radius: var(--m-radius-sm); }

/* select2 / bootstrap-select */
.select2-container--bootstrap .select2-selection,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-container--bootstrap .select2-selection--single {
    border-radius: var(--m-radius-sm) !important;
    border: 1px solid var(--m-line-2) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--m-text); line-height: 32px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 32px; }
.select2-dropdown { border: 1px solid var(--m-line) !important; border-radius: 12px; box-shadow: var(--m-shadow-hover); }
.select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--m-primary) !important;
    color: #ffffff !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: var(--m-primary) !important;
    border-color: var(--m-primary) !important;
    border-radius: var(--m-radius-pill) !important;
}
.bootstrap-select.btn-group .dropdown-toggle .filter-option { color: inherit; }
.bootstrap-select .dropdown-menu > li > a { border-radius: 8px; }

/* 开关/单选多选 */
.checkbox-custom label:before { border-radius: 5px; border-color: var(--m-line-2); }
.checkbox-custom input[type="checkbox"]:checked + label:after { color: var(--m-primary); }
.icheckbox-blue.checked, .iradio-blue.checked { background-color: var(--m-primary); }

/* 文件上传 / 编辑器 */
.file-input .file-caption, .fileinput-caption { color: var(--m-sub); }
.note-editor, .note-editable, .summernote { border-radius: var(--m-radius-sm); }

/* ============ 8. 弹窗（bootstrap modal / layer） ============ */
.modal-content {
    border: 0 !important;
    border-radius: 16px;
    box-shadow: 0 20px 50px rgba(25, 57, 100, .18);
}
.modal-header { border-bottom: 1px solid #f3f6fd; padding: 16px 20px; }
.modal-title { color: var(--m-title); font-weight: 800; }
.modal-footer { border-top: 1px solid #f3f6fd; padding: 14px 20px; }
.modal-backdrop.in { opacity: .35; }

.layui-layer {
    border-radius: var(--m-radius) !important;
    box-shadow: 0 18px 44px rgba(25, 57, 100, .18) !important;
    overflow: hidden;
    border: 0 !important;
}
.layui-layer-title {
    background-color: #ffffff !important;
    color: var(--m-title) !important;
    font-weight: 800 !important;
    border-bottom: 1px solid #f3f6fd !important;
}
.layui-layer-btn { border-top: 1px solid #f3f6fd; background: #ffffff; }
.layui-layer-btn a { border-radius: 9px; font-weight: 600; }
.layui-layer-btn .layui-layer-btn0 { background-color: var(--m-primary); border-color: var(--m-primary); color: #ffffff; }
.layui-layer-content { color: var(--m-text); }
.layui-layer-page .layui-layer-content { background-color: var(--m-page); }
.layui-layer-page .layui-layer-content iframe { background-color: var(--m-page); }
body .layer-ext-moon-msg { background-color: rgba(25, 57, 100, .72); border-radius: 12px; }

/* ============ 9. 其他基础组件 ============ */
.label { border-radius: var(--m-radius-pill); font-weight: 600; padding: .25em .7em; }
.label-default { background-color: #eef2fa; color: #5b6b8c; }
.label-primary { background-color: var(--m-primary); }
.label-success { background-color: var(--m-mint); }
.label-info { background-color: var(--m-indigo); }
.label-warning { background-color: var(--m-orange); }
.label-danger { background-color: var(--m-rose); }
.badge { background-color: var(--m-primary); border-radius: var(--m-radius-pill); font-weight: 600; }

.alert { border-radius: var(--m-radius-sm); border-width: 1px; }
.alert-info { background-color: #f2f8ff; border-color: #d9e9ff; color: #2a6cc0; }
.alert-success { background-color: #f0fbf9; border-color: #c9f0ea; color: #16867b; }
.alert-warning { background-color: #fff8ef; border-color: #ffe3c2; color: #c9741a; }
.alert-danger { background-color: #fff5f7; border-color: #ffd3da; color: #d63852; }

.progress { background-color: #eef2fa; border-radius: var(--m-radius-pill); }
.progress-bar { background-color: var(--m-primary); }
.progress-bar-success { background-color: var(--m-mint); }
.progress-bar-warning { background-color: var(--m-orange); }
.progress-bar-danger { background-color: var(--m-rose); }

.breadcrumb { background-color: transparent; color: var(--m-sub); }
.page-header { border-bottom: 1px solid var(--m-line); }

/* ztree 树 */
.ztree li a { color: #33517c; }
.ztree li a.curSelectedNode { background-color: var(--m-primary-soft) !important; color: var(--m-primary) !important; border: 1px solid #d9e9ff !important; border-radius: 8px; }

/* 底部版权 */
.footer {
    background: transparent !important;
    border-top: 1px solid var(--m-line) !important;
    color: var(--m-muted) !important;
}

/* ============ 10. 登录 / 注册 / 锁屏页 ============ */
body.signin {
    background: linear-gradient(130deg, #fffafd 0%, #e9f3ff 52%, #f9f4ff 100%) no-repeat center fixed !important;
    background-size: cover !important;
    color: var(--m-text);
}
.signinpanel { color: var(--m-text); }
.signinpanel .signin-info { color: var(--m-text); }
.signinpanel .signin-info h4 { color: var(--m-title); font-weight: 800; }
.signinpanel .signin-info ul { color: var(--m-sub); }
.signinpanel form {
    background-color: #ffffff;
    border: 1px solid var(--m-line);
    border-radius: 20px;
    box-shadow: 0 18px 44px rgba(40, 70, 115, .10);
    padding: 30px;
}
.signinpanel form h4 { color: var(--m-title); font-weight: 800; }
.signinpanel form p { color: var(--m-sub); }
.signinpanel .form-control { height: 42px !important; padding: 8px 14px !important; border-radius: var(--m-radius-sm) !important; }
.signinpanel .form-control:focus { border-color: var(--m-primary) !important; }
.signinpanel .btn {
    height: 42px;
    border-radius: 12px;
    background-color: var(--m-primary);
    border-color: var(--m-primary);
    color: #ffffff;
    font-weight: 700;
}
.signinpanel .btn:hover, .signinpanel .btn:focus { background-color: var(--m-primary-dark); border-color: var(--m-primary-dark); }
.signinpanel .imgcode { border-radius: var(--m-radius-sm); cursor: pointer; }
.signinpanel a { color: var(--m-primary); }
.signup-footer { border-top: 1px solid var(--m-line); color: var(--m-muted); }
.signup-footer .pull-left { color: var(--m-muted); }

body.lockscreen, .lockscreen { background: linear-gradient(130deg, #eef4ff 0%, #f7f9ff 100%) !important; color: var(--m-text); }
.lockscreen-time { color: var(--m-title) !important; }
.lockscreen-name { color: var(--m-title) !important; }
.lockscreen-item { border-radius: var(--m-radius) !important; box-shadow: var(--m-shadow); }
.lockscreen-credentials .form-control { border-radius: var(--m-radius-sm) 0 0 var(--m-radius-sm) !important; }

/* ============ 11. 主题选择页（skin.html） ============ */
.list-unstyled { color: var(--m-sub); }
.full-opacity-hover { border-radius: var(--m-radius-sm); overflow: hidden; }
.full-opacity-hover:hover { border-color: var(--m-primary) !important; }
