/* Live DOC directory only; public staff portraits remain unchanged. */
body .official-roster-section .roster-sync-status { display:none; }
body .official-roster-section .roster-refresh-button { width:30px; height:30px; border:1px solid transparent; border-radius:4px; background:transparent; color:#a9986b; }
body .official-roster-section .roster-refresh-button:hover { color:#d5b45f; background:#1b1b1b; border-color:#393427; }
body .official-roster-section .roster-refresh-button:focus-visible { outline:2px solid #c9a24a; outline-offset:2px; }
body.embedded-panel-body.department-roster-page .shell { padding:0; }
body.department-roster-page .official-roster-section { margin-top:0; }
body .official-roster-section { background:#101010; padding:20px; border:0; border-radius:0; box-shadow:none; }
body .official-roster-section .official-roster-head { align-items:center; padding-bottom:6px; border:0; }
body .official-roster-section .official-roster-head h2 { font-size:22px; font-weight:600; margin:0; }
body .official-roster-section .official-roster-head .eyebrow,body .official-roster-section .official-roster-head > div > span,body .official-roster-section .official-roster-actions > b { display:none; }
body .official-roster-section .official-roster-group { margin-top:24px; }
body .official-roster-section .official-roster-group > header { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin-bottom:8px; }
body .official-roster-section .official-roster-group > header h3 { font-size:18px; font-weight:600; }
body .official-roster-section .official-roster-group > header span { font-size:10px; font-weight:400; text-transform:none; color:#aaa; }
body .official-roster-section .official-roster-grid { grid-template-columns:repeat(auto-fill,minmax(0,287px)); gap:12px; }
body .official-roster-section .official-roster-member { position:relative; overflow:hidden; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px 8px; padding:13px 14px; border:1px solid #393427; border-radius:18px; background:#1b1a15; box-shadow:none; transform:none; }
body .official-roster-section .official-roster-member::before { content:''; position:absolute; inset:0 auto 0 0; width:3px; background:#a78e48; }
body .official-roster-section .official-roster-member:hover { border-color:#b3994d; background:#201f19; transform:none; }
body .official-roster-section .official-roster-member:focus-visible { outline:2px solid #c9a24a; outline-offset:2px; }
body .official-roster-section .official-roster-copy h3 { margin:0 0 5px; font-size:16px; font-weight:600; line-height:1.3; overflow-wrap:anywhere; }
body .official-roster-section .official-roster-copy p { color:#cbb575; font-size:12px; line-height:1.4; }
body .official-roster-section .roster-callsign { white-space:nowrap; }
body .official-roster-section .official-roster-status { padding:3px 7px; font-size:9px; line-height:1.2; font-weight:400; border:0; background:#24231e; border-radius:20px; white-space:nowrap; }
body .official-roster-section .roster-member-details { grid-column:1 / -1; margin:0; padding:0; border:0; display:grid; gap:5px; font-size:12px; line-height:1.3; }
body .official-roster-section .roster-member-details > div { display:flex; justify-content:space-between; gap:12px; }
body .official-roster-section .roster-member-details dt { color:#b4a77e; font-weight:400; }
body .official-roster-section .roster-member-details dd { margin:0; color:#eee; text-align:right; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
body .official-roster-section .official-roster-group.is-empty { margin-block:20px; padding:0; }
body .official-roster-section .official-roster-group.is-empty > header { margin-bottom:7px; }
body .official-roster-section .official-roster-none { color:#aaa; font-size:12px; font-style:italic; }
@media(max-width:360px) { body .official-roster-section { padding:12px; } body .official-roster-section .official-roster-grid { grid-template-columns:minmax(0,1fr); } }
