:root {
  --brand-950: #0b1f38;
  --brand-900: #102b4e;
  --brand-800: #173b66;
  --brand-700: #245184;
  --brand-600: #316aa3;
  --brand-100: #eaf2fb;
  --brand-50: #f4f8fc;
  --teal-700: #0f766e;
  --teal-100: #dff4f1;
  --amber-700: #b45309;
  --amber-100: #fff2d8;
  --red-700: #b42318;
  --red-100: #fee9e7;
  --slate-950: #111827;
  --slate-800: #243247;
  --slate-700: #35445b;
  --slate-600: #53627a;
  --slate-500: #718096;
  --slate-400: #94a3b8;
  --slate-300: #cbd5e1;
  --slate-200: #e2e8f0;
  --slate-100: #eef2f7;
  --slate-50: #f7f9fc;
  --surface: #ffffff;
  --page-bg: #f3f6fa;
  --sidebar-width: 244px;
  --header-height: 72px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --shadow-sm: 0 1px 2px rgba(16, 43, 78, .05), 0 4px 14px rgba(16, 43, 78, .04);
  --shadow-md: 0 16px 40px rgba(16, 43, 78, .13);
}

html { background: var(--page-bg); }
body {
  min-width: 320px;
  background:
    radial-gradient(circle at 88% -10%, rgba(49, 106, 163, .08), transparent 28rem),
    var(--page-bg);
  color: var(--slate-800);
  font-size: 14px;
  line-height: 1.55;
  letter-spacing: .01em;
}
button, input, select, textarea { font: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(49, 106, 163, .2);
  outline-offset: 1px;
}

/* 左侧品牌导航 */
.sidebar {
  top: 0;
  width: var(--sidebar-width);
  height: 100vh;
  padding: 0;
  border: 0;
  color: #fff;
  background:
    radial-gradient(circle at 22% 5%, rgba(95, 168, 220, .22), transparent 17rem),
    linear-gradient(180deg, var(--brand-900), var(--brand-950));
  box-shadow: 10px 0 32px rgba(9, 30, 54, .08);
  z-index: 130;
  overflow: hidden;
}
.sidebar-brand {
  height: var(--header-height);
  padding: 0 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid rgba(255,255,255,.09);
}
.brand-mark {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #76c8d1, #4f91c5);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -.03em;
  box-shadow: 0 9px 22px rgba(0,0,0,.2), inset 0 1px rgba(255,255,255,.35);
}
.brand-mark img { width: 100%; height: 100%; display: block; object-fit: contain; border-radius: inherit; }
.brand-copy strong { display:block; font-size:15px; line-height:1.3; font-weight:700; letter-spacing:.04em; }
.brand-copy span { display:block; margin-top:2px; color:rgba(255,255,255,.52); font-size:10px; letter-spacing:.13em; }
.sidebar-nav { padding: 24px 14px; display:flex; flex-direction:column; gap:7px; }
.sidebar-label { padding:0 12px 8px; font-size:10px; letter-spacing:.16em; color:rgba(255,255,255,.38); font-weight:700; }
.sidebar .nav-item {
  min-height: 46px;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: rgba(255,255,255,.68);
  gap: 12px;
  font-size: 14px;
  font-weight: 500;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.sidebar .nav-item:hover {
  background: rgba(255,255,255,.07);
  color: #fff;
  transform: translateX(2px);
}
.sidebar .nav-item.active {
  color: #fff;
  background: linear-gradient(90deg, rgba(91, 169, 202, .24), rgba(255,255,255,.08));
  border-color: rgba(137, 204, 224, .18);
  box-shadow: inset 3px 0 #72c3d0;
}
.nav-icon { width:20px; height:20px; flex:0 0 20px; display:grid; place-items:center; }
.nav-icon svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sidebar-footer {
  position:absolute;
  left:14px;
  right:14px;
  bottom:18px;
  padding:13px 14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:11px;
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.48);
  font-size:11px;
  line-height:1.65;
}
.sidebar-footer strong { color:rgba(255,255,255,.78); font-weight:600; }

