/* ================================================================
   StarsWin 2026 Custom Theme Overrides
   Applied AFTER all compiled CSS - highest priority
   ================================================================ */

:root {
  --sw-gold:       #e8a020;
  --sw-gold-light: #f5c842;
  --sw-gold-dim:   rgba(232,160,32,0.15);
  --sw-bg-deep:    #080b14;
  --sw-bg-base:    #0e1220;
  --sw-bg-card:    #141828;
  --sw-bg-elevated:#1c2236;
  --sw-text-h:     #f0f2f8;
  --sw-text-body:  #b8c0d4;
  --sw-text-muted: #5e6880;
  --sw-border:     rgba(255,255,255,0.07);
  --sw-border-m:   rgba(255,255,255,0.12);
}

/* ── 全局基础 ─────────────────────────────────────── */
html, body, #app {
  background-color: var(--sw-bg-deep) !important;
  color: var(--sw-text-body) !important;
  -webkit-font-smoothing: antialiased;
}

/* 滚动条美化 */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: var(--sw-bg-base); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--sw-gold), #c97d10);
  border-radius: 4px;
}

/* ── 强制覆盖白色/浅色背景 ──────────────────────── */
/* 使用通配符，针对 #app 内所有子元素 */
#app > div,
#app > div > div,
#app > div > div > div {
  background-color: inherit;
}

/* 针对内联白色背景 */
[style*="background:#fff"],
[style*="background: #fff"],
[style*="background-color:#fff"],
[style*="background-color: #fff"],
[style*="background-color:rgb(255, 255, 255)"],
[style*="background: white"] {
  background-color: var(--sw-bg-card) !important;
}

[style*="background:#fbfeff"],
[style*="background:#f5f7fa"],
[style*="background:#f0f2f5"],
[style*="background:#fafafa"],
[style*="background:#f9fafc"],
[style*="background-color:#f5f7fa"],
[style*="background-color:#fafafa"] {
  background-color: var(--sw-bg-base) !important;
}

/* ── ant-design 组件暗色覆盖 ──────────────────── */
.ant-table,
.ant-table-wrapper,
.ant-table-container {
  background: var(--sw-bg-card) !important;
  color: var(--sw-text-body) !important;
}

.ant-table-thead > tr > th {
  background: var(--sw-bg-elevated) !important;
  color: var(--sw-text-h) !important;
  border-bottom: 1px solid var(--sw-border-m) !important;
}

.ant-table-tbody > tr > td {
  background: transparent !important;
  color: var(--sw-text-body) !important;
  border-bottom: 1px solid var(--sw-border) !important;
}

.ant-table-tbody > tr:hover > td,
.ant-table-tbody > tr.ant-table-row:hover > td {
  background: var(--sw-bg-elevated) !important;
}

.ant-table-tbody > tr.ant-table-row-selected > td {
  background: var(--sw-gold-dim) !important;
}

/* ant select */
.ant-select-dropdown {
  background: var(--sw-bg-elevated) !important;
  border: 1px solid var(--sw-border-m) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5) !important;
}

.ant-select-item {
  color: var(--sw-text-body) !important;
}

.ant-select-item-option-active,
.ant-select-item-option:hover {
  background: var(--sw-bg-hover, #242a3e) !important;
  color: var(--sw-gold) !important;
}

.ant-select-item-option-selected {
  background: var(--sw-gold-dim) !important;
  color: var(--sw-gold) !important;
}

.ant-select-selector {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-body) !important;
}

/* ant modal */
.ant-modal-content {
  background: var(--sw-bg-card) !important;
  border: 1px solid var(--sw-border-m) !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 80px rgba(0,0,0,0.7) !important;
}

.ant-modal-header {
  background: var(--sw-bg-elevated) !important;
  border-bottom: 1px solid var(--sw-border) !important;
  border-radius: 12px 12px 0 0 !important;
}

.ant-modal-title {
  color: var(--sw-text-h) !important;
}

.ant-modal-body {
  color: var(--sw-text-body) !important;
}

.ant-modal-close-x {
  color: var(--sw-text-muted) !important;
}

.ant-modal-close:hover .ant-modal-close-x {
  color: var(--sw-gold) !important;
}

/* ant form */
.ant-form-item-label > label {
  color: var(--sw-text-body) !important;
}

.ant-input,
.ant-input-password,
.ant-input-affix-wrapper {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-h) !important;
  border-radius: 8px !important;
}

