#roster-admin .roster-toolbar,#roster-admin .roster-fields{display:flex;flex-wrap:wrap;gap:18px;align-items:end}#roster-admin label{display:flex;flex-direction:column;gap:8px;margin:0}#roster-admin input,#roster-admin select,#roster-admin textarea{padding:11px;border:1px solid #c6cede;min-height:44px;background:white;color:#263042}#roster-admin .roster-table{overflow-x:auto;margin-top:20px}#roster-admin table{width:100%;border-collapse:collapse;min-width:700px}#roster-admin th{background:#f0f2f8;border-top:2px solid #302b69;text-align:left}#roster-admin th,#roster-admin td{padding:16px 12px;border-bottom:1px solid #dce1ed;vertical-align:top}#roster-admin small{display:block;color:#657187;margin-top:5px}#roster-admin .roster-editor{background:#f7f8fc;padding:22px;border:1px solid #dce1ed}#roster-admin fieldset{padding:18px;margin:20px 0;border:1px solid #c6cede}#roster-admin [data-remove]{margin-top:16px}#roster-admin textarea{width:100%;min-height:80px}#roster-admin .roster-editor>label{margin-top:20px}#roster-admin .roster-actions{display:flex;gap:12px;margin-top:20px}#roster-admin [data-error]{color:#a82121}

#roster-admin .committee-panel{margin:24px 0;border:1px solid #dce1ed;border-radius:8px;background:#f8f9fc;overflow:hidden}
#roster-admin .committee-panel>summary{padding:16px 20px;cursor:pointer;font-weight:700;color:#302b69}
#roster-admin [data-body-total]{display:inline-block;font-size:13px;font-weight:400;margin-left:8px;color:#657187}
#roster-admin .committee-content{padding:0 20px 20px}#roster-admin .committee-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
#roster-admin .committee-search{flex:1;min-width:180px}#roster-admin .committee-search input{width:100%}
#roster-admin .committee-add{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:16px;margin-top:16px;background:#fff;border:1px solid #dce1ed;border-radius:6px}
#roster-admin .committee-add[hidden]{display:none}#roster-admin .committee-add label{flex:1;min-width:180px}
#roster-admin .committee-hint{font-size:13px;color:#657187;margin:14px 0 0}
#roster-admin .committee-table{max-height:440px;overflow:auto;margin-top:12px;background:white;border:1px solid #dce1ed;border-radius:6px}
#roster-admin .committee-table table{min-width:480px}#roster-admin .committee-table th{position:sticky;top:0;z-index:1}
#roster-admin .committee-table td{vertical-align:middle;padding:10px 14px}#roster-admin .committee-table th{padding:12px 14px}
#roster-admin .committee-table th:first-child{width:45%}#roster-admin .committee-table th:last-child{width:155px}
#roster-admin .committee-badge{font-size:12px;color:#34336b;background:#eeeef7;padding:5px 9px;border-radius:4px;white-space:nowrap}
#roster-admin .committee-badge.is-archived{color:#657187;background:#f0f1f3}#roster-admin .committee-more summary{cursor:pointer;font-size:13px;color:#59647a;padding:8px 0}
#roster-admin .committee-more button{font-size:13px;margin-top:6px}#roster-admin .committee-empty{text-align:center;color:#657187;padding:24px}
@media(max-width:600px){#roster-admin .committee-content{padding:0 12px 12px}#roster-admin .committee-search{flex-basis:100%}}

#roster-admin .roster-appointments{margin:28px 0 24px;padding-top:20px;border-top:1px solid #dce1ed}
#roster-admin .roster-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
#roster-admin .roster-section-heading h4{margin:0;font-size:16px;color:#263042}
#roster-admin .roster-section-heading button{margin:0;white-space:nowrap}
#roster-admin .roster-appointments-empty{margin:14px 0 0;padding:16px;background:#fff;border:1px dashed #c6cede;border-radius:6px;font-size:14px;color:#657187}
#roster-admin [data-appointments]:not(:empty)+.roster-appointments-empty{display:none}
#roster-admin .roster-appointments fieldset:last-child{margin-bottom:0}

#roster-admin .roster-affiliation-actions{display:flex;gap:10px;flex-wrap:wrap}
#roster-admin .roster-select-affiliation{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-size:14px;color:#59647a}
#roster-admin .roster-select-affiliation input{width:18px;height:18px;min-height:18px;margin:0;padding:0;accent-color:#302b69}
#roster-admin .roster-affiliation-hint{font-size:13px;color:#657187;margin:12px 0 0}
#roster-admin .roster-undo{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:14px;padding:10px 14px;background:#fff4df;border-radius:5px;font-size:14px}
#roster-admin [data-appointment][hidden],#roster-admin .roster-undo[hidden]{display:none}
#roster-admin [data-appointments]:not(:has([data-appointment]:not([hidden])))+.roster-appointments-empty{display:block}
