    /* ===== 会员管理 ===== */
    .member-page { padding: 12px 12px 14px; display: flex; flex-direction: column; height: 100%; background: #f6f8fb; }
    .member-filter-row {
      display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 0;
      padding: 20px 12px 18px; background: #fff; border-radius: 8px 8px 0 0;
    }
    .member-filter-right {
      margin-left: auto; display: flex; gap: 8px;
    }
    .member-filter-search {
      display: flex; align-items: center; border: 1px solid var(--border);
      border-radius: 18px; padding: 0 12px; gap: 6px; background: #fff; height: 34px;
    }
    .member-filter-search input { border: none; outline: none; font-size: 13px; color: var(--text-primary); width: 210px; font-family: inherit; }
    .member-filter-search input::placeholder { color: var(--text-muted); }
    .member-filter-select {
      height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 13px;
      border: 1px solid var(--border); border-radius: 18px; min-width: 96px;
      font-size: 13px; color: var(--text-secondary); cursor: pointer; background: #fff; white-space: nowrap;
    }
    .member-filter-select:hover { border-color: var(--brand); }
    .member-filter-btn-query {
      height: 34px; padding: 0 20px; border-radius: 18px; background: var(--brand); color: #fff;
      font-size: 13px; cursor: pointer; border: none;
    }
    .member-filter-btn-query:hover { background: var(--brand-dark); }
    .member-filter-btn-reset {
      height: 34px; padding: 0 18px; border-radius: 18px; background: #fff; color: var(--text-primary);
      font-size: 13px; cursor: pointer; border: 1px solid var(--border);
    }
    .member-filter-btn-reset:hover { border-color: var(--brand); color: var(--brand); }
    .member-btn-outline {
      height: 34px; padding: 0 17px; border-radius: 18px; background: #fff; color: var(--brand);
      font-size: 13px; cursor: pointer; border: 1px solid var(--brand); display: flex; align-items: center; gap: 4px;
    }
    .member-btn-outline:hover { border-color: var(--brand); color: var(--brand); }
    .member-btn-primary {
      height: 34px; padding: 0 17px; border-radius: 18px; background: var(--brand); color: #fff;
      font-size: 13px; cursor: pointer; border: none; display: flex; align-items: center; gap: 4px;
    }
    .member-btn-primary:hover { background: var(--brand-dark); }
    .member-table-wrap {
      background: var(--card-bg); border-radius: 0 0 8px 8px; border: none;
      overflow-x: auto; overflow-y: hidden; flex: 1; display: flex; flex-direction: column;
    }
    .member-table { width: 100%; min-width: 1500px; border-collapse: collapse; font-size: 13px; table-layout: fixed; }
    .member-table thead { background: #f3f5f8; }
    .member-table th {
      height: 58px; padding: 0 12px; text-align: left; font-weight: 600; color: #1f2933;
      border-bottom: none; white-space: nowrap; font-size: 12.5px;
    }
    .member-table td {
      height: 106px; padding: 0 12px; color: var(--text-primary); border-bottom: none; line-height: 1.5;
      vertical-align: middle;
    }
    .member-table tbody tr:nth-child(even) { background: #f5f7fa; }
    .member-table tbody tr:hover { background: #eef8f3; }
    .member-table th:nth-child(1), .member-table td:nth-child(1) { width: 30px; text-align: center; }
    .member-table th:nth-child(2), .member-table td:nth-child(2) { width: 126px; }
    .member-table th:nth-child(3), .member-table td:nth-child(3) { width: 132px; }
    .member-table th:nth-child(4), .member-table td:nth-child(4) { width: 154px; }
    .member-table th:nth-child(5), .member-table td:nth-child(5) { width: 88px; text-align: center; }
    .member-table th:nth-child(6), .member-table td:nth-child(6) { width: 78px; text-align: center; }
    .member-table th:nth-child(7), .member-table td:nth-child(7) { width: 120px; }
    .member-table th:nth-child(8), .member-table td:nth-child(8) { width: 100px; }
    .member-table th:nth-child(9), .member-table td:nth-child(9) { width: 118px; text-align: center; }
    .member-table th:nth-child(10), .member-table td:nth-child(10) { width: 108px; text-align: center; }
    .member-table th:nth-child(11), .member-table td:nth-child(11) { width: 104px; text-align: center; }
    .member-table th:nth-child(12), .member-table td:nth-child(12) { width: 118px; text-align: center; }
    .member-table th:nth-child(13), .member-table td:nth-child(13) { width: 136px; text-align: center; }
    .member-phone { color: #1268ff; font-size: 14px; cursor: pointer; }
    .member-phone:hover { text-decoration: underline; }
    .member-phone-mask { color: var(--text-muted); font-size: 12px; margin-top: 3px; }
    .member-card-badge {
      display: inline-flex; flex-direction: column; align-items: flex-start;
      width: 132px; box-sizing: border-box; overflow: hidden;
      padding: 0 10px; border-radius: 8px 8px 0 0; font-size: 12px; min-width: 0;
    }
    .member-card-empty {
      width: 132px; height: 78px; display: inline-flex; flex-direction: column;
      border: 1px solid #dbe4ef; border-radius: 8px; background: #fff;
      overflow: hidden; box-sizing: border-box;
    }
    .member-card-badge.green {
      width: 100%; height: 30px; justify-content: center; color: #fff; border: none;
      border-radius: 0; padding-left: 12px;
      background: linear-gradient(135deg, #18b981 0%, #55d3a3 55%, #17b77f 55%, #17b77f 100%);
    }
    .member-card-badge.red {
      width: 132px; height: 78px; padding: 0 12px; justify-content: flex-start;
      color: #ff5066; border: 1px solid #dbe4ef; border-radius: 8px;
      background: linear-gradient(135deg, #ff8fa2 0%, #ff6f89 58%, #ff5575 58%, #ff5575 100%);
      position: relative;
    }
    .member-card-badge.red::after {
      content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 48px;
      background: #fff; border-top: 0;
    }
    .member-card-badge.red .card-name { color: #fff; height: 30px; display: flex; align-items: center; position: relative; z-index: 1; }
    .member-card-badge .card-name { font-weight: 700; font-size: 12px; margin-bottom: 0; }
    .member-card-badge .card-balance { font-size: 15px; font-weight: 700; margin-top: 8px; position: relative; z-index: 1; }
    .member-card-badge .card-gift { font-size: 12px; color: var(--text-muted); position: relative; z-index: 1; }
    .member-open-card-btn {
      display: inline-flex; align-items: center; justify-content: center; gap: 5px;
      width: 104px; height: 28px; border: 1px solid #88d3af; border-radius: 15px;
      color: var(--brand); font-size: 12px; cursor: pointer; background: #fff; margin: 10px auto 0;
    }
    .member-open-card-btn:hover { background: var(--brand-light); }
    .member-tag-btn {
      display: inline-flex; align-items: center; gap: 3px;
      height: 28px; padding: 0 14px; border: 1px solid var(--border); border-radius: 15px;
      color: var(--text-primary); font-size: 12px; cursor: pointer; background: #fff;
    }
    .member-tag-btn:hover { border-color: var(--brand); color: var(--brand); }
    .member-tag-btn.solid {
      border-style: solid; border-color: var(--brand); color: var(--brand); background: #f3fbf7;
    }
    .member-add-pet {
      display: inline-flex; align-items: center; gap: 2px;
      height: 28px; padding: 0 14px; border: 1px solid var(--border); border-radius: 15px;
      color: var(--text-primary); font-size: 12px; cursor: pointer; background: #fff;
    }
    .member-add-pet:hover { border-color: var(--brand); color: var(--brand); }
    .member-amount { color: var(--red); font-size: 13px; }
    .member-action-btns { display: flex; gap: 8px; justify-content: center; min-width: 120px; }
    .member-action-btn {
      height: 28px; min-width: 54px; padding: 0 13px; border-radius: 15px; font-size: 12px; cursor: pointer; transition: all .15s;
      white-space: nowrap; flex-shrink: 0; line-height: 26px;
    }
    .member-action-btn.edit { background: #fff; color: var(--brand); border: 1px solid var(--brand); }
    .member-action-btn.edit:hover { background: var(--brand-light); }
    .member-action-btn.more { background: #fff; color: var(--brand); border: 1px solid var(--brand); }
    .member-action-btn.more:hover { border-color: var(--brand); color: var(--brand); }
    .member-bottom-bar {
      display: flex; align-items: center; justify-content: space-between;
      min-height: 92px; padding: 12px 10px 12px; border-top: 14px solid #f5f7fa; background: #fff;
    }
    .member-bottom-left { display: flex; align-items: center; gap: 12px; }
    .member-bottom-right { display: flex; align-items: center; gap: 6px; }
    .member-card-clickable { cursor: pointer; }