.ant-input:focus,
.ant-input-focused,
.ant-input-affix-wrapper:focus,
.ant-input-affix-wrapper-focused {
  border-color: var(--sw-gold) !important;
  box-shadow: 0 0 0 2px var(--sw-gold-dim) !important;
}

.ant-input::placeholder { color: var(--sw-text-muted) !important; }
.ant-input-prefix { color: var(--sw-text-muted) !important; }

/* ant tabs */
.ant-tabs-nav {
  background: transparent !important;
}

.ant-tabs-tab {
  color: var(--sw-text-muted) !important;
}

.ant-tabs-tab-active .ant-tabs-tab-btn,
.ant-tabs-tab.ant-tabs-tab-active {
  color: var(--sw-gold) !important;
}

.ant-tabs-ink-bar {
  background: var(--sw-gold) !important;
}

.ant-tabs-tab:hover {
  color: var(--sw-gold-light) !important;
}

/* ant spin */
.ant-spin-dot-item {
  background-color: var(--sw-gold) !important;
}

/* ant pagination */
.ant-pagination-item a {
  color: var(--sw-text-body) !important;
}

.ant-pagination-item-active {
  background: var(--sw-gold) !important;
  border-color: var(--sw-gold) !important;
}

.ant-pagination-item-active a {
  color: #fff !important;
}

/* ── Element UI 组件 ──────────────────────────────── */
.el-card,
.el-card__body {
  background: var(--sw-bg-card) !important;
  border: 1px solid var(--sw-border) !important;
  color: var(--sw-text-body) !important;
}

.el-dialog {
  background: var(--sw-bg-card) !important;
  border: 1px solid var(--sw-border-m) !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 80px rgba(0,0,0,0.7) !important;
}

.el-dialog__title { color: var(--sw-text-h) !important; }
.el-dialog__body { color: var(--sw-text-body) !important; }
.el-dialog__header { border-bottom: 1px solid var(--sw-border) !important; }

.el-input__inner,
.el-textarea__inner {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-h) !important;
}

.el-input__inner:focus, .el-textarea__inner:focus {
  border-color: var(--sw-gold) !important;
  box-shadow: 0 0 0 2px var(--sw-gold-dim) !important;
}

.el-table,
.el-table tr,
.el-table__header-wrapper {
  background: var(--sw-bg-card) !important;
  color: var(--sw-text-body) !important;
}

.el-table th.el-table__cell {
  background: var(--sw-bg-elevated) !important;
  color: var(--sw-text-h) !important;
  border-bottom: 1px solid var(--sw-border-m) !important;
}

.el-table td.el-table__cell {
  background: transparent !important;
  border-bottom: 1px solid var(--sw-border) !important;
  color: var(--sw-text-body) !important;
}

.el-table__row:hover td { background: var(--sw-bg-elevated) !important; }

.el-select-dropdown {
  background: var(--sw-bg-elevated) !important;
  border: 1px solid var(--sw-border-m) !important;
  border-radius: 8px !important;
}

.el-select-dropdown__item { color: var(--sw-text-body) !important; }
.el-select-dropdown__item:hover, .el-select-dropdown__item.hover {
  background: var(--sw-bg-card) !important;
  color: var(--sw-gold) !important;
}
.el-select-dropdown__item.selected {
  color: var(--sw-gold) !important;
  background: var(--sw-gold-dim) !important;
}

