.portal-roster-editor{min-width:0}
.portal-people-collapse>summary{display:flex;gap:10px;align-items:center;cursor:pointer;list-style:none;min-height:44px}
.portal-people-collapse>summary::-webkit-details-marker{display:none}
.portal-people-collapse>summary::before{content:'+';font-size:1.4rem;font-weight:700;color:var(--green)}
.portal-people-collapse[open]>summary::before{content:'-'}
.portal-people-collapse>summary h3{margin:0}
.portal-roster-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:12px 0}
.portal-roster-editor input:not([type=checkbox]),.portal-roster-editor select{box-sizing:border-box;width:100%;min-width:0;min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit}
.portal-roster-editor input:disabled,.portal-roster-editor select:disabled{opacity:.7}
.portal-roster-rows{border-top:1px solid var(--line)}
.portal-roster-row{border-bottom:1px solid var(--line)}
.portal-roster-row>summary{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,2fr) auto;gap:8px 16px;align-items:center;padding:14px 26px 14px 0;position:relative;cursor:pointer;min-height:52px;box-sizing:border-box;list-style:none}
.portal-roster-row>summary::-webkit-details-marker{display:none}
.portal-roster-row>summary::after{content:'+';position:absolute;right:4px;top:14px;font-size:1.2rem;color:var(--green)}
.portal-roster-row[open]>summary::after{content:'-'}
.portal-roster-meta{font-size:.83rem;color:var(--muted);overflow-wrap:anywhere}
.portal-roster-saved{color:var(--green);font-size:.85rem;font-weight:800;overflow-wrap:anywhere}
.portal-roster-row>summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.portal-roster-form{padding:4px 0 16px;margin:0}
.portal-roster-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;align-items:end}
.portal-roster-form .portal-field{min-width:0;margin:0}
.portal-roster-form fieldset{margin:16px 0;padding:12px 0;border:0;border-top:1px solid var(--line);min-width:0}
.portal-roster-form legend{font-weight:800;padding:0 10px 0 0;color:var(--green)}
.portal-roster-checkbox{display:flex;gap:8px;align-items:center;min-height:42px}
.portal-roster-form .portal-actions{gap:12px;align-items:center;flex-wrap:wrap}
.portal-roster-note{margin:8px 0 0;color:var(--green);overflow-wrap:anywhere;font-weight:700}
.portal-roster-error{color:var(--red)}
.portal-roster-receipt{padding:12px 0;color:var(--green);font-weight:700;overflow-wrap:anywhere}
.portal-roster-group,.portal-roster-add,.portal-roster-account-tools{margin:16px 0;border-top:1px solid var(--line)}
.portal-roster-group>summary,.portal-roster-add>summary,.portal-roster-account-tools>summary{cursor:pointer;padding:12px 0;font-weight:800;color:var(--green)}
.portal-roster-account-tools .portal-people-picker{margin-top:8px}
@media(max-width:650px){
  .portal-roster-toolbar,.portal-roster-fields{grid-template-columns:minmax(0,1fr)}
  .portal-roster-row>summary{grid-template-columns:minmax(0,1fr);gap:4px}
  .portal-roster-row>summary strong{overflow-wrap:anywhere}
  .portal-roster-form .portal-actions>.btn{flex:1 1 140px;text-align:center}
}
