.membership-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.membership-intro p{margin:0;color:var(--muted)}
.membership-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.membership-counts>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.membership-counts span{color:var(--muted)}
.membership-counts strong{font-size:calc(24px * var(--font-scale));font-weight:600}
.membership-counts small{font-size:calc(12px * var(--font-scale));color:var(--muted);font-weight:400}
.membership-error:empty,.membership-notice:empty{display:none}
.membership-error,.membership-notice{padding:12px 16px;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}
.membership-error{color:var(--red)}
.membership-notice{color:var(--ink)}
.membership-admin .member-body>small,.membership-link small{color:var(--muted);line-height:1.6}
.membership-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none;min-height:38px}
.membership-toolbar{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.membership-tabs{display:flex;gap:8px}
.membership-tabs button[aria-pressed=true]{background:var(--surface-raised);border-color:var(--green);color:var(--ink)}
.membership-tabs span{margin-left:8px;color:var(--muted)}
.membership-search{display:flex;gap:8px;flex-wrap:wrap;min-width:0}
.membership-search input{width:240px;min-width:0;max-width:100%}
.membership-search select,.membership-dialog input{max-width:100%;min-width:0}
.membership-rows .membership-person{flex:1 1 280px}
.membership-person-title{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.membership-person small{color:var(--muted);line-height:1.6}
.membership-person .tag{font-size:calc(10px * var(--font-scale));font-weight:500}
.membership-person .tag[data-status=active]{color:var(--green)}
.membership-person .tag[data-status=blocked],.membership-person .tag[data-status=revoked]{color:var(--red)}
.membership-rows li{flex-wrap:wrap}
.membership-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.membership-admin button.membership-danger,.membership-dialog button.membership-danger{color:var(--red)}
.membership-audit{list-style:none;margin:0;padding:0}
.membership-audit li{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 20px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.membership-audit li:first-child{border-top:0}
.membership-audit time{color:var(--muted);font-size:calc(11px * var(--font-scale))}
.membership-dialog{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;overflow:auto;padding:24px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:16px}
.membership-dialog::backdrop{background:rgb(0 0 0 / 65%)}
.membership-dialog-heading,.membership-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.membership-dialog-heading h2{font-size:calc(18px * var(--font-scale));margin:0}
.membership-dialog-heading button{font-size:24px;padding:0;min-width:36px;min-height:36px}
.membership-dialog-footer{justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.membership-dialog p{margin:0;line-height:1.6;overflow-wrap:anywhere}
.membership-dialog p strong{display:block;margin-top:8px}
.membership-admin :is(button,input,select,a):focus-visible,.membership-dialog :is(button,input):focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:767px){
  .membership-counts{grid-template-columns:1fr;gap:8px}
  .membership-counts>div{padding:12px 16px}
  .membership-toolbar{padding:16px}
  .membership-search{width:100%}
  .membership-search input{flex:1 1 180px;width:100%}
  .membership-search select{flex:1 1 140px}
  .membership-actions{justify-content:flex-start;width:100%}
  .membership-actions button{flex:1 1 auto;min-height:40px}
  .membership-button{width:100%}
  .membership-audit li{padding:12px 16px}
  .membership-dialog{padding:20px}
}