.el-button--primary {
  background: linear-gradient(135deg, var(--sw-gold), #c97d10) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(232,160,32,0.35) !important;
  border-radius: 8px !important;
  font-weight: 600;
}

.el-button--primary:hover {
  background: linear-gradient(135deg, var(--sw-gold-light), var(--sw-gold)) !important;
  box-shadow: 0 6px 24px rgba(232,160,32,0.5) !important;
  transform: translateY(-1px);
}

.el-button--default {
  background: transparent !important;
  border: 1px solid var(--sw-border-m) !important;
  color: var(--sw-text-body) !important;
}

.el-button--default:hover {
  border-color: var(--sw-gold) !important;
  color: var(--sw-gold) !important;
}

.el-pagination .btn-prev,
.el-pagination .btn-next,
.el-pagination .el-pager li {
  background: var(--sw-bg-elevated) !important;
  color: var(--sw-text-body) !important;
  border: 1px solid var(--sw-border) !important;
  border-radius: 6px !important;
}

.el-pagination .el-pager li.active {
  background: var(--sw-gold) !important;
  color: #fff !important;
  border-color: var(--sw-gold) !important;
}

.el-pager li.active {
  color: var(--sw-gold) !important;
  border-color: var(--sw-gold) !important;
  background: transparent !important;
}

.el-tabs__item { color: var(--sw-text-muted) !important; }
.el-tabs__item.is-active { color: var(--sw-gold) !important; }
.el-tabs__active-bar { background-color: var(--sw-gold) !important; }
.el-tabs__nav-wrap::after { background-color: var(--sw-border) !important; }

.el-menu {
  background-color: var(--sw-bg-card) !important;
  border: none !important;
}
.el-menu-item, .el-submenu__title {
  color: var(--sw-text-body) !important;
}
.el-menu-item:hover, .el-submenu__title:hover {
  background: var(--sw-bg-elevated) !important;
  color: var(--sw-gold) !important;
}
.el-menu-item.is-active {
  color: var(--sw-gold) !important;
  background: var(--sw-gold-dim) !important;
}

/* ── 文字颜色修正 ─────────────────────────────────── */
h1, h2, h3, h4, h5, h6 { color: var(--sw-text-h) !important; }

/* ── 卡片/面板背景修正（Box阴影背景） ─────────────── */
[class*="card"],
[class*="panel"],
[class*="box"] {
  border-color: var(--sw-border) !important;
}

/* ── 遮罩 ────────────────────────────────────────── */
.el-overlay, .v-modal {
  background: rgba(0,0,0,0.75) !important;
  backdrop-filter: blur(4px);
}

/* ── 后台登录页 ───────────────────────────────────── */
.login-page {
  background: radial-gradient(ellipse at 25% 60%, rgba(30,110,245,0.12) 0%, transparent 50%),
              radial-gradient(ellipse at 75% 20%, rgba(232,160,32,0.1) 0%, transparent 50%),
              var(--sw-bg-deep) !important;
}

.login-box .card {
  background: var(--sw-bg-card) !important;
  border: 1px solid var(--sw-border-m) !important;
  border-radius: 16px !important;
  box-shadow: 0 30px 80px rgba(0,0,0,0.6) !important;
  backdrop-filter: blur(20px);
}

.login-logo {
  font-weight: 800;
  font-size: 28px;
  letter-spacing: 2px;
  background: linear-gradient(135deg, var(--sw-gold), var(--sw-gold-light));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.login-card-body .form-control {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-h) !important;
  border-radius: 8px !important;
}

.login-card-body .form-control:focus {
  border-color: var(--sw-gold) !important;
  box-shadow: 0 0 0 3px var(--sw-gold-dim) !important;
}

.login-card-body .form-control::placeholder { color: var(--sw-text-muted) !important; }

.login-card-body .btn-primary,
#login-form button[type=submit] {
  background: linear-gradient(135deg, var(--sw-gold), #c97d10) !important;
  border: none !important;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(232,160,32,0.4) !important;
  border-radius: 8px !important;
}

.login-card-body .btn-primary:hover { transform: translateY(-2px); }

/* ── 后台 AdminLTE 暗色支持 ──────────────────────── */
.dark-mode body,
body.dark-mode {
  background-color: var(--sw-bg-deep) !important;
  color: var(--sw-text-body) !important;
}

body:not(.dark-mode) {
  background-color: var(--sw-bg-base) !important;
  color: var(--sw-text-body) !important;
}

.wrapper { background: var(--sw-bg-base) !important; }
.content-wrapper { background: var(--sw-bg-base) !important; }

.main-header.navbar {
  background: var(--sw-bg-card) !important;
  border-bottom: 1px solid var(--sw-border) !important;
  box-shadow: 0 2px 16px rgba(0,0,0,0.4) !important;
}

.navbar-nav .nav-link { color: var(--sw-text-body) !important; }
.navbar-nav .nav-link:hover { color: var(--sw-gold) !important; }

.card {
  background: var(--sw-bg-card) !important;
  border: 1px solid var(--sw-border) !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3) !important;
}

.card-header {
  background: var(--sw-bg-elevated) !important;
  border-bottom: 1px solid var(--sw-border) !important;
  color: var(--sw-text-h) !important;
}

.card-body { color: var(--sw-text-body) !important; }

/* 表格 */
.table {
  color: var(--sw-text-body) !important;
}

