/* =====================================================================
   Element UI (Vue2) 主题适配 — 对齐管理后台 admin.css 的 CSS 变量
   通过 html[data-theme] 在深色/浅色之间切换 Element 组件配色
   ===================================================================== */

/* ---------- 主色对齐（Element 默认 #409EFF → 项目主色） ---------- */
.el-button--primary,
.el-button--primary:focus { background-color: var(--primary); border-color: var(--primary); }
.el-button--primary:hover { background-color: var(--primary-2); border-color: var(--primary-2); }
.el-button--primary.is-active,
.el-button--primary:active { background-color: var(--primary); border-color: var(--primary); }
.el-button--primary.is-plain { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); }
.el-button--primary.is-plain:hover { background: var(--primary); color: #fff; }
.el-button--primary.is-plain:focus { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); }
.el-button--danger { background-color: var(--danger); border-color: var(--danger); }
.el-button--danger:hover { background-color: var(--danger); border-color: var(--danger); opacity: .85; }
.el-button--danger.is-plain { background: var(--danger-soft); border-color: var(--danger); color: var(--danger); }
.el-button--danger.is-plain:hover { background: var(--danger); color: #fff; }
.el-button--warning { background-color: var(--warn); border-color: var(--warn); }
.el-button--success { background-color: var(--success); border-color: var(--success); }
.el-button--info { background-color: var(--text-mute); border-color: var(--text-mute); }

.el-checkbox__input.is-checked .el-checkbox__inner,
.el-checkbox__input.is-indeterminate .el-checkbox__inner { background-color: var(--primary); border-color: var(--primary); }
.el-checkbox__input.is-checked + .el-checkbox__label { color: var(--primary); }
.el-radio__input.is-checked .el-radio__inner { border-color: var(--primary); background: var(--primary); }
.el-radio__input.is-checked + .el-radio__label { color: var(--primary); }
.el-switch.is-checked .el-switch__core { border-color: var(--primary); background-color: var(--primary); }
.el-select .el-input.is-focus .el-input__inner { border-color: var(--primary); }
.el-tabs__item.is-active,
.el-tabs__item:hover { color: var(--primary); }
.el-tabs__active-bar { background-color: var(--primary); }
.el-pagination.is-background .el-pager li:not(.disabled).active { background-color: var(--primary); }
.el-pagination.is-background .el-pager li:not(.disabled):hover { color: var(--primary); }
.el-link.el-link--primary { color: var(--primary); }

/* ---------- 通用表单 / 输入 ---------- */
.el-input__inner,
.el-textarea__inner {
  background-color: var(--bg-elev-2);
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 6px;
}
.el-input__inner:focus,
.el-textarea__inner:focus { border-color: var(--primary); }
.el-input__inner::placeholder,
.el-textarea__inner::placeholder { color: var(--text-mute); }
.el-input.is-disabled .el-input__inner,
.el-textarea.is-disabled .el-textarea__inner {
  background-color: var(--bg-hover); border-color: var(--border); color: var(--text-mute);
}
.el-form-item__label { color: var(--text-soft); }
.el-form-item__error { color: var(--danger); }

/* ---------- 按钮通用 ---------- */
.el-button { border-color: var(--border); }
.el-button:not(.is-text):not(.el-button--primary):not(.el-button--danger):not(.el-button--warning):not(.el-button--success):not(.el-button--info) {
  background-color: var(--bg-elev-2); color: var(--text); border-color: var(--border);
}
.el-button:not(.is-text):not(.el-button--primary):not(.el-button--danger):not(.el-button--warning):not(.el-button--success):not(.el-button--info):hover {
  border-color: var(--primary); color: var(--primary);
}
.el-button--text { color: var(--primary); }
.el-button.is-loading { opacity: .8; }

/* ---------- 表格 ---------- */
.el-table { background-color: transparent; color: var(--text); }
.el-table th.el-table__cell { background-color: var(--bg-elev-2); color: var(--text-soft); font-weight: 600; }
.el-table tr,
.el-table td.el-table__cell { background-color: transparent; }
.el-table .el-table__cell { border-bottom: 1px solid var(--border); }
.el-table--border, .el-table--group { border-color: var(--border); }
.el-table--border th.el-table__cell, .el-table--border td.el-table__cell { border-right-color: var(--border); }
.el-table--border .el-table__inner-wrapper::after,
.el-table__border-left-patch { background-color: var(--border); }
.el-table__header-wrapper th { border-bottom: 1px solid var(--border); }
.el-table__body tr:hover > td.el-table__cell { background-color: var(--bg-hover); }
.el-table__empty-text { color: var(--text-mute); }
.el-table__expanded-cell { background-color: var(--bg-elev); }
.el-table .caret-wrapper .sort-caret.ascending { border-bottom-color: var(--text-mute); }
.el-table .caret-wrapper .sort-caret.descending { border-top-color: var(--text-mute); }
.el-table-filter { background-color: var(--bg-elev); border-color: var(--border); }
.el-table-filter .el-table-filter__bottom { border-top-color: var(--border); }

/* ---------- 对话框 / 抽屉 ---------- */
.el-dialog {
  background-color: var(--bg-elev); border: 1px solid var(--border); border-radius: 12px;
  box-shadow: var(--shadow-lg);
}
.el-dialog__title { color: var(--text); }
.el-dialog__headerbtn .el-dialog__close { color: var(--text-mute); }
.el-dialog__body { color: var(--text); }
.el-drawer { background-color: var(--bg-elev); color: var(--text); }
.el-drawer__header { color: var(--text); margin-bottom: 8px; border-bottom: 1px solid var(--border); }
.el-drawer__close-btn { color: var(--text-mute); }
.el-drawer__body { color: var(--text); }
.drawer-body { padding: 0 20px 20px; }

/* ---------- 下拉 / 弹出 ---------- */
.el-dropdown-menu { background-color: var(--bg-elev); border-color: var(--border); }
.el-dropdown-menu__item { color: var(--text); }
.el-dropdown-menu__item:not(.is-disabled):hover { background-color: var(--bg-hover); color: var(--primary); }
.el-dropdown-menu__item--divided { border-top-color: var(--border); }
.el-message-box { background-color: var(--bg-elev); border-color: var(--border); border-radius: 12px; }
.el-message-box__title { color: var(--text); }
.el-message-box__message p { color: var(--text-soft); }
.el-message-box__content { color: var(--text); }
.el-message { background-color: var(--bg-elev); border-color: var(--border); color: var(--text); }
.el-popper[x-placement^="bottom"] .popper__arrow,
.el-popper[x-placement^="top"] .popper__arrow { border-color: var(--border); }
.el-select-dropdown { background-color: var(--bg-elev); border-color: var(--border); }
.el-select-dropdown__item { color: var(--text); }
.el-select-dropdown__item.hover, .el-select-dropdown__item:hover { background-color: var(--bg-hover); }
.el-select-dropdown__item.selected { color: var(--primary); }
.el-popper.is-light { background: var(--bg-elev); border-color: var(--border); }
.el-popper.is-light .el-select-dropdown__item,
.el-popper.is-light .el-dropdown-menu__item { color: var(--text); }

/* ---------- 面包屑 / 分页 / 页签 ---------- */
.el-breadcrumb__inner, .el-breadcrumb__inner a { color: var(--text-mute); font-weight: 400; }
.el-breadcrumb__item:last-child .el-breadcrumb__inner, .el-breadcrumb__item:last-child .el-breadcrumb__inner a { color: var(--text); font-weight: 600; }
.el-breadcrumb__separator { color: var(--text-mute); }
.el-pagination { color: var(--text-soft); }
.el-pagination.is-background .el-pager li { background-color: var(--bg-elev-2); color: var(--text-soft); }
.el-pagination button { background-color: var(--bg-elev-2); color: var(--text-soft); }
.el-pagination .el-select .el-input .el-input__inner { color: var(--text); }
.el-tabs__nav-wrap::after { background-color: var(--border); }
.el-tabs__item { color: var(--text-soft); }

/* ---------- 提示 / 空状态 ---------- */
.el-alert { border-radius: 6px; }
.el-alert--error { background-color: var(--danger-soft); color: var(--danger); }
.el-alert--warning { background-color: var(--warn-soft); color: var(--warn); }
.el-alert--success { background-color: var(--success-soft); color: var(--success); }
.el-tag { border-radius: 4px; }
.el-tag.el-tag--info { background-color: var(--bg-elev-2); border-color: var(--border); color: var(--text-soft); }
.el-loading-mask { background-color: rgba(0,0,0,.4); }

/* ---------- 侧边栏菜单 ---------- */
.admin-menu.el-menu {
  border-right: none; background: transparent; padding: 0;
}
.admin-menu .el-menu-item {
  color: var(--text-soft); border-radius: 8px; height: 40px; line-height: 40px; margin: 2px 0;
  font-size: 13.5px; display: flex; align-items: center; gap: 10px;
}
.admin-menu .el-menu-item:hover { background: var(--bg-hover); color: var(--text); }
.admin-menu .el-menu-item.is-active {
  background: var(--primary-soft); color: var(--primary); font-weight: 600;
}
.admin-menu .el-menu-item i { font-size: 16px; margin-right: 0; }
.admin-menu .el-menu-item .badge-count { margin-left: auto; }
.admin-siderbar-scroll { flex: 1; overflow-y: auto; margin: 0 -6px; padding: 0 6px; }

/* ---------- 顶栏搜索框 ---------- */
.search-box .el-input__inner {
  padding-left: 34px; background: var(--bg-elev-2); border-color: var(--border);
}
.search-box .el-input__inner:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.search-box .el-input__prefix { left: 11px; color: var(--text-mute); }
.theme-btn { background: var(--bg-elev-2); border-color: var(--border); color: var(--text-soft); }

/* ---------- 登录卡片内 Element 表单 ---------- */
.login-card .el-form-item { margin-bottom: 16px; }
.login-card .el-input__inner { background: var(--bg-elev-2); border-color: var(--border); padding-left: 40px; }
.login-card .el-input__prefix { color: var(--text-mute); }
.login-ele-alert .el-alert__title { color: inherit; }

/* ---------- Key 结果弹窗 ---------- */
.mono-key .el-input__inner,
.mono-key .el-textarea__inner {
  font-family: var(--mono, ui-monospace, Menlo, Consolas, monospace);
  font-size: 12px;
}

/* ---------- 确认框 ---------- */
.admin-confirm-box .el-message-box__btns .el-button--primary {
  background-color: var(--danger); border-color: var(--danger);
}
