/* Explicit surface colours keep member permissions legible in both app themes. */
.admin-page .member-access-panel,.admin-page .member-role-dialog { color:#172d3a; background:#fff; color-scheme:light; }
.member-access-panel .admin-panel-head { background:#f4f8fb; align-items:flex-start; }
.member-access-panel .admin-panel-head h2,.member-role-dialog h2 { color:#172d3a; }
.member-access-panel .admin-panel-head p { color:#506575; font-size:13px; line-height:1.5; }
.member-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding:18px 20px 10px; }
.member-filters label { display:grid; gap:6px; min-width:145px; flex:1; color:#344f61; font-size:12px; font-weight:750; }
.member-filters .member-search { flex:2; min-width:220px; }
.member-filters input,.member-filters select { box-sizing:border-box; min-width:0; width:100%; min-height:44px; padding:9px 12px; border:1px solid #b8cad5; border-radius:10px; background:#fff; color:#172d3a; font:inherit; }
.member-filters .admin-refresh { min-height:44px; color:#175c80; border-color:#b8cad5; background:#f4f8fb; }
.member-result-count { margin:0; padding:4px 20px 14px; color:#506575; font-size:12px; }
.member-access-panel .admin-table th { color:#405d70; background:#eef4f8; font-size:11px; }
.member-access-panel .admin-table td { color:#344f61; font-size:13px; white-space:normal; vertical-align:middle; }
.member-access-panel .admin-table td strong { display:block; color:#172d3a; font-size:13px; }
.member-access-panel .admin-table td small { display:block; margin-top:4px; color:#506575; font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.member-access-panel .person-cell { min-width:190px; }
.member-access-panel .person-cell > div { min-width:0; }
.member-access-panel .admin-table tbody tr:hover { background:#f7fafc; }
.member-role-badge,.member-admin-badge { display:inline-block; padding:5px 9px; border-radius:7px; color:#174f76; background:#e7f2fa; font-size:12px; font-weight:800; }
.member-admin-badge { margin-top:6px; color:#654b12; background:#fff0cb; font-size:11px; }
.member-access-panel .admin-table td .member-needs-review { color:#974018; }
.member-access-panel .admin-actions button { min-height:44px; padding:10px 14px; color:#fff; background:#175c80; border:1px solid #175c80; border-radius:10px; font-size:12px; white-space:nowrap; }
.member-role-dialog { width:min(800px,calc(100% - 24px)); max-height:90vh; max-height:90dvh; }
.member-role-dialog .dialog-head { color:#172d3a; }
.member-role-dialog .dialog-head p,.member-role-dialog .site-kicker { color:#506575; }
.member-role-dialog .admin-form-section { padding:12px 16px; background:#f7fafc; border-color:#c9d9e3; }
.member-role-dialog .admin-form-section legend span { font-size:14px; color:#203f54; }
.member-role-dialog .admin-form-section legend small { color:#506575; font-size:11px; line-height:1.5; }
.member-role-dialog .field > span { color:#344f61; font-size:12px; }
.member-role-dialog .field > small { color:#506575; font-size:11px; line-height:1.5; }
.admin-page .member-role-dialog .field input,.admin-page .member-role-dialog .field select { min-height:44px; font-size:14px; color:#172d3a; background:#fff; border-color:#b8cad5; }
.member-role-dialog .field select option:disabled { color:#758591; }
.member-access-preview { display:grid; gap:6px; padding:16px; border:1px solid #bad2e3; border-left:4px solid #175c80; border-radius:12px; background:#edf5fb; color:#25485f; }
.member-access-preview strong { color:#17364b; font-size:16px; }
.member-access-preview span,.member-access-preview p { margin:0; font-size:13px; line-height:1.5; }
.member-access-preview small { font-size:11px; color:#506575; line-height:1.5; }
.member-advanced-access { margin-top:14px; }
.member-advanced-access > summary { padding:12px 0; cursor:pointer; font-size:13px; font-weight:800; color:#244b66; }
.member-advanced-access > p { color:#506575; font-size:12px; line-height:1.5; }
.member-revoke-button { min-height:44px; margin-top:12px; padding:10px 14px; border:1px solid #d5a8ab; border-radius:9px; color:#96303a; background:#fff5f5; font-size:12px; }
.member-role-dialog .dialog-actions { position:sticky; bottom:-24px; z-index:2; padding:14px 0; background:#fff; border-top:1px solid #d8e4eb; }
.member-role-dialog #formMessage { color:#96303a; }
.member-access-panel :focus-visible,.member-role-dialog :focus-visible { outline:3px solid #087aaa; outline-offset:2px; }
@media(max-width:680px) {
  .member-filters { padding:14px; gap:10px; }
  .member-filters .member-search { flex-basis:100%; min-width:0; }
  .member-filters label { min-width:120px; }
  .member-filters input,.member-filters select,.admin-page .member-role-dialog .field input,.admin-page .member-role-dialog .field select { font-size:16px; }
  .member-access-panel .admin-table td::before { color:#506575; font-size:10px; }
  .member-access-panel .admin-table td { gap:12px; }
  .member-access-panel .admin-table td:not(:first-child):not(:last-child) { display:grid; grid-template-columns:105px minmax(0,1fr); align-items:start; }
  .member-access-panel .admin-table td:not(:first-child):not(:last-child) > * { grid-column:2; }
  .member-access-panel .admin-table td::before { grid-column:1; grid-row:1 / span 5; }
  .member-role-dialog form { padding:16px; }
  .member-role-dialog .admin-form-grid { grid-template-columns:1fr; }
  .member-role-dialog .admin-form-section { padding:10px; }
  .member-role-dialog .dialog-actions { bottom:-16px; }
  .member-role-dialog .dialog-actions button { min-height:44px; }
}
