/* ===== admin common ===== */
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: system-ui, -apple-system, "Noto Sans JP", Segoe UI, Roboto, sans-serif;
  background: #f6f7fb;
  color: #111;
}
a { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; }

/* layout */
.container { max-width: 1100px; margin: 20px auto; padding: 0 14px; }
.page-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom: 12px; }
.page-title { font-size: 24px; font-weight: 700; }

/* buttons */
.btn { display:inline-flex; align-items:center; gap:6px; padding: 8px 14px; border-radius: 8px; font-size: 14px; }
.btn-primary { background:#2563eb; color:#fff; }
.btn-secondary { background:#e5e7eb; color:#111; }
.btn-success { background:#16a34a; color:#fff; }
.btn-danger { background:#e74c3c; color:#fff; }
.btn:hover { filter: brightness(0.95); }

/* cards/list */
.member-list { display:grid; gap:14px; margin-top: 12px; }
.member-card {
  background:#fff; padding:18px 22px; border-radius:12px;
  box-shadow:0 3px 10px rgba(0,0,0,0.08);
  display:flex; justify-content:space-between; align-items:center;
  transition:0.2s ease;
}
.member-card:hover { transform: translateY(-3px); box-shadow:0 8px 20px rgba(0,0,0,0.15); }
.member-main { display:flex; flex-direction:column; gap:6px; }
.member-name { font-size:17px; font-weight:700; }
.member-meta { font-size:13px; color:#666; }
.member-contact { font-size:13px; color:#555; }
.member-actions { display:flex; gap:8px; }

/* forms */
.panel {
  background:#fff; padding:14px; border-radius:12px;
  box-shadow:0 3px 10px rgba(0,0,0,0.08);
}
.form-grid { display:grid; gap:16px; }
.form-grid.cols-3 { grid-template-columns: repeat(3, 1fr); column-gap:24px; row-gap:16px; }
.field label { display:block; font-size:13px; font-weight:700; margin-bottom:6px; }
.field input[type="text"], .field select, .field textarea {
  width:100%; padding:8px; border-radius:8px; border:1px solid #d7dbe3;
}
.help { font-size:12px; color:#6b7280; margin-top:6px; }
.error-text { color:#dc2626; font-size: 13px; }

/* pagination */
.pager { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pager a { padding:6px 12px; background:#3498db; color:#fff; border-radius:6px; }
.pager select { padding:6px; border-radius:6px; border:1px solid #d7dbe3; }

/* responsive */
@media (max-width: 900px) {
  .form-grid.cols-3 { grid-template-columns: 1fr; }
  .member-card { flex-direction:column; align-items:flex-start; gap:10px; }
}