.table thead th {
  background: var(--sw-bg-elevated) !important;
  color: var(--sw-text-h) !important;
  border-color: var(--sw-border-m) !important;
}

.table td, .table th {
  border-color: var(--sw-border) !important;
}

.table-hover tbody tr:hover {
  background: var(--sw-bg-elevated) !important;
  color: var(--sw-text-h) !important;
}

/* 按钮 */
.btn-primary {
  background: linear-gradient(135deg, var(--sw-gold), #c97d10) !important;
  border-color: var(--sw-gold) !important;
  color: #fff !important;
  box-shadow: 0 3px 12px rgba(232,160,32,0.3) !important;
}

.btn-primary:hover {
  background: linear-gradient(135deg, var(--sw-gold-light), var(--sw-gold)) !important;
  box-shadow: 0 6px 20px rgba(232,160,32,0.45) !important;
  transform: translateY(-1px);
  border-color: transparent !important;
}

.btn-default, .btn-secondary {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-body) !important;
}

.btn-default:hover, .btn-secondary:hover {
  background: var(--sw-bg-card) !important;
  border-color: var(--sw-gold) !important;
  color: var(--sw-gold) !important;
}

/* 输入框 */
.form-control {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-h) !important;
}

.form-control:focus {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-gold) !important;
  box-shadow: 0 0 0 3px var(--sw-gold-dim) !important;
  color: var(--sw-text-h) !important;
}

.form-control::placeholder { color: var(--sw-text-muted) !important; }
.input-group-text {
  background: var(--sw-bg-card) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-muted) !important;
}

/* label 和 通用文字 */
label { color: var(--sw-text-body) !important; }
.text-muted { color: var(--sw-text-muted) !important; }

/* 下拉菜单 */
.dropdown-menu {
  background: var(--sw-bg-elevated) !important;
  border: 1px solid var(--sw-border-m) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5) !important;
}

.dropdown-item { color: var(--sw-text-body) !important; }
.dropdown-item:hover { background: var(--sw-bg-hover, #242a3e) !important; color: var(--sw-gold) !important; }

/* 侧边栏 */
[class*="sidebar-dark"] {
  background: linear-gradient(180deg, #0e1628 0%, #0a0f1e 100%) !important;
}

[class*="sidebar-dark"] .nav-link {
  color: var(--sw-text-body) !important;
}

[class*="sidebar-dark"] .nav-link.active,
[class*="sidebar-dark"] .nav-link:hover {
  background: var(--sw-gold-dim) !important;
  color: var(--sw-gold) !important;
}

[class*="sidebar-dark"] .brand-link {
  background: rgba(0,0,0,0.3) !important;
  border-bottom: 1px solid var(--sw-border) !important;
}

.brand-text { color: var(--sw-gold) !important; font-weight: 700; }

/* 分页 */
.page-link {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border) !important;
  color: var(--sw-text-body) !important;
}

.page-item.active .page-link {
  background: var(--sw-gold) !important;
  border-color: var(--sw-gold) !important;
  color: #fff !important;
}

.page-link:hover {
  background: var(--sw-bg-card) !important;
  color: var(--sw-gold) !important;
}

/* 统计小卡片 */
.info-box { background: var(--sw-bg-card) !important; border-radius: 8px !important; }
.info-box-text, .info-box-number { color: var(--sw-text-h) !important; }

/* 面包屑 */
.breadcrumb { background: transparent !important; }
.breadcrumb-item a { color: var(--sw-gold) !important; }
.breadcrumb-item.active { color: var(--sw-text-muted) !important; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--sw-text-muted) !important; }

/* 浮层/弹窗 */
.modal-content {
  background: var(--sw-bg-card) !important;
  border: 1px solid var(--sw-border-m) !important;
  border-radius: 12px !important;
}

.modal-header {
  background: var(--sw-bg-elevated) !important;
  border-bottom: 1px solid var(--sw-border) !important;
  border-radius: 12px 12px 0 0;
}

.modal-title { color: var(--sw-text-h) !important; }
.close { color: var(--sw-text-muted) !important; opacity: 1; }
.close:hover { color: var(--sw-gold) !important; }
.modal-body { color: var(--sw-text-body) !important; }

/* select2 */
.select2-container--default .select2-selection--single {
  background: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-h) !important;
}

.select2-container--default .select2-results__option {
  background: var(--sw-bg-elevated) !important;
  color: var(--sw-text-body) !important;
}

