
/* ============================================================
   SemiMirror · Material Light Theme
   简约轻快 Material Design 风格：白底、圆角卡、柔和阴影、蓝紫点缀
   ============================================================ */

:root {
  --sm-bg-0: #f5f7fa;
  --sm-bg-1: #ffffff;
  --sm-bg-2: #fafbff;
  --sm-bg-grad:
    radial-gradient(1200px 800px at 10% 0%, rgba(99, 102, 241, 0.06) 0%, transparent 50%),
    radial-gradient(1000px 700px at 90% 100%, rgba(56, 189, 248, 0.05) 0%, transparent 50%);

  --sm-glass-bg: rgba(255, 255, 255, 0.7);
  --sm-glass-bg-2: rgba(255, 255, 255, 0.85);
  --sm-glass-border: rgba(99, 102, 241, 0.1);
  --sm-glass-border-strong: rgba(99, 102, 241, 0.2);
  --sm-glass-blur: blur(12px) saturate(140%);
  --sm-glass-shadow: 0 2px 8px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(99, 102, 241, 0.06);
  --sm-shadow-soft: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.04);
  --sm-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.06), 0 12px 28px rgba(99, 102, 241, 0.12);

  --sm-primary: #6366f1;
  --sm-primary-2: #4f46e5;
  --sm-primary-soft: rgba(99, 102, 241, 0.1);
  --sm-accent: #38bdf8;
  --sm-purple: #8b5cf6;
  --sm-grad: linear-gradient(95deg, #6366f1, #8b5cf6);
  --sm-grad-blue: linear-gradient(95deg, #38bdf8, #6366f1);
  --sm-grad-soft: linear-gradient(135deg, rgba(99,102,241,0.1), rgba(56,189,248,0.1));
  --sm-grad-text: linear-gradient(95deg, #6366f1, #38bdf8);
  --sm-grad-chart: linear-gradient(95deg, #818cf8, #38bdf8);

  --sm-text-1: #1e293b;
  --sm-text-2: #475569;
  --sm-text-3: #94a3b8;
  --sm-text-mute: #cbd5e1;
  --sm-bg-soft: #f1f5f9;
  --sm-bg-hover: #f8fafc;

  --el-color-primary: #6366f1;
  --el-color-primary-light-3: #818cf8;
  --el-color-primary-light-5: #a5b4fc;
  --el-color-primary-light-7: #c7d2fe;
  --el-color-primary-light-8: #ddd6fe;
  --el-color-primary-light-9: #ede9fe;
  --el-color-primary-dark-2: #4f46e5;
  --el-bg-color: #ffffff;
  --el-bg-color-page: transparent;
  --el-bg-color-overlay: rgba(255, 255, 255, 0.98);
  --el-text-color-primary: #1e293b;
  --el-text-color-regular: #475569;
  --el-text-color-secondary: #94a3b8;
  --el-text-color-placeholder: #cbd5e1;
  --el-border-color: #e2e8f0;
  --el-border-color-light: #edf2f7;
  --el-border-color-lighter: #f1f5f9;
  --el-border-color-extra-light: #f8fafc;
  --el-fill-color: #f8fafc;
  --el-fill-color-light: #f1f5f9;
  --el-fill-color-lighter: #fafbfc;
  --el-fill-color-extra-light: #ffffff;
  --el-fill-color-blank: #ffffff;
  --el-mask-color: rgba(15, 23, 42, 0.5);
  --el-overlay-color-lighter: rgba(15, 23, 42, 0.3);
  --el-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  --el-box-shadow-light: 0 1px 4px rgba(0, 0, 0, 0.05);
  --el-box-shadow-lighter: 0 1px 2px rgba(0, 0, 0, 0.04);
  --el-box-shadow-dark: 0 4px 16px rgba(0, 0, 0, 0.1);
  --el-border-radius-base: 12px;
  --el-border-radius-small: 10px;
  --el-font-family: "Inter", "SF Pro Display", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
}

html, body { background: var(--sm-bg-0) !important; }
body {
  background: var(--sm-bg-grad) fixed !important;
  min-height: 100vh;
  color: var(--sm-text-1);
  font-family: var(--el-font-family);
  -webkit-font-smoothing: antialiased;
  letter-spacing: 0.1px;
}
#app { background: transparent; }

.el-card, .el-dialog, .el-drawer, .batch-card, .el-message-box,
.control-bar, .param-bar, .login .el-card, .login-card, .login-box {
  background: var(--sm-bg-1) !important;
  backdrop-filter: var(--sm-glass-blur) !important;
  -webkit-backdrop-filter: var(--sm-glass-blur) !important;
  border: 1px solid var(--el-border-color) !important;
  border-radius: var(--el-border-radius-base) !important;
  box-shadow: var(--sm-glass-shadow) !important;
  color: var(--sm-text-1);
  transition: box-shadow .25s ease, transform .2s ease, border-color .2s ease;
}
.batch-card, .panel, .el-card.data-panel {
  background: var(--sm-bg-1) !important;
  box-shadow: var(--sm-shadow-soft) !important;
}
.el-card:hover, .batch-card:hover {
  box-shadow: var(--sm-shadow-hover) !important;
  transform: translateY(-1px);
  border-color: var(--sm-glass-border-strong);
}
.el-card__header, .el-dialog__header, .el-drawer__header {
  border-bottom: 1px solid var(--el-border-color);
  background: var(--sm-bg-2);
  color: var(--sm-text-1);
}
.el-dialog__title, .el-drawer__title, .el-card__header {
  color: var(--sm-text-1);
  font-weight: 600;
}

.el-select-dropdown, .el-picker-panel, .el-dropdown-menu, .el-cascader__dropdown, .el-popover, .el-popper.is-light {
  background: #ffffff !important;
  border: 1px solid var(--el-border-color) !important;
  color: var(--sm-text-1);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  border-radius: var(--el-border-radius-small) !important;
}

.app-header, .el-header, header {
  display: flex;
  align-items: center;
  gap: 4px !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  background: linear-gradient(90deg, #d9edfb 0%, #eef6fd 16%, #ffffff 45%, #ffffff 55%, #eef6fd 84%, #d9edfb 100%) !important;
  backdrop-filter: blur(20px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(140%) !important;
  border-bottom: 1px solid var(--el-border-color) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  color: var(--sm-text-1);
}
.app-header .title, header .title {
  background: linear-gradient(95deg, #4f46e5 0%, #ec4899 35%, #f59e0b 70%, #6366f1 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 900;
  font-size: 28px;
  letter-spacing: 1.5px;
  text-shadow: 0 2px 8px rgba(99, 102, 241, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  animation: sm-title-shine 6s linear infinite;
}
@keyframes sm-title-shine {
  0%   { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
/* 标题左侧 Logo：与“半导芯镜”同高、垂直居中、可点击回主界面 */
.app-header .header-logo, header .header-logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 9px;
  flex: 0 0 auto;
  cursor: pointer;
  -webkit-text-fill-color: initial;
}
.app-header .subtitle { color: var(--sm-text-2); font-size: 12.5px; margin: 0 0 0 2px !important; }
.app-header .data-info {
  color: var(--sm-primary) !important;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.3px;
  padding: 5px 12px;
  border: 1px solid var(--sm-primary-soft);
  border-radius: 20px;
  background: var(--sm-primary-soft);
}

.user-name, .username, .user-info, .app-header .user, header .user,
.app-header [class*="user"], header [class*="user"] {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 20px;
  background: var(--sm-grad) !important;
  border: none;
  color: #ffffff !important;
  font-weight: 600; font-size: 13px;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
  transition: all .3s ease;
}
.app-header [class*="user"]:hover {
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.4);
  transform: translateY(-1px);
}

.sidebar, .el-aside, aside, .has-sidebar > .sidebar {
  background: rgba(255, 255, 255, 0.9) !important;
  backdrop-filter: blur(20px) saturate(140%);
  border-right: 1px solid var(--el-border-color) !important;
}
.el-menu { background: transparent !important; border-right: none !important; }
.el-menu-item, .el-sub-menu__title {
  color: var(--sm-text-2) !important;
  border-radius: 8px;
  margin: 3px 8px;
  transition: all .2s;
}
.el-menu-item:hover, .el-sub-menu__title:hover {
  background: var(--sm-primary-soft) !important;
  color: var(--sm-primary) !important;
}
.el-menu-item.is-active {
  background: var(--sm-grad) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
}
.el-menu-item.is-active::before {
  content: ""; position: absolute; left: 0; top: 20%; bottom: 20%; width: 3px;
  border-radius: 3px; background: var(--sm-primary);
}

.control-bar .label, .param-bar .label, .form-row .label {
  color: #000000 !important;
  font-size: 14px; font-weight: 700;
  letter-spacing: 0.5px;
}
/* 通用：覆盖 Element Plus .el-form-item__label */
.control-bar .el-form-item__label,
.param-bar .el-form-item__label,
.form-row .el-form-item__label,
.el-form-item__label {
  color: #000000 !important;
  font-weight: 700 !important;
  font-size: 14px !important;
}
.param-bar > .label:first-child, .control-bar > .label:first-child {
  color: var(--sm-text-1);
  font-weight: 600;
}

.el-button {
  border-radius: 8px;
  font-weight: 600; letter-spacing: 0.3px;
  transition: all .2s ease;
  border: 1px solid transparent;
  padding: 9px 18px;
}
.el-button--primary {
  background: var(--sm-primary) !important;
  border-color: var(--sm-primary) !important;
  color: #fff !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 2px 8px rgba(99,102,241,.25) !important;
}
.el-button--primary::after, .el-button--primary::before { content: none; }
.el-button--primary:hover {
  background: var(--sm-primary-2) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(99,102,241,.35) !important;
}
.el-button--primary:active { transform: translateY(0); }



.el-button::after, .el-button::before { content: none; }

.login-btn, .contact-btn, .el-button.is-text {
  color: var(--sm-primary) !important; font-weight: 600;
}
.login-btn:hover, .contact-btn:hover, .el-button.is-text:hover {
  color: var(--sm-primary-2) !important;
  background: var(--sm-primary-soft) !important;
}

.el-select__wrapper, .el-input__wrapper, .el-textarea__inner, .el-input__inner {
  background: #ffffff !important;
  border: 1px solid var(--el-border-color) !important;
  border-radius: 8px !important;
  color: var(--sm-text-1) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: all .2s ease;
}
.el-select__wrapper:hover, .el-input__wrapper:hover {
  border-color: var(--sm-primary) !important;
}
.el-select__wrapper.is-focused, .el-input__wrapper.is-focus, .el-textarea__inner:focus {
  border-color: var(--sm-primary) !important;
  box-shadow: 0 0 0 3px var(--sm-primary-soft) !important;
}
.el-input__placeholder, .el-textarea__inner::placeholder { color: var(--sm-text-3) !important; }
.el-input__inner, .el-select__placeholder span, .el-select__selected-item { color: var(--sm-text-1) !important; font-weight: 500; }
.el-input__prefix, .el-input__suffix, .el-input__icon, .el-select__caret { color: var(--sm-text-3); }

.el-select-dropdown__item, .el-dropdown-menu__item { color: var(--sm-text-2); border-radius: 6px; margin: 2px 6px; }
.el-select-dropdown__item:hover, .el-select-dropdown__item.is-hovering, .el-dropdown-menu__item:hover {
  background: var(--sm-primary-soft) !important; color: var(--sm-primary) !important;
}
.el-select-dropdown__item.is-selected {
  background: var(--sm-primary-soft) !important;
  color: var(--sm-primary) !important; font-weight: 600;
}

.el-table {
  background: #ffffff !important;
  color: var(--sm-text-1);
  --el-table-bg-color: #ffffff;
  --el-table-tr-bg-color: #ffffff;
  --el-table-header-bg-color: #f8fafc;
  --el-table-row-hover-bg-color: var(--sm-primary-soft);
  --el-table-border-color: var(--el-border-color);
  --el-table-text-color: var(--sm-text-2);
  --el-table-header-text-color: var(--sm-text-1);
}
.el-table th.el-table__cell {
  background: #f8fafc !important;
  color: var(--sm-text-1) !important;
  border-bottom: 1px solid var(--el-border-color) !important;
  font-weight: 600; font-size: 12px; letter-spacing: 0.5px;
}
.el-table td.el-table__cell { border-bottom: 1px solid #f1f5f9 !important; }
.el-table tr { background: #ffffff !important; }
.el-table__body tr:hover > td { background: var(--sm-primary-soft) !important; }

.el-tag { border-radius: 6px; border: 1px solid var(--el-border-color); background: var(--sm-bg-soft); color: var(--sm-text-1); }
.el-tag--success { background: #dcfce7; border-color: #86efac; color: #166534; }
.el-tag--danger { background: #fee2e2; border-color: #fca5a5; color: #991b1b; }
.el-tag--warning { background: #fef3c7; border-color: #fde047; color: #854d0e; }
.el-tag--info { background: #dbeafe; border-color: #93c5fd; color: #1e40af; }

.login, .login-page, .login-container { background: var(--sm-bg-grad) !important; }
.login .el-card, .login-card, .login-box {
  background: #ffffff !important;
  border: 1px solid var(--el-border-color) !important;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
  border-radius: 16px;
}
.login .title, .login-title, .login h1, .login h2 {
  background: var(--sm-grad-text);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 800; letter-spacing: 0.5px;
}

.el-progress-bar__outer { background: var(--el-fill-color) !important; border-radius: 99px; }
.el-progress-bar__inner { background: var(--sm-grad) !important; border-radius: 99px; }
.highlight, .highlighted, .exact-match-row {
  background: var(--sm-primary-soft) !important;
  color: var(--sm-primary) !important;
  font-weight: 600;
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: rgba(99, 102, 241, 0.06); border-radius: 99px; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(135deg, #38bdf8, #6366f1);
  border-radius: 99px;
  border: 2px solid transparent; background-clip: padding-box;
  box-shadow: 0 0 6px rgba(56, 189, 248, 0.4);
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  box-shadow: 0 0 10px rgba(99, 102, 241, 0.6);
}

a { color: var(--sm-primary); }
a:hover { color: var(--sm-primary-2); }
.divider, .el-divider { border-color: var(--el-border-color) !important; }
.el-divider__text { background: transparent; color: var(--sm-text-2); }
.el-loading-mask { background: rgba(255, 255, 255, 0.7) !important; backdrop-filter: blur(4px); }
.el-loading-spinner .path { stroke: var(--sm-primary); }
.el-loading-spinner .el-loading-text { color: var(--sm-text-2); }
.empty-tip, .el-empty__description p { color: var(--sm-text-3) !important; }

.el-switch.is-checked .el-switch__core { background: var(--sm-primary) !important; border-color: var(--sm-primary); }
.el-checkbox__inner, .el-radio__inner {
  background: #ffffff !important;
  border-color: var(--el-border-color);
}
.el-checkbox__inner::after { border-color: #fff; }
.el-checkbox__input.is-checked .el-checkbox__inner,
.el-radio__input.is-checked .el-radio__inner {
  background: var(--sm-primary) !important; border-color: var(--sm-primary);
  box-shadow: 0 0 0 3px var(--sm-primary-soft);
}
.el-checkbox__label, .el-radio__label { color: var(--sm-text-2) !important; }
.el-checkbox__input.is-checked + .el-checkbox__label,
.el-radio__input.is-checked + .el-radio__label {
  color: var(--sm-primary) !important; font-weight: 600;
}

.el-overlay { background: rgba(15, 23, 42, 0.4) !important; backdrop-filter: blur(2px); }
.el-dialog, .el-message-box {
  border: 1px solid var(--el-border-color) !important;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
  border-radius: 16px;
}
/* 弹窗关闭按钮：醒目蓝紫圆形按钮（保留 Element Plus 默认右上角定位） */
.el-dialog__headerbtn,
.el-message-box__headerbtn {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #6366f1, #8b5cf6) !important;
  border: 2px solid rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.4) !important;
  transition: all 0.25s ease !important;
}
.el-dialog__headerbtn:hover,
.el-message-box__headerbtn:hover {
  transform: scale(1.1) rotate(90deg);
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.55) !important;
}
.el-dialog__headerbtn .el-dialog__close,
.el-message-box__headerbtn .el-message-box__close {
  color: #ffffff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}

.el-tabs__item,
.el-tabs__nav .el-tabs__item,
.el-tabs--card .el-tabs__item,
.el-message-box .el-tabs__item,
.el-dialog .el-tabs__item {
  color: #000000 !important;
  font-weight: 700 !important;
  font-size: 15px !important;
}
.el-tabs__item.is-active,
.el-tabs__nav .el-tabs__item.is-active {
  color: var(--sm-primary) !important;
  font-weight: 800 !important;
}
.el-tabs__active-bar,
.el-tabs__nav .el-tabs__active-bar {
  background: var(--sm-primary) !important;
  height: 3px !important;
  border-radius: 2px;
}

.el-pagination button, .el-pagination .el-pager li {
  background: #ffffff !important;
  color: var(--sm-text-2) !important;
  border-radius: 6px; border: 1px solid var(--el-border-color);
  background: #ffffff;
}
.el-pagination .el-pager li.is-active {
  background: var(--sm-primary) !important;
  color: #fff !important;
  border-color: var(--sm-primary);
}

.data-info, .diff-list, .status-line, .count-tip { color: var(--sm-text-2); }

body::before, body::after, .el-card::before, .el-card::after,
.el-button--primary::after, .app-header::after,
header::after, .member-center::after, .member-page::after,
.el-overlay::before, .el-modal-dialog::before { content: none !important; }

/* ============================================================
   明亮斑马纹与对比色修复（覆盖旧深色残留）
   ============================================================ */

/* 表格斑马纹（浅色淡紫，明亮可辨） */
.el-table__body tr:nth-child(even) > td {
  background: rgba(99, 102, 241, 0.03) !important;
}
.el-table__body tr:nth-child(odd) > td {
  background: #ffffff !important;
}
.el-table__body tr > td[style*="background"],
.el-table__body tr:nth-child(even) > td[style*="background"] {
  background: rgba(99, 102, 241, 0.03) !important;
}

/* 会员中心文字对比色（白底配深字） */
.member-center, .member-page, .user-center, .profile-page {
  color: #1e293b !important;
  background: #ffffff !important;
}
.member-center *, .member-page *, .user-center *, .profile-page * {
  color: inherit;
}
.member-center .el-card, .member-page .el-card, .user-center .el-card, .profile-page .el-card {
  background: #ffffff !important;
  color: #1e293b;
}
.member-center .label, .member-page .label, .user-center .label, .profile-page .label {
  color: #64748b !important;
  font-size: 13px;
}
.member-center .value, .member-page .value, .user-center .value, .profile-page .value,
.member-center p, .member-page p, .user-center p, .profile-page p,
.member-center div, .member-page div, .user-center div, .profile-page div {
  color: #1e293b;
}
.member-center .el-tag, .member-page .el-tag {
  color: #166534 !important;
  background: #dcfce7 !important;
  border-color: #86efac !important;
}
.member-center .invite-code, .member-page .invite-code,
.member-center [class*="invite"], .member-page [class*="invite"] {
  background: #f8fafc !important;
  color: #1e293b !important;
  border: 1px solid #e2e8f0 !important;
}
.member-center [class*="invite"] *, .member-page [class*="invite"] * {
  color: #1e293b !important;
}
.member-center [class*="invite"] .code, .member-page [class*="invite"] .code {
  color: #6366f1 !important;
  font-weight: 700;
}

/* benchmark 表格（浅色斑马纹） */
.benchmark, .benchmark-page, [class*="benchmark"] {
  background: #ffffff !important;
  color: #1e293b;
}
.benchmark .el-table__body tr:nth-child(even) > td,
[class*="benchmark"] .el-table__body tr:nth-child(even) > td {
  background: rgba(99, 102, 241, 0.03) !important;
}
.benchmark .el-table__body tr > td,
[class*="benchmark"] .el-table__body tr > td {
  color: #475569 !important;
}

/* 管理员后台（浅色斑马纹） */
.admin-card {
  background: var(--sm-bg-1) !important;
  color: #1e293b;
}
.admin-card .el-table__body tr:nth-child(even) > td {
  background: rgba(99, 102, 241, 0.03) !important;
}
.admin-card .el-table__body tr > td {
  color: #475569 !important;
}

/* 全局文字对比（确保明亮可读） */
body, #app, .app-wrapper, .layout, .main, .el-main {
  color: #1e293b !important;
}
h1, h2, h3, h4, h5, h6 { color: #1e293b !important; }
p, span { color: #475569; }
.muted, .tip, .hint { color: #94a3b8; }

/* 表格单元格内容（确保深色可读） */
.el-table td.el-table__cell, .el-table td, .el-table .cell {
  color: #475569 !important;
}

/* 移除任何残留的深色背景/文字组合 */
[style*="background:#0"], [style*="background: #0"], [style*="background-color:#0"], [style*="background-color: #0"] {
  background: #ffffff !important;
  color: #1e293b !important;
}

/* ============================================================
   斑马纹强制浅色 + placeholder 重复修复
   ============================================================ */

/* ---------- 1. 表格斑马纹：强制浅色，覆盖任何深色/默认斑马纹 ---------- */
/* Element Plus 默认 stripe + 任何深色背景都强制浅色 */
.el-table--striped .el-table__body tr.el-table__row--striped > td,
.el-table__body tr.el-table__row--striped > td,
.el-table__body tr:nth-child(even) > td,
.el-table__body tr:nth-child(odd) > td,
.el-table__body tr > td {
  background: #ffffff !important;
  color: #475569 !important;
}
.el-table__body tr:nth-child(even) > td {
  background: rgba(99, 102, 241, 0.03) !important;
}
/* 深色斑马纹/深色单元格强制浅色 */
.el-table td[style*="background"],
.el-table__body tr[style*="background"] > td,
.el-table__body tr > td[style*="background"] {
  background: #ffffff !important;
  color: #475569 !important;
}
.el-table__body tr:nth-child(even) > td[style*="background"] {
  background: rgba(99, 102, 241, 0.03) !important;
}
/* 彻底禁用 Element Plus stripe 深色 */
.el-table .el-table__row--striped td,
.el-table .el-table__row--striped .cell {
  background: rgba(99, 102, 241, 0.03) !important;
  color: #475569 !important;
}

/* ---------- 2. placeholder 重复修复：隐藏与 label 重复的 placeholder 文本 ---------- */
/* 输入型号输入框：label 已显示"输入型号:"，placeholder 再显示一次会重叠 → 隐藏 placeholder */
.el-input__placeholder, .el-textarea__inner::placeholder,
input::placeholder, textarea::placeholder {
  color: transparent !important;
  opacity: 0;
}
/* 但保留有实际提示作用的 placeholder（如"请输入型号"），通过空字符串检测不隐藏 */
.el-select__placeholder, .el-input__placeholder {
  color: var(--sm-text-3) !important;
  opacity: 1;
}
/* 特别处理：搜索输入框的 placeholder（"输入型号:"）如果与左侧 label 重复，隐藏之 */
.control-bar .el-input__wrapper .el-input__placeholder,
.control-bar input::placeholder,
.form-row .el-input__wrapper .el-input__placeholder,
.form-row input::placeholder {
  color: transparent !important;
  opacity: 0 !important;
}
/* 输入框聚焦时 placeholder 仍隐藏（避免与 label 重叠） */
.el-input__wrapper.is-focus .el-input__placeholder,
.el-input__wrapper.is-focus input::placeholder {
  color: transparent !important;
}

/* ---------- 3. 移除输入框重叠边框（wrapper 和 inner 只有一层边框） ---------- */
.el-input__wrapper {
  border: 1px solid var(--el-border-color) !important;
  border-radius: 8px !important;
  background: #ffffff !important;
}
.el-input__inner {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}
.el-input__inner:focus, .el-input__wrapper.is-focus .el-input__inner {
  border: none !important;
  box-shadow: none !important;
}
/* 输入框聚焦时 wrapper 高亮，inner 无额外边框 */
.el-input__wrapper.is-focus {
  border-color: var(--sm-primary) !important;
  box-shadow: 0 0 0 3px var(--sm-primary-soft) !important;
}
/* 移除 inner 的聚焦边框（避免双层边框重叠） */
.el-input__wrapper.is-focus .el-input__inner,
.el-input__inner.is-focus {
  box-shadow: none !important;
}

/* ============================================================
   输入型号 placeholder 重叠修复
   label "输入型号:" 和 placeholder "输入型号:" 同时显示导致重叠
   ============================================================ */

/* 隐藏搜索输入框的 placeholder 文本（label 已显示，placeholder 重复） */
.control-bar .el-input__wrapper .el-input__placeholder,
.control-bar input::placeholder,
.form-row .el-input__wrapper .el-input__placeholder,
.form-row input::placeholder,
.el-input__wrapper .el-input__placeholder,
.el-input__wrapper input::placeholder {
  color: transparent !important;
  opacity: 0 !important;
  font-size: 0 !important;
}
/* 保留下拉框 placeholder（如"请选择"） */
.el-select__placeholder, .el-select__wrapper .el-input__placeholder {
  color: var(--sm-text-3) !important;
  opacity: 1 !important;
  font-size: inherit !important;
}
/* 输入框聚焦时 placeholder 仍隐藏 */
.el-input__wrapper.is-focus .el-input__placeholder,
.el-input__wrapper.is-focus input::placeholder {
  color: transparent !important;
  opacity: 0 !important;
}
/* 确保输入框文字正常显示（不受 placeholder 隐藏影响） */
.el-input__inner, .el-select__selected-item, .el-select__placeholder span {
  color: var(--sm-text-1) !important;
  opacity: 1 !important;
  font-size: inherit !important;
}

/* ============================================================
   UI 精修：选中行高亮 + 文字对比色 + 删除重复会员入口
   ============================================================ */

/* ---------- 1. 单颗匹配选中行高亮（点击竞品行时蓝紫高亮） ---------- */
.el-table__body tr.current-row > td,
.el-table__body tr.current-row {
  background: rgba(99, 102, 241, 0.12) !important;
  color: #4f46e5 !important;
  font-weight: 600;
}
.el-table__body tr.current-row:hover > td,
.el-table__body tr.current-row:hover {
  background: rgba(99, 102, 241, 0.18) !important;
}
/* 选中行的单元格内容加粗 */
.el-table__body tr.current-row .cell,
.el-table__body tr.current-row .el-table__cell {
  color: #4338ca !important;
  font-weight: 600;
}

/* ---------- 2. 联系我/会员中心文字颜色（白底配深字） ---------- */
/* 联系我弹窗内容 */
.contact-content, [class*="contact"] p, [class*="contact"] div,
.el-dialog:has(.contact-content) .el-dialog__body {
  color: #1e293b !important;
}
.contact-content * { color: inherit; }

/* 联系我界面：径向渐变光晕背景 + 固定装饰性旋转光斑 */
.el-dialog:has(.contact-content),
.el-dialog:has(.contact-content) .el-dialog__body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.el-dialog:has(.contact-content) .el-dialog__header {
  background: transparent !important;
  border-bottom: 1px solid rgba(99, 102, 241, 0.12) !important;
}
.contact-content {
  position: relative;
  border-radius: 18px !important;
  padding: 28px 32px !important;
  overflow: hidden;
  background:
    radial-gradient(700px 500px at 0% 0%, rgba(99, 102, 241, 0.18) 0%, transparent 55%),
    radial-gradient(600px 450px at 100% 100%, rgba(56, 189, 248, 0.16) 0%, transparent 55%),
    radial-gradient(450px 350px at 50% 50%, rgba(139, 92, 246, 0.10) 0%, transparent 60%),
    #ffffff !important;
}
/* 固定装饰性旋转光斑 */
.contact-content::before {
  content: '';
  position: fixed;
  top: -180px;
  right: -160px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    rgba(99, 102, 241, 0.10),
    rgba(56, 189, 248, 0.08),
    rgba(139, 92, 246, 0.10),
    rgba(99, 102, 241, 0.10));
  filter: blur(40px);
  animation: sm-spin 18s linear infinite;
  pointer-events: none;
  z-index: 0;
}
.contact-content > * {
  position: relative;
  z-index: 1;
}
@keyframes sm-spin { to { transform: rotate(360deg); } }

/* 隐私政策弹窗：径向渐变光晕背景 + 固定装饰性旋转光斑 */
.el-dialog:has(.privacy-content),
.el-dialog:has(.privacy-content) .el-dialog__body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.el-dialog:has(.privacy-content) .el-dialog__header {
  background: transparent !important;
  border-bottom: 1px solid rgba(99, 102, 241, 0.12) !important;
}
.privacy-content {
  position: relative;
  border-radius: 18px !important;
  padding: 28px 32px !important;
  overflow: hidden;
  color: #1e293b !important;
  background:
    radial-gradient(700px 500px at 0% 0%, rgba(99, 102, 241, 0.18) 0%, transparent 55%),
    radial-gradient(600px 450px at 100% 100%, rgba(56, 189, 248, 0.16) 0%, transparent 55%),
    radial-gradient(450px 350px at 50% 50%, rgba(139, 92, 246, 0.10) 0%, transparent 60%),
    #ffffff !important;
}
.privacy-content::before {
  content: '';
  position: fixed;
  top: -180px;
  right: -160px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    rgba(99, 102, 241, 0.10),
    rgba(56, 189, 248, 0.08),
    rgba(139, 92, 246, 0.10),
    rgba(99, 102, 241, 0.10));
  filter: blur(40px);
  animation: sm-spin 18s linear infinite;
  pointer-events: none;
  z-index: 0;
}
.privacy-content > * {
  position: relative;
  z-index: 1;
}

/* 主界面背景：径向渐变光晕（左上蓝紫 + 右下天蓝 + 中央淡紫）+ 旋转光斑 */
.home-view {
  position: relative;
  min-height: 100vh;
  background:
    radial-gradient(900px 700px at 0% 0%, rgba(99, 102, 241, 0.12) 0%, transparent 55%),
    radial-gradient(800px 600px at 100% 100%, rgba(56, 189, 248, 0.10) 0%, transparent 55%),
    radial-gradient(600px 450px at 50% 50%, rgba(139, 92, 246, 0.06) 0%, transparent 60%),
    #ffffff !important;
  overflow: hidden;
}
.home-view::after {
  content: '';
  position: absolute;
  top: -160px;
  right: -140px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    rgba(99, 102, 241, 0.12),
    rgba(56, 189, 248, 0.10),
    rgba(139, 92, 246, 0.12),
    rgba(99, 102, 241, 0.12));
  filter: blur(45px);
  animation: sm-spin 22s linear infinite;
  pointer-events: none;
  z-index: 0;
}
.home-view > * {
  position: relative;
  z-index: 1;
}

/* 批量匹配界面背景：径向渐变光晕（覆盖原白底卡片）+ 旋转光斑 */
.batch-card {
  background:
    radial-gradient(700px 500px at 0% 0%, rgba(99, 102, 241, 0.12) 0%, transparent 55%),
    radial-gradient(600px 450px at 100% 100%, rgba(56, 189, 248, 0.10) 0%, transparent 55%),
    radial-gradient(450px 350px at 50% 50%, rgba(139, 92, 246, 0.06) 0%, transparent 60%),
    var(--sm-bg-1) !important;
  overflow: hidden;
  position: relative;
}
.batch-card::after {
  content: '';
  position: absolute;
  top: -160px;
  right: -140px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    rgba(99, 102, 241, 0.12),
    rgba(56, 189, 248, 0.10),
    rgba(139, 92, 246, 0.12),
    rgba(99, 102, 241, 0.12));
  filter: blur(45px);
  animation: sm-spin 22s linear infinite;
  pointer-events: none;
  z-index: 0;
}
.batch-card > * {
  position: relative;
  z-index: 1;
}

/* 会员中心所有文字深色可读 */
.profile-page, [data-v-57c8f478], .profile-card, .info-grid, .info-item,
.member-center, .member-page, .user-center {
  color: #1e293b !important;
}
.profile-card label, .info-item label {
  color: #64748b !important;
  font-size: 13px;
  font-weight: 500;
}
.profile-card span, .info-item span, .info-item p {
  color: #1e293b !important;
  font-weight: 500;
  font-size: 14px;
}
/* 邀请码大字 */
.invite-code p, [class*="invite"] p, .invite-code code {
  color: #6366f1 !important;
  font-size: 28px;
  font-weight: 700;
}

/* ---------- 3. 隐藏重复的 VIP 会员标签（保留用户名即可进入会员中心） ---------- */
.vip-tag {
  display: none !important;
}
/* 用户名按钮样式（已通过 .user-name / user-email 处理，确保可见） */
.user-email {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 20px;
  background: var(--sm-grad) !important;
  border: none;
  color: #ffffff !important;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.25);
  transition: all .25s ease;
}
.user-email:hover {
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.35);
  transform: translateY(-1px);
}

/* ============================================================
   UI 精修 v4：隐私政策黑字 + 按钮玻璃悬停 + 彩色进度条
   ============================================================ */

/* ---------- 1. 隐私政策文字黑色 ---------- */
.privacy-content,
.privacy-content p,
.privacy-content div,
.privacy-content span,
[class*="privacy"] .el-dialog__body {
  color: #1e293b !important;
}
.privacy-content { line-height: 1.8; font-size: 14px; }
.privacy-content * { color: #1e293b !important; white-space: pre-wrap; }

/* ---------- 2. benchmark / 批量匹配 主按钮玻璃悬停效果 ---------- */
.el-button--primary {
  background: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  color: #0c4a6e !important;
  font-weight: 600;
  letter-spacing: 0.3px;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255,255,255,0.5) !important;
  backdrop-filter: blur(6px);
  transition: all .3s cubic-bezier(.4,0,.2,1);
}
.el-button--primary:hover {
  background: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  color: #fff !important;
  border-color: transparent !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255,255,255,0.35) !important;
  filter: brightness(1.05);
}
.el-button--primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3) !important;
}
/* 主页搜索 / benchmark / 批量匹配 三个主按钮保持圆润玻璃感 */
.app-header .el-button--primary,
.control-bar .el-button--primary,
.home .el-button--primary {
  border-radius: 22px;
  padding: 9px 22px;
}

/* ---------- 3. 批量匹配进度条：蓝紫粉橙多彩渐变 ---------- */
.el-progress-bar__outer {
  background: #eef2ff !important;
  border-radius: 99px;
  overflow: hidden;
}
.el-progress-bar__inner {
  background: linear-gradient(90deg, #38bdf8 0%, #6366f1 30%, #8b5cf6 60%, #ec4899 85%, #f59e0b 100%) !important;
  border-radius: 99px;
  box-shadow: 0 0 10px rgba(139, 92, 246, 0.5);
  transition: width .3s ease;
}

/* ============================================================
   Neomorphism UI Enhancement
   会员中心 / 管理员后台 / 返回主界面按钮
   参考 Neomorphism Style Guide (蓝紫渐变 + 液态玻璃)
   ============================================================ */

/* ---------- 1. 返回主界面按钮（渐变玻璃胶囊，核心美化） ---------- */
.back-btn, .back-to-main, .return-btn, .go-home,
[class*="back"], [class*="return"], [class*="go-home"],
.member-center .el-button:not(.el-button--primary):not(.el-button--danger),
.admin-page .el-button:not(.el-button--primary):not(.el-button--danger),
.profile-page .el-button:not(.el-button--primary):not(.el-button--danger) {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 11px 26px;
  border-radius: 22px;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.3px;
  color: #ffffff !important;
  background: linear-gradient(95deg, #6366f1 0%, #8b5cf6 50%, #a78bfa 100%) !important;
  border: none !important;
  box-shadow:
    0 2px 10px rgba(99, 102, 241, 0.35),
    0 4px 16px rgba(139, 92, 246, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    inset 0 -1px 0 rgba(99, 102, 241, 0.15) !important;
  backdrop-filter: blur(10px) saturate(150%);
  -webkit-backdrop-filter: blur(10px) saturate(150%);
  transition: all .35s cubic-bezier(.4, 0, .2, 1);
  overflow: hidden;
  cursor: pointer;
}
/* 内嵌高光条 */
.back-btn::before, .back-to-main::before, .return-btn::before,
.go-home::before, [class*="back"]::before, [class*="return"]::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 22px 22px 50% 50%;
  pointer-events: none;
  z-index: 1;
}
/* 图标/文字层 */
.back-btn span, .back-to-main span, .return-btn span,
.go-home span, [class*="back"] > *, [class*="return"] > * {
  position: relative;
  z-index: 2;
  color: #ffffff !important;
}
/* 悬停：渐变切换 + 上浮 + 发光 */
.back-btn:hover, .back-to-main:hover, .return-btn:hover,
.go-home:hover, [class*="back"]:hover, [class*="return"]:hover {
  transform: translateY(-3px) scale(1.03);
  background: linear-gradient(95deg, #818cf8 0%, #a78bfa 40%, #38bdf8 80%, #6ee7b7 100%) !important;
  box-shadow:
    0 6px 24px rgba(99, 102, 241, 0.45),
    0 12px 32px rgba(139, 92, 246, 0.35),
    0 0 28px rgba(129, 140, 248, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    inset 0 -1px 0 rgba(99, 102, 241, 0.1) !important;
  filter: brightness(1.08);
}
/* 点击反馈 */
.back-btn:active, .back-to-main:active, .return-btn:active,
.go-home:active, [class*="back"]:active, [class*="return"]:active {
  transform: translateY(-1px) scale(0.98);
  box-shadow:
    0 2px 8px rgba(99, 102, 241, 0.3),
    inset 0 2px 4px rgba(99, 102, 241, 0.15) !important;
}

/* ---------- 2. 会员中心页面整体容器 ---------- */
.member-center, .member-page, .user-center, .profile-page {
  position: relative;
  min-height: 100vh;
  background:
    radial-gradient(900px 600px at 10% -10%, rgba(99, 102, 241, 0.08) 0%, transparent 50%),
    radial-gradient(700px 500px at 90% 110%, rgba(56, 189, 248, 0.06) 0%, transparent 50%),
    radial-gradient(500px 400px at 50% 50%, rgba(139, 92, 246, 0.04) 0%, transparent 50%),
    var(--sm-bg-0) !important;
  color: #1e293b !important;
  padding: 30px 20px;
  overflow-x: hidden;
}
/* 装饰性背景光斑 */
.member-center::before, .member-page::before, .user-center::before, .profile-page::before {
  content: '';
  position: fixed;
  top: -200px; right: -150px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(99, 102, 241, 0.07) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.member-center::after, .member-page::after, .user-center::after, .profile-page::after {
  content: '';
  position: fixed;
  bottom: -200px; left: -150px;
  width: 450px; height: 450px;
  background: radial-gradient(circle, rgba(56, 189, 248, 0.06) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* ---------- 3. 会员中心卡片（液态玻璃） ---------- */
.member-center .el-card, .member-page .el-card, .user-center .el-card, .profile-page .el-card,
[data-v-57c8f478] .el-card, .info-grid > div, .info-item {
  position: relative;
  background: rgba(255, 255, 255, 0.82) !important;
  backdrop-filter: blur(18px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(160%) !important;
  border: 1px solid rgba(255, 255, 255, 0.9) !important;
  border-radius: 18px !important;
  box-shadow:
    0 4px 20px rgba(0, 0, 0, 0.05),
    0 8px 32px rgba(99, 102, 241, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.8) !important;
  color: #1e293b !important;
  transition: all .35s cubic-bezier(.4, 0, .2, 1);
  overflow: hidden;
}
/* 会员中心根容器：平铺整个界面，不再挤在中间一小块 */
.profile-card {
  position: relative;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 32px 40px !important;
  min-height: calc(100vh - 64px);
  display: flex;
  flex-direction: column;
  gap: 28px;
  background:
    radial-gradient(900px 700px at 0% 0%, rgba(99, 102, 241, 0.12) 0%, transparent 55%),
    radial-gradient(800px 600px at 100% 100%, rgba(56, 189, 248, 0.10) 0%, transparent 55%),
    radial-gradient(600px 450px at 50% 50%, rgba(139, 92, 246, 0.06) 0%, transparent 60%),
    #ffffff !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow: hidden;
  z-index: 1;
}
/* 会员中心：固定装饰性旋转光斑 */
.profile-card::after {
  content: '';
  position: absolute;
  top: -160px;
  right: -140px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    rgba(99, 102, 241, 0.12),
    rgba(56, 189, 248, 0.10),
    rgba(139, 92, 246, 0.12),
    rgba(99, 102, 241, 0.12));
  filter: blur(45px);
  animation: sm-spin 22s linear infinite;
  pointer-events: none;
  z-index: 0;
}
.profile-card > * {
  position: relative;
  z-index: 1;
}
/* 会员中心内部各区块平铺 */
.profile-card .profile-head,
.profile-card .info-grid,
.profile-card .referral-section,
.profile-card .renew-section {
  width: 100% !important;
  max-width: none !important;
}
/* 去掉独立的"我的邀请码"大区域（邀请码已包含在信息网格中） */
.profile-card .invite-section {
  display: none !important;
}
/* 会员中心头部：返回按钮 + 标题 横向排列 */
.profile-card .profile-head {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(99, 102, 241, 0.1);
}
.profile-card .profile-head h3 {
  font-size: 26px;
  font-weight: 800;
  background: var(--sm-grad-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0;
  letter-spacing: 0.5px;
}
/* 会员中心信息网格：固定 2 列，形成 4 行 2 列 */
.profile-card .info-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 20px !important;
  padding: 0 !important;
}
/* 会员状态格子（第 6 项）："会员状态"标签左对齐，仅"会员"标签居中 */
.profile-card .info-grid > div:nth-child(6) {
  align-items: flex-start !important;
  text-align: left !important;
}
.profile-card .info-grid > div:nth-child(6) > span {
  width: 100% !important;
  text-align: center !important;
}
/* 邀请记录标题与提示同行 */
.profile-card .referral-section h4 {
  display: inline-block !important;
  margin-right: 12px !important;
  vertical-align: middle;
}
/* 邀请记录右侧橙色高亮提示（小一号） */
.profile-card .referral-section .referral-tip {
  display: inline-block !important;
  vertical-align: middle;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #f59e0b !important;
  letter-spacing: 0.2px;
}
.member-center .el-card:hover, .member-page .el-card:hover,
.user-center .el-card:hover, .profile-page .el-card:hover {
  transform: translateY(-3px);
  box-shadow:
    0 8px 30px rgba(0, 0, 0, 0.08),
    0 16px 40px rgba(99, 102, 241, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(99, 102, 241, 0.15) !important;
}
/* 卡片头部 */
.member-center .el-card__header, .member-page .el-card__header,
.user-center .el-card__header, .profile-page .el-card__header {
  background: transparent !important;
  border-bottom: 1px solid rgba(236, 240, 245, 0.8) !important;
  padding: 18px 22px;
  font-weight: 700;
  font-size: 16px;
  color: #1e293b !important;
  display: flex;
  align-items: center;
  gap: 10px;
}
/* 卡片头部图标装饰 */
.member-center .el-card__header::before, .profile-page .el-card__header::before {
  content: '';
  width: 4px; height: 20px;
  background: var(--sm-grad);
  border-radius: 4px;
  flex-shrink: 0;
}

/* ---------- 4. 会员信息网格（精致两列布局） ---------- */
.info-grid, .info-list, .member-info, .user-info-section {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
  padding: 8px;
}
.info-item, .info-row, .member-info-item {
  background: rgba(248, 250, 252, 0.7) !important;
  border: 1px solid rgba(232, 236, 242, 0.8) !important;
  border-radius: 14px !important;
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: all .25s ease;
}
.info-item:hover, .info-row:hover, .member-info-item:hover {
  background: rgba(248, 250, 252, 1) !important;
  border-color: rgba(99, 102, 241, 0.2) !important;
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.08);
  transform: translateY(-2px);
}
.info-item label, .info-row label, .member-info-item label,
.profile-card label {
  color: #94a3b8 !important;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}
.info-item span, .info-row span, .member-info-item span,
.profile-card span, .info-item p, .info-item .value {
  color: #1e293b !important;
  font-size: 15px;
  font-weight: 600;
}

/* ---------- 5. 会员状态标签（VIP / 到期时间） ---------- */
.profile-page .el-tag,
.member-center .el-tag, .member-page .el-tag,
.user-center .el-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 16px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  border: 1px solid transparent !important;
}
/* VIP 有效标签（绿色发光） */
.profile-page .el-tag--warning, .member-center .el-tag--warning,
.profile-page .el-tag--success, .member-center .el-tag--success {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.12), rgba(74, 222, 128, 0.08)) !important;
  color: #166534 !important;
  border-color: rgba(134, 239, 172, 0.4) !important;
  box-shadow: 0 2px 8px rgba(34, 197, 94, 0.15), inset 0 1px 0 rgba(255,255,255,0.6);
}
/* 非会员标签（info 蓝灰） */
.profile-page .el-tag--info, .member-center .el-tag--info {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(56, 189, 248, 0.1)) !important;
  color: #4f46e5 !important;
  border-color: rgba(99, 102, 241, 0.2) !important;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.1), inset 0 1px 0 rgba(255,255,255,0.6);
}

/* ---------- 6. 邀请码区域（大字高亮展示） ---------- */
.invite-code, [class*="invite"] {
  position: relative;
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.05), rgba(56, 189, 248, 0.05)) !important;
  border: 1px dashed rgba(99, 102, 241, 0.3) !important;
  border-radius: 16px !important;
  padding: 24px !important;
  text-align: center;
  overflow: hidden;
}
/* 邀请码文本（确保可见，使用实色渐变蓝紫，不透明） */
.invite-code .code, [class*="invite"] .code,
.invite-code p, [class*="invite"] p {
  position: relative;
  z-index: 2;
  color: #4338ca !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  letter-spacing: 3px;
  font-family: "SF Mono", "Monaco", "Cascadia Code", "Roboto Mono", monospace;
}

/* ---------- 7. 管理员后台 Dashboard 风格 ---------- */
/* 后台根容器（实际类名：page > admin-card > admin-head） */
.admin-card {
  position: relative;
  min-height: calc(100vh - 48px);
  background:
    radial-gradient(800px 500px at 0% 0%, rgba(99, 102, 241, 0.06) 0%, transparent 50%),
    radial-gradient(600px 400px at 100% 100%, rgba(56, 189, 248, 0.05) 0%, transparent 50%),
    var(--sm-bg-1) !important;
  color: #1e293b !important;
  border-radius: 20px !important;
  border: 1px solid rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8) !important;
  padding: 28px 32px;
  margin: 24px;
  overflow: hidden;
}
/* 后台标题栏 */
.admin-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(226, 232, 240, 0.8);
}
.admin-head h3 {
  font-size: 22px;
  font-weight: 800;
  background: var(--sm-grad-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0;
}
/* 后台侧栏（如果有） */
.admin-card .el-aside, .admin-card .sidebar {
  background: rgba(255, 255, 255, 0.6) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  border-right: 1px solid rgba(226, 232, 240, 0.8) !important;
}
/* 后台卡片/面板（el-card 内部） */
.admin-card .el-card {
  position: relative;
  background: rgba(255, 255, 255, 0.82) !important;
  backdrop-filter: blur(16px) saturate(150%) !important;
  border: 1px solid rgba(255, 255, 255, 0.9) !important;
  border-radius: 18px !important;
  box-shadow:
    0 4px 16px rgba(0, 0, 0, 0.04),
    0 8px 24px rgba(99, 102, 241, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.8) !important;
  overflow: hidden;
  transition: all .3s ease;
}
.admin-card .el-card:hover {
  transform: translateY(-2px);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.06),
    0 16px 36px rgba(99, 102, 241, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
}
/* 后台表格增强 */
.admin-card .el-table {
  border-radius: 14px !important;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
}
.admin-card .el-table th.el-table__cell {
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%) !important;
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: #64748b !important;
  border-bottom: 2px solid rgba(99, 102, 241, 0.1) !important;
}
/* 后台操作按钮行 */
.admin-card [class*="action"], .admin-card [class*="tool"], .admin-card .toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  background: rgba(248, 250, 252, 0.8);
  border-radius: 14px;
  border: 1px solid rgba(226, 232, 240, 0.8);
  margin-bottom: 16px;
}

/* ---------- 8. 页面标题区域（渐变文字 + 副标题） ---------- */
.page-title, .section-title, .center-title,
.member-center h1, .member-page h1, .user-center h1, .profile-page h1,
.admin-card h1, .admin-card h3 {
  font-size: 26px;
  font-weight: 800;
  background: var(--sm-grad-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 6px;
  letter-spacing: 0.5px;
}
.page-subtitle, .section-desc, .center-subtitle,
.member-center h2, .member-page h2, .user-center h2, .profile-page h2 {
  font-size: 14px;
  color: #94a3b8 !important;
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 24px;
}

/* ---------- 9. Tab 切换器美化 ---------- */
.member-center .el-tabs,
.profile-page .el-tabs, .admin-card .el-tabs {
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.6);
  padding: 16px 20px 0;
  backdrop-filter: blur(10px);
}
.member-center .el-tabs__item, .admin-card .el-tabs__item {
  font-weight: 600;
  font-size: 14px;
  padding: 0 20px;
  height: 42px;
  line-height: 42px;
  border-radius: 10px;
  transition: all .25s ease;
}
.member-center .el-tabs__item.is-active, .admin-card .el-tabs__item.is-active {
  background: var(--sm-grad) !important;
  color: #fff !important;
  box-shadow: 0 3px 10px rgba(99, 102, 241, 0.3);
}
.member-center .el-tabs__item:hover:not(.is-active),
.admin-card .el-tabs__item:hover:not(.is-active) {
  background: var(--sm-primary-soft) !important;
  color: var(--sm-primary) !important;
}
.member-center .el-tabs__active-bar, .admin-card .el-tabs__active-bar {
  display: none;
}

/* ---------- 10. 分页器美化 ---------- */
.member-center .el-pagination, .admin-card .el-pagination,
.profile-page .el-pagination {
  display: flex;
  justify-content: center;
  padding: 16px 0;
  gap: 6px;
}
.member-center .el-pager li, .admin-card .el-pager li {
  min-width: 36px; height: 36px;
  line-height: 36px;
  border-radius: 10px;
  font-weight: 600;
  border: 1px solid var(--el-border-color) !important;
  background: #fff !important;
  transition: all .25s ease;
}
.member-center .el-pager li.is-active, .admin-card .el-pager li.is-active {
  background: var(--sm-grad) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 3px 10px rgba(99, 102, 241, 0.3);
}
.member-center .el-pager li:hover:not(.is-active),
.admin-card .el-pager li:hover:not(.is-active) {
  border-color: var(--sm-primary) !important;
  color: var(--sm-primary) !important;
  transform: translateY(-2px);
}

/* ===== 语言选择框前的地球图标 ===== */
.lang-select {
  position: relative;
}
.lang-select::before {
  content: "\1F310"; /* 🌐 地球图标 */
  position: absolute;
  left: 9px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  line-height: 1;
  pointer-events: none;
  z-index: 2;
  color: var(--sm-accent, #6366f1);
  opacity: 0.85;
}
.lang-select .el-select__wrapper {
  padding-left: 26px;
}

/* ===== 首页 批量匹配 / Benchmark 主按钮 ===== */
/* 已设为 Element Plus primary 按钮（与“搜索”按钮一致），悬停效果由原生 .el-button--primary:hover 提供，此处仅保证过渡平滑 */
.home-action-btn {
  transition: filter 0.18s ease, box-shadow 0.18s ease;
}
.home-action-btn:hover {
  filter: brightness(1.03);
}
/* 退出按钮（header，原 contact-btn 复用样式，这里仅确保基本间距） */
.logout-btn {
  margin-left: 0;
}

/* Benchmark 默认未使用状态降低透明度 */
.home-action-btn.benchmark-action { opacity: 1; transition: opacity .2s ease; }
.home-action-btn.benchmark-action.is-disabled { opacity: 0.4 !important; }
.home-action-btn.benchmark-action:hover:not(.is-disabled) { opacity: 1; }

/* header 内容贴合：logo、标题、副标题无间隙 */
.app-header .header-logo { margin: 0 !important; }
.app-header .title { margin: 0 !important; }
.app-header .subtitle { margin: 0 0 0 2px !important; }

/* 搜索/Benchmark 结果：竞争对手型号 与 替换料 改为黑色字（覆盖渐变文字场景） */
.part-tag.comp, .part-tag.tsc, .mfr-tag,
.result-header, .result-header * {
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  font-weight: 700;
}

/* ===== 强制：搜索/Benchmark 结果中的 竞争对手型号 与 替换料 黑字 ===== */
.part-tag.comp, .part-tag.tsc, .mfr-tag,
.result-header, .result-header *,
.part-tag, .part-tag * {
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  font-weight: 700 !important;
}
.vs { color: #111 !important; -webkit-text-fill-color: #111 !important; }

/* ===== 全站按钮统一：默认色与悬停效果 与 主界面「批量匹配」保持一致 ===== */
.el-button {
  background: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  color: #0c4a6e !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px !important;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255,255,255,0.5) !important;
  backdrop-filter: blur(6px);
  transition: all .3s cubic-bezier(.4,0,.2,1) !important;
}
.el-button:hover:not(.is-disabled) {
  background: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  color: #fff !important;
  border-color: transparent !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255,255,255,0.35) !important;
  filter: brightness(1.05);
}
/* 主按钮(primary)也保持同一视觉，避免双重定义冲突 */
.el-button--primary {
  background: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  color: #0c4a6e !important;
}
.el-button--primary:hover:not(.is-disabled) {
  background: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  color: #fff !important;
  border-color: transparent !important;
}

/* 隐私政策：不使用统一按钮色调，恢复普通文字链接样式 */
.footer-link.el-button, button.footer-link {
  background: none !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  color: var(--sm-text-2, #64748b) !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  padding: 0 !important;
  transform: none !important;
  transition: color .2s ease !important;
}
.footer-link.el-button:hover, button.footer-link:hover,
a.footer-link:hover, a.footer-link:active, a.footer-link:focus {
  background: none !important;
  background-image: none !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--sm-text-2, #64748b) !important;
  -webkit-text-fill-color: var(--sm-text-2, #64748b) !important;
  text-decoration: none !important;
  transform: none !important;
  filter: none !important;
}

/* ===== 椭圆形状：联系我 / 退出 / 关闭 / 批量匹配界面批量匹配 / 续订会员等 与主界面批量匹配一致 ===== */
.el-button:not(.el-button--mini):not(.el-button--small):not(.el-dialog__headerbtn):not(.footer-link):not(.is-circle):not(.el-button--text) {
  border-radius: 22px !important;
}
/* 批量匹配界面内的主按钮同样椭圆 */
.batch-card .el-button--primary,
.form-actions .el-button,
.home-action-btn {
  border-radius: 22px !important;
}

/* 登录/注册 按钮：大小、颜色、悬停 与「联系我」(contact-btn) 完全一致 */
.login-btn.el-button {
  border-radius: 22px !important;     /* 去掉 round 药丸，改椭圆 */
  padding: 9px 22px !important;       /* 去掉 size=small 的小内边距 */
  font-size: 14px !important;         /* 去掉 small 小字号 */
  height: auto !important;
  min-height: 0 !important;
  line-height: 1.4 !important;
  /* 颜色与悬停沿用全站统一规则（淡蓝默认 + 斜向蓝紫橙红渐变悬停），此处仅修正尺寸/形状 */
}

/* 登录/注册 按钮：与「联系我」(contact-btn, is-text) 完全一致 —— 透明底 + 蓝紫渐变文字 */
.app-header .el-button.login-btn,
.el-button.login-btn {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  background-image: linear-gradient(95deg, #6366f1, #38bdf8) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  border-radius: 22px !important;
  padding: 9px 22px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  height: auto !important;
  box-shadow: none !important;
}

/* 登录/注册 与「联系我」(is-text) 完全一致：透明底 + 蓝紫渐变文字 + 椭圆 */
.el-button.login-btn.el-button--small.is-round {
  background-color: transparent !important;
  background-image: linear-gradient(95deg, #6366f1, #38bdf8) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  border: none !important;
  border-radius: 22px !important;
  padding: 9px 22px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  height: auto !important;
  box-shadow: none !important;
}
/* 退出按钮：未登录(data-auth!=1) 隐藏 */
html:not([data-auth="1"]) .logout-btn { display: none !important; }

/* 登录/注册 = 联系我：透明底 + primary 文字 + 椭圆（特异性压过全站白底规则） */
/* 登录/注册 完全复制「联系我」：透明底 + 蓝紫字 + 天蓝边框 + 淡蓝发光 + 椭圆 */
html body .el-button.login-btn.el-button--small.is-round,
html body .el-button.login-btn {
  background-color: transparent !important;
  background-image: none !important;
  color: var(--sm-primary) !important;
  -webkit-text-fill-color: var(--sm-primary) !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  border-radius: 22px !important;
  padding: 9px 22px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  height: auto !important;
  box-shadow: rgba(56, 189, 248, 0.25) 0px 2px 10px 0px !important;
}


/* ===== v12 修复：弹窗遮罩层被 .profile-card > * 等规则的 position:relative 覆盖，导致 fixed 失效、弹窗掉到文档流底部 ===== */
.el-overlay {
  position: fixed !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
}


/* ===== v13 修复1：el-message 提示条在暗色变量下背景深、文字深导致不可读 ===== */
.el-message {
  background: #ffffff !important;
  background-color: #ffffff !important;
  border: 1px solid rgba(99, 102, 241, 0.18) !important;
  border-radius: 10px !important;
  box-shadow: 0 6px 24px rgba(15, 23, 42, 0.14) !important;
  color: #1e293b !important;
}
.el-message .el-message__content {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}
.el-message--success {
  background: #f0fdf4 !important;
  background-color: #f0fdf4 !important;
  border-color: rgba(34, 197, 94, 0.35) !important;
}
.el-message--success .el-message__content {
  color: #15803d !important;
  -webkit-text-fill-color: #15803d !important;
}
.el-message--error {
  background: #fef2f2 !important;
  background-color: #fef2f2 !important;
  border-color: rgba(239, 68, 68, 0.35) !important;
}
.el-message--error .el-message__content {
  color: #b91c1c !important;
  -webkit-text-fill-color: #b91c1c !important;
}
.el-message--warning {
  background: #fffbeb !important;
  background-color: #fffbeb !important;
  border-color: rgba(245, 158, 11, 0.35) !important;
}
.el-message--warning .el-message__content {
  color: #b45309 !important;
  -webkit-text-fill-color: #b45309 !important;
}

/* ===== v13 修复2：登录/注册 与 联系我 完全一致（同一条规则同时选中两者，物理保证不发散） ===== */
html body .el-button.contact-btn,
html body .el-button.login-btn {
  font-family: Arial !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px !important;
  line-height: 1 !important;
  color: var(--sm-primary) !important;
  -webkit-text-fill-color: var(--sm-primary) !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  border-radius: 22px !important;
  padding: 9px 18px !important;
  height: 32px !important;
  min-height: 32px !important;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
  transition: all 0.25s ease !important;
}
html body .el-button.contact-btn:hover,
html body .el-button.login-btn:hover,
html body .el-button.contact-btn:focus,
html body .el-button.login-btn:focus,
html body .el-button.contact-btn:active,
html body .el-button.login-btn:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}


/* ===== v14 修复：选择器特异性升级到 (0,4,2) 压过历史遗留的 .el-button.login-btn.el-button--small.is-round 旧规则 ===== */
html body .el-button.contact-btn,
html body .el-button.login-btn,
html body .el-button.login-btn.el-button--small,
html body .el-button.login-btn.el-button--small.is-round {
  font-family: Arial !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px !important;
  line-height: 1 !important;
  color: var(--sm-primary) !important;
  -webkit-text-fill-color: var(--sm-primary) !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  border-radius: 22px !important;
  padding: 9px 18px !important;
  height: 32px !important;
  min-height: 32px !important;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
  transition: all 0.25s ease !important;
}
html body .el-button.contact-btn:hover,
html body .el-button.login-btn:hover,
html body .el-button.login-btn.el-button--small:hover,
html body .el-button.login-btn.el-button--small.is-round:hover,
html body .el-button.contact-btn:focus,
html body .el-button.login-btn:focus,
html body .el-button.login-btn.el-button--small.is-round:focus,
html body .el-button.contact-btn:active,
html body .el-button.login-btn:active,
html body .el-button.login-btn.el-button--small.is-round:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}


/* ===== v15 修复：el-alert 提示条在暗色变量下背景近黑、文字深色导致不可读 ===== */
.el-alert.is-light {
  border: 1px solid transparent !important;
}
.el-alert--success.is-light {
  background: #f0fdf4 !important;
  background-color: #f0fdf4 !important;
  border-color: rgba(34, 197, 94, 0.3) !important;
}
.el-alert--success .el-alert__title,
.el-alert--success .el-alert__description {
  color: #15803d !important;
  -webkit-text-fill-color: #15803d !important;
}
.el-alert--error.is-light {
  background: #fef2f2 !important;
  background-color: #fef2f2 !important;
  border-color: rgba(239, 68, 68, 0.3) !important;
}
.el-alert--error .el-alert__title,
.el-alert--error .el-alert__description {
  color: #b91c1c !important;
  -webkit-text-fill-color: #b91c1c !important;
}
.el-alert--warning.is-light {
  background: #fffbeb !important;
  background-color: #fffbeb !important;
  border-color: rgba(245, 158, 11, 0.3) !important;
}
.el-alert--warning .el-alert__title,
.el-alert--warning .el-alert__description {
  color: #b45309 !important;
  -webkit-text-fill-color: #b45309 !important;
}
.el-alert--info.is-light {
  background: #eff6ff !important;
  background-color: #eff6ff !important;
  border-color: rgba(59, 130, 246, 0.3) !important;
}
.el-alert--info .el-alert__title,
.el-alert--info .el-alert__description {
  color: #1d4ed8 !important;
  -webkit-text-fill-color: #1d4ed8 !important;
}


/* ===== v17 终极修复：选择器升级到 (0,4,2) 压过 .app-header .el-button.login-btn (0,3,0) 旧"渐变文字"规则 ===== */
html body .app-header .el-button.contact-btn,
html body .app-header .el-button.login-btn,
html body .app-header .el-button.login-btn.el-button--small,
html body .app-header .el-button.login-btn.el-button--small.is-round {
  font-family: Arial !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px !important;
  line-height: 1 !important;
  color: var(--sm-primary) !important;
  -webkit-text-fill-color: var(--sm-primary) !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  -webkit-background-clip: padding-box !important;
  background-clip: padding-box !important;
  -webkit-text-fill-color: var(--sm-primary) !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  border-radius: 22px !important;
  padding: 9px 18px !important;
  height: 32px !important;
  min-height: 32px !important;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
  transition: all 0.25s ease !important;
}
html body .app-header .el-button.contact-btn:hover,
html body .app-header .el-button.login-btn:hover,
html body .app-header .el-button.login-btn.el-button--small:hover,
html body .app-header .el-button.login-btn.el-button--small.is-round:hover,
html body .app-header .el-button.contact-btn:focus,
html body .app-header .el-button.login-btn:focus,
html body .app-header .el-button.login-btn.el-button--small.is-round:focus,
html body .app-header .el-button.contact-btn:active,
html body .app-header .el-button.login-btn:active,
html body .app-header .el-button.login-btn.el-button--small.is-round:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}


/* ===== v18：header 区域所有按钮文字默认黑色，悬停/焦点/按下白色（保留天蓝渐变底与彩虹悬停底） ===== */
html body .app-header .el-button.contact-btn,
html body .app-header .el-button.login-btn,
html body .app-header .el-button.login-btn.el-button--small,
html body .app-header .el-button.login-btn.el-button--small.is-round,
html body .app-header .el-button.logout-btn,
html body .app-header .el-button.header-vip-btn,
html body .app-header .el-button.data-info,
html body .app-header .el-button--primary,
html body .app-header .el-button {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  -webkit-background-clip: padding-box !important;
  background-clip: padding-box !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  border-radius: 22px !important;
  padding: 9px 18px !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
  transition: all 0.25s ease !important;
}
html body .app-header .el-button.contact-btn:hover,
html body .app-header .el-button.login-btn:hover,
html body .app-header .el-button.login-btn.el-button--small:hover,
html body .app-header .el-button.login-btn.el-button--small.is-round:hover,
html body .app-header .el-button.logout-btn:hover,
html body .app-header .el-button.header-vip-btn:hover,
html body .app-header .el-button.data-info:hover,
html body .app-header .el-button--primary:hover,
html body .app-header .el-button:hover,
html body .app-header .el-button.contact-btn:focus,
html body .app-header .el-button.login-btn:focus,
html body .app-header .el-button.login-btn.el-button--small.is-round:focus,
html body .app-header .el-button.logout-btn:focus,
html body .app-header .el-button.header-vip-btn:focus,
html body .app-header .el-button.data-info:focus,
html body .app-header .el-button--primary:focus,
html body .app-header .el-button:focus,
html body .app-header .el-button.contact-btn:active,
html body .app-header .el-button.login-btn:active,
html body .app-header .el-button.login-btn.el-button--small.is-round:active,
html body .app-header .el-button.logout-btn:active,
html body .app-header .el-button.header-vip-btn:active,
html body .app-header .el-button.data-info:active,
html body .app-header .el-button--primary:active,
html body .app-header .el-button:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}


/* ===== v19：全站所有 el-button 与"退出"统一：默认黑字+天蓝渐变底+蓝边椭圆，悬停白字+彩虹渐变 ===== */
/* 默认 */
html body .el-button,
html body .el-button.is-round,
html body .el-button.is-circle,
html body .el-button.el-button--default,
html body .el-button.el-button--small,
html body .el-button.el-button--large,
html body .el-button.el-button--primary,
html body .el-button.el-button--warning,
html body .el-button.el-button--success,
html body .el-button.el-button--info,
html body .app-header .el-button,
html body .app-header .el-button--primary,
html body .el-button.contact-btn,
html body .el-button.login-btn,
html body .el-button.logout-btn,
html body .el-button.header-vip-btn {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  -webkit-background-clip: padding-box !important;
  background-clip: padding-box !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  border-radius: 22px !important;
  padding: 9px 18px !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
  transition: all 0.25s ease !important;
}
/* 悬停 / 焦点 / 按下 */
html body .el-button:hover,
html body .el-button.is-round:hover,
html body .el-button.is-circle:hover,
html body .el-button.el-button--default:hover,
html body .el-button.el-button--small:hover,
html body .el-button.el-button--large:hover,
html body .el-button.el-button--primary:hover,
html body .el-button.el-button--warning:hover,
html body .el-button.el-button--success:hover,
html body .el-button.el-button--info:hover,
html body .app-header .el-button:hover,
html body .app-header .el-button--primary:hover,
html body .el-button.contact-btn:hover,
html body .el-button.login-btn:hover,
html body .el-button.logout-btn:hover,
html body .el-button.header-vip-btn:hover,
html body .el-button:focus,
html body .el-button.is-round:focus,
html body .el-button.is-circle:focus,
html body .el-button.el-button--default:focus,
html body .el-button.el-button--small:focus,
html body .el-button.el-button--large:focus,
html body .el-button.el-button--primary:focus,
html body .el-button.el-button--warning:focus,
html body .el-button.el-button--success:focus,
html body .el-button.el-button--info:focus,
html body .app-header .el-button:focus,
html body .app-header .el-button--primary:focus,
html body .el-button.contact-btn:focus,
html body .el-button.login-btn:focus,
html body .el-button.logout-btn:focus,
html body .el-button.header-vip-btn:focus,
html body .el-button:active,
html body .el-button.is-round:active,
html body .el-button.is-circle:active,
html body .el-button.el-button--default:active,
html body .el-button.el-button--small:active,
html body .el-button.el-button--large:active,
html body .el-button.el-button--primary:active,
html body .el-button.el-button--warning:active,
html body .el-button.el-button--success:active,
html body .el-button.el-button--info:active,
html body .app-header .el-button:active,
html body .app-header .el-button--primary:active,
html body .el-button.contact-btn:active,
html body .el-button.login-btn:active,
html body .el-button.logout-btn:active,
html body .el-button.header-vip-btn:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}


/* ===== v20 增补：覆盖 profile-card 组件 scoped 按钮 (data-v-d6c2c10a) 与 back-btn（带高 specificity） ===== */
html body .el-button.el-button--large.is-round[data-v-d6c2c10a],
html body .el-button.is-round[data-v-d6c2c10a],
html body .el-button.is-text.back-btn[data-v-d6c2c10a],
html body .el-button.back-btn[data-v-d6c2c10a] {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  -webkit-background-clip: padding-box !important;
  background-clip: padding-box !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  border-radius: 22px !important;
  padding: 9px 18px !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
  transition: all 0.25s ease !important;
}
html body .el-button.el-button--large.is-round[data-v-d6c2c10a]:hover,
html body .el-button.is-round[data-v-d6c2c10a]:hover,
html body .el-button.is-text.back-btn[data-v-d6c2c10a]:hover,
html body .el-button.back-btn[data-v-d6c2c10a]:hover,
html body .el-button.el-button--large.is-round[data-v-d6c2c10a]:focus,
html body .el-button.is-round[data-v-d6c2c10a]:focus,
html body .el-button.is-text.back-btn[data-v-d6c2c10a]:focus,
html body .el-button.back-btn[data-v-d6c2c10a]:focus,
html body .el-button.el-button--large.is-round[data-v-d6c2c10a]:active,
html body .el-button.is-round[data-v-d6c2c10a]:active,
html body .el-button.is-text.back-btn[data-v-d6c2c10a]:active,
html body .el-button.back-btn[data-v-d6c2c10a]:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}


/* ===== v21：兜底——改写白底规则 + 高 specificity 覆盖 ===== */
/* (a) 复制并扩展白底规则，让它不命中 .is-round / .back-btn（写在最末，specificity 更高） */

/* (b) 直接给目标按钮最简化、最高 specificity 覆盖（带 attr + 多 class） */
html body [data-v-d6c2c10a].el-button,
html body [data-v-d6c2c10a].el-button.el-button--large,
html body [data-v-d6c2c10a].el-button.el-button--large.is-round,
html body [data-v-d6c2c10a].el-button.is-round,
html body [data-v-d6c2c10a].el-button.is-text.back-btn,
html body [data-v-d6c2c10a].el-button.back-btn {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #7dd3fc, #bfdbfe) !important;
  -webkit-background-clip: padding-box !important;
  background-clip: padding-box !important;
  border: 1px solid rgba(56, 189, 248, 0.6) !important;
  border-radius: 22px !important;
  padding: 9px 18px !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 10px rgba(56, 189, 248, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
  transition: all 0.25s ease !important;
}
html body [data-v-d6c2c10a].el-button:hover,
html body [data-v-d6c2c10a].el-button.el-button--large:hover,
html body [data-v-d6c2c10a].el-button.el-button--large.is-round:hover,
html body [data-v-d6c2c10a].el-button.is-round:hover,
html body [data-v-d6c2c10a].el-button.is-text.back-btn:hover,
html body [data-v-d6c2c10a].el-button.back-btn:hover,
html body [data-v-d6c2c10a].el-button:focus,
html body [data-v-d6c2c10a].el-button.el-button--large:focus,
html body [data-v-d6c2c10a].el-button.el-button--large.is-round:focus,
html body [data-v-d6c2c10a].el-button.is-round:focus,
html body [data-v-d6c2c10a].el-button.is-text.back-btn:focus,
html body [data-v-d6c2c10a].el-button.back-btn:focus,
html body [data-v-d6c2c10a].el-button:active,
html body [data-v-d6c2c10a].el-button.el-button--large:active,
html body [data-v-d6c2c10a].el-button.el-button--large.is-round:active,
html body [data-v-d6c2c10a].el-button.is-round:active,
html body [data-v-d6c2c10a].el-button.is-text.back-btn:active,
html body [data-v-d6c2c10a].el-button.back-btn:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, #38bdf8, #8b5cf6, #fb923c, #ef4444) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.45), 0 0 22px rgba(239, 68, 68, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}


/* ============================================================
   v24 UI 精修（基于 v23 备份恢复）
   ============================================================ */

/* 图11：邀请码等高亮数字 → 金色高亮（用户要求"特别醒目"） */
.invite-code,
.invite-code .code,
.invite-code p,
.invite-code code,
.invite-section .code,
.invite-section p,
.invite-section code {
  background: linear-gradient(95deg, #f59e0b 0%, #fbbf24 50%, #f59e0b 100%) !important;
  background-size: 200% 200% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-weight: 900 !important;
  letter-spacing: 2px;
  filter: drop-shadow(0 1px 2px rgba(245, 158, 11, 0.3));
  animation: sm-title-shine 6s linear infinite;
}

/* 通用工具类（不自动应用，由 DOM 显式标记使用） */
.text-strong { color: #000000 !important; font-weight: 700 !important; }
.text-gold {
  background: linear-gradient(95deg, #f59e0b, #fbbf24);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
}
.text-purple { color: #7c3aed !important; font-weight: 700 !important; }
.text-orange {
  background: linear-gradient(95deg, #f97316, #ec4899);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
}

/* el-select 选项文字防截断（CSS 兜底） */
.el-select-dropdown__item {
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  padding-right: 28px !important;
}
.el-select-dropdown__list {
  min-width: max-content !important;
}
