.app-shell[data-page=members] .membership-admin{gap:var(--dashboard-gap,12px)}
.membership-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dashboard-gap,12px);min-width:0}
.membership-management{display:grid;grid-column:2;align-content:start;gap:var(--dashboard-gap,12px);min-width:0}
.membership-management>.panel{min-width:0}
@media(max-width:1099px){.membership-overview{grid-template-columns:1fr}.membership-management{grid-column:1}}
.membership-requests-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;overflow-wrap:anywhere}
.membership-requests-empty small{max-width:100%;font-size:calc(11px * var(--font-scale));line-height:1.6}
.membership-admin .membership-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dashboard-gap,12px);min-width:0;padding:0;border:0;border-radius:0;background:transparent}
.membership-admin .membership-counts>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-width:0;min-height:144px;padding:20px;border:1px solid #2a272f;border-radius:var(--dashboard-radius,var(--radius));background:var(--surface);text-align:center}
.membership-admin .membership-counts>div>span{max-width:100%;padding:4px 8px;border-radius:6px;color:var(--green);background:rgb(0 223 117 / 12%);font-size:calc(11px * var(--font-scale));line-height:1.4;overflow-wrap:anywhere}
.membership-admin .membership-counts>div:nth-child(2)>span{color:var(--red);background:rgb(255 91 97 / 12%)}
.membership-admin .membership-counts>div:nth-child(3)>span{color:#69b1ff;background:rgb(105 177 255 / 12%)}
.membership-admin .membership-counts strong{font-size:calc(36px * var(--font-scale));letter-spacing:-1px;font-weight:550;overflow-wrap:anywhere}
.membership-admin .membership-counts small{font-size:calc(11px * var(--font-scale));color:var(--muted);font-weight:400;letter-spacing:normal}
@media(max-width:760px){.membership-admin .membership-counts{grid-template-columns:1fr}}
.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-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-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-dialog{padding:20px}
}

.app-shell[data-page=members] .member-invite-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto;align-items:start;gap:8px 12px}
.app-shell[data-page=members] .member-invite-form>.member-field{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:1 / 3;gap:8px;max-width:none;position:relative}
.app-shell[data-page=members] .member-invite-form>.member-field:first-child{grid-column:1}
.app-shell[data-page=members] .member-invite-form>.member-field:nth-child(2){grid-column:2}
.app-shell[data-page=members] .member-invite-form .member-field label{grid-row:1;margin:0}
.app-shell[data-page=members] .member-invite-form .member-field input{grid-row:2;height:42px;margin:0}
.app-shell[data-page=members] .member-invite-form>.action-result{grid-row:3;align-self:start;width:100%}
.app-shell[data-page=members] .member-invite-form>.action-result:nth-child(3){grid-column:1}
.app-shell[data-page=members] .member-invite-form>.action-result:nth-child(4){grid-column:2}
.app-shell[data-page=members] .member-invite-form>.action-result>button{height:42px;width:100%;white-space:nowrap}
@media(max-width:899px){
  .app-shell[data-page=members] .member-invite-form{grid-template-columns:repeat(2,minmax(0,260px))}
  .app-shell[data-page=members] .member-invite-form>.action-result{grid-row:3;width:100%}
  .app-shell[data-page=members] .member-invite-form>.action-result:nth-child(3){grid-column:1}
  .app-shell[data-page=members] .member-invite-form>.action-result:nth-child(4){grid-column:2}
  .app-shell[data-page=members] .member-invite-form>.action-result>button{width:100%}
}
@media(max-width:599px){
  .app-shell[data-page=members] .member-invite-form{grid-template-columns:minmax(0,1fr);gap:12px}
  .app-shell[data-page=members] .member-invite-form>.member-field{grid-template-rows:auto 42px;grid-row:auto}
  .app-shell[data-page=members] .member-invite-form>:is(.member-field,.action-result):nth-child(n){grid-column:1;grid-row:auto}
}
