/*
 * 济南济恒供热后台主题
 * 浅底黑字 + logo 红点缀（与登录页统一）
 */
:root {
    /* 济恒后台：浅底黑字，logo 红点缀 */
    --wz-navy-950: #141414;
    --wz-navy-900: #1A1A1A;
    --wz-navy-850: #242424;
    --wz-blue-600: #D82020;
    --wz-blue-500: #E83A3A;
    --wz-cyan-500: #F05A3A;
    --wz-mint-500: #E07040;
    --wz-accent: #D82020;
    --wz-accent-deep: #C01C1C;
    --wz-accent-soft: #FF6B5A;
    --wz-bg: #F5F5F5;
    --wz-card: #ffffff;
    --wz-line: #E6E6E6;
    --wz-text: #1A1A1A;
    --wz-muted: #888888;
    --wz-shadow: 0 8px 28px rgba(0, 0, 0, .06);
    --wz-shadow-hover: 0 15px 36px rgba(216, 32, 32, .10);
    --wz-radius: 12px;
}

::selection { color: #fff !important; background: var(--wz-blue-600) !important; }
::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-track { background: #EBEBEB !important; }
::-webkit-scrollbar-thumb { border-radius: 10px; background: #B0B0B0 !important; }
::-webkit-scrollbar-thumb:hover { background: #999999 !important; }

body { color: var(--wz-text); font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif; }
body a { color: var(--wz-blue-600); transition: color .2s ease, background .2s ease, box-shadow .2s ease; }
body a:hover { color: #C01C1C; }

/* 主框架与背景 */
.layui-layout-body .wz-console-shell > .layui-side {
    background: linear-gradient(180deg, var(--wz-navy-950) 0%, var(--wz-navy-900) 52%, #0F0F0F 100%) !important;
    border-right: 1px solid rgba(0, 0, 0, .10);
    box-shadow: 8px 0 28px rgba(0, 0, 0, .18) !important;
}
.layui-layout-body .wz-console-shell > .layui-side:after {
    right: -80px; bottom: -120px; width: 300px; height: 300px; content: ""; position: absolute;
    border-radius: 50%; pointer-events: none;
    background: radial-gradient(circle, rgba(216, 32, 32, .18), transparent 68%);
}
.wz-console-shell > .layui-side .layui-logo {
    height: 64px; line-height: 64px; text-align: left; padding: 0 10px; box-sizing: border-box;
    border-bottom: 1px solid rgba(0, 0, 0, .12) !important;
    background: rgba(255, 255, 255, .015);
}
.wz-console-shell .jh-brand-logo {
    width: 30px; height: 30px; margin-right: 8px; display: inline-block; vertical-align: middle;
    border: 0 !important; border-radius: 6px; object-fit: cover; background: transparent !important;
    box-shadow: none !important; outline: none !important;
}
.wz-console-shell > .layui-side .layui-logo .jh-brand-logo {
    width: 32px; height: 32px; margin-right: 8px;
}
.wz-console-shell > .layui-header .layui-logo-hide .jh-brand-logo {
    width: 28px; height: 28px; margin: 0;
}
.wz-console-shell > .layui-side .layui-logo .headimg,
.wz-console-shell > .layui-header .layui-logo-hide .headimg {
    display: none !important;
}
.wz-console-shell > .layui-side .layui-logo .headtxt { color: #F0F0F0; font-size: 14px; letter-spacing: 0; white-space: nowrap; }
.wz-console-shell > .layui-side .layui-logo .headtxt sup { display: none; }
.wz-console-shell > .layui-side .layui-side-scroll { top: 64px; }
.wz-console-shell > .layui-side .layui-side-tree { padding: 14px 10px 0; box-sizing: border-box; }
.wz-console-shell > .layui-side .layui-nav-tree { width: 100%; }
.wz-console-shell > .layui-side .layui-nav-item { margin: 3px 0; border-radius: 8px; overflow: hidden; background: transparent !important; }
.wz-console-shell > .layui-side .layui-nav-item a {
    color: #B5B5B5 !important; height: 44px !important; line-height: 44px !important;
    padding: 0 14px !important; border-radius: 8px; font-size: 13px;
}
.wz-console-shell > .layui-side .layui-nav-item a:hover { color: #EEEEEE !important; background: rgba(216, 32, 32, .12) !important; }
.wz-console-shell > .layui-side .layui-nav-item .nav-icon { width: 22px; color: #999999; padding-right: 7px; display: inline-block; text-align: center; transition: .2s ease; }
.wz-console-shell > .layui-side .layui-nav-item a:hover .nav-icon { color: #FF8A7A; }
.wz-console-shell > .layui-side .layui-nav-item.layui-this > a,
.wz-console-shell > .layui-side .layui-nav-item dd.layui-this > a {
    color: #fff !important; font-weight: 500;
    background: linear-gradient(100deg, #D82020 0%, #E83A3A 55%, #F05A3A 100%) !important;
    box-shadow: 0 8px 22px rgba(216, 32, 32, .35), inset 0 1px rgba(255,255,255,.22);
}
.wz-console-shell > .layui-side .layui-nav-item.layui-this > a .nav-icon,
.wz-console-shell > .layui-side .layui-nav-item dd.layui-this > a .nav-icon { color: #fff; }
.wz-console-shell > .layui-side .layui-nav-child { padding: 4px 0 5px 12px !important; background: transparent !important; }
.wz-console-shell > .layui-side .layui-nav-child dd,
.wz-console-shell > .layui-side .layui-nav-child dd > a { background: transparent !important; }
.wz-console-shell > .layui-side .layui-nav-child dd.layui-this > a { background: rgba(216, 32, 32, .18) !important; box-shadow: inset 2px 0 #D82020; }
.wz-console-shell > .layui-side .layui-nav-more { border-top-color: #999999; }
.wz-console-shell > .layui-side .layui-nav-itemed > a .layui-nav-more { border-color: transparent transparent #999999; }

.layui-layout-body .wz-console-shell > .layui-header {
    height: 64px !important; color: var(--wz-text) !important;
    border-bottom: 1px solid rgba(220, 228, 235, .92);
    background: rgba(255, 255, 255, .94) !important;
    box-shadow: 0 5px 22px rgba(0, 0, 0, .05);
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.wz-console-shell > .layui-header .layui-nav-item,
.wz-console-shell > .layui-header .layui-nav-item > a { height: 64px !important; line-height: 64px !important; }
.wz-console-shell > .layui-header .layui-nav-item > a { color: #666666 !important; padding: 0 17px; }
.wz-console-shell > .layui-header .layui-nav-item > a:hover,
.wz-console-shell > .layui-header .layui-nav-item.layui-this > a { color: var(--wz-blue-600) !important; background: #F3F3F3 !important; }
.wz-console-shell > .layui-header .layui-nav-item.layui-this > a:after { left: 18px; right: 18px; bottom: 0; height: 3px; content: ""; position: absolute; border-radius: 3px 3px 0 0; background: linear-gradient(90deg, var(--wz-blue-600), var(--wz-cyan-500)); }
.wz-console-shell > .layui-header .layui-nav-child { top: 59px; padding: 7px; border: 1px solid var(--wz-line); border-radius: 10px; box-shadow: var(--wz-shadow-hover); }
.wz-console-shell > .layui-header .layui-nav-child dd a { border-radius: 7px; color: #666666 !important; }
.wz-console-shell > .layui-header .layui-nav-child dd a:hover { color: var(--wz-blue-600) !important; background: #EEEEEE !important; }

.layui-layout-body .wz-console-shell > .layui-body { top: 64px; background: var(--wz-bg) !important; }
.wz-console-shell > .layui-body:before { inset: 0; content: ""; position: fixed; pointer-events: none; opacity: .48; background-image: linear-gradient(rgba(0, 0, 0, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, .035) 1px, transparent 1px); background-size: 36px 36px; }
.wz-console-shell .think-page-body { overflow-x: hidden; }
.wz-console-shell > .layui-body > .think-page-body > .layui-card > .layui-card-header {
    top: 64px; height: 54px; padding: 0 20px; color: #333333; line-height: 54px;
    border: 0 !important; border-bottom: 1px solid var(--wz-line) !important;
    background: rgba(255, 255, 255, .96); box-shadow: 0 5px 18px rgba(0, 0, 0, .04);
}
.wz-console-shell > .layui-body > .think-page-body > .layui-card > .layui-card-header > .layui-icon { color: var(--wz-blue-500) !important; }
.wz-console-shell > .layui-body > .think-page-body > .layui-card > .layui-card-header + .layui-card-line + .layui-card-body { top: 54px; }
.wz-console-shell > .layui-body > .think-page-body > .layui-card > .layui-card-line { display: none; }
.wz-console-shell > .layui-body > .think-page-body > .layui-card > .layui-card-body > .layui-card-html,
.wz-console-shell > .layui-body > .think-page-body > .layui-card > .layui-card-body > .layui-card-table { padding: 18px; }

/* 卡片与内容容器 */
.wz-console-shell .layui-fluid { padding: 0; }
.wz-console-shell .layui-card-html > .layui-card,
.wz-console-shell .layui-card-table > .layui-card,
.wz-console-shell .layui-fluid .layui-card,
.wz-console-shell .layui-tab-card,
.wz-console-shell .think-box-shadow {
    border: 1px solid rgba(220, 228, 235, .92) !important; border-radius: var(--wz-radius) !important;
    background: var(--wz-card) !important; box-shadow: var(--wz-shadow) !important;
}
.wz-console-shell .layui-card { color: var(--wz-text); }
.wz-console-shell .layui-card-header { height: 52px; color: #333333; font-size: 14px; font-weight: 600; line-height: 52px; border-bottom: 1px solid var(--wz-line); }
.wz-console-shell .layui-card-body { padding: 18px; }
.wz-console-shell .layui-card-table > .layui-card > .layui-card-body > .form-search { padding-bottom: 14px; margin-bottom: 14px; }

/* 数据看板 */
.wz-console-shell .wz-dashboard-row { margin-bottom: 0; }
.wz-console-shell .wz-stat-card {
    min-height: 132px; padding: 20px; margin-bottom: 15px; position: relative; overflow: hidden;
    box-sizing: border-box; border: 1px solid rgba(220, 228, 235, .92); border-radius: 14px;
    background: linear-gradient(145deg, #fff 15%, #FAFAFA 100%); box-shadow: var(--wz-shadow);
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.wz-console-shell .wz-stat-card:after { right: -38px; top: -42px; width: 120px; height: 120px; content: ""; position: absolute; border-radius: 50%; background: radial-gradient(circle, rgba(34, 34, 34, .10), transparent 70%); }
.wz-console-shell .wz-stat-card:hover { transform: translateY(-3px); border-color: #DEDEDE; box-shadow: var(--wz-shadow-hover); }
.wz-console-shell .wz-stat-icon { top: 20px; right: 20px; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; position: absolute; border-radius: 12px; color: #D82020; background: linear-gradient(145deg, #FFF0EE, #FFE4E0); }
.wz-console-shell .wz-stat-icon .layui-icon { font-size: 21px; }
.wz-console-shell .wz-stat-label { color: #888888; font-size: 12px; }
.wz-console-shell .wz-stat-value { color: #1A1A1A; margin: 9px 0 7px; font-size: 29px; line-height: 1; font-weight: 700; letter-spacing: -.5px; }
.wz-console-shell .wz-stat-trend { color: #999999; font-size: 11px; }
.wz-console-shell .wz-chart-card { border-radius: 14px !important; }
.wz-console-shell .wz-rank-table { margin: 0; }

/* 表单、筛选与选择器 */
.wz-console-shell .layui-form-pane .layui-form-item { margin-bottom: 12px; }
.wz-console-shell .layui-input,
.wz-console-shell .layui-textarea,
.wz-console-shell .layui-select {
    color: #333333; border: 1px solid #E6E6E6; border-radius: 8px; background: #FAFAFA;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.wz-console-shell .layui-input:hover,
.wz-console-shell .layui-textarea:hover,
.wz-console-shell .layui-select:hover { border-color: #CCCCCC; background: #fff; }
.wz-console-shell .layui-input:focus,
.wz-console-shell .layui-textarea:focus,
.wz-console-shell .layui-select:focus { border-color: #D82020 !important; background: #fff; box-shadow: 0 0 0 3px rgba(216, 32, 32, .12); }
.wz-console-shell .layui-input::placeholder,
.wz-console-shell .layui-textarea::placeholder { color: #AAAAAA; }
.wz-console-shell .layui-form-pane .layui-form-label { color: #777777; border-color: #E6E6E6; border-radius: 8px 0 0 8px; background: #F5F5F5; }
.wz-console-shell .form-search { padding: 14px 14px 4px; border: 1px solid #E6E6E6; border-radius: 11px; background: #F5F5F5; }
.wz-console-shell .form-search .layui-form-item { overflow: visible; border-color: #E6E6E6; border-radius: 8px; background: #fff; }
.wz-console-shell .form-search .layui-form-item .layui-form-label { border-right-color: #E6E6E6; background: #F5F5F5; }
.wz-console-shell .form-search .layui-form-item:last-child { background: transparent; }
.wz-console-shell .layui-form-select dl { padding: 6px; border: 1px solid var(--wz-line); border-radius: 9px; box-shadow: var(--wz-shadow-hover); }
.wz-console-shell .layui-form-select dl dd { border-radius: 6px; }
.wz-console-shell .layui-form-select dl dd:hover { color: var(--wz-blue-600); background: #EEEEEE; }
.wz-console-shell .layui-form-select dl dd.layui-this { color: #fff; background: linear-gradient(90deg, var(--wz-blue-600), var(--wz-cyan-500)); }
.wz-console-shell .help-block, .wz-console-shell .help-label { color: #999999; }
.wz-console-shell .help-label b { color: var(--wz-blue-600) !important; }
.wz-console-shell .layui-form-switch { border-color: #E0E0E0; background: #E0E0E0; }
.wz-console-shell .layui-form-onswitch { border-color: var(--wz-blue-600); background: linear-gradient(90deg, var(--wz-blue-600), var(--wz-cyan-500)); }
.wz-console-shell .layui-form-radio:hover > *, .wz-console-shell .layui-form-radioed > i { color: var(--wz-blue-600); }
.wz-console-shell .layui-form-checked[lay-skin=primary] i { border-color: var(--wz-blue-600) !important; background: var(--wz-blue-600); }

/* 按钮体系 */
.wz-console-shell .layui-btn {
    border: 0; border-radius: 7px; background: linear-gradient(100deg, #D82020 0%, #E83A3A 55%, #F05A3A 100%);
    box-shadow: 0 6px 16px rgba(216, 32, 32, .28), inset 0 1px rgba(255,255,255,.25); transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.wz-console-shell .layui-btn:hover { opacity: 1; transform: translateY(-1px); box-shadow: 0 8px 18px rgba(0, 0, 0, .18); }
.wz-console-shell .layui-btn + .layui-btn { margin-left: 7px; }
.wz-console-shell .layui-btn-primary { color: #666666; border: 1px solid #E0E0E0 !important; background: #fff !important; box-shadow: 0 3px 10px rgba(0, 0, 0, .05); }
.wz-console-shell .layui-btn-primary:hover { color: var(--wz-blue-600); border-color: #BBBBBB !important; background: #F2F2F2 !important; }
.wz-console-shell .layui-btn-normal { background: linear-gradient(100deg, #D82020, #E83A3A) !important; }
.wz-console-shell .layui-btn-warm { background: linear-gradient(100deg, #888888, #999999) !important; box-shadow: 0 5px 13px rgba(226, 168, 87, .16); }
.wz-console-shell .layui-btn-danger { background: linear-gradient(100deg, #333333, #555555) !important; box-shadow: 0 5px 13px rgba(217, 106, 114, .16); }
.wz-console-shell .layui-btn-disabled, .wz-console-shell .layui-btn-disabled:hover { color: #999999 !important; border: 1px solid #E6E6E6 !important; background: #F2F2F2 !important; box-shadow: none; transform: none; }
.wz-console-shell .layui-btn-group { overflow: hidden; border: 1px solid #E0E0E0; border-radius: 8px; background: #fff !important; }

/* 表格 */
.wz-console-shell .layui-table-view { max-width: 100%; overflow: hidden; box-sizing: border-box; border: 1px solid #E6E6E6; border-radius: 10px; background: #fff; }
.wz-console-shell .layui-table-box,
.wz-console-shell .layui-table-body,
.wz-console-shell .layui-table-header { max-width: 100%; }
.wz-console-shell .layui-table-header { border-color: #E6E6E6; background: #F5F5F5; }
.wz-console-shell .layui-table-header th { color: #666666; font-weight: 600; background: #F5F5F5; }
.wz-console-shell .layui-table thead tr { color: #666666; background: #F5F5F5; }
.wz-console-shell .layui-table td,
.wz-console-shell .layui-table th,
.wz-console-shell .layui-table-col-set,
.wz-console-shell .layui-table-fixed-r,
.wz-console-shell .layui-table-header,
.wz-console-shell .layui-table-page,
.wz-console-shell .layui-table-tips-main { border-color: #E6E6E6 !important; }
.wz-console-shell .layui-table tbody tr { transition: background .15s ease; }
.wz-console-shell .layui-table tbody tr:hover,
.wz-console-shell .layui-table-hover { background: #EEEEEE !important; }
.wz-console-shell .layui-table[lay-even] tr:nth-child(even) { background: #FAFAFA; }
.wz-console-shell .layui-table-cell { color: #333333; }
.wz-console-shell .layui-table-page { background: #FAFAFA; }
.wz-console-shell .layui-laypage a,
.wz-console-shell .layui-laypage span { margin: 0 3px; border-radius: 6px; border-color: #E6E6E6; }
.wz-console-shell .layui-laypage .layui-laypage-curr .layui-laypage-em { border-radius: 6px; background: linear-gradient(100deg, var(--wz-blue-600), var(--wz-cyan-500)); }
.wz-console-shell .layui-table-sort[lay-sort=asc] .layui-table-sort-asc,
.wz-console-shell .layui-table-sort[lay-sort=desc] .layui-table-sort-desc { border-bottom-color: var(--wz-blue-600); border-top-color: var(--wz-blue-600); }

/* 标签、状态与提示 */
.wz-console-shell .layui-badge { border-radius: 5px; font-weight: 400; }
.wz-console-shell .layui-bg-blue { background-color: #333333 !important; }
.wz-console-shell .layui-bg-green { background-color: #666666 !important; }
.wz-console-shell .layui-bg-orange { background-color: #888888 !important; }
.wz-console-shell .layui-bg-red { background-color: #333333 !important; }
.wz-console-shell .layui-bg-gray { color: #777777 !important; background-color: #EBEBEB !important; }
.wz-console-shell .color-green { color: #555555 !important; }
.wz-console-shell .color-blue { color: #222222 !important; }
.wz-console-shell .color-orange { color: #777777 !important; }
.wz-console-shell .color-red { color: #333333 !important; }
.wz-console-shell .color-gray, .wz-console-shell .color-desc { color: #999999 !important; }
.wz-console-shell .think-box-notify { border: 1px solid #E4E4E4; border-radius: 9px; background: #F3F3F3; }
.wz-console-shell .think-box-notify[type=error] { border-color: #E8E8E8; background: #F5F5F5; }
.wz-console-shell .notdata { color: #999999; border-color: #E6E6E6; border-radius: 9px; background: #F5F5F5; }

/* 加载状态：使用轻量流光进度，替换旧方块旋转和圆点旋转 */
.think-page-loader {
    background: rgba(247, 244, 242, .94) !important;
    backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
}
.think-page-loader .loader {
    top: 50% !important; left: 50% !important; width: 196px !important; height: 64px !important;
    margin: 0 !important; display: block !important; position: absolute !important; overflow: hidden;
    transform: translate(-50%, -50%); border: 1px solid rgba(220, 210, 204, .92); border-radius: 14px;
    background: rgba(255, 255, 255, .96) !important; box-shadow: 0 16px 42px rgba(0, 0, 0, .10);
}
.think-page-loader .loader:before {
    top: auto !important; left: 18px !important; right: 18px; bottom: 14px; width: auto !important; height: 3px !important;
    opacity: 1 !important; content: ""; position: absolute; border-radius: 4px;
    background: linear-gradient(90deg, #E6E6E6 0%, #E6E6E6 25%, #222222 45%, #333333 55%, #E6E6E6 75%, #E6E6E6 100%) !important;
    background-size: 230% 100% !important; animation: wz-loader-flow 1.35s linear infinite !important;
}
.think-page-loader .loader:after {
    top: 12px !important; left: 0 !important; width: 100% !important; height: 24px !important;
    color: #777777; content: "济南济恒供热 · 正在加载"; position: absolute; border-radius: 0;
    background: transparent !important; box-shadow: none; font-size: 13px; font-weight: 600; line-height: 24px;
    letter-spacing: .7px; text-align: center; animation: none !important;
}
body > .think-page-loader {
    background: radial-gradient(circle at 50% 42%, rgba(220, 220, 220, .55), transparent 34%), #F5F5F5 !important;
}
body > .think-page-loader .loader { width: 214px !important; height: 68px !important; }
body > .think-page-loader .loader:after { top: 13px !important; content: "济南济恒供热 · 系统加载中"; }

/* 右上角刷新：只遮罩右侧内容区，提示更轻、更紧凑 */
.wz-console-shell > .layui-body > .think-page-loader { background: rgba(243, 245, 247, .86) !important; }
.wz-console-shell > .layui-body > .think-page-loader .loader {
    width: 154px !important; height: 52px !important; border-radius: 11px;
    box-shadow: 0 11px 30px rgba(0, 0, 0, .08);
}
.wz-console-shell > .layui-body > .think-page-loader .loader:after {
    top: 8px !important; height: 22px !important; content: "页面刷新中"; color: #777777; font-size: 12px; line-height: 22px;
}
.wz-console-shell > .layui-body > .think-page-loader .loader:before { left: 16px !important; right: 16px; bottom: 11px; }

/* 普通操作请求的加载提示 */
.layui-layer-loading { width: auto !important; border-radius: 11px !important; }
.layui-layer-loading .layui-layer-content {
    width: 132px !important; height: 46px !important; position: relative; overflow: hidden;
    color: transparent !important; font-size: 0 !important; border: 1px solid #E0E0E0; border-radius: 11px !important;
    background: rgba(255, 255, 255, .97) !important; box-shadow: 0 13px 34px rgba(0, 0, 0, .12);
}
.layui-layer-loading .layui-layer-content:before {
    inset: 5px 0 auto; height: 25px; color: #777777; content: "正在处理"; position: absolute;
    font-size: 12px; font-weight: 600; line-height: 25px; letter-spacing: .6px; text-align: center;
}
.layui-layer-loading .layui-layer-content:after {
    left: 14px; right: 14px; bottom: 8px; height: 3px; content: ""; position: absolute; border-radius: 4px;
    background: linear-gradient(90deg, #E6E6E6 0%, #E6E6E6 25%, #222222 45%, #333333 55%, #E6E6E6 75%, #E6E6E6 100%);
    background-size: 230% 100%; animation: wz-loader-flow 1.25s linear infinite;
}
.layui-layer-loading .layui-layer-loading-icon { display: none !important; }

/* 表格刷新加载 */
.layui-table-init { background: rgba(247, 250, 252, .90) !important; backdrop-filter: blur(1px); }
.layui-table-loading-icon {
    width: 138px; height: 46px; overflow: hidden; border: 1px solid #E0E0E0; border-radius: 10px;
    background: rgba(255, 255, 255, .97); box-shadow: 0 10px 26px rgba(0, 0, 0, .08);
}
.layui-table-loading-icon .layui-icon { display: none !important; }
.layui-table-loading-icon:before { color: #777777; content: "数据加载中"; font-size: 12px; font-weight: 600; line-height: 32px; }
.layui-table-loading-icon:after {
    left: 14px; right: 14px; bottom: 8px; height: 3px; content: ""; position: absolute; border-radius: 4px;
    background: linear-gradient(90deg, #E6E6E6 0%, #E6E6E6 25%, #222222 45%, #333333 55%, #E6E6E6 75%, #E6E6E6 100%);
    background-size: 230% 100%; animation: wz-loader-flow 1.25s linear infinite;
}

/* AJAX 顶部进度条 */
.pace-progress {
    height: 3px !important; background: linear-gradient(90deg, var(--wz-blue-600), #333333, var(--wz-cyan-500)) !important;
    box-shadow: 0 1px 8px rgba(34, 34, 34, .25);
}

@keyframes wz-loader-flow {
    0% { background-position: 190% 0; }
    100% { background-position: -130% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .think-page-loader .loader:before,
    .layui-layer-loading .layui-layer-content:after,
    .layui-table-loading-icon:after { animation-duration: 2.8s !important; }
}

/* 页签、步骤、树与上传区域 */
.wz-console-shell .layui-tab-card { overflow: hidden; }
.wz-console-shell .layui-tab-card > .layui-tab-title { height: 48px; border-color: var(--wz-line); background: #F5F5F5; }
.wz-console-shell .layui-tab-card > .layui-tab-title li { height: 48px; color: #888888; line-height: 48px; }
.wz-console-shell .layui-tab-card > .layui-tab-title .layui-this { color: var(--wz-blue-600) !important; font-weight: 600; background: #fff; }
.wz-console-shell .layui-tab-card > .layui-tab-title .layui-this:after { top: auto; left: 18px; right: 18px; bottom: 0; width: auto; height: 3px; border: 0; border-radius: 3px 3px 0 0; background: linear-gradient(90deg, var(--wz-blue-600), var(--wz-cyan-500)); }
.wz-console-shell .layui-tab-content { background: #fff; }
.wz-console-shell .layui-elem-field { border-color: #E6E6E6; border-radius: 9px; }
.wz-console-shell .layui-elem-field legend { color: #666666; }
.wz-console-shell .help-checks:not(td), .wz-console-shell .help-images:not(td) { border-color: #E6E6E6; background: #FAFAFA; }

/* 弹窗、消息框与日期控件：这些节点由 Layui 挂载到 body */
.layui-layer { overflow: hidden; border-radius: 12px !important; box-shadow: 0 20px 60px rgba(0, 0, 0, .18) !important; }
.layui-layer-title { height: 50px !important; color: #333333 !important; font-weight: 600; line-height: 50px !important; border-bottom: 1px solid #E6E6E6 !important; background: #F5F5F5 !important; }
.layui-layer-setwin { top: 18px !important; }
.layui-layer-btn { padding: 12px 16px 16px !important; border-top: 1px solid #F2F2F2; background: #FAFAFA; }
.layui-layer-btn a { height: 34px !important; line-height: 34px !important; border-radius: 7px !important; }
.layui-layer-btn .layui-layer-btn0 { border-color: var(--wz-blue-600) !important; background: linear-gradient(100deg, var(--wz-blue-600), var(--wz-cyan-500)) !important; }
.layui-layer-page > .layui-layer-content { max-height: calc(100vh - 130px) !important; overflow-y: auto !important; }

/* 添加、编辑、查看等业务弹框 */
.layui-layer.wz-admin-modal {
    overflow: visible; border: 1px solid rgba(0, 0, 0, .22); border-radius: 14px !important;
    background: #F5F5F5 !important; box-shadow: 0 26px 80px rgba(0, 0, 0, .20) !important;
}
.layui-layer.wz-admin-modal:before {
    display: none;
}
.layui-layer.wz-admin-modal .layui-layer-title {
    height: 56px !important; padding: 0 58px 0 24px; color: #333333 !important; font-size: 15px;
    font-weight: 600; line-height: 56px !important; letter-spacing: .4px;
    border: 0 !important; border-bottom: 1px solid #E6E6E6 !important; border-radius: 14px 14px 0 0;
    background: linear-gradient(105deg, #FAFAFA 0%, #F5F5F5 58%, #EEEEEE 100%) !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .05);
}
.layui-layer.wz-admin-modal .layui-layer-title:before {
    display: none;
}
.layui-layer.wz-admin-modal .layui-layer-setwin { top: 20px !important; right: 20px; }
.layui-layer.wz-admin-modal .layui-layer-setwin a,
.layui-layer.wz-admin-modal .layui-layer-setwin span {
    color: #999999 !important; opacity: .88; transition: color .18s ease, opacity .18s ease, transform .18s ease;
}
.layui-layer.wz-admin-modal .layui-layer-setwin a > span,
.layui-layer.wz-admin-modal .layui-layer-setwin .layui-icon { color: inherit !important; }
.layui-layer.wz-admin-modal .layui-layer-setwin .layui-layer-min:before { border-bottom-color: #999999; }
.layui-layer.wz-admin-modal .layui-layer-setwin .layui-layer-max:before,
.layui-layer.wz-admin-modal .layui-layer-setwin .layui-layer-max:after { border-color: #999999; }
.layui-layer.wz-admin-modal .layui-layer-setwin .layui-layer-close {
    width: 22px; height: 22px; color: transparent !important; font-size: 0; line-height: 20px;
    border-radius: 6px; background: rgba(0, 0, 0, .06); text-align: center;
}
.layui-layer.wz-admin-modal .layui-layer-setwin .layui-layer-close:after {
    color: #888888; content: "×"; font-family: Arial, sans-serif; font-size: 21px; font-weight: 300;
}
.layui-layer.wz-admin-modal .layui-layer-setwin .layui-layer-close:hover { background: rgba(34, 34, 34, .10); }
.layui-layer.wz-admin-modal .layui-layer-setwin a:hover,
.layui-layer.wz-admin-modal .layui-layer-setwin span:hover { color: var(--wz-blue-600) !important; opacity: 1; transform: scale(1.08); }
.layui-layer.wz-admin-modal .layui-layer-content {
    color: var(--wz-text); border-radius: 0 0 14px 14px; background: #F5F5F5;
    scrollbar-color: #B0B0B0 #EBEBEB; scrollbar-width: thin;
}
.layui-layer.wz-admin-modal.layui-layer-page > .layui-layer-content { max-height: calc(100vh - 128px) !important; }
.layui-layer.wz-admin-modal .layui-layer-content > .layui-card,
.layui-layer.wz-admin-modal .layui-layer-content > form.layui-card {
    margin: 0; border: 0; border-radius: 0 0 14px 14px; background: transparent; box-shadow: none;
}
.layui-layer.wz-admin-modal .layui-card-body { padding: 24px 30px; }
.layui-layer.wz-admin-modal .layui-card-body.padding-left-40 { padding-left: 30px !important; }

/* 弹框表单 */
.layui-layer.wz-admin-modal .layui-form-item { margin-bottom: 17px; }
.layui-layer.wz-admin-modal .help-label,
.layui-layer.wz-admin-modal .layui-form-label { color: #777777; font-size: 12px; }
.layui-layer.wz-admin-modal .help-label { min-height: 23px; display: block; line-height: 20px; }
.layui-layer.wz-admin-modal .help-label b,
.layui-layer.wz-admin-modal .layui-form-label b { color: #666666 !important; font-size: 13px; font-weight: 600; }
.layui-layer.wz-admin-modal .help-block,
.layui-layer.wz-admin-modal .color-desc { color: #999999 !important; line-height: 21px; }
.layui-layer.wz-admin-modal .layui-input,
.layui-layer.wz-admin-modal .layui-textarea,
.layui-layer.wz-admin-modal .layui-select {
    color: #333333; border: 1px solid #E0E0E0; border-radius: 8px; background: #fff;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .03);
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.layui-layer.wz-admin-modal .layui-input { height: 40px; line-height: 40px; }
.layui-layer.wz-admin-modal .layui-textarea { min-height: 92px; padding: 10px 12px; line-height: 22px; resize: vertical; }
.layui-layer.wz-admin-modal .layui-input:hover,
.layui-layer.wz-admin-modal .layui-textarea:hover,
.layui-layer.wz-admin-modal .layui-select:hover { border-color: #C8C8C8; }
.layui-layer.wz-admin-modal .layui-input:focus,
.layui-layer.wz-admin-modal .layui-textarea:focus,
.layui-layer.wz-admin-modal .layui-select:focus {
    border-color: #222222 !important; background: #fff; box-shadow: 0 0 0 3px rgba(34, 34, 34, .14);
}
.layui-layer.wz-admin-modal .layui-input::placeholder,
.layui-layer.wz-admin-modal .layui-textarea::placeholder { color: #AAAAAA; }
.layui-layer.wz-admin-modal .layui-input[readonly],
.layui-layer.wz-admin-modal .layui-input:disabled,
.layui-layer.wz-admin-modal .think-bg-gray { color: #888888 !important; border-color: #E6E6E6; background: #F2F2F2 !important; }
.layui-layer.wz-admin-modal .layui-form-label {
    min-height: 40px; padding-top: 9px; padding-bottom: 9px; box-sizing: border-box;
    border-color: #E0E0E0; border-radius: 8px 0 0 8px; background: #F5F5F5;
}
.layui-layer.wz-admin-modal .layui-input-block { min-height: 40px; }
.layui-layer.wz-admin-modal .layui-form-select .layui-edge { border-top-color: #999999; }
.layui-layer.wz-admin-modal .layui-form-select dl {
    padding: 6px; border: 1px solid #E0E0E0; border-radius: 9px; background: #fff;
    box-shadow: 0 15px 36px rgba(0, 0, 0, .14);
}
.layui-layer.wz-admin-modal .layui-form-select dl dd { color: #666666; border-radius: 6px; }
.layui-layer.wz-admin-modal .layui-form-select dl dd:hover { color: var(--wz-blue-600); background: #EEEEEE; }
.layui-layer.wz-admin-modal .layui-form-select dl dd.layui-this { color: #fff; background: linear-gradient(90deg, var(--wz-blue-600), var(--wz-cyan-500)); }

/* 弹框分区、状态控件和详情内容 */
.layui-layer.wz-admin-modal fieldset,
.layui-layer.wz-admin-modal fieldset.layui-bg-gray {
    min-width: 0; padding: 18px 20px 20px; border: 1px solid #E6E6E6; border-radius: 11px;
    background: rgba(255, 255, 255, .76) !important;
}
.layui-layer.wz-admin-modal fieldset + fieldset { margin-top: 16px; }
.layui-layer.wz-admin-modal fieldset legend { padding: 0 7px; color: #666666; background: transparent; }
.layui-layer.wz-admin-modal fieldset legend .layui-badge {
    height: 25px; padding: 0 11px; line-height: 25px; border-radius: 6px;
    background: linear-gradient(100deg, #D82020, #E83A3A) !important; box-shadow: 0 4px 10px rgba(0, 0, 0, .14);
}
.layui-layer.wz-admin-modal .hr-line-dashed { border-top-color: #E6E6E6; }
.layui-layer.wz-admin-modal .layui-form-radio:hover > *,
.layui-layer.wz-admin-modal .layui-form-radioed > i { color: var(--wz-blue-600); }
.layui-layer.wz-admin-modal .layui-form-checked[lay-skin=primary] i { border-color: var(--wz-blue-600) !important; background: var(--wz-blue-600); }
.layui-layer.wz-admin-modal .layui-form-switch { border-color: #E0E0E0; background: #E0E0E0; }
.layui-layer.wz-admin-modal .layui-form-onswitch { border-color: var(--wz-blue-600); background: linear-gradient(90deg, var(--wz-blue-600), var(--wz-cyan-500)); }
.layui-layer.wz-admin-modal .think-radio { color: #666666; }
.layui-layer.wz-admin-modal .think-radio input:checked + span,
.layui-layer.wz-admin-modal .color-blue { color: var(--wz-blue-600) !important; }
.layui-layer.wz-admin-modal .layui-tab-card { overflow: hidden; border-color: #E6E6E6; border-radius: 10px; box-shadow: none; }
.layui-layer.wz-admin-modal .layui-tab-title { border-color: #E6E6E6; background: #F5F5F5; }
.layui-layer.wz-admin-modal .layui-tab-title .layui-this { color: var(--wz-blue-600); font-weight: 600; background: #fff; }
.layui-layer.wz-admin-modal .layui-table,
.layui-layer.wz-admin-modal .layui-table-view { color: #333333; border-color: #E6E6E6; background: #fff; }
.layui-layer.wz-admin-modal .layui-table thead tr,
.layui-layer.wz-admin-modal .layui-table-header { color: #666666; background: #F5F5F5; }
.layui-layer.wz-admin-modal .layui-table td,
.layui-layer.wz-admin-modal .layui-table th { border-color: #E6E6E6; }
.layui-layer.wz-admin-modal .notdata,
.layui-layer.wz-admin-modal .think-box-notify { color: #777777; border: 1px solid #E4E4E4; border-radius: 9px; background: #F3F3F3; }
.layui-layer.wz-admin-modal .help-checks:not(td),
.layui-layer.wz-admin-modal .help-images:not(td) { border-color: #E0E0E0; border-radius: 8px; background: #fff; }
.layui-layer.wz-admin-modal xm-select > .xm-body { z-index: 99999999 !important; border-radius: 9px !important; box-shadow: var(--wz-shadow-hover) !important; }

/* 弹框底部操作区：按功能统一主次按钮，不依赖旧页面的按钮类名 */
.layui-layer.wz-admin-modal form > .layui-form-item.text-center:last-child {
    margin: 0; padding: 15px 24px 18px; position: sticky; z-index: 8; bottom: 0;
    border-top: 1px solid #E6E6E6; background: rgba(247, 250, 252, .96);
    box-shadow: 0 -8px 20px rgba(0, 0, 0, .04); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.layui-layer.wz-admin-modal .layui-btn {
    height: 38px; padding: 0 19px; color: #fff; line-height: 38px; border: 0; border-radius: 8px;
    background: linear-gradient(100deg, var(--wz-blue-600), #333333); box-shadow: 0 6px 15px rgba(34, 34, 34, .16);
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.layui-layer.wz-admin-modal .layui-btn:hover { opacity: 1; transform: translateY(-1px); box-shadow: 0 9px 20px rgba(0, 0, 0, .22); }
.layui-layer.wz-admin-modal .layui-btn + .layui-btn { margin-left: 9px; }
.layui-layer.wz-admin-modal .layui-btn-primary,
.layui-layer.wz-admin-modal button[type=submit] {
    color: #fff !important; border: 0 !important; background: linear-gradient(100deg, var(--wz-blue-600), var(--wz-cyan-500)) !important;
}
.layui-layer.wz-admin-modal [data-close] {
    color: #666666 !important; border: 1px solid #E0E0E0 !important; background: #fff !important;
    box-shadow: 0 4px 11px rgba(0, 0, 0, .07);
}
.layui-layer.wz-admin-modal [data-close]:hover { color: var(--wz-blue-600) !important; border-color: #BBBBBB !important; background: #F3F3F3 !important; }
.layui-layer.wz-admin-modal .layui-btn-danger:not([data-close]) { background: linear-gradient(100deg, #333333, #555555) !important; }

@media screen and (max-width: 700px) {
    .layui-layer.wz-admin-modal { max-width: calc(100vw - 20px); }
    .layui-layer.wz-admin-modal .layui-card-body { padding: 18px 16px; }
    .layui-layer.wz-admin-modal .layui-card-body.padding-left-40 { padding-left: 16px !important; }
    .layui-layer.wz-admin-modal fieldset { padding: 14px 12px 16px; }
    .layui-layer.wz-admin-modal .layui-col-xs3,
    .layui-layer.wz-admin-modal .layui-col-xs4,
    .layui-layer.wz-admin-modal .layui-col-xs6 { width: 100%; }
}
.layui-laydate { border: 1px solid #E6E6E6 !important; border-radius: 11px !important; box-shadow: var(--wz-shadow-hover) !important; }
.layui-laydate-header { border-color: #E6E6E6 !important; }
.layui-laydate .layui-this { border-radius: 6px !important; background: var(--wz-blue-600) !important; }
.layui-laydate-footer { border-color: #E6E6E6 !important; }

/* 第三方选择器与细节兼容 */
xm-select > .xm-body { z-index: 9999 !important; border-radius: 9px !important; box-shadow: var(--wz-shadow-hover) !important; }
.wz-console-shell .layui-card-html .layui-row { margin-left: 0 !important; margin-right: 0 !important; }
.wz-console-shell .layui-card-html .layui-col-md3,
.wz-console-shell .layui-card-html .layui-col-md4,
.wz-console-shell .layui-card-html .layui-col-md6,
.wz-console-shell .layui-card-html .layui-col-md8,
.wz-console-shell .layui-card-html .layui-col-md12 { padding-left: 8px; padding-right: 8px; }

/* 折叠侧栏 */
.wz-console-shell.layui-layout-left-mini > .layui-side .layui-logo { padding: 0; text-align: center; }
.wz-console-shell.layui-layout-left-mini > .layui-side .layui-logo .jh-brand-logo { margin: 0; }
.wz-console-shell.layui-layout-left-mini > .layui-side .layui-side-tree { padding-left: 6px; padding-right: 6px; }
.wz-console-shell.layui-layout-left-mini > .layui-side .layui-nav-item a { padding: 0 !important; }

@media screen and (max-width: 900px) {
    .wz-console-shell > .layui-header .layui-nav-item > a { padding: 0 12px; }
    .wz-console-shell > .layui-body > .think-page-body > .layui-card > .layui-card-body > .layui-card-html,
    .wz-console-shell > .layui-body > .think-page-body > .layui-card > .layui-card-body > .layui-card-table { padding: 12px; }
    .wz-console-shell .wz-stat-card { min-height: 118px; padding: 17px; }
}


/* ===== 济恒红点缀：按钮与控件微光 ===== */
.wz-console-shell .layui-btn,
.layui-layer.wz-admin-modal .layui-btn,
.layui-layer-btn .layui-layer-btn0 {
    background: linear-gradient(100deg, #D82020 0%, #E83A3A 52%, #F05A3A 100%) !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(216, 32, 32, .28), inset 0 1px rgba(255,255,255,.28) !important;
}
.wz-console-shell .layui-btn:hover,
.layui-layer.wz-admin-modal .layui-btn:hover,
.layui-layer-btn .layui-layer-btn0:hover {
    filter: brightness(1.06);
    box-shadow: 0 10px 22px rgba(216, 32, 32, .36), inset 0 1px rgba(255,255,255,.35) !important;
}
.wz-console-shell .layui-btn-primary,
.layui-layer.wz-admin-modal .layui-btn-primary,
.layui-layer.wz-admin-modal [data-close],
.layui-layer-btn a:not(.layui-layer-btn0) {
    color: #555 !important;
    border: 1px solid #E0E0E0 !important;
    background: #fff !important;
    box-shadow: 0 3px 10px rgba(0,0,0,.04) !important;
}
.wz-console-shell .layui-btn-primary:hover,
.layui-layer.wz-admin-modal [data-close]:hover,
.layui-layer-btn a:not(.layui-layer-btn0):hover {
    color: #D82020 !important;
    border-color: #F0B0A8 !important;
    background: #FFF6F5 !important;
}
.wz-console-shell .layui-btn-danger,
.layui-layer.wz-admin-modal .layui-btn-danger:not([data-close]) {
    background: linear-gradient(100deg, #B81818, #D82020) !important;
    box-shadow: 0 6px 14px rgba(184, 24, 24, .25) !important;
}
.wz-console-shell .layui-btn-normal { background: linear-gradient(100deg, #D82020, #E83A3A) !important; }
.wz-console-shell .layui-btn-warm { background: linear-gradient(100deg, #E07040, #F2994A) !important; box-shadow: 0 6px 14px rgba(240, 90, 58, .22) !important; }
.wz-console-shell a.layui-btn { color: #fff !important; }
.wz-console-shell a.layui-btn-primary { color: #555 !important; }
.wz-console-shell a { color: #D82020; }
.wz-console-shell a:hover { color: #C01C1C; }
.wz-console-shell .layui-table a { color: #D82020; }
.wz-console-shell .help-label b,
.layui-layer.wz-admin-modal .help-label b,
.wz-console-shell .color-blue,
.layui-layer.wz-admin-modal .color-blue { color: #D82020 !important; }
.wz-console-shell .layui-form-onswitch,
.layui-layer.wz-admin-modal .layui-form-onswitch {
    border-color: #D82020 !important;
    background: linear-gradient(90deg, #D82020, #F05A3A) !important;
    box-shadow: inset 0 1px rgba(255,255,255,.25);
}
.wz-console-shell .layui-form-radioed > i,
.wz-console-shell .layui-form-radio:hover > *,
.layui-layer.wz-admin-modal .layui-form-radioed > i { color: #D82020 !important; }
.wz-console-shell .layui-form-checked[lay-skin=primary] i,
.layui-layer.wz-admin-modal .layui-form-checked[lay-skin=primary] i {
    border-color: #D82020 !important; background-color: #D82020 !important;
}
.wz-console-shell .layui-form-select dl dd.layui-this,
.layui-layer.wz-admin-modal .layui-form-select dl dd.layui-this {
    background: linear-gradient(90deg, #D82020, #F05A3A) !important; color: #fff !important;
}
.wz-console-shell .layui-laypage .layui-laypage-curr .layui-laypage-em {
    background: linear-gradient(100deg, #D82020, #F05A3A) !important;
    box-shadow: 0 2px 8px rgba(216, 32, 32, .28);
}
.wz-console-shell .layui-tab-brief > .layui-tab-title .layui-this { color: #D82020 !important; }
.wz-console-shell .layui-tab-card > .layui-tab-title .layui-this { color: #D82020 !important; }
.wz-console-shell .layui-tab-brief > .layui-tab-more li.layui-this:after,
.wz-console-shell .layui-tab-brief > .layui-tab-title .layui-this:after,
.wz-console-shell .layui-tab-card > .layui-tab-title .layui-this:after {
    border-bottom-color: #D82020 !important;
    background: linear-gradient(90deg, #D82020, #F05A3A) !important;
}
.wz-console-shell .layui-progress-bar { background: linear-gradient(90deg, #D82020, #F05A3A) !important; }
.wz-console-shell .layui-input:focus,
.wz-console-shell .layui-textarea:focus,
.wz-console-shell .layui-select:focus,
.layui-layer.wz-admin-modal .layui-input:focus,
.layui-layer.wz-admin-modal .layui-textarea:focus {
    border-color: #D82020 !important;
    box-shadow: 0 0 0 3px rgba(216, 32, 32, .12) !important;
}
.wz-console-shell > .layui-header .layui-nav-item > a:hover,
.wz-console-shell > .layui-header .layui-nav-item.layui-this > a {
    color: #D82020 !important;
}
.wz-console-shell > .layui-header .layui-nav-item.layui-this > a:after {
    background: linear-gradient(90deg, #D82020, #F05A3A) !important;
    box-shadow: 0 0 8px rgba(216, 32, 32, .35);
}
.wz-console-shell .wz-stat-icon {
    color: #D82020 !important;
    background: linear-gradient(145deg, #FFF0EE, #FFE4E0) !important;
    box-shadow: inset 0 1px rgba(255,255,255,.8);
}
.pace-progress {
    background: linear-gradient(90deg, #D82020, #E83A3A, #F05A3A) !important;
    box-shadow: 0 1px 10px rgba(216, 32, 32, .4) !important;
}
.think-page-loader .loader:before,
.layui-layer-loading .layui-layer-content:after,
.layui-table-loading-icon:after {
    background: linear-gradient(90deg, #E6E6E6 0%, #E6E6E6 25%, #D82020 45%, #F05A3A 55%, #E6E6E6 75%, #E6E6E6 100%) !important;
    background-size: 230% 100% !important;
}
.layui-laydate .layui-this,
.layui-laydate-footer span[lay-type=date] { background-color: #D82020 !important; }
.layui-laydate-header i:hover,
.layui-laydate-header span:hover,
.layui-laydate-footer span:hover { color: #D82020 !important; }
.wz-console-shell .layui-table-hover,
.wz-console-shell .layui-table tbody tr:hover { background: #FFF6F5 !important; }
.wz-console-shell .color-red { color: #D82020 !important; }
.wz-console-shell .layui-bg-red,
.wz-console-shell .layui-bg-blue { background-color: #D82020 !important; }
.layui-layer.wz-admin-modal .layui-layer-title {
    background: linear-gradient(105deg, #FFFFFF 0%, #FFF6F5 58%, #FFECE8 100%) !important;
}
.layui-layer.wz-admin-modal .layui-layer-title:before {
    display: none !important;
    content: none !important;
}
