:root {
  --ph-bg: #0b0d14;
  --ph-card: #121520;
  --ph-purple: #8b2eff;
  --ph-text: #e8e6f0;
  --ph-muted: #9a96ab;
  --ph-border: rgba(139, 46, 255, 0.28);
  --ph-radius: 14px;
}
body { background: var(--ph-bg) !important; color: var(--ph-text) !important; }
a { color: #c4a7ff; }
a:hover { color: #e9d5ff; }
.card, .member-card, .srv-card, .top-card, .ph-online-card, .cab-card {
  background: var(--ph-card) !important;
  border: 1px solid var(--ph-border) !important;
  border-radius: var(--ph-radius) !important;
  color: var(--ph-text);
}
.btn-primary, .ph-btn-primary {
  background: linear-gradient(135deg, #8b2eff, #5b1db8) !important;
  border: none !important;
  box-shadow: 0 8px 24px rgba(139, 46, 255, 0.35);
}
.form-control, .form-select {
  background: #0e111a !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: var(--ph-text) !important;
}
.text-muted, .text-secondary { color: var(--ph-muted) !important; }
.ph-search { display: flex; gap: 8px; margin: 16px 0 20px; flex-wrap: wrap; }
.ph-search input {
  flex: 1; min-width: 200px; padding: 10px 14px; border-radius: 10px;
  background: #0e111a; border: 1px solid var(--ph-border); color: #fff;
}
.ph-search button {
  padding: 10px 16px; border-radius: 10px; border: 0;
  background: var(--ph-purple); color: #fff; font-weight: 600;
}

/* Page polish */
.page-wrap { padding: 96px 0 48px; max-width: 1100px; margin: 0 auto; }
.page-title { font-size: 1.8rem; font-weight: 700; margin-bottom: 8px; }
.page-sub { color: var(--ph-muted); margin-bottom: 20px; }
.ph-panel {
  background: var(--ph-card);
  border: 1px solid var(--ph-border);
  border-radius: var(--ph-radius);
  padding: 18px 20px;
  margin-bottom: 16px;
}
.members-grid, .gal-grid { gap: 14px; }
.role-badge { border-radius: 999px; padding: 2px 10px; font-size: .75rem; }
.kd-pill { background: #0e111a; border-radius: 8px; }
