:root {
  --directory-blue: #2563eb;
  --directory-ink: #172b4d;
  --directory-muted: #68778d;
  --directory-border: #e5eaf2;
}
body {
  background: #f4f6fa;
  color: var(--directory-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
main.container-fluid { max-width: 1360px; margin: auto; padding: 40px 28px !important; }
.directory-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 30px; }
.brand { display: flex; align-items: center; gap: 15px; }
.brand-icon { display: grid; place-items: center; width: 54px; height: 54px; flex-shrink: 0; border-radius: 16px; background: #e4edff; color: var(--directory-blue); font-size: 24px; }
.eyebrow { font-size: 10px; font-weight: 750; letter-spacing: .16em; color: var(--directory-muted); margin: 0 0 6px; }
h1 { font-size: clamp(22px, 3vw, 29px); letter-spacing: -.04em; font-weight: 720; margin: 0; }
.header-note { color: var(--directory-muted); font-size: 13px; margin: 0; }
.directory-panel { background: white; border: 1px solid var(--directory-border); border-radius: 18px; box-shadow: 0 6px 28px #172b4d06; overflow: hidden; }
.directory-toolbar { padding: 24px 24px 8px; }
.directory-toolbar .row { margin-bottom: 12px !important; }
.search-wrap { position: relative; }
.search-icon { position: absolute; left: 22px; top: 15px; color: #8794a7; pointer-events: none; }
#searchInp { padding-left: 40px; min-height: 44px; background: #f8fafc; max-width: 560px; }
.form-control, .form-select { border-color: #dce3ee; border-radius: 9px; padding: .7rem .85rem; color: var(--directory-ink); }
.form-control:focus, .form-select:focus { border-color: #93b4fa; box-shadow: 0 0 0 3px #2563eb15; }
.btn { border-radius: 8px; font-weight: 600; font-size: 13px; padding: .65rem 1rem; transition: background-color .15s, box-shadow .15s; }
.btn-primary { --bs-btn-bg: var(--directory-blue); --bs-btn-border-color: var(--directory-blue); --bs-btn-hover-bg: #1d4ed8; --bs-btn-hover-border-color: #1d4ed8; }
.btn-outline-primary { --bs-btn-color: #52637c; --bs-btn-border-color: #dce3ee; --bs-btn-hover-bg: #eff4ff; --bs-btn-hover-color: #1d4ed8; --bs-btn-hover-border-color: #b7cdfa; }
.toolbar-actions { gap: 8px; }
.toolbar-actions > .btn { border-radius: 9px !important; margin-left: 0 !important; min-width: 44px; min-height: 44px; }
#refreshBtn, #filterBtn { background: #fff; color: #62738b; border-color: var(--directory-border); }
#refreshBtn:hover, #filterBtn:hover { background: #eff4ff; color: var(--directory-blue); }
#filterBtn.btn-warning { background: #fff4d9; color: #805700; border-color: #f0d590; }
.nav-tabs { padding: 0 24px; gap: 22px; border-bottom-color: var(--directory-border); margin-bottom: 0 !important; }
.nav-tabs .nav-link { display: flex; align-items: center; gap: 9px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; padding: 17px 3px; color: var(--directory-muted); font-size: 13px; font-weight: 600; margin-bottom: -1px; }
.nav-tabs .nav-link.active { color: var(--directory-blue); border-bottom-color: var(--directory-blue); background: transparent; }
.nav-tabs .nav-link:hover { color: var(--directory-blue); background: #f8faff; }
#resultStatus { padding: 16px 24px; margin: 0 !important; font-size: 12px; }
#message { margin: 16px 24px 0; }
.table { margin-bottom: 0; --bs-table-color: var(--directory-ink); --bs-table-border-color: #edf0f5; --bs-table-hover-bg: #f7faff; }
.table thead th { background: #f8fafc; color: #748198; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; padding: 13px 20px; border-top: 1px solid var(--directory-border); }
.table td { padding: 15px 20px; font-size: 13px; }
.table td:first-child { font-weight: 600; overflow-wrap: anywhere; }
.table td:not(:first-child):not(.actions) { color: var(--directory-muted); }
.table td:first-child, .table th:first-child { padding-left: 24px; }
.table td:last-child, .table th:last-child { padding-right: 24px; }
.actions { white-space: nowrap; text-align: right; width: 105px; }
.actions .btn { background: #eef3ff; border: 1px solid transparent; color: #3970da; width: 33px; height: 33px; padding: 0; font-size: 12px; }
.actions .btn + .btn { margin-left: 6px; background: #fff1f2; color: #ce5267; }
.actions .btn:hover { border-color: currentColor; }
.pagination-bar { padding: 18px 24px; border-top: 1px solid var(--directory-border); background: #fcfdff; }
#pageStatus { color: var(--directory-muted); font-size: 12px; }
.directory-footer { text-align: center; font-size: 11px; color: #8793a5; padding: 23px 0 0; }
.directory-footer span { margin: 0 8px; }
.modal-content { border: 0; border-radius: 16px; box-shadow: 0 24px 70px #11244233; overflow: hidden; }
.modal-header.bg-primary { background: #2563eb !important; padding: 22px 25px; border: 0; }
.modal-title { font-weight: 650; letter-spacing: -.02em; }
.modal-body { min-height: 90px; padding: 25px; }
.form-label { font-size: 12px; font-weight: 600; color: #52637c; margin-bottom: 7px; }
.modal-footer { padding: 16px 25px; background: #f8fafc; border-color: var(--directory-border); }
/* Scroll the form inside the dialog so Save and Cancel stay reachable on phones. */
.modal-dialog-scrollable .modal-content > form { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.modal-dialog-scrollable form > .modal-body { overflow-y: auto; }
.modal-dialog-scrollable form > .modal-footer { flex-shrink: 0; }
.btn:focus-visible, .nav-link:focus-visible { outline: 3px solid #94b6ff; outline-offset: 3px; box-shadow: none; }
@media (max-width: 575px) {
  main.container-fluid { padding: 22px 12px !important; }
  .directory-header { margin-bottom: 22px; }
  .brand { gap: 11px; }
  .brand-icon { width: 43px; height: 43px; font-size: 20px; border-radius: 12px; }
  .eyebrow { font-size: 8px; }
  .header-note { display: none; }
  .directory-toolbar { padding: 16px 13px 4px; }
  #searchInp { font-size: 13px; }
  .toolbar-actions { gap: 4px; }
  .toolbar-actions > .btn { min-width: 38px; padding: .6rem; }
  .nav-tabs { padding: 0 13px; gap: 15px; }
  .nav-tabs .nav-link { font-size: 12px; gap: 6px; }
  #resultStatus { padding: 14px; }
  .table td, .table thead th { padding: 13px 10px; }
  .table td:first-child, .table th:first-child { padding-left: 14px; }
  .table td:last-child, .table th:last-child { padding-right: 14px; }
  .pagination-bar { padding: 15px 14px; }
  .directory-footer { font-size: 10px; }
}

.person-job-title { display: block; margin-top: 3px; font-size: 11px; font-weight: 400; color: var(--directory-muted); }
