.candidate-roster{width:100%;min-width:0;container-type:inline-size}
.candidate-stage-context{font-size:12px;line-height:1.6;overflow-wrap:anywhere;color:#53657f;margin-top:3px}
.candidate-roster-toolbar{display:flex;justify-content:flex-end;gap:8px;margin:0 0 12px}
.candidate-roster-toolbar [aria-pressed=true]{color:#2162ef;background:#edf3ff;box-shadow:inset 0 0 0 1px #c9d9ff}
.candidate-roster .candidate-grouped-table{width:100%;min-width:0;table-layout:fixed}
.candidate-roster .candidate-grouped-table td{vertical-align:top;overflow-wrap:anywhere}
.candidate-roster .candidate-group-name{cursor:pointer}
.candidate-roster .candidate-group-name:focus-visible{outline:2px solid #2162ef}
.candidate-roster-evidence>td{background:#f7f9fd;padding:10px 14px!important;border-bottom:2px solid #dfe8f5!important;font-size:12px}
.candidate-roster-evidence .d-row,.candidate-roster-evidence .d-event,.candidate-roster-evidence .d-project{margin:0;padding:4px;border:0;background:transparent}
.candidate-roster-evidence p{margin:4px 0}
.candidate-roster-evidence details{margin-top:6px}
.candidate-roster-unavailable{padding:16px;border:1px solid #e4eaf4;border-radius:12px;margin:8px 0}
.candidate-roster-photo{height:150px;width:100px;background:#eef3f9;border-radius:10px;display:grid;place-items:center;margin-bottom:8px;font-size:12px}
.candidate-roster-photo img{width:100%;height:100%;object-fit:contain;border-radius:10px}
#modal .modal-card.has-candidate-roster{width:min(1440px,96vw);max-width:96vw}
.candidate-roster[data-mode=cards] colgroup,.candidate-roster[data-mode=cards] thead{display:none}
.candidate-roster[data-mode=cards] table,.candidate-roster[data-mode=cards] tbody{display:block}
.candidate-roster[data-mode=cards] tr[data-roster-id]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;border:1px solid #e1e8f3;border-radius:12px 12px 0 0}
.candidate-roster[data-mode=cards] tr[data-roster-id]>td{display:block;width:auto!important;border:0;padding:12px}
.candidate-roster[data-mode=cards] tr[data-roster-id]>td:before{content:attr(data-label);display:block;color:#7e90ab;font-size:12px;margin-bottom:8px}
.candidate-roster[data-mode=cards] .candidate-roster-evidence{display:block}
.candidate-roster[data-mode=cards] .candidate-roster-evidence>td{display:block;width:auto;border-radius:0 0 12px 12px}
@container (max-width:950px){
 .candidate-roster colgroup,.candidate-roster thead{display:none}
 .candidate-roster table,.candidate-roster tbody{display:block}
 .candidate-roster tr[data-roster-id],.candidate-roster[data-mode=cards] tr[data-roster-id]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #e1e8f3;border-radius:12px 12px 0 0;margin-top:12px}
 .candidate-roster tr[data-roster-id]>td{display:block;width:auto!important;border:0;padding:10px}
 .candidate-roster tr[data-roster-id]>td:before{content:attr(data-label);display:block;color:#7e90ab;font-size:12px;margin-bottom:6px}
 .candidate-roster .candidate-roster-evidence,.candidate-roster .candidate-roster-evidence>td{display:block;width:auto}
}

/* Appointment queues prioritize the original event; full candidate fields stay expandable. */
.candidate-roster-compact{margin:10px 0;border:1px solid #dce5f2;border-radius:12px;background:#fff;overflow:hidden}.candidate-roster-compact-evidence{padding:14px 16px}.candidate-roster-compact-evidence>.d-row{padding:0;border:0;align-items:flex-start;gap:12px}.candidate-roster-compact-evidence h4{margin:0 0 8px;font-size:15px}.candidate-roster-compact-evidence p{font-size:13px;color:#526986;line-height:1.7;margin:5px 0}.candidate-roster-compact-evidence .d-actions{min-width:125px;max-width:240px}.candidate-roster-profile{border-top:1px solid #e7edf6;padding:10px 14px;background:#f8faff}.candidate-roster-profile>summary{font-size:13px;color:#42628c;cursor:pointer;line-height:1.7}.candidate-roster-profile[open]>summary{margin-bottom:12px}.candidate-roster-profile .candidate-grouped-table-wrap{overflow:auto}.candidate-roster-more{margin-top:12px;border:1px dashed #cfdcef;border-radius:10px;padding:12px}.candidate-roster-more>summary{font-size:13px;color:#315a90;cursor:pointer}.candidate-roster.is-compact .candidate-stage-context{font-size:13px}.candidate-roster.is-compact .candidate-roster-profile table{background:#fff}@media(max-width:900px){.candidate-roster-compact-evidence>.d-row{display:block}.candidate-roster-compact-evidence .d-actions{margin-top:10px;max-width:100%;justify-content:flex-start}.candidate-roster-compact-evidence{padding:12px}.candidate-roster-profile{padding:10px 12px}}
