// ============================================================
// 运行时主题层（CSS 变量消费方）
// ------------------------------------------------------------
// Element UI 2.x 的主题色是 SCSS 编译期常量，无法在运行时修改。
// 本文件不改 Element 源码，只"重写用到主色的选择器"，值改为
// var(--opo-primary*)；这些变量由 utils/theme.js 在切换皮肤时写入
// :root，因此换肤无需重新编译、无需刷新页面。
//
// 覆盖顺序很关键：本文件必须在 element-ui 与 ruoyi.scss 之后引入
// （见 main.js 的 import 顺序）。
// 覆盖范围：按钮/链接/输入/单选复选开关/Tabs/分页/表格/步骤条/
//          日期/下拉/加载/进度，其余组件按需补充。
// ============================================================

$opo-fallback: #0E768F;

// ---------- 按钮 ----------
.el-button--primary {
  background-color: var(--opo-primary, #{$opo-fallback});
  border-color: var(--opo-primary, #{$opo-fallback});
  color: #fff;

  &:hover,
  &:focus {
    background-color: var(--opo-primary-hover, #{$opo-fallback});
    border-color: var(--opo-primary-hover, #{$opo-fallback});
    color: #fff;
  }

  &:active {
    background-color: var(--opo-primary-active, #{$opo-fallback});
    border-color: var(--opo-primary-active, #{$opo-fallback});
    color: #fff;
  }

  &.is-disabled,
  &.is-disabled:hover,
  &.is-disabled:focus,
  &.is-disabled:active {
    background-color: var(--opo-primary-light-5, #{$opo-fallback});
    border-color: var(--opo-primary-light-5, #{$opo-fallback});
    color: #fff;
  }

  &.is-plain {
    background-color: var(--opo-primary-light-9, #fff);
    border-color: var(--opo-primary-light-5, #{$opo-fallback});
    color: var(--opo-primary, #{$opo-fallback});

    &:hover,
    &:focus,
    &:active {
      background-color: var(--opo-primary, #{$opo-fallback});
      border-color: var(--opo-primary, #{$opo-fallback});
      color: #fff;
    }
  }
}

.el-button--text {
  color: var(--opo-primary, #{$opo-fallback});

  &:hover,
  &:focus {
    color: var(--opo-primary-hover, #{$opo-fallback});
  }

  &.is-disabled,
  &.is-disabled:hover {
    color: var(--opo-primary-light-5, #{$opo-fallback});
  }
}

// 默认按钮 hover 时透出品牌色（原来是一片灰）
.el-button--default:hover,
.el-button--default:focus {
  color: var(--opo-primary, #{$opo-fallback});
  border-color: var(--opo-primary-light-5, #{$opo-fallback});
  background-color: var(--opo-primary-light-9, #fff);
}

// ---------- 链接 ----------
.el-link.el-link--primary {
  color: var(--opo-primary, #{$opo-fallback});

  &:hover {
    color: var(--opo-primary-light-3, #{$opo-fallback});
  }
}

// ---------- 输入类 ----------
.el-input__inner:focus,
.el-textarea__inner:focus,
.el-input__inner:hover {
  border-color: var(--opo-primary-light-5, #{$opo-fallback});
}

.el-input__inner:focus,
.el-textarea__inner:focus {
  border-color: var(--opo-primary, #{$opo-fallback});
}

.el-select .el-input.is-focus .el-input__inner,
.el-select .el-input__inner:focus {
  border-color: var(--opo-primary, #{$opo-fallback});
}

.el-select-dropdown__item.selected {
  color: var(--opo-primary, #{$opo-fallback});
  font-weight: 600;
}

.el-input-number__decrease:hover,
.el-input-number__increase:hover {
  color: var(--opo-primary, #{$opo-fallback});
}

// ---------- 单选 / 复选 ----------
.el-radio__input.is-checked .el-radio__inner,
.el-checkbox__input.is-checked .el-checkbox__inner,
.el-checkbox__input.is-indeterminate .el-checkbox__inner {
  border-color: var(--opo-primary, #{$opo-fallback});
  background-color: var(--opo-primary, #{$opo-fallback});
}

.el-radio__input.is-checked + .el-radio__label,
.el-checkbox__input.is-checked + .el-checkbox__label {
  color: var(--opo-primary, #{$opo-fallback});
}

.el-radio-button__orig-radio:checked + .el-radio-button__inner,
.el-checkbox-button__orig-radio:checked + .el-checkbox-button__inner {
  background-color: var(--opo-primary, #{$opo-fallback});
  border-color: var(--opo-primary, #{$opo-fallback});
  box-shadow: -1px 0 0 0 var(--opo-primary, #{$opo-fallback});
  color: #fff;
}

// ---------- 开关 ----------
.el-switch.is-checked .el-switch__core {
  border-color: var(--opo-primary, #{$opo-fallback});
  background-color: var(--opo-primary, #{$opo-fallback});
}

// ---------- Tabs ----------
.el-tabs__item.is-active,
.el-tabs__item:hover {
  color: var(--opo-primary, #{$opo-fallback});
}

.el-tabs__active-bar {
  background-color: var(--opo-primary, #{$opo-fallback});
}

.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
  color: var(--opo-primary, #{$opo-fallback});
  border-bottom-color: transparent;
}

// ---------- 分页 ----------
.el-pager li.active,
.el-pager li:hover {
  color: var(--opo-primary, #{$opo-fallback});
}

.el-pagination.is-background .el-pager li:not(.disabled).active {
  background-color: var(--opo-primary, #{$opo-fallback});
  color: #fff;
}

.el-pagination button:hover {
  color: var(--opo-primary, #{$opo-fallback});
}

// ---------- 表格 ----------
.el-table .ascending .sort-caret.ascending {
  border-bottom-color: var(--opo-primary, #{$opo-fallback});
}

.el-table .descending .sort-caret.descending {
  border-top-color: var(--opo-primary, #{$opo-fallback});
}

.el-table__body tr.current-row > td {
  background-color: var(--opo-primary-light-9, #fff) !important;
}

.el-table--enable-row-hover .el-table__body tr:hover > td {
  background-color: var(--opo-primary-light-95, #f5f9fd) !important;
}

// ---------- 步骤条 ----------
.el-step__head.is-process {
  color: var(--opo-primary, #{$opo-fallback});
  border-color: var(--opo-primary, #{$opo-fallback});
}

.el-step__title.is-process {
  color: var(--opo-primary, #{$opo-fallback});
  font-weight: 600;
}

.el-step__head.is-finish {
  color: var(--opo-primary, #{$opo-fallback});
  border-color: var(--opo-primary, #{$opo-fallback});
}

.el-step__title.is-finish {
  color: var(--opo-primary, #{$opo-fallback});
}

// ---------- 日期 / 时间 ----------
.el-date-table td.today span {
  color: var(--opo-primary, #{$opo-fallback});
  font-weight: 700;
}

.el-date-table td.current:not(.disabled) span {
  background-color: var(--opo-primary, #{$opo-fallback});
  color: #fff;
}

.el-date-table td.available:hover {
  color: var(--opo-primary, #{$opo-fallback});
}

.el-date-picker__header-label.active,
.el-date-picker__header-label:hover {
  color: var(--opo-primary, #{$opo-fallback});
}

// ---------- 下拉 / 弹出菜单（只作用于弹出层，避免影响深色侧边栏） ----------
.el-dropdown-menu__item:not(.is-disabled):hover,
.el-dropdown-menu__item:focus {
  color: var(--opo-primary, #{$opo-fallback});
  background-color: var(--opo-primary-light-9, #fff);
}

.el-menu--popup .el-menu-item.is-active,
.el-menu--popup .el-menu-item:hover {
  color: var(--opo-primary, #{$opo-fallback});
}

// ---------- 级联 ----------
.el-cascader .el-input.is-focus .el-input__inner {
  border-color: var(--opo-primary, #{$opo-fallback});
}

.el-cascader-node.in-active-path,
.el-cascader-node.is-active {
  color: var(--opo-primary, #{$opo-fallback});
}

// ---------- 加载 / 进度 ----------
.el-loading-spinner .path {
  stroke: var(--opo-primary, #{$opo-fallback});
}

.el-progress-bar__inner {
  background-color: var(--opo-primary, #{$opo-fallback});
}

// ---------- 滑块 ----------
.el-slider__bar {
  background-color: var(--opo-primary, #{$opo-fallback});
}

.el-slider__button {
  border-color: var(--opo-primary, #{$opo-fallback});
}
