/**
 * 后台布局与 Element UI 覆盖（与 Element 主题配合）
 */
* { box-sizing: border-box; }
html { margin: 0; padding: 0; height: 100%; overflow: hidden; background: #304156 !important; border-radius: 0 !important; border: none !important; }
body.admin-body { margin: 0 !important; padding: 0 !important; font-size: 14px; font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif; line-height: 1.5; color: #606266; background: #304156 !important; height: 100%; overflow: hidden; border-radius: 0 !important; border: none !important; }
body.admin-body::before,
body.admin-body::after { display: none !important; }

/* 去掉：最左侧白边、左上/左下圆角、侧栏与主区之间的白线 */
html { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
body.admin-body { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
#admin-app,
#admin-app.pro-layout,
#admin-app.el-container,
body.admin-body #admin-app { margin: 0 !important; padding: 0 !important; border-radius: 0 !important; border: none !important; border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
.pro-layout .el-aside.pro-sider,
aside.el-aside.pro-sider,
.pro-layout .el-aside,
.admin-body .el-aside,
.admin-body .el-menu,
.admin-body .el-menu-item,
.admin-body .el-header,
.admin-body .el-main,
.admin-body .pro-sider,
.admin-body .pro-sider-logo,
.admin-body .pro-menu,
.admin-body .pro-header,
.admin-body .pro-main,
.admin-body .pro-layout,
.admin-body .el-container {
  border-radius: 0 !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
.pro-layout .el-aside.pro-sider,
aside.el-aside.pro-sider,
.pro-layout .el-aside,
.admin-body .el-aside { margin-left: 0 !important; padding-left: 0 !important; outline: none !important; box-shadow: none !important; border: none !important; border-right: none !important; }

/* ========== 布局：el-container 侧栏+主区 ========== */
.pro-layout { height: 100vh; min-height: 100vh; overflow: hidden; display: flex; }
.pro-layout .el-aside.pro-sider { width: 220px; flex-shrink: 0; background: #304156 !important; overflow: hidden; display: flex; flex-direction: column; }
.pro-sider,
aside.pro-sider { background: #304156 !important; border-radius: 0 !important; border-right: none !important; }
.pro-sider-logo { height: 56px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; padding: 0 20px; background: rgba(0,0,0,.25); border-bottom: 1px solid rgba(255,255,255,.1); border-radius: 0 !important; border: none !important; border-top: none !important; border-left: none !important; border-right: none !important; }
.pro-sider-logo::before,
.pro-sider-logo::after { display: none !important; }
.pro-sider-logo a { color: #fff !important; font-weight: 600; font-size: 16px; text-decoration: none; }
.pro-menu { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 12px 0; padding-top:0; border: none !important; border-right: none !important; border-left: none !important; background: #304156 !important; border-radius: 0 !important; }
.pro-layout .el-aside .el-menu { border-radius: 0 !important; border: none !important; }
.pro-menu-group { margin-bottom: 0; }
.pro-menu-item { display: flex; align-items: center; height: 48px; padding: 0 20px !important; color: #e4e7ed !important; text-decoration: none; font-size: 14px; border: none; background: transparent !important; }
.pro-menu-item:hover { color: #fff !important; background: rgba(255,255,255,.1) !important; }
.pro-menu-item.is-active { color: #fff !important; background: #409EFF !important; }
.pro-menu-item .menu-icon { margin-right: 10px; color: inherit; }
.pro-menu-item .rotate-icon { margin-left: auto; font-size: 12px; transition: transform .25s; color: inherit; }
.pro-menu-item .rotate-90 { transform: rotate(90deg); }
.pro-submenu { overflow: hidden; background: rgba(0,0,0,.2); }
.pro-submenu a { display: flex; align-items: center; padding: 0 20px 0 48px !important; height: 44px; color: #c0c4cc !important; text-decoration: none; font-size: 13px; border: none; background: transparent !important; }
.pro-submenu a:hover { color: #fff !important; background: rgba(255,255,255,.08) !important; }
.pro-submenu a.is-active { color: #409EFF !important; background: rgba(64,158,255,.2) !important; }
.hidden { display: none !important; }

.pro-main-wrap { flex: 1; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; border: none !important; border-left: none !important; border-radius: 0 !important; box-shadow: none !important; }
.admin-body .el-container { border-radius: 0 !important; border: none !important; }
.admin-body .el-aside { border-radius: 0 !important; border: none !important; border-right: none !important; }
/* 主区与侧栏之间不出现白线：主区左侧无边框无阴影 */
.admin-body .el-main,
.pro-layout .el-main,
.pro-main-wrap.el-container { border: none !important; border-left: none !important; box-shadow: none !important; border-radius: 0 !important; }
.admin-body .el-container--vertical { border: none !important; border-left: none !important; }
.pro-header { height: 56px; padding: 0 20px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
.pro-header-breadcrumb .el-breadcrumb__inner { color: #909399; font-weight: 400; }
.pro-header-breadcrumb .el-breadcrumb__inner.is-link { color: #303133; }
/* 面包屑：仅在第一项后显示「/」，最后一项后不显示，避免斜杠跑到最后 */
.pro-header-breadcrumb .el-breadcrumb__item { display: inline-flex; align-items: center; }
.pro-header-breadcrumb .el-breadcrumb__item:not(:last-child)::after { content: '\00a0/\00a0'; margin: 0 4px; color: #909399; font-weight: 400; }
.pro-header-breadcrumb .el-breadcrumb__item:last-child::after { display: none !important; content: none !important; }
.pro-header-right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pro-header-username { font-size: 13px; color: #909399; margin-right: 8px; }
.pro-header-action-form { margin: 0; }
.pro-header-action-btn { margin: 0 !important; padding: 8px 12px !important; color: #909399 !important; text-decoration: none !important; }
.pro-header-action-btn:hover { color: #409EFF !important; text-decoration: none !important; }
.pro-header-action-btn span { text-decoration: none !important; }
.pro-header a { text-decoration: none !important; }
.pro-main { flex: 1; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 12px 12px 40px; background: #f0f2f5; }
.pro-content-inner { max-width: 100%; min-width: 0; min-height: 100%; display: flex; flex-direction: column; }
.pro-list-page,
.pro-dashboard { flex: 1; min-width: 0; max-width: 100%; min-height: 100%; height: auto; box-sizing: border-box; }
.pro-dashboard { display: flex; flex-direction: column; gap: 12px; overflow-x: hidden; }
.pro-dashboard .el-table,
.pro-dashboard .el-table__body-wrapper,
.pro-dashboard .el-table__header-wrapper { overflow-x: hidden !important; max-width: 100%; }
.pro-dashboard h2 { font-size: 14px !important; font-weight: 600; line-height: 32px; margin: 0; }
.dash-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dash-main, .dash-bottom { display: grid; gap: 12px; min-width: 0; align-items: stretch; }
.dash-main { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); }
.dash-bottom { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); }
.dash-stack { display: flex; flex-direction: column; gap: 12px; min-width: 0; min-height: 100%; }
.dash-stack > .dash-card:last-child { flex: 1; }
.dash-card { background: #fff; border: 1px solid #e4e7ed; border-radius: 4px; padding: 14px 16px; min-width: 0; overflow: hidden; }
.pro-support { position: fixed; left: 220px; right: 0; bottom: 0; height: 32px; line-height: 32px; text-align: center; font-size: 12px; color: #909399; background: #f0f2f5; z-index: 20; }
.dash-title { font-weight: 600; margin-bottom: 10px; color: #303133; }
.dash-title i { margin-right: 6px; }
.dash-kpi { display: flex; align-items: center; gap: 14px; min-height: 92px; }
.dash-kpi i { width: 46px; height: 46px; border-radius: 8px; text-align: center; line-height: 46px; font-size: 22px; color: #fff; flex-shrink: 0; }
.dash-kpi b { display: block; font-size: 28px; line-height: 1.1; color: #303133; }
.dash-kpi span { color: #909399; font-size: 13px; }
.kpi-blue i { background: #409EFF; }
.kpi-green i { background: #2fad6a; }
.kpi-orange i { background: #e6a23c; }
.kpi-red i { background: #f56c6c; }
.point-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.point-tile { border-radius: 8px; padding: 12px; color: #fff; }
.point-tile span { display: block; font-size: 12px; opacity: .9; }
.point-tile b { display: block; margin-top: 4px; font-size: 22px; }
.tile-green { background: #2fad6a; }
.tile-orange { background: #e6a23c; }
.tile-blue { background: #409EFF; }
.bar-row { display: flex; align-items: flex-end; gap: 6px; height: 120px; }
.bar-col { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; min-width: 0; }
.bar-col i { display: block; width: 100%; border-radius: 3px 3px 0 0; min-height: 4px; }
.bar-col em { margin-top: 4px; font-style: normal; font-size: 11px; color: #909399; }
.reason-line { margin-top: 10px; }
.reason-line div { display: flex; justify-content: space-between; font-size: 13px; }
.reason-track { height: 8px; margin-top: 4px; background: #f0f2f5; border-radius: 4px; overflow: hidden; }
.reason-track i { display: block; height: 100%; border-radius: 4px; }
.pro-list-page > .el-card { min-height: 100%; height: auto; }
.pro-list-page .el-card__body { overflow: visible; }
.el-table { height: auto !important; }
.el-table th .cell { white-space: nowrap !important; word-break: keep-all; text-overflow: clip !important; }
.el-table td .cell { white-space: normal !important; word-break: break-word; text-overflow: clip !important; line-height: 1.5; }
.el-table__body-wrapper { height: auto !important; max-height: none !important; }
.el-table th.el-table-column--selection .cell,
.el-table td.el-table-column--selection .cell { overflow: visible !important; text-overflow: clip !important; white-space: nowrap !important; }
.el-table .el-table-column--selection { width: 64px !important; min-width: 64px !important; }
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill,
.el-input__inner:-webkit-autofill,
.el-input__inner:-webkit-autofill:hover,
.el-input__inner:-webkit-autofill:focus,
.el-textarea__inner:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  box-shadow: 0 0 0 1000px #fff inset !important;
  -webkit-text-fill-color: #606266 !important;
  caret-color: #606266;
  transition: background-color 9999s ease-out 0s;
}
.pro-password-hint { display: block; margin-top: 6px; font-size: 12px; line-height: 1.5; color: #909399; font-weight: 400; }
.pro-batch-on:not(.is-disabled) { background: #2fad6a !important; border-color: #2fad6a !important; color: #fff !important; }
.pro-batch-off:not(.is-disabled) { background: #e6a23c !important; border-color: #e6a23c !important; color: #fff !important; }
.pro-batch-reset:not(.is-disabled) { background: #409EFF !important; border-color: #409EFF !important; color: #fff !important; }
button.el-button.pro-export,
button.el-button.pro-export:hover,
button.el-button.pro-export:focus,
button.el-button.pro-export:active,
.el-button.pro-export,
.el-button.pro-export:hover,
.el-button.pro-export:focus,
.el-button.pro-export:active {
  background: #13a38a !important;
  background-color: #13a38a !important;
  border-color: #0f8c76 !important;
  color: #fff !important;
}
.el-button.pro-export span,
.el-button.pro-export i { color: #fff !important; }

/* ========== 列表页通用：卡片 + 表格区（Element 风格） ========== */
.pro-list-page { width: 100%; }
.pro-list-page .el-card { border-radius: 4px; margin-bottom: 0; }
.pro-list-page > .el-card > .el-card__header { padding: 12px 16px !important; }
.pro-list-page .pro-list-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 0 !important; }
.pro-list-page .pro-list-header-left { display: flex; align-items: center; gap: 12px; }
.pro-list-page .el-card__header,
.pro-list-page .el-card__header .pro-page-title,
.pro-list-page .el-card__header > span,
.pro-list-page .el-card__header > div > span { font-size: 14px !important; font-weight: 600; line-height: 32px; color: #303133; }
.pro-list-page .pro-pager,
.pro-list-page .el-pagination { justify-content: flex-start; }
.pro-list-header-right { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.pro-toolbar-filter { padding: 14px 20px; background: #fff; border-bottom: 1px solid #EBEEF5; }
.pro-filter-form { margin: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pro-inline-form { display: inline; margin: 0; }
.pro-justify-end { justify-content: flex-end; }

/* 设置页行布局 */
.pro-settings-row { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px !important; }
.pro-settings-row-left { flex: 1; min-width: 0; }
.pro-settings-row-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.pro-settings-form { display: flex; align-items: center; gap: 10px; margin: 0; flex-wrap: wrap; }
.pro-settings-form .el-input { width: 220px; }
.pro-settings-form .el-textarea__inner { min-width: 280px; max-width: 360px; }
.pro-setting-img-preview { max-width: 160px; max-height: 100px; object-fit: contain; border: 1px solid #EBEEF5; border-radius: 4px; }
.pro-setting-rich-wrap .el-input,
.pro-setting-rich-wrap .el-textarea__inner { min-width: 280px; max-width: 400px; }

/* ========== 列表表格：统一无边框样式 ========== */
.pro-list-page .el-table,
.pro-list-page .pro-list-table { font-size: 14px; overflow: hidden; }
.pro-list-page .el-table table,
.pro-list-page .pro-list-table table { border-collapse: collapse; width: 100%; border: none !important; }
.pro-list-page .el-table thead th,
.pro-list-page .pro-list-table thead th { background: #fafafa; color: #303133; font-weight: 600; padding: 12px 16px; border: none; border-bottom: 1px solid #EBEEF5; font-size: 14px; text-align: left; }
.pro-list-page .el-table tbody td,
.pro-list-page .pro-list-table tbody td { padding: 12px 16px; border: none; border-bottom: 1px solid #EBEEF5; font-size: 14px; color: #606266; text-align: left; }
.pro-list-page .el-table tbody tr:last-child td,
.pro-list-page .pro-list-table tbody tr:last-child td { border-bottom: none; }
/* 表格内使用 Element UI 官方多选框：不覆盖 .el-checkbox 结构，保留官方 .el-checkbox__inner 选中样式 */
.pro-list-page .pro-list-table .el-checkbox { margin: 0; }
.pro-list-page .pro-list-table .el-checkbox__input { margin: 0; }
.pro-list-page .pro-list-table .el-checkbox__inner { margin: 0; }
.pro-list-page .el-table.el-table--striped tbody tr:nth-child(even),
.pro-list-page .pro-list-table.pro-list-table--striped tbody tr:nth-child(even) { background: #fafafa; }
.pro-list-page .el-table tbody tr:hover,
.pro-list-page .pro-list-table tbody tr:hover { background: #f5f7fa; }
.pro-list-page .el-table .cell { padding: 0 12px; }
.pro-list-page .el-table .el-button--text { margin-left: 8px; text-decoration: none !important; }
.pro-list-page .el-table a.el-button--text { text-decoration: none !important; }
.pro-list-page .el-table a.el-button--text:hover { text-decoration: none !important; }
.pro-btn-no-underline { text-decoration: none !important; }
.pro-btn-no-underline:hover { text-decoration: none !important; }
.pro-table-actions { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; }
.pro-table-actions .el-button--text { white-space: nowrap; }
.pro-table-actions form { display: inline; }
.pro-list-page .el-table .el-tag { margin: 0; }
.pro-list-page .el-table .status-form { display: inline; }
/* 兼容：仍使用 el-table 类时的无边框 */
.pro-list-page .el-table thead th { border: none; border-bottom: 1px solid #EBEEF5; }
.pro-list-page .el-table tbody td { border: none; border-bottom: 1px solid #EBEEF5; }
.pro-list-page .el-table tbody tr:last-child td { border-bottom: none; }

/* ========== 表单弹层（添加/编辑）：el-dialog 风格 ========== */
.pro-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.pro-modal-box { background: #fff; border-radius: 6px; box-shadow: 0 4px 24px rgba(0,0,0,.15); padding: 28px 32px; max-width: 640px; width: 100%; max-height: 90vh; overflow-y: auto; }
.pro-modal-box .pro-page-title { margin: 0 0 24px 0; font-size: 18px; font-weight: 600; color: #303133; padding-bottom: 16px; border-bottom: 1px solid #EBEEF5; }

/* 配置项表单：整齐布局（标签左对齐固定宽 + 内容区） */
.pro-setting-form-page .pro-form-row { display: flex; align-items: flex-start; margin-bottom: 20px; min-height: 40px; }
.pro-setting-form-page .pro-form-row .pro-form-label { width: 100px; flex-shrink: 0; padding-top: 10px; font-size: 14px; color: #606266; line-height: 1.5; }
.pro-setting-form-page .pro-form-row .pro-form-content { flex: 1; min-width: 0; }
/* 配置项「值」输入框：含清空时 .el-input 包一层，需限制宽度并保持清空图标在框内 */
.pro-setting-form-page .pro-form-row .pro-form-content > .el-input { display: block; width: 100%; max-width: 400px; position: relative; box-sizing: border-box; }
.pro-setting-form-page .pro-form-row .pro-form-content .pro-flex .el-input { max-width: 320px; }
.pro-setting-form-page .pro-form-row .pro-form-content .el-input__inner { width: 100%; max-width: 400px; height: 40px; box-sizing: border-box; }
.pro-setting-form-page .pro-form-row .pro-form-content select.el-input__inner { max-width: 200px; padding: 0 12px; }
.pro-setting-form-page .pro-form-row .pro-form-content .el-textarea__inner { width: 100%; max-width: 100%; min-height: 100px; padding: 10px 12px; }
.pro-setting-form-page .pro-form-actions { margin-top: 28px; padding-top: 20px; border-top: 1px solid #EBEEF5; display: flex; align-items: center; gap: 12px; }
.pro-setting-form-page .pro-form-content .pro-inline-hint { font-size: 12px; color: #909399; margin-top: 6px; }

/* ========== 表单：el-form-item 与标签 ========== */
.pro-form-group { margin-bottom: 18px; }
.pro-form-group .el-form-item__label { padding: 0 0 8px 0; font-size: 14px; color: #606266; line-height: 1.5; }
.pro-form-group .el-form-item__content { line-height: 1.5; }
.pro-form-group .el-input__inner { height: 40px; line-height: 40px; }
.pro-form-group .el-textarea__inner { min-height: 80px; padding: 8px 12px; }

/* 单选框：仅保证可点击，选中态由 Element UI 主题 .is-checked 控制（JS 同步 class） */
.el-radio { cursor: pointer; }
.el-radio .el-radio__input { position: relative; display: inline-flex; align-items: center; }
.el-radio .el-radio__original { position: absolute; opacity: 0; margin: 0; width: 14px; height: 14px; cursor: pointer; z-index: 2; }
.el-radio .el-radio__inner { pointer-events: none; }

/* 数据字典：字典项内嵌表列对齐 */
.pro-dict-items-table { width: 100%; table-layout: fixed; margin-bottom: 12px; font-size: 13px; border-collapse: collapse; }
.pro-dict-items-table th,
.pro-dict-items-table td { padding: 8px 12px; border-bottom: 1px solid #EBEEF5; vertical-align: middle; text-align: left; }
.pro-dict-items-table .el-tag { margin: 0; }

/* 数据字典：动态标签组件（新增/编辑/删除） */
.dict-tags-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.dict-item-tag { display: inline-flex; align-items: center; gap: 0; padding-right: 5px; }
.dict-item-tag .dict-tag-label { color: inherit; text-decoration: none; margin-right: 4px; }
.dict-item-tag .dict-tag-label:hover { text-decoration: underline; }
.dict-item-tag .dict-tag-delete-form { display: inline; margin: 0; vertical-align: middle; }
.dict-item-tag .el-tag__close { cursor: pointer; opacity: .8; }
.dict-item-tag .el-tag__close:hover { opacity: 1; }
.dict-add-tag-btn { margin: 0 !important; }
.dict-item-add-form-wrap .dict-item-add-form { margin: 0; }

/* ========== 页面标题与辅助 ========== */
.pro-page-title { font-size: 14px; font-weight: 600; color: #303133; margin: 0; line-height: 32px; }
.pro-page-subtitle { font-size: 13px; color: #909399; margin: 0; }
.pro-mb-4 { margin-bottom: 16px; }
.pro-mb-6 { margin-bottom: 24px; }
.pro-mt-2 { margin-top: 8px; }
.pro-mt-4 { margin-top: 16px; }
.pro-text-right { text-align: right; }
.pro-text-center { text-align: center; }
.pro-text-xs { font-size: 12px; }
.pro-text-sm { font-size: 13px; }
.pro-font-mono { font-family: monospace; }
.pro-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pro-flex { display: flex; }
.pro-flex-wrap { flex-wrap: wrap; }
.pro-items-center { align-items: center; }
.pro-justify-between { justify-content: space-between; }
.pro-gap-2 { gap: 8px; }
.pro-gap-3 { gap: 12px; }
.pro-w-full { width: 100%; }
.pro-max-w-xl { max-width: 36rem; }
.pro-max-w-2xl { max-width: 42rem; }
.pro-max-w-4xl { max-width: 56rem; }

/* ========== 登录页 ========== */
html:has(body.pro-login-wrap) { margin: 0; height: 100%; background: #f7f8f6 !important; border-radius: 0 !important; overflow: hidden; }
body.pro-login-wrap { margin: 0; height: 100%; border-radius: 0 !important; overflow: hidden; background: #f7f8f6; }
.pro-login-wrap { min-height: 100vh; display: flex; align-items: stretch; background: #fff; }
.pro-login-side { width: 46%; min-width: 360px; background: #0e4d32; color: #fff; display: flex; align-items: center; padding: 72px 64px; box-sizing: border-box; }
.pro-login-kicker { margin: 0 0 18px; font-size: 13px; letter-spacing: 4px; color: #d7b56d; }
.pro-login-title { margin: 0; font-size: 40px; line-height: 1.25; font-weight: 700; letter-spacing: 1px; }
.pro-login-lead { margin: 18px 0 0; max-width: 360px; font-size: 15px; line-height: 1.8; color: rgba(255,255,255,.88); }
.pro-login-points { margin: 36px 0 0; padding: 0; list-style: none; }
.pro-login-points li { position: relative; margin-top: 14px; padding-left: 16px; font-size: 14px; color: rgba(255,255,255,.9); }
.pro-login-points li::before { content: ''; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; background: #d7b56d; }
.pro-login-panel { flex: 1; display: flex; align-items: center; justify-content: center; padding: 48px 40px 72px; background: #f7f8f6; }
.pro-login-card { width: 400px; max-width: 100%; background: #fff; border: 1px solid #e6ebe8; border-radius: 0; box-shadow: none; padding: 40px 36px 28px; backdrop-filter: none; }
.pro-login-top { margin-bottom: 28px; }
.pro-login-card h2 { margin: 0 0 8px; font-size: 22px; font-weight: 700; color: #1d3b2a; letter-spacing: 1px; }
.pro-login-desc { font-size: 13px; color: #7d8b84; margin: 0; }
.pro-login-main { margin-bottom: 8px; }
.pro-login-form .el-form-item { margin-bottom: 18px; }
.pro-login-form .el-input__inner { height: 44px; line-height: 44px; border-radius: 0 !important; }
.pro-login-btn { width: 100%; height: 46px; font-size: 16px; letter-spacing: 6px; border-radius: 0 !important; background: #1fa85a !important; border-color: #1fa85a !important; }
.pro-login-form .captcha-img { border-radius: 0; }
.pro-support-login { position: fixed; left: 0; right: 0; bottom: 0; height: 36px; line-height: 36px; text-align: center; font-size: 12px; color: #7d8b84; background: #f7f8f6; }
.flash-msg { position: fixed; top: 24px; left: 50%; transform: translateX(-50%); z-index: 10000; padding: 12px 24px; border-radius: 0; font-size: 14px; box-shadow: none; border: 1px solid #d9e7df; max-width: 90%; }
.flash-msg-success { background: #f0f9ff; border: 1px solid #b3e5fc; color: #0288d1; }
.flash-msg-error { background: #ffebee; border: 1px solid #ffcdd2; color: #c62828; }

/* 日期范围选择器：中间「至」字完整显示，不裁切 */
.el-date-editor.el-range-editor .el-range-separator { min-width: 2em; padding: 0 8px; line-height: inherit; overflow: visible; white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; }
.el-date-editor.el-range-editor.el-input__inner { overflow: visible; }
.el-date-editor.el-range-editor .el-range__inner { overflow: visible; }

/* 用户管理：文件选择样式 */
.pro-file-upload-wrap { display: inline-flex; align-items: center; gap: 8px; }
.pro-file-upload-wrap .el-input { width: 180px; }
.pro-file-upload-wrap .el-input__inner { width: 100%; }
.pro-file-upload-wrap .file-trigger { cursor: pointer; }
.pro-file-upload-wrap input[type="file"] { position: absolute; width: 0; height: 0; opacity: 0; }
.pro-file-upload-wrap .file-label { display: inline-flex; align-items: center; padding: 0 14px; height: 32px; line-height: 30px; border: 1px solid #DCDFE6; border-radius: 4px; font-size: 14px; color: #606266; background: #fff; cursor: pointer; }
.pro-file-upload-wrap .file-label:hover { border-color: #409EFF; color: #409EFF; }
