.department-roster-card .card-body { display: grid; gap: 16px; }
.department-roster-teams,.department-roster-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.department-roster-team { border: 1px solid #c8d6e2; background: #fff; color: #173c59; border-radius: 999px; cursor: pointer; font: inherit; padding: 7px 11px; display: inline-flex; gap: 7px; align-items: center; }
.department-roster-team small { min-width: 20px; padding: 1px 6px; border-radius: 999px; background: #eef4f8; text-align: center; }
.department-roster-team.active { border-color: #0d416c; background: #0d416c; color: #fff; }
.department-roster-team.active small { background: rgba(255,255,255,.18); }
.department-roster-heading { display: flex; justify-content: space-between; align-items: end; gap: 12px; }
.department-roster-heading h2 { margin: 0; }
.department-roster-heading p { margin: 4px 0 0; color: #5d7284; }
.department-roster-table { min-width: 1120px; }
.department-roster-card td:first-child,.department-roster-card th:first-child { width: 58px; text-align: center; }
.department-roster-card td small { display: block; margin-top: 3px; }
.profile-complete,.profile-missing { display: inline-block; border-radius: 999px; padding: 3px 8px; font-size: .78rem; font-weight: 700; }
.profile-complete { color: #17613a; background: #e7f7ed; }
.profile-missing { color: #8a4a08; background: #fff2db; }
.staff-upload-preview { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; border: 1px solid #b9d9c5; background: #effaf3; border-radius: 10px; padding: 12px; }
.staff-upload-preview span { color: #506879; margin-right: auto; }
.profile-dialog { border: 0; border-radius: 14px; width: min(680px,calc(100vw - 24px)); padding: 0; box-shadow: 0 20px 70px rgba(15,38,55,.28); }
.profile-dialog::backdrop { background: rgba(13,37,55,.45); }
.profile-dialog form { padding: 20px; }
.profile-dialog h3 { margin: 0 0 4px; }
.profile-dialog p { margin: 0 0 16px; color: #5d7284; }
.profile-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.profile-form-grid label { display: grid; gap: 5px; font-size: .86rem; font-weight: 700; }
.profile-form-grid input,.profile-form-grid textarea { width: 100%; box-sizing: border-box; border: 1px solid #c8d6e2; border-radius: 8px; padding: 9px; font: inherit; }
.profile-notes { grid-column: 1 / -1; }
.profile-form-grid textarea { min-height: 80px; resize: vertical; }
.dialog-actions { margin-top: 16px; display: flex; justify-content: flex-end; gap: 8px; }
@media (max-width:680px) {
  .department-roster-team { width: 100%; justify-content: space-between; text-align: left; }
  .department-roster-heading { align-items: stretch; flex-direction: column; }
  .department-roster-actions .btn { flex: 1 1 145px; }
  .profile-form-grid { grid-template-columns: 1fr; }
  .profile-notes { grid-column: auto; }
}
