.roster-section{background:#edf5fa;border-top:1px solid var(--line)}
.roster-intro{color:var(--muted);font-size:13px;letter-spacing:.08em}
.roster-status{color:var(--muted);font-size:13px;margin-bottom:24px}
.roster-status:empty{display:none}
.roster-empty{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:36px;padding:48px 0 54px;border-top:1px solid #bdd3e2;border-bottom:1px solid #bdd3e2}
.roster-empty h3{font:30px/1.5 var(--serif)}
.roster-empty p{margin-top:12px;font-size:14px;color:var(--muted)}
.roster-symbol{width:90px;height:80px;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;align-items:center}
.roster-symbol:before{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:#87acc8}
.roster-symbol i{display:block;width:22px;height:40px;border:1px solid #7198b8;border-radius:13px 13px 0 0;position:relative;margin:15px auto 0;background:#e5f0f8}
.roster-symbol i:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:-23px;border:1px solid #7198b8;border-radius:50%;background:#d1e4f2}
.roster-symbol i:nth-child(2){transform:translateY(-8px);background:#c6dded}
.roster-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:22px;margin-bottom:18px}
.roster-toolbar label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted)}
.roster-search-label{flex:1;min-width:220px;max-width:450px}
.roster-group-label{min-width:180px}
.roster-toolbar input,.roster-toolbar select{background:#f8fbfd;border:1px solid #b8d0e0;min-height:44px;padding:10px 12px;color:var(--ink);font-size:14px;border-radius:0;max-width:100%}
.roster-toolbar .text-link{font-size:13px;min-height:44px;gap:12px}
.roster-group{border-top:1px solid #b9d0df;padding:26px 0 32px}
.roster-group:last-child{border-bottom:1px solid #b9d0df}
.roster-group-heading{display:flex;gap:20px;align-items:baseline;justify-content:space-between;margin-bottom:18px}
.roster-group h3{font:27px/1.5 var(--serif)}
.roster-group-count{font-size:12px;color:var(--muted);white-space:nowrap}
.roster-columns,.roster-member{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,3fr);gap:30px}
.roster-columns{padding:0 0 9px;color:#617e95;font-size:11px;letter-spacing:.08em;border-bottom:1px solid #d0e0eb}
.roster-members{list-style:none;margin:0;padding:0}
.roster-member{padding:14px 0;border-bottom:1px solid #d8e6ef;font-size:14px;align-items:baseline}
.roster-member:last-child{border:0}
.roster-member-name{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0;overflow-wrap:anywhere}
.roster-member-name strong{font-weight:500}
.roster-leader{font-size:10px;padding:2px 6px;color:var(--blue);border:1px solid #b2ccdf;white-space:nowrap}
.roster-member-firm{min-width:0;color:var(--muted);overflow-wrap:anywhere}
.roster-no-results{padding:32px 0;border-top:1px solid #bdd3e2;font-size:15px;color:var(--muted)}
.roster-retry{margin-top:22px}
@media(max-width:860px){.roster-empty{padding:35px 0;gap:24px;grid-template-columns:90px 1fr}.roster-empty h3{font-size:28px}.roster-empty p{font-size:13px}}
@media(max-width:560px){.roster-section .section-heading{align-items:flex-start;gap:16px;flex-direction:column}.roster-intro{font-size:12px}.roster-empty{grid-template-columns:1fr;gap:20px;padding:30px 0}.roster-empty h3{font-size:26px}.roster-empty p{font-size:13px;line-height:1.9}.roster-symbol{width:80px;height:65px}.roster-symbol:before{bottom:3px}.roster-toolbar{gap:15px}.roster-search-label{max-width:none;flex:1 0 100%;min-width:0}.roster-group-label{min-width:150px;flex:1}.roster-toolbar input,.roster-toolbar select{font-size:17px}.roster-toolbar .text-link{font-size:12px}.roster-status{font-size:12px}.roster-group{padding:22px 0}.roster-group h3{font-size:25px}.roster-group-count{font-size:11px}.roster-columns,.roster-member{grid-template-columns:minmax(80px,1fr) minmax(0,2fr);gap:18px}.roster-member{font-size:13px;padding:13px 0}.roster-leader{font-size:9px}.roster-member-name{gap:5px}}

/* Readable names, firms and filters on both narrow and wide displays. */
.roster-intro, .roster-status { font-size: 14px; }
.roster-empty > div, .roster-group-heading h3 { min-width: 0; overflow-wrap: anywhere; }
.roster-empty p, .roster-member { font-size: 15px; }
.roster-toolbar label { font-size: 14px; min-width: 0; }
.roster-toolbar input, .roster-toolbar select { font-size: 16px; min-width: 0; width: 100%; min-height: 46px; }
.roster-toolbar .text-link, .roster-retry { min-height: 44px; font-size: 14px; }
.roster-group-heading { flex-wrap: wrap; gap: 8px 20px; }
.roster-group-count, .roster-columns { font-size: 13px; }
.roster-leader { font-size: 12px; }

@media (max-width: 700px) {
  .roster-toolbar { gap: 16px; }
  .roster-search-label { flex-basis: 100%; max-width: none; }
  .roster-group-label { flex: 1; }
  .roster-empty { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-block: 30px; }
  .roster-empty p { font-size: 15px; }
  .roster-columns, .roster-member { grid-template-columns: minmax(80px, 1fr) minmax(0, 2fr); gap: 16px; }
  .roster-member { font-size: 15px; align-items: start; }
  .roster-member-name { gap: 6px; }
  .roster-leader { font-size: 11px; }
}

/* Assistants are listed separately from the ten attendees in each group. */
.roster-group-heading > div { min-width: 0; }
.roster-assistant { margin-top: 5px; color: var(--muted); font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
