.member-wrap { max-width: 960px; margin: 0 auto; padding: 2rem 1rem 3rem; }

.member-card {
  background: var(--white);
  border: 1px solid var(--mist);
  border-radius: var(--radius);
  padding: 1.5rem;
  margin-bottom: 1rem;
  color: var(--ink);
}

.member-card h2 { margin: 0 0 1rem; font-size: 1.1rem; color: var(--ink); }

.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; }

.stat {
  background: var(--paper);
  border: 1px solid var(--mist);
  border-radius: 8px;
  padding: 0.85rem;
}

.stat .label { font-size: 0.8rem; color: var(--stone); }
.stat .value { font-size: 1.15rem; font-weight: 700; margin-top: 0.15rem; color: var(--ink); }

.aff-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; color: var(--ink); }
.aff-table th,
.aff-table td {
  padding: 0.6rem 0.5rem;
  border-bottom: 1px solid var(--mist);
  text-align: left;
  vertical-align: top;
}
.aff-table th { color: var(--stone); font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.02em; }
.aff-table tbody tr:hover td { background: var(--paper); }

.ref-box { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.ref-box input {
  flex: 1;
  min-width: 200px;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--mist);
  border-radius: 8px;
  font-size: 0.95rem;
  color: var(--ink);
  background: var(--white);
}

.hint-banner {
  background: #fff8e6;
  border: 1px solid #e6c200;
  color: var(--ink);
  padding: 0.75rem 1rem;
  border-radius: 8px;
  margin-bottom: 1rem;
}

.field { margin-bottom: 1rem; }
.field label { display: block; font-weight: 600; margin-bottom: 0.35rem; font-size: 0.9rem; color: var(--ink); }
.field input[type="email"],
.field input[type="text"] {
  width: 100%;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--mist);
  border-radius: 8px;
  font-size: 1rem;
  color: var(--ink);
  background: var(--white);
}
.field select {
  padding: 0.45rem 0.6rem;
  border: 1px solid var(--mist);
  border-radius: 8px;
  font-size: 0.95rem;
  color: var(--ink);
  background: var(--white);
}

.status-msg { font-size: 0.9rem; margin: 0.5rem 0 0; }
.status-msg.ok { color: #0d6b4d; }
.status-msg.err { color: #9b1c2e; }

.err { color: #9b1c2e; font-size: 0.9rem; }
.ok { color: #0d6b4d; font-size: 0.9rem; }

.auth-page { width: 100%; max-width: 520px; margin: 3rem auto; padding: 0 1rem; box-sizing: border-box; }
.auth-page .member-card { width: 100%; }