/* 顶部信息栏 */
.header {
  left: var(--sidebar-width);
  width: calc(100% - var(--sidebar-width));
  height: var(--header-height);
  padding: 0 26px;
  gap: 20px;
  color: var(--slate-800);
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid rgba(203,213,225,.75);
  box-shadow: 0 4px 22px rgba(16, 43, 78, .035);
  backdrop-filter: blur(14px);
  z-index: 120;
}
.header-context { min-width:150px; display:flex; align-items:center; gap:7px; white-space:nowrap; }
.header-context span { color:var(--slate-400); font-size:12px; }
.header-context strong { color:var(--slate-700); font-size:13px; font-weight:650; }
.header .stats-bar { flex:1; justify-content:center; gap:7px; min-width:0; }
.header .stat {
  padding: 5px 10px;
  color: var(--slate-600);
  background: var(--slate-50);
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  font-size: 11px;
  font-weight: 600;
  box-shadow: none;
  white-space: nowrap;
}
.header .stat:hover { background:#fff; border-color:var(--slate-300); }
.header .stat.warn { color:var(--amber-700); background:var(--amber-100); border-color:#f6d899; }
.header .stat.danger { color:var(--red-700); background:var(--red-100); border-color:#f7c7c2; }
.user-panel { display:flex; align-items:center; gap:10px; padding-left:16px; border-left:1px solid var(--slate-200); }
.user-avatar {
  width:34px; height:34px; border-radius:10px; display:grid; place-items:center;
  color:#fff; background:linear-gradient(145deg, var(--brand-700), var(--teal-700));
  font-size:12px; font-weight:750; box-shadow:0 5px 14px rgba(36,81,132,.2);
}
.identity-block { min-width:78px; }
#currentIdentity { display:block; margin:0 !important; color:var(--slate-700); opacity:1 !important; font-size:12px !important; font-weight:650; line-height:1.3; }
#currentRole { display:block; color:var(--slate-400); font-size:10px; margin-top:2px; }
.logout-btn {
  width:34px; height:34px; padding:0; display:grid; place-items:center; cursor:pointer;
  color:var(--slate-500); background:#fff; border:1px solid var(--slate-200); border-radius:9px;
  transition:.18s ease;
}
.logout-btn:hover { color:var(--red-700); border-color:#f1b5b0; background:#fff8f7; transform:translateY(-1px); }
.logout-btn svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

/* 页面框架 */
.main {
  margin-left: var(--sidebar-width);
  margin-top: var(--header-height);
  min-height: calc(100vh - var(--header-height));
  padding: 26px 28px 30px;
}
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:0 0 20px; }
.page-heading .eyebrow { color:var(--brand-600); font-size:10px; font-weight:800; letter-spacing:.17em; margin-bottom:5px; }
.page-heading h2 { color:var(--slate-950); font-size:25px; line-height:1.25; letter-spacing:-.025em; font-weight:750; }
.page-heading p { margin-top:6px; color:var(--slate-500); font-size:13px; }
.system-chip {
  display:flex; align-items:center; gap:7px; padding:7px 11px; border:1px solid #cde5e1; border-radius:999px;
  color:var(--teal-700); background:#f1fbf9; font-size:11px; font-weight:650; white-space:nowrap;
}
.status-dot { width:7px; height:7px; border-radius:50%; background:#18a67b; box-shadow:0 0 0 4px rgba(24,166,123,.12); }
.page.active { animation:pageIn .2s ease-out; }
@keyframes pageIn { from { opacity:.55; transform:translateY(3px); } to { opacity:1; transform:none; } }

/* 工具栏与筛选 */
.toolbar {
  min-height: 64px;
  padding: 12px 14px;
  margin-bottom: 14px;
  gap: 9px;
  background: rgba(255,255,255,.95);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}
#page-roster .toolbar {
  top: calc(var(--header-height) + 10px);
  margin-bottom: 14px;
  border-radius: var(--radius-md);
}
.search-control { position:relative; display:flex; align-items:center; }
.search-control svg { position:absolute; left:11px; width:16px; height:16px; color:var(--slate-400); fill:none; stroke:currentColor; stroke-width:2; pointer-events:none; }
.toolbar input, .toolbar select,
.form-group input, .form-group select, .form-group textarea,
.workflow-modal input, .workflow-modal select, .workflow-modal textarea {
  min-height: 36px;
  border: 1px solid var(--slate-200) !important;
  border-radius: 8px !important;
  padding: 7px 10px !important;
  color: var(--slate-700);
  background: #fff;
  box-shadow: 0 1px 1px rgba(16,43,78,.02);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.toolbar input:hover, .toolbar select:hover,
.form-group input:hover, .form-group select:hover, .form-group textarea:hover { border-color:var(--slate-300) !important; }
.toolbar input:focus, .toolbar select:focus,
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  border-color: var(--brand-600) !important;
  box-shadow: 0 0 0 3px rgba(49,106,163,.11) !important;
}
.toolbar input[type=text] { width: 180px; }
.search-control #searchQ { width:260px; padding-left:34px !important; }
#filterStatus { width:96px; }
#filterUnit, #filterSecondary, #filterDept { min-width:118px; max-width:190px; }
.filter-check {
  min-height:36px; padding:0 10px; display:flex; align-items:center; gap:7px;
  color:var(--slate-600); font-size:12px !important; white-space:nowrap; border-radius:8px;
}
.filter-check:hover { background:var(--slate-50); }
.filter-check input { min-height:auto; width:15px; height:15px; accent-color:var(--brand-700); }
.toolbar-title { display:flex; align-items:center; gap:8px; color:var(--slate-700) !important; font-size:13px; font-weight:700 !important; }
.toolbar-title .tone-dot { width:8px; height:8px; border-radius:50%; background:var(--amber-700); box-shadow:0 0 0 4px rgba(180,83,9,.1); }
.toolbar-title .tone-dot.blue { background:var(--brand-600); box-shadow:0 0 0 4px rgba(49,106,163,.1); }
.toolbar-count { padding:4px 8px; border-radius:999px; background:var(--slate-100); color:var(--slate-500) !important; font-size:11px !important; }

/* 按钮 */
.btn {
  min-height:36px;
  padding: 7px 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:1px solid transparent;
  border-radius:8px;
  box-shadow:none;
  font-size:12px;
  font-weight:650;
  white-space:nowrap;
}
.btn:hover { transform:translateY(-1px); box-shadow:0 5px 14px rgba(16,43,78,.10); }
.btn-primary { color:#fff; background:linear-gradient(135deg, var(--brand-700), var(--brand-600)); border-color:var(--brand-700); }
.btn-primary:hover { background:linear-gradient(135deg, var(--brand-800), var(--brand-700)); }
.btn-success { color:#fff; background:var(--teal-700); border-color:var(--teal-700); }
.btn-warning { color:#fff; background:var(--amber-700); border-color:var(--amber-700); }
.btn-danger { color:#fff; background:var(--red-700); border-color:var(--red-700); }
.btn-default { color:var(--slate-600); background:#fff; border-color:var(--slate-200); }
.btn-default:hover { color:var(--brand-700); border-color:#a9bfd8; background:var(--brand-50); }
.btn:disabled, .pagination button:disabled { opacity:.4; cursor:not-allowed; transform:none; box-shadow:none; }

/* 数据表格 */
.table-wrap {
  max-height: var(--table-max-height, 68vh);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-md);
  background:var(--surface);
  box-shadow:var(--shadow-sm);
  scrollbar-color:var(--slate-300) transparent;
  scrollbar-width:thin;
}
table { color:var(--slate-700); }
thead th {
  padding: 11px 13px;
  color: var(--slate-600);
  background: #f7f9fc;
  border-bottom: 1px solid var(--slate-200);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: none;
}
thead th:first-child { padding-left:17px; }
tbody tr { border-bottom:1px solid var(--slate-100); }
tbody tr:nth-child(even) { background:#fcfdff; }
tbody tr:hover { background:#f2f7fc; }
tbody td { padding:11px 13px; color:var(--slate-600); font-size:12px; max-width:180px; }
tbody td:first-child { padding-left:17px; color:var(--slate-400); }
tbody td strong { color:var(--slate-800); font-weight:700; }
.loading, .empty { padding:48px 20px !important; color:var(--slate-400) !important; text-align:center; }
.loading::before { content:''; display:inline-block; width:13px; height:13px; margin-right:8px; border:2px solid var(--slate-200); border-top-color:var(--brand-600); border-radius:50%; vertical-align:-2px; animation:spin .7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

.tag { padding:3px 8px; border-radius:999px; font-size:10px; font-weight:700; line-height:1.5; border:1px solid transparent; }
.tag-active { color:var(--teal-700); background:var(--teal-100); border-color:#bce3dc; }
.tag-left { color:var(--slate-600); background:var(--slate-100); border-color:var(--slate-200); }
.tag-special, .tag-warn { color:var(--amber-700); background:var(--amber-100); border-color:#f5dda8; }
.tag-danger { color:var(--red-700); background:var(--red-100); border-color:#f5c8c3; }

.pagination { padding:14px 2px 0; gap:6px; }
.pagination button {
  min-width:34px; height:34px; padding:0 10px; border:1px solid var(--slate-200); border-radius:8px;
  color:var(--slate-600); background:#fff; box-shadow:none; font-size:12px;
}
.pagination button:hover { color:var(--brand-700); border-color:#a9bfd8; background:var(--brand-50); transform:none; }
.pagination button.active { color:#fff; border-color:var(--brand-700); background:var(--brand-700); }
.pagination .page-info { margin-right:5px; color:var(--slate-500); font-size:11px; }

/* 统计卡片 */
.stat-cards { gap:12px; margin-bottom:14px; }
.stat-card, .alert-card {
  border:1px solid var(--slate-200);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
  background:#fff;
}

/* 弹窗、详情与表单 */
.modal-overlay { background:rgba(7, 22, 40, .56); backdrop-filter:blur(5px); padding:22px; }
.modal {
  width:min(920px, 96vw);
  max-height:88vh;
  padding:0;
  border:1px solid rgba(255,255,255,.5);
  border-radius:16px;
  box-shadow:var(--shadow-md);
  overflow:auto;
  background:#fff;
}
.modal > h3 { position:sticky; top:0; z-index:5; margin:0; padding:20px 58px 17px 22px; color:var(--slate-900); background:rgba(255,255,255,.96); border-bottom:1px solid var(--slate-200); font-size:17px; font-weight:750; backdrop-filter:blur(12px); }
.modal > form, .modal > #modalForm, .modal > #viewModalContent, .modal > #attList { display:block; padding:20px 22px; }
#attModal .modal > .admin-only { margin:18px 22px 0 !important; }
.close-btn { top:15px; right:17px; z-index:8; width:32px; height:32px; border-radius:8px; color:var(--slate-500); background:var(--slate-50); }
.close-btn:hover { color:var(--red-700); background:var(--red-100); }
.modal-footer { position:sticky; bottom:0; z-index:5; margin:0; padding:13px 20px; border-top:1px solid var(--slate-200); background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.form-grid { gap:14px 16px; }
/* 通用跨列容器：合同卡片、说明区和操作栏不能被双列网格压缩到左半边。 */
.form-grid > .full { grid-column:1 / -1; }
/* 员工资料弹窗中使用的局部三列布局，不影响其他业务表单。 */
.form-grid.form-grid-3 { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.form-grid.form-grid-3 .form-group.full { grid-column:span 3; }
.form-grid-nested { width:100%; grid-column:span 2; }
.form-grid-nested .form-group { min-width:0; }
.form-grid-addresses { margin-top:14px; }
.form-grid-placeholder { visibility:hidden; pointer-events:none; }
.form-group label { margin-bottom:6px; color:var(--slate-600); font-size:11px; font-weight:700; }
.form-section { margin:8px 0 1px; padding:13px 0 7px; color:var(--brand-700); border-bottom:1px solid var(--slate-200); font-size:12px; letter-spacing:.03em; }
.form-hint { color:var(--slate-400); font-size:10px; }
.tabs { margin:-4px 0 18px; padding:4px; gap:4px; border-radius:10px; background:var(--slate-100); }
.tab-btn { padding:8px 13px; border-radius:7px; color:var(--slate-500); background:transparent; font-weight:650; }
.tab-btn.active { color:var(--brand-700); background:#fff; box-shadow:0 1px 4px rgba(16,43,78,.09); }
.detail-card { padding:0; }
.detail-section { margin-bottom:14px; padding:17px; border:1px solid var(--slate-200); border-radius:12px; background:#fff; }
.detail-section h4 { margin:0 0 14px; padding-bottom:10px; color:var(--brand-800); border-bottom:1px solid var(--slate-100); font-size:13px; font-weight:750; }
.detail-grid { gap:10px 16px; }
.detail-item { min-height:48px; padding:8px 10px; border-radius:8px; background:var(--slate-50); }
.di-label { color:var(--slate-400); font-size:10px; font-weight:650; }
.di-value { margin-top:3px; color:var(--slate-700); font-size:12px; font-weight:550; }
.contract-row { border-color:var(--slate-200) !important; border-radius:9px !important; background:var(--slate-50) !important; }
.contract-slots { display:grid; gap:12px; min-width:0; }
.contract-slot-card { padding:14px 15px 15px; border:1px solid #d9e4ef; border-radius:12px; background:linear-gradient(145deg,#fbfdff 0%,#f7fafd 100%); box-shadow:0 2px 8px rgba(16,43,78,.04); }
.contract-slot-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px; padding-bottom:10px; border-bottom:1px solid #e3ebf3; }
.contract-slot-head strong { display:block; color:var(--brand-800); font-size:13px; font-weight:750; }
.contract-slot-head small { display:block; margin-top:2px; color:var(--slate-500); font-size:10px; }
.contract-slot-remove { flex:0 0 auto; padding:4px 7px; border:0; border-radius:6px; color:var(--red-700); background:transparent; font-size:11px; cursor:pointer; }
.contract-slot-remove:hover { background:var(--red-100); }
.contract-slot-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; }
.contract-slot-grid .form-group { min-width:0; }
.contract-slot-grid select, .contract-slot-grid input { width:100%; }
.contract-slot-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:-2px; }
.contract-slot-count { color:var(--slate-500); font-size:11px; }
.contract-continuity-hint { margin-top:2px; padding:10px 12px; border-left:3px solid var(--amber-500); border-radius:0 8px 8px 0; color:var(--amber-800); background:#fff9ed; font-size:11px; line-height:1.6; }
.contract-continuity-hint strong, .contract-continuity-hint span { display:block; }
.contract-continuity-hint strong { color:var(--amber-800); font-size:12px; }
.contract-continuity-hint span { color:#9a6a18; }
.contract-continuity-hint ul { margin:5px 0 0; padding-left:18px; }
.contract-continuity-hint li + li { margin-top:2px; }

.workflow-modal { width:min(680px, 96vw); }
.workflow-summary { margin:0 0 14px; padding:11px 13px; border:1px solid #cfe0f2; border-radius:9px; color:var(--brand-700); background:var(--brand-50); }
.workflow-error { margin:0 22px; color:var(--red-700); }

/* 登录 */
#loginOverlay {
  background:
    radial-gradient(circle at 20% 18%, rgba(104,193,207,.19), transparent 25rem),
    radial-gradient(circle at 88% 82%, rgba(67,119,174,.23), transparent 30rem),
    linear-gradient(145deg, #0c2541, #091b31 58%, #102f50);
}
#loginOverlay::before {
  content:'贯恒人力 · PEOPLE OPERATIONS'; position:fixed; top:30px; left:34px;
  color:rgba(255,255,255,.55); font-size:11px; font-weight:750; letter-spacing:.18em;
}
.login-box {
  position:relative;
  width:430px;
  padding:42px 40px 38px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:20px;
  box-shadow:0 28px 80px rgba(0,0,0,.28);
  text-align:left;
  overflow:hidden;
}
.login-box::before { content:''; position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(#61c1ca, #407eb5); }
.login-brand-mark { width:54px; height:54px; margin-bottom:20px; padding:4px; border-radius:15px; display:grid; place-items:center; background:#fff; box-shadow:0 10px 25px rgba(36,81,132,.24); }
.login-brand-mark img { width:100%; height:100%; display:block; object-fit:contain; border-radius:inherit; }
.login-box h2 { margin-bottom:9px; color:var(--slate-950); font-size:24px; font-weight:760; letter-spacing:-.03em; }
.login-box p { margin-bottom:28px; color:var(--slate-500); font-size:13px; line-height:1.75; }
.login-box .btn-login { min-height:46px; border-radius:10px; background:linear-gradient(135deg,var(--brand-800),var(--brand-600)); box-shadow:0 9px 23px rgba(36,81,132,.25); }
.login-box .btn-login:hover { box-shadow:0 12px 28px rgba(36,81,132,.32); }
.login-note { margin-top:20px; padding:12px 13px; border:1px solid var(--slate-200); border-radius:9px; color:var(--slate-500); background:var(--slate-50); font-size:11px; line-height:1.7; }
.login-note strong { color:var(--slate-700); }
.login-box .login-err { margin-top:12px; color:var(--red-700); font-size:12px; }

@media (max-width: 1280px) {
  :root { --sidebar-width: 214px; }
  .header { padding:0 18px; }
  .header .stats-bar { justify-content:flex-start; overflow:hidden; }
  .header .stat { padding:5px 8px; }
  .main { padding:22px 20px 28px; }
  .search-control #searchQ { width:220px; }
  #filterUnit, #filterSecondary, #filterDept { min-width:104px; max-width:150px; }
}

@media (max-width: 980px) {
  :root { --sidebar-width: 78px; }
  .sidebar-brand { padding:0 20px; }
  .brand-copy, .sidebar-label, .sidebar-footer, .nav-text { display:none; }
  .sidebar-nav { padding:22px 12px; }
  .sidebar .nav-item { justify-content:center; padding:0; }
  .sidebar .nav-item:hover { transform:none; }
  .header-context { display:none; }
  .header .stats-bar { justify-content:flex-start; }
  .identity-block { display:none; }
  .user-panel { padding-left:10px; }
  .page-heading h2 { font-size:22px; }
}

@media (max-width: 720px) {
  :root { --sidebar-width: 0px; --header-height: 62px; }
  .header { left:0; width:100%; padding:0 14px; }
  .header::before { content:'GH'; width:32px; height:32px; border-radius:9px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--brand-700),var(--teal-700)); font-size:11px; font-weight:800; }
  .header .stats-bar { display:none; }
  .user-panel { margin-left:auto; border-left:0; }
  .sidebar { top:auto; bottom:0; width:100%; height:68px; overflow:visible; }
  .sidebar-brand, .sidebar-footer, .sidebar-label { display:none; }
  .sidebar-nav { height:100%; padding:7px 9px; flex-direction:row; align-items:center; justify-content:space-around; gap:4px; }
  .sidebar .nav-item { flex:1; min-height:54px; flex-direction:column; justify-content:center; gap:3px; border-radius:9px; font-size:9px; }
  .sidebar .nav-item.active { box-shadow:inset 0 3px #72c3d0; }
  .nav-text { display:block; }
  .nav-icon { width:18px; height:18px; flex-basis:18px; }
  .main { margin-left:0; padding:18px 13px 92px; }
  .page-heading { align-items:flex-start; margin-bottom:15px; }
  .page-heading .eyebrow, .system-chip { display:none; }
  .page-heading h2 { font-size:20px; }
  .page-heading p { font-size:12px; }
  .toolbar { align-items:stretch; padding:10px; }
  .search-control, .search-control #searchQ { width:100%; }
  .toolbar input[type=text]:not(#auditUsername), .toolbar select { flex:1; width:auto; min-width:calc(50% - 6px); max-width:none !important; }
  .toolbar .spacer { display:none; }
  .filter-check { flex:1; }
  .btn { flex:0 0 auto; }
  .table-wrap { max-height:62vh; border-radius:10px; }
  thead th, tbody td { padding:10px 11px; }
  .pagination { justify-content:flex-start; overflow-x:auto; padding-bottom:4px; }
  .modal-overlay { padding:10px; align-items:flex-end; }
  .modal { width:100% !important; max-height:92vh !important; border-radius:16px 16px 8px 8px; }
  .form-grid, .detail-grid, .contract-slot-grid { grid-template-columns:1fr !important; }
  .form-grid > .full, .form-group.full, .form-section, .detail-item[style*="span"] { grid-column:span 1 !important; }
  .login-box { width:min(420px, calc(100vw - 28px)); padding:34px 28px 30px; }
  #loginOverlay::before { left:20px; top:20px; }
}

/* 1280px 办公屏幕下保持核心筛选在同一行 */
@media (min-width: 981px) and (max-width: 1280px) {
  .search-control #searchQ { width: 188px; }
  #filterStatus { width: 86px; }
  #filterUnit, #filterSecondary, #filterDept { width: 102px; min-width:102px; max-width:102px; }
  .filter-check { padding-left:7px; padding-right:7px; }
  #page-roster .toolbar .btn { padding-left:11px; padding-right:11px; }
}

/* 花名册人员变动月份筛选 */
.change-month-filter {
  min-height:36px;
  display:flex;
  align-items:center;
  gap:7px;
  padding-left:10px;
  color:var(--slate-500);
  font-size:12px;
  white-space:nowrap;
  border:1px solid var(--slate-200);
  border-radius:8px;
  background:#fff;
}
.change-month-filter input[type="month"] {
  width:132px;
  min-height:34px;
  border:0 !important;
  box-shadow:none !important;
  padding-left:0 !important;
}
#filterChangeType { min-width:108px; }
#filterChangeType:disabled { color:var(--slate-400); background:var(--slate-50); cursor:not-allowed; }
@media (max-width: 980px) {
  .change-month-filter { flex:1 1 100%; }
  .change-month-filter input[type="month"] { flex:1; width:auto; }
}

/* 花名册轻量标签与任职历史 */
.employee-name-line { display:flex; align-items:center; gap:5px; }
.employee-name-tags { display:flex; gap:4px; flex-wrap:wrap; margin-top:4px; }
.employee-name-tags .tag { font-size:10px; padding:1px 6px; line-height:1.45; }
.employee-duplicate-hint { margin-top:3px; font-size:10px; color:var(--slate-400); font-weight:400; }
.tag-rehire { color:#5b3ea6; background:#f1edff; border-color:#d9ceff; }
.tag-data-missing { color:#9f2d20; background:#fff1ef; border-color:#ffd0ca; }
.employment-history-title { margin:10px 0 8px; font-size:12px; font-weight:700; color:var(--slate-700); }
.employment-period-card {
  margin-bottom:8px; padding:10px 12px; border:1px solid var(--slate-200);
  border-left:3px solid var(--slate-300); border-radius:8px; background:var(--slate-50);
}
.employment-period-card.current { border-left-color:#18a67b; background:#f5fcfa; }
.employment-period-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.employment-period-head > div { display:flex; align-items:center; gap:8px; }
.employment-period-no { color:var(--slate-400); font-size:10px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.employment-period-dates { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }
.employment-period-dates span { display:flex; gap:7px; align-items:baseline; font-size:12px; color:var(--slate-700); }
.employment-period-dates em { font-style:normal; color:var(--slate-400); font-size:11px; }
.employment-period-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; color:var(--slate-500); font-size:11px; }
@media (max-width: 680px) {
  .employment-period-dates { grid-template-columns:1fr; }
}

/* 花名册顶部布局压缩：筛选栏和列表整体上移，减少标题与列表之间的无效留白。
   该规则同时覆盖桌面和窄视口，避免高分辨率窄窗口未命中样式。 */
#page-roster {
  margin-top: -24px;
}
#page-roster .toolbar {
  top: calc(var(--header-height) + 4px);
}

/* 花名册筛选栏固定为单行：选项内容较长时横向滚动，不再挤压成多行。 */
#page-roster .toolbar {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  align-items: center;
  /* 保持鼠标滚轮、触控板和触屏横向滑动，但不显示底部拖拽条。 */
  -ms-overflow-style: none;
  scrollbar-width: none;
  touch-action: pan-x;
}
#page-roster .toolbar::-webkit-scrollbar { display: none; }
#page-roster .toolbar > * { flex: 0 0 auto; }
#page-roster .toolbar .spacer { flex: 1 0 18px; }

/* 窄窗口也保持筛选条件在一行，必要时左右滑动筛选栏。 */
@media (max-width: 980px) {
  #page-roster .toolbar .change-month-filter { flex: 0 0 auto; }
}
@media (max-width: 720px) {
  #page-roster .toolbar { align-items: center; }
  #page-roster .toolbar .search-control,
  #page-roster .toolbar .search-control #searchQ { width: 220px; }
  #page-roster .toolbar input[type=text]:not(#auditUsername),
  #page-roster .toolbar select { flex: 0 0 auto; min-width: auto; }
  #page-roster .toolbar .spacer { display: block; }
}


/* 页面标题精简：移除说明、英文标签和运行提示，保留清晰的页面名称。 */
.page-heading-compact {
  min-height: 36px;
  align-items: center;
  margin: 0 0 10px;
}
.page-heading-compact h2 {
  color: var(--slate-950);
  font-size: 22px;
  line-height: 36px;
  font-weight: 750;
  letter-spacing: -.02em;
}
/* 标题区已压缩，花名册工具栏回归自然间距，避免过度上移。 */
#page-roster {
  margin-top: 0;
}
@media (max-width: 720px) {
  .page-heading-compact { min-height: 31px; margin-bottom: 9px; }
  .page-heading-compact h2 { font-size: 20px; line-height: 31px; }
}


/* 实体档案位置（花名册与详情） */
.archive-location-chip,
.archive-location-empty {
  max-width:210px;
  border:1px solid var(--slate-200);
  border-radius:8px;
  padding:5px 8px;
  color:var(--slate-700);
  background:#fff;
  text-align:left;
  font:inherit;
  cursor:pointer;
}
.archive-location-chip:hover,
.archive-location-empty:hover { border-color:#a9bfd8; background:var(--brand-50); color:var(--brand-700); }
.archive-location-chip strong { display:block; color:var(--brand-800); font-size:11px; line-height:1.35; }
.archive-location-chip span { display:block; overflow:hidden; color:var(--slate-500); font-size:10px; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.archive-location-empty { color:var(--slate-400); font-size:11px; }
.archive-location-modal .modal-footer { display:flex; }
.archive-location-summary {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  margin-bottom:16px;
  padding:12px;
  border:1px solid #d9e7f4;
  border-radius:10px;
  background:#f6faff;
}
.archive-location-summary div { min-width:0; }
.archive-location-summary span { display:block; margin-bottom:3px; color:var(--slate-500); font-size:11px; }
.archive-location-summary strong { display:block; overflow:hidden; color:var(--slate-800); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.archive-detail-card {
  margin:0 0 14px;
  padding:13px 14px;
  border:1px solid #d9e7f4;
  border-radius:10px;
  background:linear-gradient(135deg, #f8fbff, #fff);
}
.archive-detail-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.archive-detail-head span { display:block; color:var(--slate-500); font-size:11px; }
.archive-detail-head strong { display:block; margin-top:2px; color:var(--brand-800); font-size:14px; }
.archive-detail-location { display:flex; flex-direction:column; gap:3px; margin-top:10px; color:var(--slate-600); font-size:12px; }
.archive-detail-location > strong { color:var(--slate-800); }
.archive-detail-history { margin-top:8px; color:var(--slate-400); font-size:11px; }
.archive-location-missing { color:var(--slate-400); font-size:12px; }
.archive-readonly-btn { cursor:default; }
@media (max-width:640px) {
  .archive-location-summary { grid-template-columns:1fr; }
  .archive-detail-head { align-items:flex-start; flex-direction:column; }
}

.archive-location-history { margin-top:10px; border-top:1px dashed #dce6ef; padding-top:9px; }
.archive-location-history summary { cursor:pointer; color:var(--brand-700); font-size:11px; font-weight:650; }
.archive-location-history-list { display:grid; gap:7px; margin-top:8px; }
.archive-location-history-list > div { display:grid; grid-template-columns:minmax(82px, .8fr) minmax(0, 1.6fr) minmax(120px, 1fr); gap:8px; padding:7px 8px; border-radius:7px; background:rgba(247,249,252,.9); color:var(--slate-500); font-size:11px; }
.archive-location-history-list strong { color:var(--slate-700); }
.archive-location-history-list span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.archive-location-history-list em { color:var(--slate-400); font-style:normal; text-align:right; }
@media (max-width:640px) { .archive-location-history-list > div { grid-template-columns:1fr; gap:2px; } .archive-location-history-list em { text-align:left; } }


/* 档案位置管理目录 */
.archive-catalog-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:14px; padding:16px 18px; border:1px solid #d9e7f4; border-radius:12px; background:linear-gradient(135deg,#f7fbff,#fff); }
.archive-catalog-hero p { margin:6px 0 0; color:var(--slate-500); font-size:12px; }
.archive-catalog-stats { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.archive-catalog-stats span { padding:7px 10px; border:1px solid var(--slate-200); border-radius:8px; background:#fff; color:var(--slate-500); font-size:11px; white-space:nowrap; }
.archive-catalog-stats strong { margin-right:4px; color:var(--brand-800); font-size:14px; }
.archive-catalog-toolbar { margin-bottom:0; }
.archive-catalog-tabs { display:flex; gap:4px; padding:3px; border-radius:9px; background:var(--slate-100); }
.archive-catalog-tab { min-height:30px; padding:4px 10px; border:0; border-radius:6px; color:var(--slate-500); background:transparent; cursor:pointer; font-size:12px; font-weight:650; }
.archive-catalog-tab.active { color:var(--brand-800); background:#fff; box-shadow:0 1px 4px rgba(16,43,78,.12); }
.archive-catalog-note { margin:10px 0; padding:9px 12px; border-left:3px solid #8fb7df; color:var(--slate-500); background:#f8fbfe; font-size:11px; line-height:1.6; }
.archive-code { color:var(--brand-800); }
.archive-catalog-actions { display:flex; align-items:center; gap:9px; max-width:260px; }
.archive-catalog-notes { overflow:hidden; flex:1; color:var(--slate-500); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.empty-note { color:var(--slate-300); }
.archive-catalog-readonly { color:var(--slate-400); font-size:11px; }
@media (max-width:760px) {
  .archive-catalog-hero { flex-direction:column; }
  .archive-catalog-stats { justify-content:flex-start; }
  .archive-catalog-toolbar .archive-catalog-tabs { order:3; width:100%; }
  .archive-catalog-tab { flex:1; }
}

/* 档案位置待核验中心 */
.archive-review-badge {
  display:inline-grid;
  min-width:17px;
  height:17px;
  padding:0 4px;
  place-items:center;
  border-radius:999px;
  color:var(--slate-500);
  background:var(--slate-200);
  font-size:10px;
  font-variant-numeric:tabular-nums;
}
.archive-review-badge.has-pending { color:#a23b00; border:1px solid #f2c47f; background:#fff0d5; }
.archive-review-stat { border-color:#f2d8a3 !important; background:#fffaf0 !important; }
.archive-review-stat strong { color:#c2410c !important; }
.archive-review-filter { min-width:92px; }
.archive-review-type {
  display:inline-flex;
  align-items:center;
  max-width:150px;
  padding:4px 7px;
  border:1px solid #d8e5f2;
  border-radius:6px;
  color:var(--brand-700);
  background:var(--brand-50);
  font-size:10px;
  font-weight:700;
  line-height:1.35;
}
.archive-review-type.mismatch { color:var(--amber-700); border-color:#f3d9a3; background:#fff9ed; }
.archive-review-status { white-space:nowrap; }
.archive-review-status.pending { color:var(--amber-700); background:var(--amber-100); }
.archive-review-status.resolved { color:var(--teal-700); background:var(--teal-100); }
.archive-review-status.ignored { color:var(--slate-500); background:var(--slate-100); }
.archive-review-employee { display:flex; flex-direction:column; gap:3px; min-width:70px; }
.archive-review-employee small, .archive-review-source { color:var(--slate-400); font-size:10px; white-space:nowrap; }
.archive-review-detail { display:block; max-width:260px; overflow:hidden; color:var(--slate-600); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.archive-review-existing { display:inline-block; padding:4px 7px; border-radius:6px; color:var(--slate-500); background:var(--slate-100); font-size:10px; white-space:nowrap; }
.archive-review-modal { width:min(800px, 96vw); }
.archive-review-modal-body { display:block; padding:20px 22px; }
.archive-review-summary {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px 10px;
  padding:13px 14px;
  border:1px solid #d9e7f4;
  border-radius:10px;
  color:var(--slate-500);
  background:#f8fbfe;
  font-size:11px;
}
.archive-review-summary strong { color:var(--slate-800); font-size:15px; }
.archive-review-summary p { width:100%; margin:2px 0 0; color:var(--slate-600); line-height:1.65; }
.archive-review-current-notice { margin-top:12px; padding:10px 12px; border-left:3px solid var(--amber-500); border-radius:0 8px 8px 0; color:var(--amber-800); background:#fff9ed; font-size:11px; line-height:1.65; }
.archive-review-section-title { margin:18px 0 9px; color:var(--slate-700); font-size:12px; font-weight:750; }
.archive-review-candidate-list { display:grid; gap:8px; }
.archive-review-candidate {
  display:grid;
  grid-template-columns:auto minmax(150px, 1fr) minmax(165px, .9fr);
  gap:11px;
  align-items:center;
  padding:11px 12px;
  border:1px solid var(--slate-200);
  border-radius:10px;
  cursor:pointer;
  background:#fff;
  transition:.16s ease;
}
.archive-review-candidate:hover { border-color:#a8c3de; background:#fbfdff; }
.archive-review-candidate:has(input:checked) { border-color:var(--brand-500); box-shadow:0 0 0 2px rgba(36,81,132,.09); background:var(--brand-50); }
.archive-review-candidate input { margin:0; accent-color:var(--brand-700); }
.archive-review-candidate-main { display:flex; flex-direction:column; gap:4px; min-width:0; }
.archive-review-candidate-main strong { overflow:hidden; color:var(--slate-800); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.archive-review-candidate-main span { color:var(--brand-700); font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:11px; font-weight:700; }
.archive-review-candidate-meta { color:var(--slate-500); font-size:10px; line-height:1.65; }
.archive-review-empty { padding:16px; border:1px dashed var(--slate-300); border-radius:9px; color:var(--slate-500); background:var(--slate-50); font-size:11px; }
.archive-review-manual-section { margin-top:2px; padding-top:1px; }
.archive-review-manual-section p { margin:0 0 10px; color:var(--slate-400); font-size:10px; line-height:1.6; }
.archive-review-resolution-fields { margin-top:14px; }
.archive-review-footer { display:flex; align-items:center; gap:8px; }
.archive-review-footer .spacer { flex:1; }
.archive-review-footer .btn:disabled { opacity:.52; cursor:not-allowed; }

@media (max-width: 720px) {
  .archive-catalog-toolbar .archive-catalog-tabs { overflow:hidden; }
  .archive-catalog-tab { min-width:0; padding:4px 7px; font-size:11px; }
  .archive-review-candidate { grid-template-columns:auto 1fr; }
  .archive-review-candidate-meta { grid-column:2; }
  .archive-review-modal-body { padding:16px; }
  .archive-review-footer { flex-wrap:wrap; padding:12px 14px; }
  .archive-review-footer .spacer { display:none; }
  .archive-review-footer .btn-danger { margin-right:auto; }
}

/* 运营优化：待办、完整度、时间线、位置留痕与备份 */
.dashboard-hero, .backup-hero { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; padding:18px 20px; border:1px solid var(--slate-200); border-radius:14px; background:linear-gradient(115deg,#f8fbff 0%,#fff 70%); }
.dashboard-hero p, .backup-hero p { margin:6px 0 0; color:var(--slate-500); font-size:12px; }
.dashboard-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.dashboard-card { min-height:146px; display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:17px; border:1px solid var(--slate-200); border-radius:12px; color:var(--slate-700); text-align:left; cursor:pointer; background:#fff; transition:.16s ease; }
.dashboard-card:hover { transform:translateY(-2px); border-color:#95b6d7; box-shadow:0 10px 22px rgba(33,75,120,.10); }
.dashboard-card span { color:var(--slate-500); font-size:12px; font-weight:700; }.dashboard-card strong { color:var(--brand-800); font-size:30px; line-height:1; }.dashboard-card small { min-height:32px; color:var(--slate-500); font-size:11px; line-height:1.5; }.dashboard-card em { margin-top:auto; color:var(--brand-700); font-size:11px; font-style:normal; font-weight:700; }
.dashboard-card.amber strong { color:#b77900; }.dashboard-card.orange strong { color:#c2410c; }.dashboard-card.purple strong { color:#7655a7; }.dashboard-card.red strong { color:#b42318; }.dashboard-card.slate strong { color:var(--slate-700); }
.dashboard-note, .backup-warning { margin-top:14px; padding:11px 13px; border-left:3px solid var(--brand-500); border-radius:0 8px 8px 0; color:var(--slate-600); background:var(--brand-50); font-size:11px; line-height:1.65; }.backup-warning { border-left-color:var(--amber-500); background:#fff9ed; color:var(--amber-800); }
.completeness-card { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 14px; padding:12px 14px; border:1px solid #d9e7f4; border-radius:10px; background:#f8fbfe; }.completeness-card>div { display:flex; align-items:baseline; gap:8px; }.completeness-card span { color:var(--slate-500); font-size:11px; font-weight:700; }.completeness-card strong { color:var(--brand-700); font-size:22px; }.completeness-card p { margin:0; color:var(--slate-600); font-size:11px; line-height:1.6; }.completeness-card.incomplete { border-color:#f3d9a3; background:#fff9ed; }.completeness-card.incomplete strong { color:var(--amber-700); }
.employee-timeline-wrap { margin-top:15px; }.employee-timeline-wrap h5 { margin:0 0 9px; color:var(--slate-700); font-size:12px; }.employee-timeline { position:relative; display:grid; gap:10px; padding-left:4px; }.employee-timeline:before { position:absolute; top:8px; bottom:8px; left:16px; width:1px; content:""; background:var(--slate-200); }.employee-timeline-item { position:relative; display:grid; grid-template-columns:25px 1fr; gap:9px; z-index:1; }.employee-timeline-item>i { display:grid; place-items:center; width:25px; height:25px; border:1px solid #bfd3e8; border-radius:50%; background:#fff; font-style:normal; font-size:12px; }.employee-timeline-item.archive>i { border-color:#e4c78f; background:#fff9ed; }.employee-timeline-item.attachment>i { border-color:#d3c1eb; background:#fbf8ff; }.employee-timeline-item header { display:flex; gap:12px; justify-content:space-between; }.employee-timeline-item strong { color:var(--slate-700); font-size:11px; }.employee-timeline-item time, .employee-timeline-item small { color:var(--slate-400); font-size:10px; }.employee-timeline-item p { margin:4px 0; color:var(--slate-600); font-size:11px; line-height:1.55; }
.archive-change-log-section { margin-top:14px; padding-top:13px; border-top:1px solid var(--slate-200); }.archive-change-log-section h4 { margin:0 0 9px; color:var(--slate-700); font-size:12px; }.archive-change-log-list { display:grid; gap:8px; max-height:255px; overflow:auto; padding-right:2px; }.archive-change-log-empty { padding:11px; border:1px dashed var(--slate-300); border-radius:8px; color:var(--slate-500); background:var(--slate-50); font-size:11px; }.archive-change-log-item { padding:10px 11px; border:1px solid var(--slate-200); border-radius:9px; background:#fff; }.archive-change-log-item.reverted { opacity:.64; background:var(--slate-50); }.archive-change-log-head, .archive-change-log-item footer { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--slate-400); font-size:10px; }.archive-change-log-head strong { color:var(--slate-700); font-size:11px; }.archive-change-log-flow { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:7px; margin:7px 0; color:var(--slate-600); font-size:10px; }.archive-change-log-flow span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.archive-change-log-flow b { color:var(--brand-600); }.archive-change-log-item p { margin:0 0 6px; color:var(--slate-500); font-size:10px; line-height:1.55; }.archive-change-log-item footer { justify-content:flex-start; }.archive-change-log-item footer .btn { margin-left:auto; padding:2px 7px; font-size:10px; }
#page-backups .table-wrap a { color:var(--brand-700); font-size:11px; text-decoration:none; }.filter-preset { white-space:nowrap; }
@media (max-width:1000px) { .dashboard-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { .dashboard-hero,.backup-hero,.completeness-card { align-items:flex-start; flex-direction:column; }.dashboard-cards { grid-template-columns:1fr; }.dashboard-card { min-height:120px; }.archive-change-log-flow { grid-template-columns:1fr; gap:3px; }.archive-change-log-flow b { transform:rotate(90deg); }.employee-timeline-item header { display:block; }.employee-timeline-item time { display:block; margin-top:2px; } }


/* 本轮运营优化：视图、账号、备份状态与小屏体验 */
.backup-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 0 12px; }
.backup-status-card { min-height:94px; padding:13px 14px; border:1px solid var(--slate-200); border-radius:11px; background:#fff; box-shadow:0 3px 12px rgba(15,42,74,.035); }
.backup-status-card > span { display:block; color:var(--slate-500); font-size:11px; font-weight:650; }
.backup-status-card > strong { display:block; margin:7px 0 5px; color:var(--slate-800); font-size:14px; line-height:1.25; }
.backup-status-card > small { display:block; color:var(--slate-500); font-size:10px; line-height:1.55; }
.backup-status-card.healthy { border-color:#b7ddc9; background:#f4fbf7; }.backup-status-card.healthy strong,.backup-ok { color:#167044; }
.backup-status-card.stale { border-color:#f0c278; background:#fffaf0; }.backup-status-card.stale strong { color:#b45309; }
.backup-status-card.incomplete,.backup-status-card.missing { border-color:#edb5b5; background:#fff7f7; }.backup-status-card.incomplete strong,.backup-status-card.missing strong,.backup-bad { color:#b42318; }
.access-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:10px; padding:16px 18px; border:1px solid #d9e7f4; border-radius:12px; background:linear-gradient(135deg,#f7fbff,#fff); }.access-hero p { margin:6px 0 0; color:var(--slate-500); font-size:12px; line-height:1.6; }.access-note { margin:0 0 12px; padding:9px 12px; border-left:3px solid #8fb7df; color:var(--slate-500); background:#f8fbfe; font-size:11px; line-height:1.6; }
.roster-columns-modal { width:min(620px,96vw); }.modal-note { margin:0 0 13px; color:var(--slate-500); font-size:12px; }.roster-columns-list { display:grid; gap:7px; max-height:55vh; overflow:auto; padding-right:3px; }.roster-column-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; border:1px solid var(--slate-200); border-radius:9px; background:var(--slate-50); }.roster-column-row label { display:flex; align-items:center; gap:7px; color:var(--slate-700); font-size:12px; font-weight:600; }.roster-column-row label small { padding:2px 5px; border-radius:5px; color:var(--slate-400); background:var(--slate-200); font-size:9px; font-weight:600; }.roster-column-row .btn { min-width:30px; padding:3px 8px; }
.archive-review-status.deferred { color:#805ad5; background:#f1eaff; }.archive-review-badge.has-pending { color:#b54708; border-color:#f3bb79; background:#fff0d3; font-weight:800; }
#page-roster .table-wrap th[data-roster-column="name"],#page-roster .table-wrap td[data-roster-column="name"],#page-roster .table-wrap th[data-roster-column="status"],#page-roster .table-wrap td[data-roster-column="status"],#page-roster .table-wrap th[data-roster-column="actions"],#page-roster .table-wrap td[data-roster-column="actions"] { position:sticky; z-index:2; background:inherit; }
@media (max-width:1000px) { .backup-status-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .access-hero { flex-direction:column; }.backup-status-grid { grid-template-columns:1fr; }.roster-column-row { align-items:flex-start; }.roster-column-row > div { white-space:nowrap; } #page-roster .table-wrap { overflow-x:auto; scrollbar-width:none; } #page-roster .table-wrap::-webkit-scrollbar { display:none; } #page-roster .table-wrap table { min-width:max-content; } }

/* 数据校验中心：只读提示，避免把异常列表误解为自动修改流程 */
.data-check-panel { margin:0 0 18px; padding:18px; border:1px solid #dce6f0; border-radius:14px; background:linear-gradient(135deg,#f8fbff 0%,#fff 62%); box-shadow:var(--shadow-sm); }
.data-check-panel-head { display:flex; align-items:flex-start; gap:18px; justify-content:space-between; }
.data-check-panel h3 { margin:3px 0 5px; color:var(--slate-900); font-size:16px; }
.data-check-panel p { margin:0; color:var(--slate-500); font-size:12px; line-height:1.55; }
.eyebrow { color:var(--brand-700); font-size:10px; font-weight:800; letter-spacing:.08em; }
.data-check-actions { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:flex-end; gap:10px; }
.quality-filter { display:grid; gap:5px; min-width:154px; color:var(--slate-600); cursor:pointer; }
.quality-filter > span:first-child { padding-left:2px; color:var(--slate-500); font-size:10px; font-weight:750; letter-spacing:.04em; }
.quality-filter-type { min-width:238px; }
.quality-select-shell { position:relative; display:block; }
.quality-select-shell::after { content:''; position:absolute; top:50%; right:14px; width:7px; height:7px; margin-top:-6px; border-right:2px solid var(--slate-500); border-bottom:2px solid var(--slate-500); transform:rotate(45deg); pointer-events:none; }
.quality-select-shell select { width:100%; min-height:40px; padding:0 38px 0 13px; appearance:none; -webkit-appearance:none; border:1px solid #cbd8e6; border-radius:10px; outline:0; color:var(--slate-800); background:linear-gradient(180deg,#fff,#f8fbfe); box-shadow:0 2px 7px rgba(16,43,78,.045); font-size:12px; font-weight:700; cursor:pointer; transition:border-color .18s,box-shadow .18s,background .18s; }
.quality-select-shell select:hover { border-color:#9ab8d2; background:#fff; }
.quality-select-shell select:focus { border-color:var(--brand-600); box-shadow:0 0 0 3px rgba(49,106,163,.13); }
.quality-filter-buttons { display:flex; gap:8px; align-items:center; }
.quality-filter-buttons .btn { min-height:40px; }
.data-check-summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px; }
.data-check-summary-item { display:inline-flex; align-items:baseline; gap:6px; padding:7px 10px; border:1px solid var(--slate-200); border-radius:8px; color:var(--slate-600); background:#fff; font:inherit; cursor:pointer; }
.data-check-summary-item strong { color:var(--brand-800); font-size:18px; line-height:1; }.data-check-summary-item small { font-size:11px; font-weight:650; }
.data-check-summary-item.high { border-color:#f4c4c0; background:#fff8f7; }.data-check-summary-item.high strong { color:var(--red-700); }
.data-check-summary-item.medium { border-color:#f4deb0; background:#fffdf7; }.data-check-summary-item.medium strong { color:var(--amber-700); }
.data-check-summary-item:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(16,43,78,.08); }
.data-check-summary-item.active { border-color:var(--brand-600); box-shadow:0 0 0 2px rgba(49,106,163,.12); }
.data-check-summary-note { margin-left:auto; color:var(--slate-500); font-size:11px; }
.data-check-table-wrap { margin-top:12px; max-height:420px; }
.data-check-table-wrap th { position:sticky; top:0; z-index:2; }
.data-check-message { min-width:310px; color:var(--slate-600); line-height:1.55; }
.data-check-pagination { margin-top:10px; }
.cell-subtle { display:block; margin-top:3px; color:var(--slate-400); font-size:10px; font-weight:600; }
.btn-compact { padding:3px 8px !important; font-size:12px !important; white-space:nowrap; }
@media (max-width:760px) {
  .data-check-panel { padding:14px; }
  .data-check-panel-head { flex-direction:column; }
  .data-check-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; justify-content:stretch; }
  .quality-filter { width:100%; min-width:0; }
  .quality-filter-type { min-width:0; }
  .quality-filter-buttons { grid-column:1/-1; }
  .quality-filter-buttons .btn { flex:1; width:auto; }
  .data-check-summary-note { width:100%; margin-left:0; }
  .data-check-message { min-width:230px; }
}
.archive-review-priority { display:inline-flex; min-width:32px; justify-content:center; padding:2px 6px; border-radius:999px; color:var(--slate-600); background:var(--slate-100); font-size:10px; font-weight:800; }
.archive-review-priority.high { color:var(--red-700); background:var(--red-100); }.archive-review-priority.low { color:var(--teal-700); background:var(--teal-100); }
.archive-review-owner { display:block; margin-top:4px; color:var(--slate-500); font-size:10px; white-space:nowrap; }

/* 工作待办：优先呈现需要处置的事项；零数量的周期概览低调展示。 */
.dashboard-card.is-context { min-height:126px; background:#fbfdff; }
.dashboard-card.is-context.is-empty { border-style:dashed; background:var(--slate-50); }
.dashboard-card.is-context.is-empty strong { color:var(--slate-400); }
.dashboard-card.is-context.is-empty em { color:var(--slate-400); }
.dashboard-card.is-empty:not(.is-context) { border-style:dashed; opacity:.82; }
.archive-review-owner { white-space:normal; line-height:1.45; }

/* 实体档案位置快速核对 */
.archive-location-filter { min-width:118px; }
.archive-location-box-filter { max-width:190px; }
.archive-box-current { display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:92px; color:var(--slate-500); font-size:10px; white-space:nowrap; }
.archive-box-usage { display:inline-flex; align-items:center; padding:3px 7px; border-radius:999px; font-size:10px; font-weight:750; line-height:1; }
.archive-box-usage.used { color:var(--teal-700); background:var(--teal-100); }
.archive-box-usage.empty { color:var(--slate-500); background:var(--slate-100); }
.archive-location-warning { display:block; width:max-content; margin-top:4px; padding:2px 5px; border-radius:999px; color:var(--amber-700); background:var(--amber-100); font-size:10px; font-weight:750; white-space:nowrap; }
@media (max-width:760px) { .archive-location-filter { min-width:104px; } .archive-location-box-filter { max-width:150px; } }

/* 实体档案导入预检结果 */
.archive-import-preview-modal { width:min(760px, 96vw); }
.archive-import-preview-body { padding:0 22px 18px; }
.archive-import-preview-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
.archive-import-preview-stat { display:flex; min-height:78px; flex-direction:column; justify-content:space-between; gap:5px; padding:12px; border:1px solid var(--slate-200); border-radius:10px; background:var(--slate-50); }
.archive-import-preview-stat strong { color:var(--slate-800); font-size:22px; line-height:1; font-variant-numeric:tabular-nums; }
.archive-import-preview-stat span { color:var(--slate-500); font-size:11px; font-weight:650; line-height:1.35; }
.archive-import-preview-stat.blue { border-color:#cfe0f0; background:#f3f8fd; }.archive-import-preview-stat.blue strong { color:var(--brand-700); }
.archive-import-preview-stat.green { border-color:#bfe5d4; background:#f0fbf5; }.archive-import-preview-stat.green strong { color:var(--teal-700); }
.archive-import-preview-stat.amber { border-color:#f1d79d; background:#fffaf0; }.archive-import-preview-stat.amber strong { color:var(--amber-700); }
.archive-import-preview-stat.red { border-color:#f0c9c9; background:#fff6f6; }.archive-import-preview-stat.red strong { color:var(--red-700); }
.archive-import-preview-note { margin-top:14px; padding:11px 12px; border-radius:9px; color:var(--slate-600); background:var(--slate-50); font-size:11px; line-height:1.75; }
.archive-import-preview-warning { margin-top:10px; padding:10px 12px; border-left:3px solid var(--amber-500); border-radius:0 8px 8px 0; color:var(--amber-800); background:#fff9ed; font-size:11px; line-height:1.65; }
@media (max-width:640px) { .archive-import-preview-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } }

/* 户口与现居住地址定向识别 */
.profile-extraction-modal { width:min(720px, 96vw); }
.profile-extraction-modal > h3 { margin-bottom:4px; }
.profile-extract-notice {
  margin:14px 0 10px;
  padding:10px 12px;
  border:1px solid #cfe1f2;
  border-left:3px solid var(--brand-600);
  border-radius:9px;
  color:var(--slate-600);
  background:#f7fbff;
  font-size:12px;
  line-height:1.65;
}
.profile-extract-status { margin:0 0 9px; color:var(--slate-400); font-size:11px; }
.profile-extract-list { display:grid; gap:8px; }
.profile-extract-row {
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:12px 13px;
  border:1px solid var(--slate-200);
  border-radius:10px;
  background:#fff;
}
.profile-extract-row.selectable { cursor:pointer; transition:.16s ease; }
.profile-extract-row.selectable:hover { border-color:#9dbbd7; background:#fbfdff; }
.profile-extract-row.selectable:has(input:checked) { border-color:var(--brand-600); box-shadow:0 0 0 2px rgba(36,81,132,.09); background:var(--brand-50); }
.profile-extract-row input { margin:3px 0 0; accent-color:var(--brand-700); }
.profile-extract-row.muted { display:block; border-style:dashed; color:var(--slate-500); background:var(--slate-50); }
.profile-extract-title { display:flex; align-items:center; flex-wrap:wrap; gap:7px; color:var(--slate-800); font-size:13px; }
.profile-extract-value { margin-top:7px; overflow-wrap:anywhere; color:var(--slate-800); font-size:13px; font-weight:650; line-height:1.6; }
.profile-extract-meta, .profile-extract-current { margin-top:4px; color:var(--slate-500); font-size:11px; line-height:1.55; }
.profile-extract-current { color:var(--slate-400); }
.profile-extract-empty { padding:2px 6px; border-radius:999px; color:var(--slate-500); background:var(--slate-100); font-size:10px; font-weight:600; }
.profile-extract-confidence { padding:2px 6px; border-radius:999px; font-size:10px; font-weight:700; }
.profile-extract-confidence.high { color:var(--teal-700); background:var(--teal-100); }
.profile-extract-confidence.medium { color:var(--amber-700); background:var(--amber-100); }
.profile-extract-confidence.low { color:var(--slate-500); background:var(--slate-100); }
.profile-extract-notes { margin-top:10px; padding:9px 11px; border-radius:8px; color:var(--slate-500); background:var(--slate-50); font-size:11px; line-height:1.65; }
.profile-extract-facts { margin-top:12px; border:1px solid var(--slate-200); border-radius:8px; background:#fff; overflow:hidden; }
.profile-extract-facts-title { padding:8px 10px; color:var(--slate-700); background:var(--slate-50); font-size:12px; font-weight:700; }
.profile-extract-fact { display:grid; grid-template-columns:minmax(110px, 150px) minmax(0, 1fr); gap:5px 10px; padding:8px 10px; border-top:1px solid var(--slate-100); font-size:12px; }
.profile-extract-fact strong { color:var(--slate-600); }
.profile-extract-fact span { overflow-wrap:anywhere; color:var(--slate-800); font-weight:600; }
.profile-extract-fact small { grid-column:2; color:var(--slate-400); font-size:10px; }

@media (max-width: 560px) {
  .profile-extraction-modal { width:calc(100vw - 18px); }
  .profile-extract-row { padding:10px; }
}


/* 2026-08-16：花名册筛选与数据校验页面信息架构优化 */
#page-roster .roster-toolbar {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:10px 14px;
  overflow:visible;
  padding:12px 14px;
}
#page-roster .roster-toolbar > * { min-width:0; }
.roster-filter-main, .roster-filter-advanced, .roster-toolbar-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.roster-filter-main { min-width:0; }
.roster-filter-main .search-control { width:250px; flex:0 1 250px; }
.roster-filter-main .search-control #searchQ { width:100%; }
.roster-filter-advanced {
  grid-column:1 / -1;
  padding:10px 0 0;
  border-top:1px dashed var(--slate-200);
}
.roster-filter-advanced[hidden], .roster-filter-chips[hidden] { display:none; }
.roster-filter-label { color:var(--slate-400); font-size:11px; font-weight:750; letter-spacing:.03em; }
.roster-more-toggle { border-color:#cbddec; color:var(--brand-700); background:#f8fbfe; }
.roster-toolbar-actions { justify-content:flex-end; }
.roster-filter-chips { grid-column:1 / -1; display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:-2px; }
.roster-filter-chips > span { margin-right:2px; color:var(--slate-400); font-size:11px; font-weight:700; }
.roster-filter-chip {
  display:inline-flex; align-items:center; gap:5px; max-width:230px; overflow:hidden;
  padding:4px 8px; border:1px solid #d1e2ef; border-radius:999px; color:var(--brand-700);
  background:#f4f9fd; font:600 11px/1.2 inherit; cursor:pointer; text-overflow:ellipsis; white-space:nowrap;
}
.roster-filter-chip:hover { border-color:#98bbd6; background:#eaf4fb; }
.roster-filter-chip b { font-size:14px; font-weight:500; line-height:.8; }

.alerts-hero {
  display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 12px; padding:19px 20px;
  border:1px solid #d9e7f4; border-radius:14px; background:linear-gradient(115deg,#f3f8fd 0%,#fff 68%);
}
.alerts-hero h3 { margin:3px 0 5px; color:var(--slate-900); font-size:19px; letter-spacing:-.02em; }
.alerts-hero p { max-width:720px; margin:0; color:var(--slate-500); font-size:12px; line-height:1.7; }
.alerts-hero-note { flex:0 0 auto; padding:7px 10px; border:1px solid #c9ddec; border-radius:999px; color:var(--brand-700); background:#fff; font-size:11px; font-weight:700; }
.alerts-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 14px; }
.alerts-tab {
  min-height:72px; padding:12px 14px; border:1px solid var(--slate-200); border-radius:11px; color:var(--slate-600);
  background:#fff; text-align:left; cursor:pointer; transition:.16s ease;
}
.alerts-tab:hover { border-color:#b4cde2; background:#fbfdff; }
.alerts-tab.active { border-color:#82abd0; box-shadow:0 5px 15px rgba(27,71,113,.08); background:linear-gradient(135deg,#f1f7fc,#fff); }
.alerts-tab span, .alerts-tab small { display:block; }
.alerts-tab span { color:var(--slate-800); font-size:13px; font-weight:780; }
.alerts-tab.active span { color:var(--brand-700); }
.alerts-tab small { margin-top:5px; color:var(--slate-500); font-size:10px; }
.alerts-panel[hidden] { display:none; }
.alerts-panel-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:0 0 11px; padding:3px 2px; }
.alerts-panel-intro h3 { margin:3px 0 2px; color:var(--slate-800); font-size:16px; }
.alerts-panel-intro p { margin:0; color:var(--slate-500); font-size:11px; }
.alerts-toolbar { margin-bottom:10px; box-shadow:none; border:1px solid var(--slate-200); }
#page-alerts .stat-cards { margin-bottom:12px; }

@media (max-width: 980px) {
  #page-roster .roster-toolbar { grid-template-columns:1fr; }
  .roster-toolbar-actions { justify-content:flex-start; }
}
@media (max-width: 720px) {
  #page-roster .roster-toolbar { position:static; display:block; padding:12px; }
  .roster-filter-main, .roster-filter-advanced, .roster-toolbar-actions { flex-wrap:nowrap; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
  .roster-filter-main::-webkit-scrollbar, .roster-filter-advanced::-webkit-scrollbar, .roster-toolbar-actions::-webkit-scrollbar { display:none; }
  .roster-filter-main .search-control { flex:0 0 220px; width:220px; }
  .roster-filter-advanced { margin-top:10px; padding-top:10px; }
  .roster-toolbar-actions { margin-top:10px; }
  .roster-filter-chips { margin-top:10px; }
  .alerts-hero { align-items:flex-start; flex-direction:column; padding:16px; }
  .alerts-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .alerts-tab { min-height:0; }
  .alerts-panel-intro { align-items:flex-start; flex-direction:column; }
}

@media (max-width:760px) {
  #dataChecksTable, #dataChecksTable tbody, #dataChecksTable tr, #dataChecksTable td { display:block; width:100%; }
  #dataChecksTable thead { display:none; }
  #dataChecksTable tbody { padding:8px; }
  #dataChecksTable tr { margin-bottom:9px; padding:11px 12px; border:1px solid var(--slate-200); border-radius:10px; background:#fff; }
  #dataChecksTable tr:last-child { margin-bottom:0; }
  #dataChecksTable td { display:grid; grid-template-columns:76px minmax(0,1fr); gap:8px; padding:5px 0; border:0; white-space:normal; }
  #dataChecksTable td::before { content:attr(data-label); color:var(--slate-500); font-size:10px; font-weight:700; }
  #dataChecksTable .data-check-message { min-width:0; }
  #dataChecksTable td:last-child .btn { justify-self:start; }
}

/* 误办离职更正提示 */
.workflow-warning {
  margin: 0 22px 12px;
  padding: 10px 12px;
  border: 1px solid #f3d19c;
  border-radius: 8px;
  background: #fff8e8;
  color: #8a5a00;
  font-size: 13px;
  line-height: 1.6;
}

/* 员工个人 ID：由服务端统一分配，表单只做只读展示。 */
.form-group .form-hint {
  display: block;
  margin-top: 5px;
  color: #7b8794;
  font-size: 12px;
  line-height: 1.45;
}
.form-group input[readonly][aria-readonly="true"] {
  color: #24476c;
  background: #f6f9fc;
  border-color: #cfdceb;
  font-weight: 650;
  letter-spacing: .035em;
  cursor: default;
}


/* 资料待补全：仅定位缺项，避免被误解为系统自动修正。 */
.completeness-badge { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; margin-left:4px; padding:0 5px; border-radius:999px; color:#9a3412; background:#ffedd5; font-size:10px; font-weight:850; vertical-align:1px; }
.completeness-panel { margin:0 0 18px; padding:18px; border:1px solid #f0dfbf; border-radius:14px; background:linear-gradient(135deg,#fffdf8 0%,#fff 62%); box-shadow:var(--shadow-sm); }
.completeness-panel h3 { margin:3px 0 5px; color:var(--slate-900); font-size:16px; }
.completeness-panel p { margin:0; color:var(--slate-500); font-size:12px; line-height:1.55; }
.completeness-summary { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:14px; }
.completeness-summary-item { display:inline-flex; align-items:baseline; gap:7px; padding:8px 11px; border:1px solid #f3d39b; border-radius:9px; color:#915b1a; background:#fffaf0; }
.completeness-summary-item strong { color:#b45309; font-size:20px; line-height:1; }
.completeness-summary-item span { font-size:11px; font-weight:700; }
.completeness-summary-hint { flex:1 1 360px; color:var(--slate-500); font-size:11px; line-height:1.55; }
.completeness-table-wrap { margin-top:12px; max-height:560px; }
.completeness-table-wrap th { position:sticky; top:0; z-index:2; }
.completeness-org { min-width:190px; color:var(--slate-600); line-height:1.5; }
.completeness-score { display:inline-flex; align-items:baseline; gap:4px; padding:4px 7px; border-radius:7px; font-weight:850; font-size:12px; white-space:nowrap; }
.completeness-score small { font-size:10px; font-weight:700; }
.completeness-score.is-complete { color:#16794a; background:#eaf8ef; }
.completeness-score.is-missing { color:#a16207; background:#fff5d8; }
.completeness-more-row { text-align:center; color:var(--slate-500); font-size:12px; background:var(--slate-50); }
@media (max-width:760px) { .completeness-panel { padding:14px; }.completeness-summary-hint { flex-basis:100%; }.completeness-org { min-width:160px; } }


/* 第二阶段：综合变更分层、固定操作栏与附件分类卡片 */
.employee-change-modal { width:min(960px, 96vw); }
.employee-change-modal > #modalForm { padding-bottom:22px; }
.employee-change-scope-guide { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:2px; }
.employee-change-scope { min-width:0; padding:12px 13px; border:1px solid var(--slate-200); border-radius:10px; background:var(--slate-50); }
.employee-change-scope span { display:block; margin-bottom:5px; color:var(--slate-500); font-size:10px; font-weight:750; letter-spacing:.05em; }
.employee-change-scope strong { display:block; color:var(--slate-800); font-size:12px; line-height:1.55; }
.employee-change-scope small { display:block; margin-top:4px; color:var(--slate-500); font-size:10px; line-height:1.55; }
.employee-change-scope.editable { border-color:#c9dcee; background:#f7fbff; }
.employee-change-scope.editable span { color:var(--brand-700); }
.employee-change-scope.workflow { border-color:#f0d9ab; background:#fffaf0; }
.employee-change-scope.workflow span { color:var(--amber-700); }
.change-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:6px 0 -2px; padding:0 0 10px; border-bottom:1px solid var(--slate-200); }
.change-section-heading span { color:var(--brand-800); font-size:12px; font-weight:750; }
.change-section-heading small { color:var(--slate-500); font-size:10px; line-height:1.5; text-align:right; }
.integrated-change-panel { grid-column:span 2; border-color:#f0d9ab; background:linear-gradient(135deg,#fffaf0 0%,#fffdf8 100%); }
.integrated-change-panel p { margin:11px 0; }
.employee-change-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.employee-change-footer-copy { max-width:580px; color:var(--slate-500); font-size:10px; line-height:1.55; }
.employee-change-footer-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-shrink:0; }
.employee-change-footer .btn { white-space:nowrap; }

.employee-attachments-modal { width:min(900px, calc(100vw - 28px)); }
.attachment-upload-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 14px; align-items:center; margin:18px 22px 0 !important; padding:13px; border:1px solid #d8e6f4; border-radius:11px; background:linear-gradient(135deg,#f7fbff,#fff); }
.attachment-upload-copy { min-width:0; }
.attachment-upload-copy strong { display:block; color:var(--brand-800); font-size:13px; }
.attachment-upload-copy small, .attachment-upload-limit { display:block; margin-top:4px; color:var(--slate-500); font-size:10px; line-height:1.5; }
.attachment-upload-actions { display:flex; align-items:center; gap:8px; }
.attachment-upload-actions select { min-width:112px; padding:7px 8px; border:1px solid var(--slate-300); border-radius:8px; color:var(--slate-700); background:#fff; font-size:12px; }
.attachment-upload-button { cursor:pointer; white-space:nowrap; }
.attachment-upload-limit { grid-column:1 / -1; margin-top:-2px; }
.attachment-category-grid { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; min-height:92px; padding:18px 22px 22px !important; }
.attachment-category-grid > .loading, .attachment-category-grid > .empty { grid-column:1 / -1; }
.attachment-category-card { min-width:0; overflow:hidden; border:1px solid var(--slate-200); border-radius:11px; background:#fff; box-shadow:0 1px 2px rgba(16,43,78,.035); }
.attachment-category-card.is-empty { border-style:dashed; background:var(--slate-50); box-shadow:none; }
.attachment-category-card > header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:9px; align-items:start; padding:11px 12px; border-bottom:1px solid var(--slate-100); background:#fbfdff; }
.attachment-category-card.is-empty > header { border-bottom:0; background:transparent; }
.attachment-category-icon { display:grid; place-items:center; width:27px; height:27px; border-radius:8px; background:var(--brand-50); font-size:14px; }
.attachment-category-card > header strong { display:block; color:var(--slate-800); font-size:12px; }
.attachment-category-card > header small { display:block; margin-top:2px; overflow:hidden; color:var(--slate-500); font-size:10px; line-height:1.45; text-overflow:ellipsis; white-space:nowrap; }
.attachment-category-card > header b { display:grid; place-items:center; min-width:24px; height:24px; border-radius:999px; color:var(--brand-700); background:var(--brand-100); font-size:11px; }
.attachment-category-card.is-empty > header b { color:var(--slate-400); background:var(--slate-200); }
.attachment-category-files { display:grid; }
.attachment-category-empty { padding:0 12px 12px 48px; color:var(--slate-400); font-size:10px; }
.attachment-file-row { display:flex; align-items:center; gap:8px; min-width:0; padding:9px 11px; border-top:1px solid var(--slate-100); }
.attachment-file-row:first-child { border-top:0; }
.attachment-file-icon { flex:0 0 auto; font-size:15px; }
.attachment-file-main { min-width:0; flex:1; }
.attachment-file-main strong { display:block; overflow:hidden; color:var(--slate-700); font-size:11px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.attachment-file-main small { display:block; margin-top:2px; color:var(--slate-400); font-size:10px; }
.attachment-file-actions { display:flex; align-items:center; justify-content:flex-end; gap:4px; flex-wrap:wrap; }
.attachment-file-category { max-width:88px; padding:3px 4px; border:1px solid var(--slate-300); border-radius:6px; color:var(--slate-600); background:#fff; font-size:10px; }
.attachment-file-actions .btn-compact { padding:3px 6px; box-shadow:none; font-size:10px; }
@media (max-width:720px) {
  .employee-change-scope-guide, .attachment-category-grid { grid-template-columns:1fr; }
  .change-section-heading { display:block; }
  .change-section-heading small { display:block; margin-top:4px; text-align:left; }
  .employee-change-footer, .attachment-upload-toolbar { grid-template-columns:1fr; align-items:stretch; }
  .employee-change-footer { flex-direction:column; align-items:stretch; }
  .employee-change-footer-copy { max-width:none; }
  .employee-change-footer-actions { justify-content:stretch; }
  .employee-change-footer-actions .btn { flex:1; }
  .attachment-upload-actions { align-items:stretch; flex-direction:column; }
  .attachment-upload-actions select, .attachment-upload-button { width:100%; }
  .attachment-file-row { align-items:flex-start; flex-wrap:wrap; }
  .attachment-file-main { min-width:calc(100% - 28px); }
  .attachment-file-actions { width:100%; padding-left:23px; justify-content:flex-start; }
}

/* 2026-09-01：全局 UI 精修
 * 目标：降低表格密度、强化信息层级、统一弹窗与卡片、减少无效留白。
 * 仅影响前端展示，不改变接口、权限和数据结构。
 */
:root {
  --surface-muted: #f8fafc;
  --surface-blue: #f4f8fc;
  --line-soft: #e7edf3;
  --text-muted: #64748b;
}

/* 页面容器与页面标题 */
.main { padding-top: 22px; }
.page-heading-compact { border-bottom: 1px solid transparent; }
.page-heading-compact h2 { letter-spacing: -.025em; }

/* 表格：表头更克制，行高更舒适，操作列始终可见 */
.table-wrap {
  border: 1px solid var(--line-soft);
  box-shadow: 0 6px 20px rgba(16,43,78,.045);
}
.table-wrap thead th {
  background: linear-gradient(180deg, #f7fbff 0%, #edf4fa 100%);
  color: var(--brand-800);
  border-bottom: 1px solid #d9e6f1;
  font-size: 11px;
  letter-spacing: .02em;
}
.table-wrap tbody tr { transition: background .15s ease, box-shadow .15s ease; }
.table-wrap tbody tr:hover { box-shadow: inset 3px 0 var(--brand-500, #316aa3); }
.table-wrap tbody td { padding-top: 10px; padding-bottom: 10px; }
#page-roster .table-wrap th:last-child,
#page-roster .table-wrap td:last-child {
  position: sticky;
  right: 0;
  z-index: 3;
  border-left: 1px solid var(--line-soft);
  box-shadow: -7px 0 12px rgba(16,43,78,.035);
}
#page-roster .table-wrap th:last-child { z-index: 5; background: linear-gradient(180deg, #f7fbff 0%, #edf4fa 100%); }
#page-roster .table-wrap td:last-child { background: #fff; }
#page-roster .table-wrap tbody tr:hover td:last-child { background: #f2f7fc; }
.employee-name-line { display:flex; align-items:center; gap:6px; }
.employee-name-line strong { color: var(--slate-800); font-size: 13px; }
.employee-name-tags { margin-top: 3px; }
.employee-duplicate-hint { margin-top: 3px; color: var(--amber-700); font-size: 10px; }

/* 状态与操作按钮：让主操作和辅助操作更容易区分 */
#page-roster .table-wrap td .btn { min-height: 30px; }
.btn-compact { min-height: 30px; border-radius: 7px; }
.btn-danger:hover { box-shadow: 0 5px 14px rgba(180,35,24,.18); }

/* 员工编辑/详情弹窗 */
.employee-change-modal,
#viewModal .modal {
  width: min(980px, 96vw) !important;
  border-radius: 18px;
}
.employee-change-modal > #modalForm,
#viewModalContent { padding: 18px 24px 24px; }
.employee-change-modal > #modalForm { min-height: 0; }
.employee-change-modal .tabs {
  position: sticky;
  top: 0;
  z-index: 4;
  margin: -2px -2px 20px;
  padding: 5px;
  overflow-x: auto;
  scrollbar-width: none;
  box-shadow: 0 4px 13px rgba(16,43,78,.045);
}
.employee-change-modal .tabs::-webkit-scrollbar { display:none; }
.employee-change-modal .tab-btn { flex: 0 0 auto; min-height: 34px; }
.employee-change-modal .tab-panel { animation: panelFadeIn .16s ease-out; }
@keyframes panelFadeIn { from { opacity:.65; transform:translateY(2px); } to { opacity:1; transform:none; } }
.change-section-heading { padding-top: 4px; }
.change-section-heading span { font-size: 13px; }
.form-group { min-width: 0; }
.form-group input[readonly], .form-group select:disabled {
  color: var(--slate-500);
  background: #f8fafc;
  cursor: not-allowed;
}
.employee-change-footer {
  margin-top: 0;
  padding: 14px 24px;
  box-shadow: 0 -6px 18px rgba(16,43,78,.045);
}
.employee-change-footer-copy { font-size: 11px; }

/* 详情页：从连续字段改为清晰的信息卡片 */
#viewModalContent .detail-section {
  padding: 18px;
  margin-bottom: 16px;
  box-shadow: 0 2px 8px rgba(16,43,78,.025);
}
#viewModalContent .detail-section h4 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 15px;
  font-size: 14px;
}
#viewModalContent .detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#viewModalContent .detail-item { min-width: 0; }
#viewModalContent .detail-item .di-value { overflow-wrap: anywhere; }
.contract-overview-grid { margin-bottom: 16px; }
.contract-history-list { display: grid; gap: 12px; }
.contract-history-card {
  padding: 14px 15px 15px;
  border: 1px solid #dbe7f1;
  border-radius: 12px;
  background: linear-gradient(145deg, #fbfdff 0%, #f6f9fc 100%);
}
.contract-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e5edf4;
}
.contract-history-head strong { display:block; color:var(--brand-800); font-size:13px; }
.contract-history-head small { display:block; margin-top:2px; color:var(--slate-500); font-size:10px; }
.contract-history-label {
  flex: 0 0 auto;
  padding: 4px 8px;
  border: 1px solid #cfe0ef;
  border-radius: 999px;
  color: var(--brand-700);
  background: #fff;
  font-size: 10px;
  font-weight: 700;
}
.contract-history-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.contract-history-no { grid-column: 1 / -1; }
.detail-empty-note {
  padding: 16px;
  border: 1px dashed var(--slate-300);
  border-radius: 10px;
  color: var(--slate-400);
  background: var(--slate-50);
  text-align: center;
  font-size: 12px;
}

/* 页面卡片与筛选区统一 */
.dashboard-hero, .candidate-hero, .archive-catalog-hero, .backup-hero, .access-hero {
  border: 1px solid var(--line-soft);
  box-shadow: 0 5px 18px rgba(16,43,78,.04);
}
#page-roster .roster-toolbar { box-shadow: 0 5px 18px rgba(16,43,78,.045); }
.roster-filter-main, .roster-filter-advanced, .roster-toolbar-actions { min-width: 0; }
.roster-filter-advanced { align-items: center; }
.roster-filter-advanced select, .roster-filter-advanced button { min-height: 34px; }

/* 统一空状态，避免页面看起来像报错 */
.loading, .empty { min-height: 120px; display: flex; align-items: center; justify-content: center; }

@media (max-width: 980px) {
  #viewModalContent .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-change-modal > #modalForm, #viewModalContent { padding-left: 18px; padding-right: 18px; }
}
@media (max-width: 720px) {
  .main { padding-top: 16px; }
  #viewModalContent .detail-grid,
  .contract-history-grid { grid-template-columns: 1fr !important; }
  .contract-history-no { grid-column: auto; }
  .employee-change-footer { padding: 12px 16px; }
  .table-wrap tbody td { padding-top: 9px; padding-bottom: 9px; }
}

/* 永久删除确认：固定操作栏，内容独立滚动，样式仅作用于此弹窗。 */
#employeePermanentDeleteModal { z-index:1400; align-items:center; padding:20px; }
#employeePermanentDeleteModal .employee-delete-dialog {
  display:flex; flex-direction:column; width:min(680px, 96vw); max-height:calc(100vh - 40px);
  max-height:calc(100dvh - 40px); overflow:hidden; padding:0;
}
.employee-delete-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px 24px 16px; border-bottom:1px solid var(--slate-200); flex:none; }
.employee-delete-header h3 { margin:0 0 4px; color:var(--slate-800); font-size:18px; font-weight:750; }
.employee-delete-header p { color:var(--slate-500); font-size:12px; }
.employee-delete-close { display:grid; place-items:center; width:32px; height:32px; flex:none; border:1px solid var(--slate-200); border-radius:8px; background:var(--slate-50); color:var(--slate-600); cursor:pointer; }
.employee-delete-close:hover { color:var(--red-700); background:var(--red-100); border-color:#edc4c0; }
.employee-delete-close svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.employee-delete-body, .employee-delete-form { display:flex; flex-direction:column; min-height:0; flex:1; }
.employee-delete-content { padding:20px 24px 24px; overflow-y:auto; overscroll-behavior:contain; min-height:0; }
.employee-delete-summary { margin-bottom:18px; }
.employee-delete-label { display:block; color:var(--slate-500); font-size:12px; }
.employee-delete-name { display:block; margin:3px 0 10px; color:var(--slate-800); font-size:20px; font-weight:750; overflow-wrap:anywhere; }
.employee-delete-summary dl { display:flex; gap:14px 28px; flex-wrap:wrap; }
.employee-delete-summary dl > div { display:flex; align-items:baseline; gap:9px; }
.employee-delete-summary dt { color:var(--slate-500); font-size:12px; }
.employee-delete-summary dd { color:var(--slate-800); font-size:13px; font-weight:650; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.employee-delete-warning { display:flex; align-items:flex-start; gap:11px; margin-bottom:20px; padding:12px 14px; border:1px solid #f2cec9; border-left:3px solid var(--red-700); border-radius:8px; background:#fff5f3; color:var(--red-700); }
.employee-delete-warning svg { flex:none; width:20px; height:20px; margin-top:1px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.employee-delete-warning strong { font-size:14px; font-weight:700; }
.employee-delete-warning p { margin-top:3px; color:#8b473e; font-size:12px; line-height:1.65; }
.employee-delete-scope h4, .employee-delete-confirm h4, .employee-delete-blocked h4 { margin:0 0 10px; color:var(--slate-800); font-size:13px; font-weight:750; }
.employee-delete-records { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; margin:0; padding:0; list-style:none; }
.employee-delete-records li { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid var(--slate-100); color:var(--slate-600); font-size:12px; }
.employee-delete-records strong { flex:none; font-size:13px; font-weight:650; font-variant-numeric:tabular-nums; color:var(--slate-800); }
.employee-delete-records small { font-size:11px; color:var(--slate-500); font-weight:400; }
.employee-delete-files { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:10px 0 0; color:var(--slate-600); font-size:12px; }
.employee-delete-files strong { font-size:13px; color:var(--slate-800); }
.employee-delete-files small { font-size:12px; font-weight:400; color:var(--slate-500); }
.employee-delete-retained { margin-top:12px; padding:10px 12px; border-radius:6px; background:var(--slate-50); color:var(--slate-600); font-size:12px; line-height:1.7; }
.employee-delete-confirm { margin-top:20px; padding-top:18px; border-top:1px solid var(--slate-200); }
.employee-delete-confirm .form-group { margin-bottom:14px; }
.employee-delete-confirm .form-group label { color:var(--slate-700); font-size:12px; }
.employee-delete-confirm textarea, .employee-delete-confirm input { width:100%; }
.employee-delete-confirm textarea { resize:vertical; min-height:78px; }
.employee-delete-hint { margin-top:3px; color:var(--slate-500); font-size:12px; }
.employee-delete-hint strong { color:var(--slate-700); font-variant-numeric:tabular-nums; }
.employee-delete-consent { display:flex; align-items:flex-start; gap:9px; padding:11px 12px; border:1px solid var(--slate-200); border-radius:8px; font-size:12px; line-height:1.7; color:var(--slate-700); cursor:pointer; }
.employee-delete-consent input { flex:none; width:16px; height:16px; margin-top:2px; accent-color:var(--red-700); }
.employee-delete-consent:has(input:checked) { border-color:#edc4c0; background:#fff8f7; }
.employee-delete-error { margin:10px 0 0; color:var(--red-700); font-size:12px; overflow-wrap:anywhere; }
.employee-delete-error:empty { display:none; }
.employee-delete-footer { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex:none; padding:14px 24px; border-top:1px solid var(--slate-200); background:#fff; }
.employee-delete-footer > span { margin-right:auto; color:var(--slate-500); font-size:11px; }
.employee-delete-footer .btn { min-height:38px; }
.employee-delete-footer .btn-danger:hover { background:#92251c; border-color:#92251c; }
.employee-delete-state { padding:36px 24px; text-align:center; color:var(--slate-600); font-size:13px; }
.employee-delete-state strong { display:block; margin-bottom:6px; color:var(--slate-800); font-size:15px; }
.employee-delete-state p { overflow-wrap:anywhere; }
.employee-delete-loading { display:block; width:22px; height:22px; margin:0 auto 14px; border:2px solid var(--slate-200); border-top-color:var(--brand-600); border-radius:50%; animation:employee-delete-spin .8s linear infinite; }
.employee-delete-blocked { padding:14px 16px; border:1px solid #f2cec9; border-radius:8px; background:#fff5f3; color:#8b473e; font-size:13px; }
.employee-delete-blocked h4 { color:var(--red-700); margin-bottom:5px; }
.employee-delete-blocked ul { margin:10px 0 0; padding-left:18px; }
.employee-delete-blocked li + li { margin-top:5px; }
@keyframes employee-delete-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .employee-delete-loading { animation:none; } #employeePermanentDeleteModal .modal { animation:none; } }
@media (max-width:640px) {
  #employeePermanentDeleteModal { padding:10px; }
  #employeePermanentDeleteModal .employee-delete-dialog { width:100%; max-height:calc(100vh - 20px) !important; max-height:calc(100dvh - 20px) !important; border-radius:14px; }
  .employee-delete-header { padding:16px 18px 14px; }
  .employee-delete-content { padding:18px; }
  .employee-delete-records { grid-template-columns:1fr; }
  .employee-delete-footer { flex-wrap:wrap; padding:12px 18px; }
  .employee-delete-footer > span { width:100%; margin-bottom:2px; }
  .employee-delete-footer .btn { flex:1; }
}

/* Shared interaction repair, 2026-10-13: compact controls and accessible dialogs. */
[hidden] { display:none !important; }
body.ui-dialog-open { overflow:hidden; }
:where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline:3px solid #2a7ab1; outline-offset:3px;
}
.sidebar button.nav-item { width:100%; background:transparent; font-family:inherit; text-align:left; cursor:pointer; }
.secondary-navigation { display:contents; }
.sidebar .mobile-nav-more { display:none; }
.modal > form.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.modal > form.form-grid-single { grid-template-columns:1fr; }
.modal .form-group { min-width:0; }
.modal .modal-note, #profileExtractionContent, #rosterColumnsList { margin-left:22px; margin-right:22px; }
#profileExtractionContent { padding-top:16px; padding-bottom:16px; }
.modal > .workflow-error { margin:0; padding:0 22px 12px; }
.candidate-progress-modal { max-width:480px; }
.progress-person { margin:0 0 18px; padding:10px 12px; border-radius:8px; background:var(--slate-50); color:var(--slate-600); font-size:13px; }
#candidateProgressForm { display:grid; gap:14px; }
#candidateProgressForm .modal-footer { margin:4px -22px -20px; }
.toolbar .search-control, .roster-filter-main .search-control { display:block; width:340px; flex:0 1 340px; max-width:100%; }
.toolbar .search-control input[type=text], .roster-filter-main .search-control #searchQ { width:100%; padding-left:34px !important; }
#page-roster .roster-toolbar .search-control #searchQ { width:100%; }
.search-control svg { top:10px; }
.search-scope { display:block; margin-top:5px; color:var(--slate-500); font-size:11px; line-height:1.5; }
#auditUsername { width:200px !important; }
.archive-catalog-toolbar .archive-catalog-tabs { flex:0 0 100%; width:100%; }
.archive-catalog-tab { min-height:36px; }
.candidate-table-wrap th:nth-child(2), .candidate-table-wrap td:nth-child(2),
.research-table-wrap th:nth-child(2), .research-table-wrap td:nth-child(2) {
  position:sticky; left:0; z-index:2; background:#fff; box-shadow:1px 0 0 var(--slate-200);
}
.candidate-table-wrap th:last-child, .candidate-table-wrap td:last-child,
.research-table-wrap th:last-child, .research-table-wrap td:last-child,
#page-access th:last-child, #page-access td:last-child {
  position:sticky; right:0; z-index:2; background:#fff; box-shadow:-1px 0 0 var(--slate-200);
}
.candidate-table-wrap th:nth-child(2), .candidate-table-wrap th:last-child,
.research-table-wrap th:nth-child(2), .research-table-wrap th:last-child,
#page-access th:last-child { z-index:4; background:var(--slate-50); }
.table-scroll-hint { display:none; }
.dashboard-context { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.dashboard-context .dashboard-card { min-height:86px; padding:14px 16px; }
.dashboard-context .dashboard-card strong { font-size:25px; }
.dashboard-context .dashboard-card em { display:none; }
.dashboard-hero, .candidate-hero, .archive-catalog-hero, .access-hero { padding:12px 16px; margin-bottom:12px; }
.alerts-hero { padding:10px 14px; }
.alerts-hero h3 { display:none; }
.alerts-hero .eyebrow { display:none; }
.alerts-tab { min-height:0; padding:9px 12px; }
.alerts-tab small { margin-top:2px; }
#page-alerts .alerts-panel-intro h3 { font-size:14px; margin:0 0 3px; }
#page-alerts .stat-card, #page-alerts .alert-card { padding:12px 15px; }
.archive-review-footer { flex-wrap:wrap; }
.archive-review-footer .btn-danger { color:var(--slate-600); background:#fff; border-color:var(--slate-200); }

@media (max-width:980px) and (min-width:721px) {
  .sidebar button.nav-item { text-align:center; }
}
@media (max-width:720px) {
  .modal > form.form-grid { grid-template-columns:1fr; }
  .sidebar-nav { position:relative; padding-bottom:max(7px, env(safe-area-inset-bottom)); }
  .sidebar button.nav-item { width:auto; min-width:0; min-height:52px; font-size:11px; text-align:center; }
  .sidebar .mobile-nav-more { display:flex; }
  .secondary-navigation { display:none; position:absolute; bottom:calc(100% + 8px); left:10px; right:10px; padding:10px; border:1px solid #d5e1ed; border-radius:14px; background:#fff; box-shadow:0 -8px 35px rgba(12,38,69,.22); }
  .mobile-expanded .secondary-navigation { display:grid; grid-template-columns:1fr; gap:4px; }
  .sidebar .secondary-navigation .nav-item { flex-direction:row; justify-content:flex-start; gap:12px; padding:10px 14px; min-height:44px; color:var(--slate-700); font-size:13px; text-align:left; }
  .sidebar .secondary-navigation .nav-item.active { color:var(--brand-800); background:var(--brand-50); box-shadow:inset 3px 0 var(--brand-600); }
  .sidebar .secondary-navigation .nav-item:hover { background:var(--slate-50); }
  .roster-filter-main, .roster-filter-advanced, .roster-toolbar-actions { flex-wrap:wrap; overflow:visible; }
  .toolbar .search-control, .roster-filter-main .search-control { flex:0 0 100%; width:100%; }
  .toolbar .search-control input[type=text], .roster-filter-main .search-control #searchQ { min-width:0; width:100%; }
  .roster-toolbar-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .roster-toolbar-actions > .btn { min-width:0; padding:8px; }
  .archive-catalog-toolbar .archive-catalog-tabs { order:0; flex:0 0 100%; width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2px; }
  .archive-catalog-tab { min-width:0; padding:7px 4px; font-size:11px; }
  .archive-catalog-toolbar .search-control { order:0; }
  .table-scroll-hint { display:block; margin:3px 2px 8px; color:var(--slate-500); font-size:11px; }
  .candidate-table-wrap td:nth-child(2), .research-table-wrap td:nth-child(2) { min-width:94px; max-width:130px; white-space:normal; }
  .candidate-table-wrap td:last-child { min-width:94px; max-width:100px; padding:7px; }
  .candidate-table-wrap .candidate-actions { display:grid; grid-template-columns:1fr; gap:5px; }
  .candidate-table-wrap .candidate-actions .btn { min-height:32px; padding:5px 8px; }
  .dashboard-card { min-height:105px; }
  .dashboard-context { gap:8px; }
  .dashboard-context .dashboard-card { min-width:0; padding:12px; }
  .alerts-hero { padding:9px 12px; gap:6px; }
  .alerts-hero-note { display:none; }
  .alerts-tabs { gap:5px; margin-bottom:10px; }
  .alerts-tab { padding:8px 10px; }
  .archive-review-footer .btn { min-height:40px; flex:1 0 calc(50% - 10px); }
  .archive-review-footer .spacer { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
/* Keep the selected quality category and its working list near the page title. */
#page-alerts .alerts-hero { padding:0 2px; border:0; background:transparent; box-shadow:none; }
#page-alerts .alerts-hero-note, #page-alerts .alerts-panel-intro .eyebrow, #page-alerts .alerts-panel-intro h3 { display:none; }
#page-alerts .data-check-panel-head > div:first-child { flex:1; min-width:200px; }
#page-alerts .data-check-panel-head .eyebrow { display:none; }
#page-alerts .data-check-actions { flex:0 1 620px; gap:8px; }
#page-alerts .quality-filter-type { min-width:200px; }
@media (max-width:760px) {
  #page-alerts .data-check-actions { flex:none; }
  #page-alerts .data-check-panel-head > div:first-child { min-width:0; }
  #page-alerts .quality-filter-type { min-width:0; }
}
.toolbar .search-control input[type=text] { width:100% !important; flex:none !important; }
.candidate-stat-cards { gap:8px; margin-bottom:12px; }
.candidate-stat { padding:10px 13px; border:1px solid var(--slate-200); box-shadow:none; }
.candidate-stat .icon { display:none; }
.candidate-stat > div { display:flex; align-items:baseline; gap:8px; }
.candidate-stat .num { font-size:22px; flex:none; }
.candidate-stat .label { margin:0; font-size:11px; line-height:1.4; }
.candidate-hero .toolbar-title { display:none; }
@media (max-width:720px) {
  .candidate-hero { gap:10px; }
  .candidate-hero p { margin:0; font-size:12px; line-height:1.6; }
  .candidate-sync-status { font-size:11px; margin-top:5px; }
  .candidate-stat-cards { gap:6px; }
  .candidate-stat { padding:8px 10px; }
}
