/* ===== 样式保持不变 ===== */
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Noto Sans SC',sans-serif; background:linear-gradient(135deg,#faf7f2 0%,#f5f0e8 100%); min-height:100vh; color:#333; }
.login-container { min-height:100vh; display:grid; grid-template-columns:46fr 54fr; padding:0; }

/* 左：品牌面（深棕 + 细金线） */
.login-brand { position:relative; background:radial-gradient(120% 90% at 18% 10%,#6b4936 0%,#523528 46%,#3d271d 100%); color:#fff;
  padding:56px 52px; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.login-brand::before { content:''; position:absolute; inset:24px; border:1px solid rgba(201,169,110,.34); border-radius:2px; pointer-events:none; }
.lb-top { position:relative; z-index:1; }
.lb-mark { font-family:'Noto Serif SC',serif; font-size:52px; letter-spacing:.2em; line-height:1; color:#f0e3cb; font-weight:400; }
.lb-sub { margin-top:15px; font-size:11px; letter-spacing:.42em; color:#c9a96e; }
.lb-lead { margin-top:auto; margin-bottom:42px; position:relative; z-index:1; }
.lb-lead p { font-family:'Noto Serif SC',serif; font-size:25px; line-height:1.9; color:#f4ece0; letter-spacing:.03em; }
.lb-lead p em { font-style:normal; color:#e0cba8; }
.lb-meta { margin-top:20px; font-size:11.5px; letter-spacing:.18em; color:#a89684; }
.lb-feats { position:relative; z-index:1; display:flex; flex-direction:column; gap:18px; }
.lb-feats .feat { display:flex; align-items:center; gap:15px; }
.lb-feats .feat-ico { width:38px; height:38px; flex:0 0 38px; border:1px solid rgba(201,169,110,.34); border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:rgba(201,169,110,.07); color:#c9a96e; font-size:17px; }
.lb-feats .feat-ico svg { width:17px; height:17px; display:block; }
.lb-feats .feat-t { font-size:13px; letter-spacing:.08em; color:#efe4d6; }
.lb-feats .feat-d { font-size:11.5px; color:#a89684; margin-top:2px; }

/* 右：表单面 */
.login-panel { display:flex; align-items:center; justify-content:center; padding:48px 32px;
  background:radial-gradient(circle at 78% 18%, #fff 0%, #faf7f2 42%, #f3ede4 100%); }
.login-box { background:#fff; border-radius:16px; box-shadow:0 1px 2px rgba(43,33,28,.04), 0 8px 24px rgba(43,33,28,.07);
  width:100%; max-width:404px; padding:44px 40px 36px; position:relative; }
.login-box::before { content:''; position:absolute; top:0; left:40px; right:40px; height:2px; border-radius:2px;
  background:linear-gradient(90deg,transparent,#c9a96e,transparent); }
.lb-card-t { font-family:'Noto Serif SC',serif; font-size:22px; letter-spacing:.14em; text-align:center; color:#2b211c; }
.lb-card-s { margin-top:10px; font-size:12.5px; letter-spacing:.12em; color:#a3968c; text-align:center; }
.login-form { margin-top:34px; }
.login-form .el-form-item { margin-bottom:18px; }
.login-form .el-input__wrapper { background:#fdfbf8; border-radius:10px; box-shadow:none!important; border:1px solid #e6ded4;
  transition:all .24s cubic-bezier(.2,.6,.3,1); padding:0 14px; }
.login-form .el-input__wrapper:hover { border-color:#d8c9ae; }
.login-form .el-input__wrapper.is-focus { border-color:#b8945a; background:#fff; box-shadow:0 0 0 3px rgba(184,148,90,.13)!important; }
.login-form .el-input__inner { height:46px; font-size:14px; color:#2b211c; }
.login-btn { width:100%; height:48px; border-radius:10px; font-size:15px; letter-spacing:.14em; color:#fff;
  background:linear-gradient(135deg,#c9a96e,#b8945a); border:none; margin-top:6px;
  box-shadow:0 2px 10px rgba(184,148,90,.24); transition:all .24s cubic-bezier(.2,.6,.3,1); }
.login-btn:hover { background:linear-gradient(135deg,#d0b17a,#c09b60); transform:translateY(-1px); box-shadow:0 6px 18px rgba(184,148,90,.32); }
.login-btn:active { transform:translateY(0); box-shadow:0 2px 8px rgba(184,148,90,.22); }
.lb-hint { margin-top:22px; padding-top:18px; border-top:1px solid #efe8dd; font-size:11.5px; color:#a3968c;
  text-align:center; letter-spacing:.06em; }

/* 窄屏收成单列 */
@media (max-width: 960px) {
  .login-container { grid-template-columns:1fr; }
  .login-brand { padding:40px 26px 32px; }
  .login-brand::before { inset:14px; }
  .lb-mark { font-size:38px; }
  .lb-lead { margin-bottom:26px; }
  .lb-lead p { font-size:19px; line-height:1.8; }
  .lb-feats { gap:14px; }
  .login-panel { padding:32px 20px 46px; }
  .login-box { padding:32px 24px 28px; max-width:100%; }
  .login-box::before { left:24px; right:24px; }
}
.feature-item .icon { width:40px; height:40px; border-radius:50%; background:#faf7f2; display:flex; align-items:center; justify-content:center; margin:0 auto 8px; color:#c9a96e; font-size:18px; }
.dashboard-container { display:none; min-height:100vh; }
.dashboard-container.active { display:block; }
.sidebar { width:240px; background:linear-gradient(180deg,#5c3d2e 0%,#3d281e 100%); position:fixed; left:0; top:0; bottom:0; color:#fff; padding:25px 0; z-index:100; }
.sidebar-brand { text-align:center; padding:0 20px 25px; border-bottom:1px solid rgba(255,255,255,0.1); margin-bottom:15px; }
.sidebar-brand h2 { font-family:'Noto Serif SC',serif; font-size:20px; font-weight:600; }
.sidebar-brand p { font-size:11px; color:rgba(255,255,255,0.5); margin-top:4px; }
.nav-item { padding:11px 18px; display:flex; align-items:center; gap:12px; cursor:pointer; transition:all .3s; color:rgba(255,255,255,0.8); font-size:14px; border-left:3px solid transparent; }
.nav-item:hover, .nav-item.active { background:rgba(255,255,255,0.08); color:#fff; border-left-color:#c9a96e; }
.nav-item .icon { font-size:16px; width:20px; text-align:center; }
.main-content { margin-left:240px; min-height:100vh; background:#f8f5f0; }
.topbar { height:64px; background:#fff; border-bottom:1px solid #ece6de; display:flex; align-items:center; justify-content:space-between; padding:0 30px; position:sticky; top:0; z-index:50; }
.topbar-left { display:flex; align-items:center; gap:15px; }
.breadcrumb { font-size:14px; color:#999; }
.topbar-right { display:flex; align-items:center; gap:20px; }
.user-info { display:flex; align-items:center; gap:10px; cursor:pointer; }
.user-avatar { width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg,#c9a96e,#a08050); display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; font-weight:500; }
.content-area { padding:25px 30px; }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; margin-bottom:25px; }
.stat-card { background:#fff; border-radius:14px; padding:22px; box-shadow:0 2px 12px rgba(0,0,0,0.04); border:1px solid #f0ebe3; transition:transform .3s; }
.stat-card:hover { transform:translateY(-2px); }
.stat-label { font-size:12px; color:#999; margin-bottom:6px; text-transform:uppercase; letter-spacing:1px; }
.stat-value { font-size:28px; font-weight:700; color:#5c3d2e; font-family:'Noto Serif SC',serif; }
.stat-change { font-size:12px; color:#52c41a; margin-top:4px; }
.stat-icon { float:right; width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:20px; margin-top:-4px; }
.icon-gold { background:#fff7e6; color:#faad14; }
.icon-blue { background:#e6f7ff; color:#1890ff; }
.icon-green { background:#f6ffed; color:#52c41a; }
.icon-purple { background:#f9f0ff; color:#722ed1; }
.section-card { background:#fff; border-radius:14px; padding:25px; box-shadow:0 2px 12px rgba(0,0,0,0.04); border:1px solid #f0ebe3; margin-bottom:20px; }
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.section-title { font-size:16px; font-weight:600; color:#333; display:flex; align-items:center; gap:8px; }
.section-title::before { content:''; width:4px; height:18px; background:linear-gradient(180deg,#c9a96e,#a08050); border-radius:2px; }
.table-actions { display:flex; gap:10px; }
.search-input { width:240px; }
.member-table .el-table th { background:#faf7f2!important; color:#5c3d2e; font-weight:600; font-size:13px; }
.member-table .el-table td { font-size:13px; padding:12px 0; }
.tag-vip { background:linear-gradient(135deg,#c9a96e,#a08050); color:#fff; border:none; padding:2px 10px; border-radius:4px; font-size:11px; }
.tag-free { background:#f0f0f0; color:#999; border:none; padding:2px 10px; border-radius:4px; font-size:11px; }
.tag-level-normal { background:#f0f0f0; color:#999; border:none; padding:2px 8px; border-radius:4px; font-size:11px; }
.tag-level-gold { background:#fff7e6; color:#d48806; border:1px solid #ffd591; padding:2px 8px; border-radius:4px; font-size:11px; }
.tag-level-platinum { background:#e6f7ff; color:#1890ff; border:1px solid #91d5ff; padding:2px 8px; border-radius:4px; font-size:11px; }
.tag-level-baocheng { background:linear-gradient(135deg,#c9a96e,#a08050); color:#fff; border:none; padding:2px 8px; border-radius:4px; font-size:11px; }
.tag-active { background:#f6ffed; color:#52c41a; border:1px solid #b7eb8f; padding:2px 10px; border-radius:4px; font-size:11px; }
.tag-inactive { background:#fff1f0; color:#ff4d4f; border:1px solid #ffa39e; padding:2px 10px; border-radius:4px; font-size:11px; }
.avatar-circle { width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg,#e8ddd0,#d4c4b0); display:flex; align-items:center; justify-content:center; color:#5c3d2e; font-weight:600; font-size:13px; }
.btn-gold { background:linear-gradient(135deg,#c9a96e,#a08050); color:#fff; border:none; }
.btn-gold:hover { background:linear-gradient(135deg,#b89860,#907040); color:#fff; }
.btn-gold.is-plain { background:#fff; color:#c9a96e; border:1px solid #c9a96e; }
.drawer-title { font-family:'Noto Serif SC',serif; font-size:18px; color:#5c3d2e; }
.form-section { margin-bottom:25px; }
.form-section-title { font-size:14px; font-weight:600; color:#5c3d2e; margin-bottom:15px; padding-bottom:10px; border-bottom:1px solid #f0ebe3; display:flex; align-items:center; gap:8px; }
.form-section-title .num { width:22px; height:22px; border-radius:50%; background:linear-gradient(135deg,#c9a96e,#a08050); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; }
.custom-form .el-form-item__label { color:#666; font-size:13px; }
.custom-form .el-input__wrapper, .custom-form .el-textarea__inner { background:#faf7f2; border-radius:8px; box-shadow:none!important; border:1px solid #e8e0d5; }
.custom-form .el-input__wrapper:hover, .custom-form .el-input__wrapper.is-focus { border-color:#c9a96e; }
.photo-upload .el-upload--picture-card { background:#faf7f2; border:2px dashed #d9d0c5; border-radius:12px; width:120px; height:120px; display:flex; align-items:center; justify-content:center; font-size:28px; color:#c9a96e; transition:all .3s; }
.photo-upload .el-upload--picture-card:hover { border-color:#c9a96e; color:#c9a96e; background:#f5f0e8; }
.photo-preview { position:relative; width:120px; height:120px; border-radius:12px; overflow:hidden; border:1px solid #e8e0d5; }
.photo-preview img { width:100%; height:100%; object-fit:cover; }
.photo-preview .remove-btn { position:absolute; top:4px; right:4px; width:22px; height:22px; background:rgba(0,0,0,0.5); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; cursor:pointer; font-size:12px; }
.photo-preview .main-tag { position:absolute; bottom:4px; left:4px; background:linear-gradient(135deg,#c9a96e,#a08050); color:#fff; font-size:10px; padding:2px 8px; border-radius:4px; }
.label-tag { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:6px; font-size:12px; margin:0 8px 8px 0; cursor:pointer; transition:all .3s; }
.label-tag:hover { opacity:.85; }
.label-tag .remove { margin-left:4px; font-size:10px; opacity:.7; cursor:pointer; }
.label-tag .remove:hover { opacity:1; }
.qrcode-modal { text-align:center; padding:20px; }
.qrcode-modal img { max-width:280px; border-radius:12px; box-shadow:0 4px 20px rgba(0,0,0,0.1); }
.match-panel { background:linear-gradient(135deg,#faf7f2,#f5f0e8); border-radius:12px; padding:20px; border:1px solid #e8e0d5; }
.match-score { font-size:48px; font-weight:700; color:#c9a96e; font-family:'Noto Serif SC',serif; text-align:center; }
.match-score-label { text-align:center; color:#999; font-size:12px; margin-top:4px; }
.vs-divider { display:flex; align-items:center; gap:15px; margin:20px 0; }
.vs-divider .line { flex:1; height:1px; background:#e8e0d5; }
.vs-divider .text { width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,#c9a96e,#a08050); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:14px; }
.member-mini-card { background:#fff; border-radius:10px; padding:15px; border:1px solid #f0ebe3; }
.member-mini-card .name { font-weight:600; color:#5c3d2e; font-size:15px; }
.member-mini-card .info { font-size:12px; color:#999; margin-top:6px; line-height:1.8; }
.fade-enter-active, .fade-leave-active { transition:opacity .3s; }
.fade-enter-from, .fade-leave-to { opacity:0; }
.slide-enter-active, .slide-leave-active { transition:all .3s ease; }
.slide-enter-from, .slide-leave-to { opacity:0; transform:translateX(20px); }
.el-drawer__header { margin-bottom:20px!important; padding-bottom:15px!important; border-bottom:1px solid #f0ebe3!important; }
.el-dialog__header { border-bottom:1px solid #f0ebe3; padding-bottom:15px!important; }
.el-dialog__title { font-family:'Noto Serif SC',serif!important; color:#5c3d2e!important; }
.el-pagination.is-background .el-pager li:not(.is-disabled).is-active { background:linear-gradient(135deg,#c9a96e,#a08050)!important; }
.el-button--primary { background:linear-gradient(135deg,#c9a96e,#a08050); border:none; }
.el-button--primary:hover { background:linear-gradient(135deg,#b89860,#907040); }
.el-tag--success { background:#f6ffed; border-color:#b7eb8f; color:#52c41a; }
.el-tag--warning { background:#fff7e6; border-color:#ffd591; color:#fa8c16; }
.el-tag--danger { background:#fff1f0; border-color:#ffa39e; color:#ff4d4f; }
.el-menu--popup { background:#5c3d2e!important; }
.el-dropdown-menu__item:hover { background:rgba(201,169,110,0.15)!important; color:#c9a96e!important; }
.custom-form::-webkit-scrollbar { width:4px; }
.custom-form::-webkit-scrollbar-thumb { background:#c9a96e; border-radius:4px; }
.custom-form::-webkit-scrollbar-track { background:#f0ebe3; border-radius:4px; }
.el-dialog__wrapper { z-index: 9999 !important; }
.package-dialog .el-dialog { z-index: 10000 !important; }
/* 组织架构图 */
.org-chart { display: flex; justify-content: center; align-items: flex-start; overflow-x: auto; padding: 20px 0; }
.org-node-wrap { display: flex; flex-direction: column; align-items: center; margin: 0 10px; }
.org-children { display: flex; margin-top: 14px; padding-top: 14px; border-top: 1px dashed #e0d5c0; }
.org-node { background: #fff; border: 1px solid #e8dcc8; border-radius: 10px; padding: 10px 16px; cursor: pointer; text-align: center; min-width: 110px; box-shadow: 0 2px 6px rgba(92,61,46,.08); transition: all .2s; }
.org-node:hover { border-color: #c9a96e; box-shadow: 0 4px 12px rgba(201,169,110,.35); transform: translateY(-2px); }
.org-node-name { font-weight: 600; color: #5c3d2e; font-size: 14px; }
.org-node-sub { font-size: 11px; color: #999; margin-top: 3px; }

/* ===== 2026-10-27 UI 统一覆盖层（追加，可整块删除回退） ===== */
/*
 * 设计 token（与登录页同一套）
 *   金三档    #b8945a / #c9a96e / #e6d5b8
 *   深棕三档  #5c3d2e / #3d281e / #2b211c
 *   底        #faf7f2 / #f3ede4
 *   语义色（全部低饱和，替换 Element/Ant 默认色）
 *   圆角      卡片 16 · 输入 10 · 标签 6 · 图标底 12
 *   阴影      三级
 */

/* ---------- 全局 ---------- */
.main-content { background:#faf7f2; }
.content-area { padding:24px 28px 40px; }

/* ---------- 顶栏 ---------- */
.topbar {
  height:56px;
  padding:0 28px;
  border-bottom:1px solid #efe8dd;
  position:sticky;
  box-shadow:0 1px 0 rgba(43,33,28,.02);
}
.topbar::after {
  content:'';
  position:absolute; left:0; right:0; bottom:0; height:1px;
  background:linear-gradient(90deg,rgba(201,169,110,.42),rgba(201,169,110,0) 62%);
  pointer-events:none;
}
.breadcrumb { font-size:13px; color:#a3968c; letter-spacing:.04em; }
.user-avatar {
  width:30px; height:30px; font-size:13px;
  background:linear-gradient(135deg,#c9a96e,#b8945a);
  box-shadow:0 1px 4px rgba(184,148,90,.28);
}
.user-info span[style] { color:#4a3f36 !important; }

/* ---------- 侧栏 ---------- */
.sidebar { width:200px; }
.main-content { margin-left:200px; }
.sidebar-brand { padding-bottom:22px; border-bottom:1px solid rgba(201,169,110,.18); }
.sidebar-brand h2 { letter-spacing:.16em; color:#f0e3cb; }
.sidebar-brand p { color:#a89684; letter-spacing:.12em; }
.nav-item {
  border-left:2px solid transparent;
  padding:12px 24px;
  font-size:13.5px;
  color:rgba(255,255,255,.72);
  transition:all .22s cubic-bezier(.2,.6,.3,1);
}
.nav-item:hover { background:rgba(201,169,110,.08); color:#f0e3cb; border-left-color:rgba(201,169,110,.45); }
.nav-item.active {
  background:rgba(201,169,110,.14);
  color:#f0e3cb;
  border-left-color:#c9a96e;
  font-weight:500;
}

/* ---------- 统计卡 ---------- */
.stats-grid { gap:16px; margin-bottom:22px; }
.stat-card {
  border-radius:16px;
  padding:20px 20px 18px;
  border:1px solid #f2ece3;
  box-shadow:0 1px 2px rgba(43,33,28,.03), 0 6px 20px rgba(43,33,28,.05);
  transition:box-shadow .24s cubic-bezier(.2,.6,.3,1), transform .24s cubic-bezier(.2,.6,.3,1);
  position:relative;
  overflow:hidden;
}
.stat-card::before {
  content:''; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:#e6d5b8; border-radius:0 2px 2px 0;
}
.stat-card:hover {
  transform:translateY(-2px);
  box-shadow:0 2px 4px rgba(43,33,28,.05), 0 16px 36px rgba(43,33,28,.09);
}
.stat-label { font-size:12px; color:#a3968c; letter-spacing:.08em; text-transform:none; }
.stat-value {
  font-size:28px; font-weight:600; color:#2b211c;
  font-family:'Noto Serif SC',serif; letter-spacing:-.01em;
}
.stat-change { font-size:12px; }

/* 图标底色：全部换低饱和，去掉 ante 的高亮色 */
.stat-icon { width:40px; height:40px; border-radius:12px; font-size:18px; margin-top:-2px; }
.icon-gold   { background:rgba(184,148,90,.12); color:#a08050; }
.icon-blue   { background:rgba(94,114,133,.12); color:#5e7285; }
.icon-green  { background:rgba(107,138,107,.12); color:#6b8a6b; }
.icon-purple { background:rgba(120,105,140,.12); color:#78698c; }
/* 对应色条 */
.stat-card:has(.icon-blue)::before   { background:#93a7ba; }
.stat-card:has(.icon-green)::before  { background:#93b093; }
.stat-card:has(.icon-purple)::before { background:#a99bbd; }
.stat-card:has(.icon-gold)::before   { background:#d4bd93; }

/* ---------- 区块卡片 ---------- */
.section-card {
  border-radius:16px;
  padding:22px 24px;
  border:1px solid #f2ece3;
  box-shadow:0 1px 2px rgba(43,33,28,.03), 0 6px 20px rgba(43,33,28,.05);
  margin-bottom:18px;
}
.section-header { margin-bottom:18px; }
.section-title {
  font-size:15.5px; font-weight:600; color:#2b211c; letter-spacing:.04em;
  font-family:'Noto Serif SC',serif;
}
.section-title::before {
  width:3px; height:16px;
  background:linear-gradient(180deg,#c9a96e,#b8945a);
  border-radius:2px;
}

/* ---------- 表格 ---------- */
.member-table .el-table th {
  background:#f3ede4 !important;
  color:#6b5f57 !important;
  font-weight:500 !important;
  font-size:12.5px !important;
  letter-spacing:.05em;
  border-bottom:1px solid #efe8dd !important;
}
.member-table .el-table td { font-size:13px; padding:13px 0; border-bottom:1px solid #f7f2ea; }
.member-table .el-table__row { transition:background .16s; }
.member-table .el-table__body tr:hover > td { background:#fffdf8 !important; }
.member-table .el-table { border-radius:10px; }

/* ---------- 标签：统一圆角与低饱和 ---------- */
.tag-vip, .tag-level-baocheng {
  background:linear-gradient(135deg,#c9a96e,#b8945a); color:#fff; border:none;
}
.tag-vip, .tag-free, .tag-level-normal, .tag-level-gold, .tag-level-platinum,
.tag-level-baocheng, .tag-active, .tag-inactive {
  padding:3px 10px; border-radius:6px; font-size:11.5px; letter-spacing:.04em;
}
.tag-free, .tag-level-normal { background:#f4f2ef; color:#8a8078; border:1px solid #ebe5dd; }
.tag-level-gold     { background:#fdf6e8; color:#9a7b3e; border:1px solid #f0e2c4; }
.tag-level-platinum { background:#eef4fb; color:#5e7285; border:1px solid #dfe9f4; }
.tag-active   { background:rgba(107,138,107,.10); color:#587558; border:1px solid #d8e5d8; }
.tag-inactive { background:rgba(168,96,77,.09);  color:#96543f; border:1px solid #ecd6d0; }

/* ---------- 头像与按钮 ---------- */
.avatar-circle {
  width:34px; height:34px; font-size:13px;
  background:linear-gradient(135deg,#f0e6d8,#ddcdb6);
  color:#7a5f45;
}
.btn-gold {
  border-radius:10px;
  background:linear-gradient(135deg,#c9a96e,#b8945a);
  border:none;
  transition:all .24s cubic-bezier(.2,.6,.3,1);
  box-shadow:0 1px 4px rgba(184,148,90,.22);
}
.btn-gold:hover {
  background:linear-gradient(135deg,#d0b17a,#c09b60);
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(184,148,90,.3);
}
.btn-gold.is-plain { background:#fff; color:#a08050; border:1px solid #dcc9a4; }
.btn-gold.is-plain:hover { background:#fdf8f0; color:#8f7343; }

/* ---------- 表单 ---------- */
.custom-form .el-input__wrapper,
.custom-form .el-textarea__inner {
  background:#fdfbf8;
  border-radius:10px;
  border:1px solid #e6ded4;
  transition:all .22s cubic-bezier(.2,.6,.3,1);
}
.custom-form .el-input__wrapper.is-focus,
.custom-form .el-textarea__inner:focus {
  border-color:#b8945a;
  background:#fff;
  box-shadow:0 0 0 3px rgba(184,148,90,.12) !important;
}
.custom-form .el-form-item__label { color:#6b5f57; font-size:13px; }
.form-section-title { color:#5c3d2e; border-bottom:1px solid #f2ece3; }
.form-section-title .num { background:linear-gradient(135deg,#c9a96e,#b8945a); }
.drawer-title { color:#2b211c; letter-spacing:.06em; }

/* ---------- 照片上传 ---------- */
.photo-upload .el-upload--picture-card {
  border:1.5px dashed #ddd1bf; border-radius:12px; background:#fdfbf8;
  transition:all .22s;
}
.photo-upload .el-upload--picture-card:hover { border-color:#c9a96e; background:#faf5ec; }
.photo-preview { border-radius:12px; border:1px solid #e6ded4; }

/* ---------- 其它小修 ---------- */
.el-button { border-radius:9px; }
.el-dialog { border-radius:16px; }
.el-drawer__header { margin-bottom:0; padding:18px 22px; border-bottom:1px solid #f2ece3; }
.el-tag { border-radius:6px; }
.el-pagination.is-background .el-pager li { border-radius:8px; }
.el-pagination.is-background .el-pager li.is-active { background:linear-gradient(135deg,#c9a96e,#b8945a); }

@media (max-width:1100px) {
  .sidebar { width:200px; }
  .main-content { margin-left:200px; }
  .content-area { padding:20px 16px 32px; }
}


/* --- 文字按钮与图标对齐修正 --- */
/* el-button type="text" 默认是主色蓝，改成品牌金 */
.el-button.is-text,
.el-button--text,
.el-button.is-text:hover,
.el-button--text:hover {
  color:#a08050 !important;
  background:transparent !important;
  border-color:transparent !important;
}
.el-button.is-text:hover,
.el-button--text:hover { color:#8f7343 !important; text-decoration:underline; }
.link-gold { color:#a08050 !important; font-size:13px; }

/* 内联 SVG 在按钮/图标位里垂直居中 */
.stat-icon svg,
.el-button svg { vertical-align:-3px; }
.stat-icon { color:inherit; }

/* --- 2026-10-27 二次修正：被挤成竖排的标题 + 操作列按钮配色 --- */
/* 1) 区块标题不许换行、不许被压缩（会员管理页「会员档案」竖排问题） */
.section-header { flex-wrap:wrap; gap:12px 16px; align-items:flex-start; }
.section-title { flex-shrink:0; white-space:nowrap; }
.section-title::before { flex-shrink:0; }

/* 2) 筛选行允许换行，避免各控件互相挤压 */
.section-card .el-form--inline,
.section-card .el-row { flex-wrap:wrap; }
.section-card .el-form-item { margin-bottom:10px; }
/* 自定义的「年龄」这类 label 也不许竖排 */
.section-card span[style*="display:flex"][style*="align-items:center"] { white-space:nowrap; }

/* 3) 表格操作列：统一成金色文字按钮，删除保持克制的红 */
.member-table .el-button.is-text,
.member-table .el-button--text,
.member-table .el-button.is-link,
.member-table .el-button--small.is-text {
  color:#a08050 !important;
  padding:0 6px !important;
  font-size:12.5px !important;
}
.member-table .el-button.is-text:hover,
.member-table .el-button--text:hover { color:#8f7343 !important; }
.member-table .el-button.is-text.el-button--danger,
.member-table .el-button--danger.is-text { color:#a8604d !important; }

/* 4) el-button type="warning" 的橙色也压低饱和，靠近品牌金 */
.el-button--warning {
  background:linear-gradient(135deg,#c9a96e,#b8945a) !important;
  border-color:transparent !important;
  color:#fff !important;
}
.el-button--warning.is-text { background:transparent !important; color:#a08050 !important; }
.el-button--success {
  background:#6b8a6b !important;
  border-color:transparent !important;
}

/* 5) 表格横向滚动时，表头背景别露白 */
.el-table__header-wrapper, .el-table__body-wrapper { background:transparent; }
/* --- 2026-10-27 三次修正：筛选栏换行 --- */
/* .table-actions 原来是 display:flex 但没换行，控件多了会溢出被裁切 */
.table-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  justify-content:flex-end;
  flex:1 1 480px;
  min-width:0;
}
.table-actions .search-input { width:200px; }
/* 小屏时整行左对齐 */
@media (max-width:1200px) {
  .table-actions { justify-content:flex-start; flex-basis:100%; }
}
/* 会员表格容器允许横向滚动而不是裁切 */
.section-card { overflow-x:auto; }
.section-card > .el-table { min-width:0; }
/* ===== 2026-10-27 四次修正：Element Plus 主色全局改为品牌金 =====
 * Element Plus 所有组件（tab/link/switch/checkbox/radio/pagination/focus 环）
 * 都读 CSS 变量 --el-color-primary。改这一组变量，组件自动跟随，
 * 比逐个组件覆盖可靠得多。
 */
:root {
  --el-color-primary: #b8945a;
  --el-color-primary-light-3: #c9a96e;
  --el-color-primary-light-5: #d8c096;
  --el-color-primary-light-7: #e6d5b8;
  --el-color-primary-light-8: #efe4d3;
  --el-color-primary-light-9: #f9f5ee;
  --el-color-primary-dark-2: #a08050;

  --el-color-success: #6b8a6b;
  --el-color-success-light-9: #f2f7f2;
  --el-color-warning: #b8873f;
  --el-color-warning-light-9: #fbf6ec;
  --el-color-danger: #a8604d;
  --el-color-error: #a8604d;
  --el-color-danger-light-9: #fbf1ee;
  --el-color-info: #8a8078;

  --el-border-radius-base: 9px;
  --el-border-radius-small: 6px;
}

/* Tab 条：底边线 + 选中金色下划线 */
.el-tabs__item { font-size:13.5px; letter-spacing:.04em; color:#6b5f57; }
.el-tabs__item.is-active { color:#a08050; font-weight:500; }
.el-tabs__active-bar { background-color:#b8945a; height:2px; }
.el-tabs__nav-wrap::after { background-color:#efe8dd; height:1px; }

/* 性别等语义 tag 降饱和 */
.el-tag--danger  { background:rgba(168,96,77,.09)  !important; color:#96543f !important; border-color:#ecd6d0 !important; }
.el-tag--success { background:rgba(107,138,107,.10)!important; color:#587558 !important; border-color:#d8e5d8 !important; }
.el-tag--warning { background:#fdf6e8 !important; color:#9a7b3e !important; border-color:#f0e2c4 !important; }
.el-tag--info    { background:#f4f2ef !important; color:#8a8078 !important; border-color:#ebe5dd !important; }

/* 输入/选择器统一圆角与焦点色 */
.el-input__wrapper, .el-textarea__inner, .el-select__wrapper {
  border-radius:10px;
  transition:box-shadow .22s cubic-bezier(.2,.6,.3,1), border-color .22s;
}
.el-input__wrapper.is-focus, .el-select__wrapper.is-focused {
  box-shadow:0 0 0 3px rgba(184,148,90,.13) !important;
}

/* 分页 */
.el-pagination.is-background .el-pager li.is-active {
  background:linear-gradient(135deg,#c9a96e,#b8945a) !important;
  border-color:transparent !important;
}
.el-pagination.is-background .el-pager li:hover { color:#a08050 !important; }

/* 复选框选中用金色 */
.el-checkbox__input.is-checked .el-checkbox__inner,
.el-checkbox__input.is-indeterminate .el-checkbox__inner {
  background-color:#b8945a !important; border-color:#b8945a !important;
}
.el-checkbox__input.is-checked + .el-checkbox__label { color:#a08050 !important; }

/* 开关 */
.el-switch.is-checked .el-switch__core { background-color:#b8945a !important; border-color:#b8945a !important; }

/* 弹窗 / 抽屉标题 */
.el-dialog__header, .el-drawer__header { border-bottom:1px solid #f2ece3; padding-bottom:16px; }
.el-dialog__title, .el-drawer__title { font-family:'Noto Serif SC',serif; color:#2b211c; letter-spacing:.06em; }

/* 加载遮罩与空状态文字 */
.el-loading-mask { background-color:rgba(250,247,242,.72); }
/* --- 2026-10-27 五次修正：侧栏 SVG 图标 --- */
.nav-item .icon {
  width:18px; height:18px; font-size:0;      /* emoji 时用的字号，换 SVG 后归零 */
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; opacity:.72;
  transition:opacity .22s cubic-bezier(.2,.6,.3,1), color .22s;
}
.nav-item .icon svg { width:17px; height:17px; display:block; }
.nav-item:hover .icon { opacity:.95; }
.nav-item.active .icon { opacity:1; color:#c9a96e; }
/* ===== 2026-11-03 会员档案布局优化 ===== */
.sr-block-title { font-size:13px; font-weight:600; color:#5c3d2e; margin:12px 0 8px; padding-left:8px; border-left:3px solid #c9a96e; }
.sr-empty { color:#bbb; font-size:12px; padding:10px 2px; }
/* 表格单元格更紧凑，减少横向占用 */
.member-table .el-table__cell { padding:6px 0; }
.member-table .cell { padding:0 8px; }
.member-table .el-button + .el-button { margin-left:2px; }
/* 服务记录弹窗内表格去掉外层滚动条依赖 */
.el-dialog__body { padding-top:6px; }

/* ===== 2026-11-03 会员表格：保留横向滚动，信息完整展示 ===== */
.section-card { overflow-x:auto; }
.member-table .el-table__cell { padding:7px 0; }
.member-table .cell { padding:0 10px; word-break:keep-all; }
/* 滚动条样式：细而清晰 */
.section-card::-webkit-scrollbar { height:9px; }
.section-card::-webkit-scrollbar-thumb { background:#d9cfc0; border-radius:5px; }
.section-card::-webkit-scrollbar-thumb:hover { background:#c9a96e; }
.section-card::-webkit-scrollbar-track { background:#f5f0e8; }

/* ===== 2026-11-04 弹窗与表格可读性 ===== */
/* 核销方式开关：文字不换行 */
.verify-mode-switch .el-switch__label { white-space:nowrap; display:inline-block; }
.verify-mode-switch .el-switch__label * { white-space:nowrap; }
/* 服务记录弹窗置于抽屉遮罩之上 */
.service-records-dialog { z-index:3000 !important; }
.el-overlay:has(.service-records-dialog) { z-index:2999 !important; }
/* 表格内可 hover 的单元格 */
.member-table .el-tooltip__trigger { max-width:100%; }
/* Element Plus tooltip 最大宽度，避免长套餐名折成一大坨 */
.el-popper { max-width:420px; }

/* ===== 2026-11-04 弹窗文字排版 ===== */
.el-dialog .el-form-item__label { white-space:nowrap; }
.el-dialog .el-switch__label { white-space:nowrap; }
/* 表单内的说明文字（长内容）允许自然换行，不强制压成一行 */
.el-dialog .el-form-item__content > div[style*="font-size:12px"] { line-height:1.7; }

/* ===== 2026-11-04 数据大屏入口（侧栏最顶部 · 特殊标记）===== */
.nav-screen-feature {
  margin:0 14px 10px; padding:13px 14px; display:flex; align-items:center; gap:11px;
  cursor:pointer; border-radius:10px; position:relative; overflow:hidden;
  background:linear-gradient(120deg,rgba(201,169,110,.20),rgba(201,169,110,.07));
  border:1px solid rgba(201,169,110,.55);
  box-shadow:0 0 0 1px rgba(201,169,110,.10) inset, 0 3px 14px rgba(0,0,0,.18);
  transition:all .22s;
}
.nav-screen-feature::after {
  content:''; position:absolute; top:0; left:-60%; width:45%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);
  transform:skewX(-18deg); transition:left .55s;
}
.nav-screen-feature:hover::after { left:120%; }
.nav-screen-feature:hover {
  background:linear-gradient(120deg,rgba(201,169,110,.32),rgba(201,169,110,.12));
  border-color:#e6d5b8; transform:translateY(-1px);
  box-shadow:0 0 18px rgba(201,169,110,.28), 0 4px 16px rgba(0,0,0,.22);
}
.nav-screen-feature .ns-icon {
  width:34px; height:34px; flex:0 0 34px; border-radius:8px; display:flex; align-items:center; justify-content:center;
  background:rgba(201,169,110,.20); color:#f0e3cb;
}
.nav-screen-feature .ns-icon svg { width:19px; height:19px; display:block; }
.nav-screen-feature .ns-text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.nav-screen-feature .ns-text b { font-size:14px; color:#f7ecd6; letter-spacing:.06em; font-weight:600; white-space:nowrap; }
.nav-screen-feature .ns-text small { font-size:9px; color:rgba(240,227,203,.62); letter-spacing:.1em; white-space:nowrap; }
.nav-screen-feature .ns-badge {
  margin-left:auto; font-size:9px; font-weight:700; letter-spacing:.08em; padding:2px 6px; border-radius:4px;
  background:#c9a96e; color:#3d281e; flex:0 0 auto;
}
.ns-divider { height:1px; margin:0 20px 8px; background:linear-gradient(90deg,transparent,rgba(201,169,110,.35),transparent); }
