/* ===== 深色主题 Element Plus 全覆盖 ===== */
/* 此文件必须在 Element Plus CSS 之后加载，确保 !important 覆盖生效 */
/* 解决白色闪烁问题：从JS动态注入改为静态CSS文件，在页面渲染前即生效 */

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body { font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Segoe UI', sans-serif; background: #1A1B24; color: #E5E7EB; }

/* ===== 防止 Vue 挂载前模板代码闪现（v-cloak） ===== */
[v-cloak] { display: none !important; }

/* ===== 关键修复：防止 Vue 初始化前的白色闪烁 ===== */
/* 在 Vue 挂载前，#app 容器也需要深色背景 */
#app { background: #1A1B24; height: 100%; }

/* 侧边栏菜单统一对齐 */
.sidebar-menu .el-menu-item, .sidebar-menu .el-sub-menu__title { height:44px !important; line-height:44px !important; padding:0 20px !important; border-radius:0 !important; }
.sidebar-menu .el-menu-item .el-icon, .sidebar-menu .el-sub-menu__title .el-icon { font-size:16px !important; margin-right:10px !important; flex-shrink:0; }
.sidebar-menu .el-menu-item.is-active { background:rgba(59,130,246,0.2) !important; color:#fff !important; }
.sidebar-menu .el-menu-item:hover, .sidebar-menu .el-sub-menu__title:hover { background:rgba(255,255,255,0.06) !important; color:rgba(255,255,255,0.9) !important; }
.sidebar-menu .el-sub-menu .el-menu-item { height:38px !important; line-height:38px !important; padding-left:50px !important; font-size:13px !important; }
.sidebar-menu .el-sub-menu__title .el-sub-menu__icon-arrow { right:16px; }

/* Card 卡片 */
.el-card { border-radius: 12px !important; border: 1px solid #2D2E3A !important; box-shadow: 0 1px 4px rgba(0,0,0,0.2) !important; background: #1E1E2E !important; color: #E5E7EB !important; }
.el-card__header { font-weight: 600; color: #F9FAFB; border-bottom: 1px solid #2D2E3A !important; padding: 16px 20px !important; }
.el-card__body { color: #E5E7EB !important; }

/* Button 按钮 */
.el-button { border-radius: 8px !important; font-weight: 500; }
.el-button--primary { background: linear-gradient(135deg, #3B82F6, #2563EB) !important; border: none !important; }
.el-button--primary:hover { opacity: 0.9; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(59,130,246,0.35) !important; }
.el-button--default { background: #1E1E2E !important; border-color: #2D2E3A !important; color: #E5E7EB !important; }
.el-button--default:hover { border-color: #3B82F6 !important; color: #3B82F6 !important; background: #2A2A3A !important; }
.el-button--danger { background: #ef4444 !important; border: none !important; }

/* Table 表格 */
.el-table { border-radius: 8px !important; background: #1E1E2E !important; --el-table-bg-color: #1E1E2E !important; --el-table-tr-bg-color: #1E1E2E !important; --el-table-header-bg-color: #2A2A3A !important; --el-table-row-hover-bg-color: #2A2A3A !important; --el-table-border-color: #2D2E3A !important; --el-table-text-color: #E5E7EB !important; --el-table-header-text-color: #9CA3AF !important; }
.el-table th.el-table__cell { background: #2A2A3A !important; color: #9CA3AF !important; font-weight: 600; font-size: 13px; }
.el-table--striped .el-table__body tr.el-table__row--striped td { background: #2A2A3A !important; }
.el-table td.el-table__cell { border-bottom: 1px solid #2D2E3A !important; }
.el-table th.el-table__cell.is-leaf { border-bottom: 1px solid #2D2E3A !important; }
.el-table__empty-text { color: #9CA3AF !important; }
/* 表格空数据区域 - 关键修复：防止白色背景 */
.el-table__empty-block { background: #1E1E2E !important; }
/* 表格内部wrapper - 关键修复：防止白色背景 */
.el-table__inner-wrapper { background: #1E1E2E !important; }
.el-table__body-wrapper { background: #1E1E2E !important; }
.el-table__header-wrapper { background: #1E1E2E !important; }

/* Loading 加载遮罩 - 关键修复：防止白色闪烁 */
.el-loading-mask { background-color: rgba(30,30,46,0.8) !important; }
.el-loading-spinner .path { stroke: #3B82F6 !important; }
.el-loading-text { color: #9CA3AF !important; }

/* Tag 标签 */
.el-tag { border-radius: 6px !important; font-weight: 500; }

/* Input 输入框 */
.el-input__wrapper { border-radius: 8px !important; background: #2A2A3A !important; box-shadow: 0 0 0 1px #2D2E3A inset !important; }
.el-input__wrapper:hover { box-shadow: 0 0 0 1px #3B82F6 inset !important; }
.el-input__wrapper.is-focus { box-shadow: 0 0 0 1px #3B82F6 inset !important; }
.el-input__inner { color: #E5E7EB !important; }
.el-input__inner::placeholder { color: #6B7280 !important; }

/* Textarea 多行输入 */
.el-textarea__inner { background: #2A2A3A !important; color: #E5E7EB !important; border-color: #2D2E3A !important; border-radius: 8px !important; }
.el-textarea__inner:focus { border-color: #3B82F6 !important; }

/* InputNumber 数字输入 */
.el-input-number { background: transparent !important; }

/* Select 选择器 */
.el-select .el-input__wrapper { border-radius: 8px !important; }
.el-select-dropdown { background: #1E1E2E !important; border: 1px solid #2D2E3A !important; }
.el-select-dropdown__item { color: #E5E7EB !important; }
.el-select-dropdown__item.hover, .el-select-dropdown__item:hover { background: #2A2A3A !important; }
.el-select-dropdown__item.selected { color: #3B82F6 !important; }

/* Dialog 对话框 */
.el-dialog { border-radius: 16px !important; background: #1E1E2E !important; border: 1px solid #2D2E3A !important; }
.el-dialog__header { padding: 20px 24px 16px !important; border-bottom: 1px solid #2D2E3A; }
.el-dialog__title { font-weight: 700 !important; color: #F9FAFB; }
.el-dialog__body { padding: 20px 24px !important; color: #E5E7EB; }
.el-dialog__footer { padding: 12px 24px 20px !important; border-top: 1px solid #2D2E3A; }

/* Overlay 遮罩层 - 关键修复：防止白色/灰色遮罩 */
.el-overlay { background-color: rgba(0,0,0,0.5) !important; }
.el-overlay-dialog { background-color: rgba(0,0,0,0.5) !important; }

/* Popover 弹出提示 */
.el-popover.el-popper { background: #1E1E2E !important; border: 1px solid #2D2E3A !important; color: #E5E7EB !important; }
.el-popover__title { color: #F9FAFB !important; }

/* Tooltip 提示 */
.el-tooltip__trigger { outline: none; }
.el-popper.is-dark { background: #1E1E2E !important; border: 1px solid #2D2E3A !important; color: #E5E7EB !important; }
.el-popper.is-light { background: #1E1E2E !important; border: 1px solid #2D2E3A !important; color: #E5E7EB !important; }

/* Form 表单 */
.el-form-item__label { color: #9CA3AF !important; }

/* Pagination 分页 */
.el-pagination { justify-content: flex-end; --el-pagination-bg-color: #1E1E2E; --el-pagination-button-bg-color: #1E1E2E; --el-pagination-hover-color: #3B82F6; }
.el-pagination .el-pager li { background: #1E1E2E !important; color: #9CA3AF !important; }
.el-pagination .el-pager li.is-active { background: #3B82F6 !important; color: #fff !important; }
.el-pagination button { background: #1E1E2E !important; color: #9CA3AF !important; }
.el-pagination button.btn-prev, .el-pagination button.btn-next { background: #1E1E2E !important; color: #9CA3AF !important; }

/* Dropdown 下拉菜单 */
.el-dropdown-menu { background: #1E1E2E !important; border: 1px solid #2D2E3A !important; }
.el-dropdown-menu__item { color: #E5E7EB !important; }
.el-dropdown-menu__item:hover { background: #2A2A3A !important; color: #F9FAFB !important; }

/* Alert 提示 */
.el-alert { border-radius: 10px !important; }
.el-alert--warning { background: #2D2417 !important; border: 1px solid #F59E0B33 !important; }
.el-alert--warning .el-alert__title { color: #F59E0B !important; }
.el-alert--info { background: #1A2538 !important; border: 1px solid #3B82F633 !important; }
.el-alert--info .el-alert__title { color: #3B82F6 !important; }
.el-alert--success { background: #152218 !important; border: 1px solid #22c55e33 !important; }
.el-alert--success .el-alert__title { color: #22c55e !important; }
.el-alert--error { background: #1F1212 !important; border: 1px solid #ef444433 !important; }
.el-alert--error .el-alert__title { color: #ef4444 !important; }

/* Slider 滑块 */
.el-slider__runway { background: #2D2E3A !important; }
.el-slider__bar { background: #3B82F6 !important; }
.el-slider__button { border-color: #3B82F6 !important; }

/* Message 消息 */
.el-message { border-radius: 10px !important; background: #1E1E2E !important; border: 1px solid #2D2E3A !important; }
.el-message__content { color: #E5E7EB !important; }

/* MessageBox 弹窗 */
.el-message-box { background: #1E1E2E !important; border: 1px solid #2D2E3A !important; }
.el-message-box__title { color: #F9FAFB !important; }
.el-message-box__message { color: #E5E7EB !important; }
.el-message-box__btns .el-button--default { background: #1E1E2E !important; border-color: #2D2E3A !important; color: #E5E7EB !important; }

/* Radio 单选 */
.el-radio { color: #E5E7EB !important; }
.el-radio__label { color: #E5E7EB !important; }
.el-radio__input.is-checked .el-radio__inner { border-color: #3B82F6 !important; background: #3B82F6 !important; }

/* Checkbox 复选 */
.el-checkbox { color: #E5E7EB !important; }
.el-checkbox__label { color: #E5E7EB !important; }
.el-checkbox__input.is-checked .el-checkbox__inner { background-color: #3B82F6 !important; border-color: #3B82F6 !important; }

/* Switch 开关 */
.el-switch.is-checked .el-switch__core { border-color: #3B82F6 !important; background-color: #3B82F6 !important; }

/* DatePicker 日期选择器 - 关键修复：防止白色弹出面板 */
.el-date-editor .el-input__wrapper { background: #2A2A3A !important; }
.el-picker-panel { background: #1E1E2E !important; border: 1px solid #2D2E3A !important; color: #E5E7EB !important; }
.el-date-picker { background: #1E1E2E !important; }
.el-picker-panel__body { background: #1E1E2E !important; }
.el-picker-panel__footer { background: #1E1E2E !important; border-top: 1px solid #2D2E3A !important; }
.el-date-table th { color: #9CA3AF !important; }
.el-date-table td .el-date-table-cell { color: #E5E7EB !important; }
.el-date-table td.today .el-date-table-cell { color: #3B82F6 !important; }
.el-date-table td.available:hover .el-date-table-cell { color: #3B82F6 !important; }
.el-date-picker__header-label { color: #E5E7EB !important; }
.el-date-picker__header-label:hover { color: #3B82F6 !important; }
.el-picker-panel__icon-btn { color: #9CA3AF !important; }
.el-picker-panel__icon-btn:hover { color: #3B82F6 !important; }
.el-month-table td .cell, .el-year-table td .cell { color: #E5E7EB !important; background: transparent !important; }
.el-month-table td.today .cell, .el-year-table td.today .cell { color: #3B82F6 !important; }

/* Empty 空状态 */
.el-empty__description p { color: #9CA3AF !important; }

/* Tabs 标签页 */
.el-tabs__item { color: #9CA3AF !important; }
.el-tabs__item.is-active { color: #3B82F6 !important; }
.el-tabs__item:hover { color: #3B82F6 !important; }
.el-tabs__nav-wrap::after { background-color: #2D2E3A !important; }
.el-tabs__active-bar { background-color: #3B82F6 !important; }

/* Breadcrumb 面包屑 */
.el-breadcrumb__inner { color: #9CA3AF !important; }
.el-breadcrumb__inner.is-link:hover { color: #3B82F6 !important; }
.el-breadcrumb__separator { color: #6B7280 !important; }

/* Badge 徽章 */
.el-badge__content { background-color: #ef4444 !important; border: none !important; }

/* Drawer 抽屉面板 */
.el-drawer { background: #1E1E2E !important; }
.el-drawer__header { color: #F9FAFB !important; border-bottom: 1px solid #2D2E3A !important; }
.el-drawer__body { color: #E5E7EB !important; }

/* Image Viewer 图片查看器 */
.el-image-viewer__wrapper { background-color: rgba(0,0,0,0.8) !important; }

/* Scrollbar 滚动条 */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-thumb { background: #2D2E3A; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #3B82F6; }
::-webkit-scrollbar-track { background: transparent; }

/* 全局链接色 */
a { color: #3B82F6; }
a:hover { color: #60A5FA; }

/* ===== Element Plus 组件默认白色背景 - 全局覆盖 ===== */
.el-menu { background-color: #1E1E2E !important; }
.el-sub-menu .el-menu { background-color: #1E1E2E !important; }