.select2-container--default .select2-results__option--highlighted {
  background: var(--sw-gold-dim) !important;
  color: var(--sw-gold) !important;
}

/* toastr 提示 */
.toast {
  background: var(--sw-bg-elevated) !important;
  border: 1px solid var(--sw-border-m) !important;
  border-radius: 8px !important;
  opacity: 1 !important;
}

/* 小分隔线 */
hr { border-color: var(--sw-border) !important; }

/* 链接统一金色 */
a { color: var(--sw-gold) !important; }
a:hover { color: var(--sw-gold-light) !important; }

/* ================================================================
   ApexCharts 图表文字颜色修复（SVG fill 覆盖）
   解决深色背景下灰蓝色文字（#586cb1 / #99a2ac）不可见的问题
   ================================================================ */
.apexcharts-canvas text,
.apexcharts-text,
.apexcharts-xaxis-label,
.apexcharts-yaxis-label,
.apexcharts-datalabel-label,
.apexcharts-datalabel-value,
.apexcharts-xaxis text,
.apexcharts-yaxis text,
.apexcharts-legend-text {
  fill: var(--sw-text-h, #f0f2f8) !important;
  color: var(--sw-text-h, #f0f2f8) !important;
}

/* 数值标签保持亮白 */
.apexcharts-datalabel-value {
  fill: #ffffff !important;
  font-weight: 600 !important;
}

/* 图表辅助线颜色适配 */
.apexcharts-gridline {
  stroke: rgba(255,255,255,0.06) !important;
}

/* 圆形进度条内轨道改为深色（原为 #fff） */
.apexcharts-radialbar-track path {
  stroke: #1c2236 !important;
}

/* 图表工具栏图标 */
.apexcharts-zoom-icon svg,
.apexcharts-zoom-in-icon svg,
.apexcharts-zoom-out-icon svg,
.apexcharts-reset-zoom-icon svg,
.apexcharts-menu-icon svg {
  fill: var(--sw-text-muted, #5e6880) !important;
}

/* 图表菜单 */
.apexcharts-menu {
  background: var(--sw-bg-elevated, #1c2236) !important;
  border: 1px solid var(--sw-border-m) !important;
  color: var(--sw-text-body, #b8c0d4) !important;
}
.apexcharts-menu-item:hover {
  background: var(--sw-gold-dim, rgba(232,160,32,0.15)) !important;
  color: var(--sw-gold) !important;
}

/* ================================================================
   前台白色区块修复（滚动时"盒子"上部白色残留问题）
   ================================================================ */

/* LayUI 卡片组件 */
.layui-card,
.layui-panel-window {
  background-color: var(--sw-bg-card, #141828) !important;
  border: 1px solid var(--sw-border, rgba(255,255,255,0.07)) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.4) !important;
  color: var(--sw-text-body, #b8c0d4) !important;
}

.layui-card-header {
  background: var(--sw-bg-elevated, #1c2236) !important;
  border-bottom: 1px solid var(--sw-border) !important;
  color: var(--sw-text-h, #f0f2f8) !important;
}

/* LayUI 表单 & 输入 */
.layui-input, .layui-select, .layui-textarea {
  background-color: var(--sw-bg-elevated, #1c2236) !important;
  border-color: var(--sw-border-m) !important;
  color: var(--sw-text-h) !important;
}

/* LayUI 表格 */
.layui-table,
.layui-table-main .layui-table,
.layui-table-body .layui-table {
  background-color: var(--sw-bg-card) !important;
  color: var(--sw-text-body) !important;
}
.layui-table-header { background: var(--sw-bg-elevated) !important; }

/* LayUI 导航子菜单 */
.layui-nav-child {
  background-color: var(--sw-bg-elevated) !important;
  border-color: var(--sw-border-m) !important;
}

/* pc_home 特定白色区块（编译后的 CSS Module 类名） */
._2uM338LxSZnEUB6bCz4axi,
._2xx45NdpwT5KPaYgeMsdYE,
._3sbSiVFgNQ2SK94qDJaI90 {
  background: var(--sw-bg-card, #141828) !important;
  box-shadow: 0 4px 30px rgba(0,0,0,0.35) !important;
  border: 1px solid var(--sw-border) !important;
  color: var(--sw-text-body) !important;
}

/* pc_home 分隔线 */
._3ATbZ84037ZhIQDiT-2nyD {
  background: var(--sw-border-m) !important;
}

/* QR码容器保持可读（允许轻度暗色背景但 QR 图片本身保持白色） */
._21R49Y-pIno9CckiAjl0Id {
  background: var(--sw-bg-elevated, #1c2236) !important;
  border-color: var(--sw-gold, #e8a020) !important;
}
._2_w4FbHMpnRRSdxBYtSL0e {
  background: #ffffff !important; /* QR码图片区域保持白色，确保可扫描 */
  border-radius: 4px;
}

/* ================================================================
   Banner / 图片在深色主题下的处理
   白色banner图片加轻微暗角，避免与深色背景割裂感
   ================================================================ */
img:not([src*=".ico"]):not([class*="qr"]):not([class*="avatar"]) {
  /* 为纯白图片加投影，使其融入深色背景 */
  filter: drop-shadow(0 2px 12px rgba(0,0,0,0.4));
}

/* banner 区域图片特殊处理 */
.swiper-slide img,
[class*="banner"] img,
[class*="slide"] img {
  filter: brightness(0.92) contrast(1.05) drop-shadow(0 4px 16px rgba(0,0,0,0.5));
  border-radius: 8px;
  transition: filter 0.3s ease;
}
.swiper-slide img:hover,
[class*="banner"] img:hover {
  filter: brightness(1.0) contrast(1.1) drop-shadow(0 4px 24px rgba(232,160,32,0.3));
}

/* ================================================================
   轻量级特效 —— 不影响性能，纯 CSS 实现
   ================================================================ */

/* 1. 页面元素淡入动画 */
@keyframes sw-fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.card, .el-card, .layui-card,
[class*="card"], [class*="panel"] {
  animation: sw-fadeUp 0.4s ease both;
}

/* 2. 按钮悬浮光效 */
.btn-primary, .el-button--primary {
  position: relative;
  overflow: hidden;
}
.btn-primary::after, .el-button--primary::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 0; height: 0;
  background: rgba(255,255,255,0.15);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.4s ease, height 0.4s ease, opacity 0.4s ease;
  opacity: 0;
}
.btn-primary:hover::after, .el-button--primary:hover::after {
  width: 200%; height: 200%;
  opacity: 1;
}

/* 3. 导航高亮下划线动画 */
.nav-link, .el-menu-item {
  position: relative;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  width: 0; height: 2px;
  background: var(--sw-gold);
  transition: width 0.3s ease, left 0.3s ease;
}
.nav-link:hover::after, .nav-link.active::after {
  width: 100%; left: 0;
}

/* 4. 表格行悬浮光效 */
.el-table tbody tr,
.layui-table tbody tr,
.ant-table-row {
  transition: background 0.2s ease, transform 0.15s ease;
}
.el-table tbody tr:hover,
.layui-table tbody tr:hover,
.ant-table-row:hover {
  transform: translateX(2px);
}

/* 5. 卡片悬浮上升效果 */
.info-box, .el-card, [class*="metric-card"] {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.info-box:hover, .el-card:hover, [class*="metric-card"]:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.5) !important;
}

/* 6. 金色边框发光效果（悬停状态） */
.el-input__inner:focus,
.form-control:focus,
.layui-input:focus {
  box-shadow: 0 0 0 3px var(--sw-gold-dim), 0 0 16px rgba(232,160,32,0.15) !important;
}

/* 7. 页面滚动条全站统一（深色主题） */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--sw-gold, #e8a020) var(--sw-bg-base, #0e1220);
}

/* 8. 前台页面整体区块背景统一深色 */
#app > * {
  background-color: transparent;
}

/* Element UI 通用容器深色化 */
.el-container, .el-main, .el-aside, .el-header, .el-footer {
  background-color: var(--sw-bg-base) !important;
}

/* 前台白色内容区（通用覆盖，针对 background:#fff 的 class 元素） */
[class]:not(img):not(svg):not(path):not(circle) {
  --sw-el-bg-override: none; /* placeholder */
}

/* 前台各页面通用卡片白底覆盖 */
.el-card__body,
.el-card__header {
  background: var(--sw-bg-card) !important;
  color: var(--sw-text-body) !important;
}

/* 前台抽屉/弹窗 */
.el-drawer__body,
.el-drawer__header {
  background: var(--sw-bg-card) !important;
  color: var(--sw-text-body) !important;
}

/* 前台分割线 */
.el-divider { border-color: var(--sw-border) !important; }
.el-divider__text { background: var(--sw-bg-base) !important; color: var(--sw-text-muted) !important; }
