.roster-directory{margin-top:84px;border-top:4px solid var(--navy);background:#fff;box-shadow:0 20px 50px rgba(7,21,35,.08)}
.roster-header{display:flex;justify-content:space-between;align-items:end;gap:30px;padding:30px 34px;background:#eef2f3;border-bottom:1px solid var(--line)}
.roster-header h3{font-size:2.6rem}.roster-header p{margin:8px 0 0;color:var(--muted)}
.roster-search input{width:min(320px,70vw);min-height:46px;border:1px solid #aebbc3;background:white;padding:11px 14px;color:var(--ink);font:inherit}
.roster-search input:focus{outline:3px solid rgba(215,255,54,.7);border-color:var(--navy)}
.roster-table-wrap{overflow-x:auto}.roster-table{width:100%;border-collapse:collapse}.roster-table th,.roster-table td{padding:15px 22px;text-align:left;border-bottom:1px solid #e2e7e9}.roster-table th{background:var(--navy);color:white;font-size:.72rem;text-transform:uppercase;letter-spacing:.11em}.roster-table th:first-child,.roster-table td:first-child{width:76px;color:#80909a}.roster-table th:last-child,.roster-table td:last-child{width:170px}.roster-table td:nth-child(2){font-weight:700}.roster-size{display:inline-flex;min-width:58px;justify-content:center;padding:5px 10px;background:var(--lime);color:var(--navy);font-weight:900;font-size:.76rem;letter-spacing:.06em}.roster-empty{padding:30px;text-align:center;color:var(--muted)}
.roster-profile-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;border:0;background:transparent;padding:2px 0;color:var(--ink);font:700 1rem Inter,Arial,sans-serif;text-align:left;cursor:pointer}.roster-profile-button span{color:#80909a;transition:.2s}.roster-profile-button:hover,.roster-profile-button:focus-visible{color:#607900}.roster-profile-button:hover span{color:var(--navy);transform:translate(2px,-2px)}.roster-profile-button:focus-visible{outline:3px solid rgba(215,255,54,.8);outline-offset:4px}
@media(max-width:620px){.roster-directory{margin-top:55px}.roster-header{align-items:stretch;flex-direction:column;padding:24px 18px}.roster-search input{width:100%}.roster-table th,.roster-table td{padding:13px 14px}.roster-table th:last-child,.roster-table td:last-child{width:112px}}
