.membership-page h2{font-size:1.25rem;margin:0 0 10px}
.membership-page h3{font-size:1rem;margin:16px 0 8px}
.membership-page small{color:var(--muted);font-weight:400}
.membership-page .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.membership-card{border:1px solid var(--line);border-radius:16px;padding:22px;margin:16px 0;background:#fff}
.membership-card>summary{font-weight:800;cursor:pointer;color:var(--green)}
.membership-card>summary+*{margin-top:12px}
.membership-card fieldset{margin:0 0 14px;padding:4px 14px;border:1px solid var(--line);border-radius:12px}
.membership-card fieldset .checkbox{margin:10px 0}
.membership-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.membership-actions .primary,.membership-actions .secondary{width:auto;margin:0}
.membership-page [data-membership-message]:empty{display:none}
.membership-page [data-membership-message]{position:sticky;bottom:14px;padding:13px 16px;background:#e3f1e6;border:1px solid #c5dfcb;border-radius:12px;margin:16px 0 0;font-weight:700;box-shadow:0 6px 18px #193b2918}
.account-email [data-action=membership-admin]{display:block;margin-top:8px}
.membership-page>.back{display:block;width:max-content;margin-bottom:6px}
.membership-kicker{font-size:.68rem;letter-spacing:.12em;font-weight:800;color:#638174}

/* Student page */
.ma-status{border-radius:16px;padding:18px 20px;background:#f1f4ef;border:1px solid var(--line);margin:0 0 26px}
.ma-status.is-full{background:#e3f1e6;border-color:#c5dfcb}
.ma-status>strong{font-size:1.15rem;color:var(--green)}
.ma-status p{margin:8px 0 0;font-size:.9rem;line-height:1.5}
.ma-status .text-button{padding:8px 0;min-height:0;margin-top:6px}
.ma-join input[name=code]{font:700 1.4rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;max-width:260px}
.ma-join .primary{align-self:flex-start;width:auto}
.ma-admin-link{margin:24px 0 0;font-weight:700}
.ma-help{margin-top:26px;border-top:1px solid var(--line);padding-top:14px;font-size:.88rem}
.ma-help summary{cursor:pointer;font-weight:700;color:var(--muted)}
.ma-help p{margin:10px 0 0;line-height:1.55}

/* Admin */
.membership-admin{max-width:1000px;margin:24px auto 60px;padding:0 4px}
.ma-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:8px 0 18px}
.ma-head h1{margin:4px 0 6px}
.ma-head p{margin:0;color:var(--muted)}
.ma-head .primary{width:auto}
.ma-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:.86rem;color:#4f6259;margin:6px 0 0}
.ma-pill{border-radius:99px;padding:4px 11px;font-size:.76rem;font-weight:800;white-space:nowrap}
.ma-pill.is-active{background:#ddf2e0;color:#1f5a35}
.ma-pill.is-soon{background:#fff0c7;color:#73520a}
.ma-pill.is-expired{background:#f8e3d8;color:#8a3f20}
.ma-wait{font-weight:800;color:#8a5a00}
.ma-count{display:inline-block;min-width:1.7em;padding:1px 8px;margin-left:6px;border-radius:99px;background:#eef2ec;font-size:.8rem;text-align:center;vertical-align:middle}
.ma-schools{display:flex;flex-direction:column;gap:12px;margin:16px 0}
.ma-school{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.ma-school h2{margin:0;font-size:1.15rem}
.ma-school h2 a{color:var(--ink);text-decoration:none}
.ma-school h2 a:hover{text-decoration:underline}
.ma-sub{margin:8px 0 0;font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}
.ma-code{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.ma-code span,.ma-codecard span{font-size:.68rem;letter-spacing:.12em;font-weight:800;color:#638174;text-transform:uppercase}
.ma-code strong{font:700 1.05rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
.ma-row-actions{display:flex;gap:8px;align-items:center}
.ma-row-actions .secondary{width:auto;min-height:40px;padding:8px 13px;font-size:.82rem}
.ma-row-actions .text-button{text-decoration:none;font-weight:700;color:var(--green)}
.ma-empty{border:1px dashed #b9c8bb;border-radius:16px;padding:26px;text-align:center;color:var(--muted);background:#fbfcf9}
.ma-empty h2{color:var(--ink)}
.ma-empty p{margin:0}
.ma-inbox{border-color:#ecd28a;background:#fffbf0}
.ma-inbox form+form{border-top:1px solid #f0e2b8;margin-top:14px;padding-top:4px}
.ma-person span{line-height:1.45}
.ma-search{display:flex;gap:10px}
.ma-search label{flex:1}
.ma-search input{width:100%;min-height:45px;border:1px solid #b7c6b8;border-radius:10px;padding:8px 12px;font-size:1rem}
.ma-search .secondary{width:auto}
.ma-results{list-style:none;padding:0;margin:14px 0 0}
.ma-results li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:.9rem}
.ma-none{color:var(--muted);font-size:.9rem}
.ma-codecard{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;background:var(--green);color:#fff;border-radius:18px;padding:22px 24px;margin:16px 0}
.ma-codecard span{color:#bfe0d2}
.ma-codecard strong{display:block;font:700 2.3rem/1.15 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;margin:4px 0 6px}
.ma-codecard p{margin:0;max-width:440px;font-size:.88rem;color:#e2f1ea;line-height:1.5}
.ma-codecard .primary{background:#fff;color:var(--green);box-shadow:0 4px 0 #0a3a32}
.ma-codecard .secondary{border-color:#7fb3a3;color:#fff}
.ma-codecard .text-button{color:#e2f1ea}
.ma-warning{background:#f8e3d8;color:#6e3015;border-radius:12px;padding:12px 16px;font-weight:700}
.ma-list-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.ma-list-head h2{margin:0}
.ma-list-head input{min-height:42px;border:1px solid #b7c6b8;border-radius:10px;padding:6px 12px;font-size:.95rem;min-width:240px}
.ma-members{list-style:none;padding:0;margin:8px 0 14px}
.ma-members li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);font-size:.92rem}
.ma-members li>div{overflow-wrap:anywhere}
.ma-members input{width:18px;height:18px}
.ma-lock{width:10px;height:10px;border-radius:50%;background:#9cc2ad;margin-left:4px}
.ma-via{font-size:.78rem;color:var(--muted);white-space:nowrap}
.ma-remove{border-color:#d9b2a0;color:#8a3f20}
.ma-note{font-size:.82rem;color:var(--muted);margin:12px 0 0}
.ma-toggle{margin:4px 0 18px}
.ma-licence{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;margin-bottom:12px}
.ma-licence p{margin:0;display:flex;gap:8px;align-items:center}
.ma-licence .secondary{width:auto}
.ma-form small{font-size:.78rem;line-height:1.45}
.ma-more{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.ma-more summary{cursor:pointer;font-weight:700;font-size:.88rem;color:var(--green)}
.ma-more label{margin-top:12px}
.ma-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:.9rem}
.ma-facts dt{font-weight:800}
.ma-facts dd{margin:0;overflow-wrap:anywhere}
.ma-guide textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font:.82rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;background:#fbfcf9;margin:6px 0 12px;resize:vertical}
.ma-guide .secondary{width:auto}
.ma-dialog{border:0;border-radius:18px;padding:24px;max-width:420px;box-shadow:0 20px 60px #0b2a2440}
.ma-dialog::backdrop{background:#0b2a2455}
.ma-dialog p{margin:0 0 18px;font-weight:700;line-height:1.5}
.ma-danger{background:#a5432a;box-shadow:0 4px 0 #6e2915}
@media(max-width:760px){
  .ma-school{grid-template-columns:minmax(0,1fr) auto;gap:12px 14px}
  .ma-row-actions{grid-column:1/-1;flex-wrap:wrap}
}
@media(max-width:620px){
  .membership-admin{margin:10px auto 40px;padding:0 2px}
  .ma-head{flex-direction:column;align-items:stretch}
  .ma-head .primary{width:100%}
  .membership-card{padding:18px}
  .ma-school{grid-template-columns:1fr;padding:16px}
  .ma-code{flex-direction:row;align-items:baseline;gap:10px}
  .ma-codecard{padding:20px}
  .ma-codecard strong{font-size:1.9rem}
  .ma-codecard .membership-actions{width:100%}
  .ma-list-head input{min-width:0;width:100%}
  .ma-members li{grid-template-columns:22px minmax(0,1fr);gap:2px 12px}
  .ma-via{grid-column:2}
  .ma-results li{flex-direction:column;align-items:flex-start}
  .ma-search{flex-direction:column}
}
