.membership-panel{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--jgg-border);color:var(--jgg-text)}
.membership-panel h3{margin:0 0 1rem;line-height:1.4}
.membership-panel p{max-width:62ch;line-height:1.75;overflow-wrap:anywhere}
.membership-panel .membership-state{padding:1rem;border:1px solid var(--jgg-border);border-radius:10px;background:var(--jgg-surface-subtle)}
.membership-panel .membership-test-label,.membership-panel .membership-return{padding:.8rem 1rem;border-left:3px solid var(--jgg-accent);background:var(--jgg-selected);font-size:.95em}
.membership-panel .membership-offer{font-size:1.1em}
.membership-panel .membership-offer span{font-size:.8em;color:var(--jgg-text-muted)}
.membership-panel .membership-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.membership-panel button{min-height:48px;white-space:normal;line-height:1.5;max-width:100%}
.membership-panel button:disabled{cursor:default;opacity:.65}
.membership-panel .membership-plan-label{display:block;margin:1rem 0 .4rem;font-weight:700}
.membership-panel select{box-sizing:border-box;width:100%;max-width:34rem;min-height:48px;padding:.65rem .8rem;border:1px solid var(--jgg-control-border);border-radius:10px;background:var(--jgg-surface);color:var(--jgg-text);font:inherit}
.membership-panel select:disabled{opacity:.65}
.membership-panel :focus-visible{outline:3px solid var(--jgg-focus);outline-offset:4px}
.membership-panel [data-membership-message]{min-height:1.75em;color:var(--jgg-text-muted);font-size:.95em}
@media(max-width:580px){.membership-panel .membership-actions{align-items:stretch;flex-direction:column}.membership-panel button{width:100%}.membership-panel .membership-state{padding:.85rem}}
.membership-modal{box-sizing:border-box;width:min(720px,calc(100% - 32px));max-width:100%;max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--jgg-border);border-radius:16px;background:var(--jgg-surface);color:var(--jgg-text);box-shadow:0 16px 64px color-mix(in srgb,var(--jgg-shadow) 24%,transparent);overflow:auto;overscroll-behavior:contain}
.membership-modal::backdrop{background:color-mix(in srgb,var(--jgg-shadow) 55%,transparent)}
.membership-modal-content{padding:28px}
.membership-modal-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.membership-modal-heading .eyebrow{font-size:.72rem;letter-spacing:.08em}
.membership-modal .membership-modal-close{flex:none;min-height:44px;padding:8px 12px}
.membership-modal h2{font-size:1.7rem;line-height:1.3;margin:.7rem 0 1rem}
.membership-modal h3{font-size:1.2rem;line-height:1.4}
.membership-modal p{font-size:1rem;line-height:1.7;overflow-wrap:anywhere}
.membership-modal :focus-visible,.membership-modal h2:focus{outline:3px solid var(--jgg-focus);outline-offset:4px}
.membership-proposed-plans{margin-top:1.5rem}
.membership-proposed-grid{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:1rem 0;padding:0}
.membership-proposed-grid li{padding:16px;border:1px solid var(--jgg-border);border-radius:10px;background:var(--jgg-surface-subtle)}
.membership-proposed-grid h4{font-size:1rem;margin:0 0 .7rem}
.membership-proposed-grid .membership-proposed-amount{font-size:1.7rem;line-height:1.3;font-weight:800;margin:.5rem 0}
.membership-proposed-amount span{font-size:.9rem;font-weight:500}
.membership-modal .membership-policy-pending{font-size:.9rem;color:var(--jgg-text-muted)}
.membership-modal .membership-panel{margin-top:1.2rem;padding-top:1rem}
.membership-modal [data-membership-message]:empty{display:none}
.membership-modal-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.5rem;align-items:center}
.membership-modal-actions :is(a,button){min-height:48px;line-height:1.5;box-sizing:border-box}
@media(max-width:580px){.membership-modal-content{padding:20px}.membership-modal h2{font-size:1.5rem}.membership-proposed-grid{grid-template-columns:1fr}.membership-modal-actions{align-items:stretch;flex-direction:column}.membership-modal-actions :is(a,button){width:100%;justify-content:center}}
