/* 新人培训中心 · 企业级统一视觉系统
   仅调整外观与布局，不改变任何业务内容或交互。 */
:root {
  --ent-primary: #2457D6;
  --ent-primary-dark: #1947B8;
  --ent-primary-soft: #EEF4FF;
  --ent-sidebar: #14213A;
  --ent-sidebar-hover: #1D2D4B;
  --ent-canvas: #F4F7FB;
  --ent-surface: #FFFFFF;
  --ent-text: #172033;
  --ent-muted: #667085;
  --ent-border: #DFE5EE;
  --ent-border-soft: #EDF0F5;
  --ent-success: #16856B;
  --ent-warning: #C47B16;
  --ent-danger: #C83E4D;
  --ent-radius: 12px;
  --ent-shadow: 0 2px 8px rgba(18, 38, 70, .055);
}

html { background: var(--ent-canvas); }
body {
  background: var(--ent-canvas) !important;
  color: var(--ent-text) !important;
  font-size: 14px !important;
  letter-spacing: 0;
}

/* 应用框架 */
.sidebar {
  width: 244px !important;
  background: var(--ent-sidebar) !important;
  border-right: 1px solid rgba(255,255,255,.06);
}
.brand {
  min-height: 78px; padding: 18px 18px !important;
  border-bottom-color: rgba(255,255,255,.08) !important;
}
.brand .brand-name { font-size: 16px !important; letter-spacing: .02em; }
.brand small { margin-top: 4px !important; color: #93A1B8 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.brand-badge { background: rgba(80,117,226,.22) !important; color: #C8D6FF !important; border: 1px solid rgba(134,160,238,.24); }
.ns-label {
  padding: 18px 18px 8px !important; color: #8190A8 !important;
  font-size: 12px !important; font-weight: 600 !important; letter-spacing: .08em !important;
}
.ns-hint { background: rgba(255,255,255,.055) !important; border-color: rgba(255,255,255,.08) !important; color: #8190A8 !important; }
.nav-item {
  min-height: 42px; padding: 10px 13px !important; margin: 2px 10px !important;
  border-radius: 9px !important; color: #B5C0D2 !important; font-size: 14px !important;
}
.nav-item:hover { background: var(--ent-sidebar-hover) !important; color: #fff !important; }
.nav-item.active {
  background: #2859D6 !important; color: #fff !important;
  box-shadow: 0 7px 18px rgba(18,65,180,.24) !important;
}
.nav-item.active::before { display: none !important; }
.nav-badge { border-radius: 999px !important; box-shadow: none !important; font-size: 10px !important; }
.user-box { margin: auto 12px 14px !important; padding: 14px !important; border: 1px solid rgba(255,255,255,.08) !important; border-radius: 10px; background: rgba(5,13,29,.26); }

.main-wrap { background: var(--ent-canvas) !important; }
.topbar {
  height: 70px !important; padding: 0 32px !important;
  border-bottom: 1px solid var(--ent-border) !important; background: rgba(255,255,255,.96) !important;
  box-shadow: 0 1px 2px rgba(16,24,40,.02); backdrop-filter: blur(10px);
}
.topbar::after { display: none !important; }
.topbar-title { font-size: 17px !important; font-weight: 700 !important; color: var(--ent-text) !important; }
.topbar-badge { background: var(--ent-primary-soft) !important; color: var(--ent-primary) !important; }
.topbar-center { max-width: 500px !important; }
.topbar-search {
  height: 38px; padding: 0 14px !important; background: #F7F9FC !important;
  border-color: var(--ent-border) !important; border-radius: 9px !important;
}
.topbar-search:focus { background: #fff !important; border-color: var(--ent-primary) !important; box-shadow: 0 0 0 3px rgba(36,87,214,.1) !important; }
.topbar-avatar { background: var(--ent-primary) !important; box-shadow: none !important; }

/* 基础内容容器 */
.page-head, .hero-simple, .ob-hero, .wrong-hero, .kb-hero { margin-bottom: 22px !important; }
.page-head h2, .section-title, .ob-hero-title { color: var(--ent-text) !important; font-weight: 750 !important; letter-spacing: -.015em; }
.section-title { font-size: 22px !important; }
.text-muted, .muted { color: var(--ent-muted) !important; }
.card, .dash-section, .stat-card, .sub-card {
  background: var(--ent-surface) !important; border: 1px solid var(--ent-border-soft) !important;
  border-radius: var(--ent-radius) !important; box-shadow: var(--ent-shadow) !important;
}
.card { padding: 22px !important; margin-bottom: 18px !important; }
.card:hover { transform: none !important; box-shadow: 0 6px 18px rgba(18,38,70,.07) !important; }

/* 标题、工具栏与搜索 */
.section-header, .page-head, .wb-hero, .ob-hero {
  display: flex !important; align-items: flex-end !important; justify-content: space-between !important;
  gap: 20px !important; padding: 0 !important; background: transparent !important; border: 0 !important;
}
.wb-hero-text h2, .ob-hero-title, .page-head h2 {
  margin: 0 0 5px !important; font-size: 24px !important; line-height: 1.25 !important;
  color: var(--ent-text) !important;
}
.wb-hero-text p, .ob-hero-sub { color: var(--ent-muted) !important; font-size: 13px !important; }
.section-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wb-hero-search, .kb-search-wrap, .ob-search-wrap { min-width: 250px; }

/* 输入与表单 */
.input, input.input, select.input, textarea.input, .ob-search-input, .wb-search {
  min-height: 40px !important; padding: 9px 12px !important;
  border: 1px solid var(--ent-border) !important; border-radius: 9px !important;
  background: #fff !important; color: var(--ent-text) !important; font-size: 13px !important;
  box-shadow: none !important; outline: none;
}
textarea.input { min-height: 92px !important; resize: vertical; }
.input:focus, input.input:focus, select.input:focus, textarea.input:focus, .ob-search-input:focus, .wb-search:focus {
  border-color: var(--ent-primary) !important; box-shadow: 0 0 0 3px rgba(36,87,214,.1) !important;
}
.form-row { margin-bottom: 17px !important; }
.form-row label { display: block; margin-bottom: 7px !important; color: #344054 !important; font-size: 13px !important; font-weight: 650 !important; }

/* 按钮 */
.btn {
  min-height: 38px; padding: 8px 15px !important; border-radius: 8px !important;
  border: 1px solid var(--ent-border) !important; background: #fff !important;
  color: #344054 !important; font-size: 13px !important; font-weight: 650 !important;
  box-shadow: none !important; text-shadow: none !important; transition: all .16s ease !important;
}
.btn:hover { border-color: #AEB9CA !important; background: #F8FAFC !important; transform: translateY(-1px); }
.btn-primary, .btn.primary {
  border-color: var(--ent-primary) !important; background: var(--ent-primary) !important; color: #fff !important;
}
.btn-primary:hover, .btn.primary:hover { border-color: var(--ent-primary-dark) !important; background: var(--ent-primary-dark) !important; }
.btn-outline { background: #fff !important; color: var(--ent-primary) !important; border-color: #BFCDF2 !important; }
.btn-danger { background: #fff !important; color: var(--ent-danger) !important; border-color: #F1C5CB !important; }
.btn-sm { min-height: 32px !important; padding: 6px 11px !important; font-size: 12px !important; }
.btn-row { display: flex; gap: 10px; flex-wrap: wrap; }

/* 标签页 */
.tab-bar {
  display: flex !important; align-items: center; gap: 4px !important; margin: 0 0 22px !important;
  padding: 0 0 1px !important; border-bottom: 1px solid var(--ent-border) !important;
  background: transparent !important; border-radius: 0 !important;
}
.tab-item, .tab-btn {
  position: relative; padding: 11px 15px !important; border: 0 !important; border-radius: 7px 7px 0 0 !important;
  background: transparent !important; color: var(--ent-muted) !important; font-size: 13px !important; font-weight: 550 !important;
}
.tab-item:hover, .tab-btn:hover { background: #F7F9FC !important; color: var(--ent-text) !important; }
.tab-item.active, .tab-btn.active { color: var(--ent-primary) !important; background: var(--ent-primary-soft) !important; font-weight: 700 !important; }
.tab-item.active::after, .tab-btn.active::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: -2px; height: 2px; border-radius: 2px; background: var(--ent-primary);
}
.tab-sep { color: var(--ent-border) !important; }

/* 指标卡统一 */
.stat-cards, .wb-metrics, .dash-metrics { gap: 14px !important; }
.stat-card, .wb-metric, .dash-metric {
  min-height: 104px; padding: 18px 20px !important; background: #fff !important;
  border: 1px solid var(--ent-border-soft) !important; border-top: 1px solid var(--ent-border-soft) !important;
  border-radius: 12px !important; box-shadow: var(--ent-shadow) !important;
}
.wb-metric { position: relative; }
.wb-metric::before, .dash-metric::before {
  content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ent-primary);
}
.wb-metric-num, .dash-metric-value, .stat-num { color: var(--ent-text) !important; font-size: 25px !important; font-weight: 760 !important; }
.wb-metric-label, .dash-metric-label, .stat-label { color: var(--ent-muted) !important; font-size: 12px !important; }

/* 表格 */
.table-wrap { border: 1px solid var(--ent-border) !important; border-radius: 11px !important; overflow: auto; background: #fff; }
.table { width: 100%; border-collapse: separate !important; border-spacing: 0 !important; background: #fff !important; }
.table th {
  padding: 12px 14px !important; background: #F7F9FC !important; color: #475467 !important;
  border-bottom: 1px solid var(--ent-border) !important; font-size: 12px !important; font-weight: 700 !important; text-align: left;
}
.table td { padding: 13px 14px !important; border-bottom: 1px solid var(--ent-border-soft) !important; color: #344054 !important; }
.table tbody tr:hover td { background: #FAFBFD !important; }

/* 标签与状态 */
.badge { border-radius: 999px !important; padding: 4px 9px !important; font-size: 11px !important; font-weight: 650 !important; box-shadow: none !important; }
.badge-success { background: #EAF7F3 !important; color: var(--ent-success) !important; }
.badge-danger { background: #FDEEEF !important; color: var(--ent-danger) !important; }
.badge-warning { background: #FFF4E5 !important; color: var(--ent-warning) !important; }

/* 错题本 */
.wb-section-head { margin: 4px 0 14px !important; padding: 0 !important; border: 0 !important; }
.wb-empty { min-height: 120px; padding: 38px 24px !important; border: 1px dashed #D7DEEA !important; border-radius: 12px !important; background: #fff !important; color: var(--ent-muted) !important; }

/* 类目知识库 */
.kb-grid { gap: 16px !important; }
.kb-card {
  padding: 20px !important; border: 1px solid var(--ent-border-soft) !important;
  border-radius: 12px !important; background: #fff !important; box-shadow: var(--ent-shadow) !important;
}
.kb-card:hover { border-color: #C9D4E6 !important; box-shadow: 0 7px 20px rgba(18,38,70,.08) !important; transform: translateY(-1px); }
.kb-card-name { color: var(--ent-text) !important; font-weight: 700 !important; }
.kb-card-meta, .kb-stat-label { color: var(--ent-muted) !important; }
.kb-stat-value { color: var(--ent-primary) !important; }
.kb-card-actions { padding-top: 14px !important; margin-top: 14px !important; border-top: 1px solid var(--ent-border-soft) !important; }

/* 新人入职跟踪 */
.ob-hero-right .ob-bell { display: none; }
.ob-search-wrap { border: 0 !important; background: transparent !important; }
.ob-card {
  padding: 20px !important; margin-bottom: 14px !important; background: #fff !important;
  border: 1px solid var(--ent-border-soft) !important; border-radius: 13px !important; box-shadow: var(--ent-shadow) !important;
}
.ob-title { color: var(--ent-text) !important; font-size: 16px !important; font-weight: 750 !important; }
.ob-avatar { box-shadow: none !important; }
.ob-progress-col { padding: 14px !important; border-radius: 10px !important; background: #F8FAFD !important; border: 1px solid #EDF1F6 !important; }
.ob-pc-bar-wrap { background: #E9EEF5 !important; }
.ob-card-actions { padding-top: 16px !important; border-top: 1px solid var(--ent-border-soft) !important; }

/* 管理总览 */
.dash-hero-focused { border-color: #DCE5F5 !important; background: linear-gradient(120deg,#fff 0%,#F4F7FC 100%) !important; box-shadow: var(--ent-shadow) !important; }
.dash-eyebrow { color: var(--ent-primary) !important; }
.dash-work-grid > .dash-section { border-color: var(--ent-border-soft) !important; box-shadow: var(--ent-shadow) !important; }
.dash-action-link:hover { background: #F6F8FC !important; }
.dash-action-icon { background: var(--ent-primary-soft) !important; }

/* 登录页保持同一品牌气质 */
.login-split { background: var(--ent-canvas) !important; }
.login-left { background: var(--ent-sidebar) !important; }
.login-card { border-radius: 16px !important; border: 1px solid var(--ent-border-soft) !important; box-shadow: 0 18px 50px rgba(18,38,70,.12) !important; }

@media (max-width: 900px) {
  .sidebar { width: 220px !important; }
  .topbar { padding: 0 20px !important; }
  .main { padding: 24px 22px 40px !important; }
}
@media (max-width: 720px) {
  .section-header, .page-head, .wb-hero, .ob-hero { align-items: stretch !important; flex-direction: column !important; }
  .wb-hero-search, .kb-search-wrap, .ob-search-wrap { width: 100%; min-width: 0; }
  .wb-metrics, .stat-cards { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .table th, .table td { padding: 10px 11px !important; }
}

/* =====================================================================
   第二层：核心业务页面内部重排
   ===================================================================== */

/* 模拟对练：设置 / 开始训练 / 辅助信息三栏，替代旧表格拼接布局 */
.cockpit-header {
  min-height: 68px; padding: 0 2px 18px !important; margin-bottom: 18px !important;
  display: flex !important; align-items: flex-end !important; justify-content: space-between !important;
  gap: 20px; background: transparent !important; border-bottom: 1px solid var(--ent-border) !important;
}
.cockpit-title { color: var(--ent-text) !important; font-size: 24px !important; font-weight: 760 !important; }
.cockpit-nav { gap: 4px !important; }
.cockpit-nav span { padding: 8px 13px !important; border-radius: 8px !important; color: var(--ent-muted) !important; background: transparent !important; }
.cockpit-nav span.active { color: var(--ent-primary) !important; background: var(--ent-primary-soft) !important; }
.cockpit-stats {
  display: grid !important; grid-template-columns: repeat(5,minmax(0,1fr)) !important;
  gap: 12px !important; margin: 0 0 18px !important;
}
.cockpit-stats .stat-card {
  min-height: 86px !important; padding: 15px 17px !important; display: block !important;
  border: 1px solid var(--ent-border-soft) !important; box-shadow: var(--ent-shadow) !important;
}
.cockpit-stats .stat-card .num { color: var(--ent-text) !important; font-size: 23px !important; }
.cockpit-stats .stat-card .label { color: var(--ent-muted) !important; }
.cockpit-body {
  display: grid !important; grid-template-columns: minmax(270px,320px) minmax(400px,1fr) minmax(240px,290px) !important;
  align-items: start; gap: 16px !important; width: 100% !important; margin: 0 0 18px !important;
}
.cockpit-left, .cockpit-center, .cockpit-right {
  width: auto !important; padding: 22px !important; background: #fff !important;
  border: 1px solid var(--ent-border-soft) !important; border-radius: 13px !important;
  box-shadow: var(--ent-shadow) !important;
}
.cockpit-left { position: sticky; top: 90px; }
.cockpit-center { min-height: 560px; text-align: left !important; display: flex; flex-direction: column; }
.cockpit-right { display: grid; gap: 14px; }
.panel-title { margin-bottom: 18px !important; color: var(--ent-text) !important; font-size: 15px !important; font-weight: 750 !important; }
.mode-switch, .diff-options, .plat-options, .type-btns { display: grid !important; gap: 8px !important; }
.mode-switch { grid-template-columns: 1fr 1fr; }
.diff-options { grid-template-columns: repeat(3,1fr) !important; }
.plat-options { grid-template-columns: repeat(2,1fr) !important; }
.type-btns { grid-template-columns: repeat(3,1fr) !important; margin: 24px 0 14px !important; }
.mode-btn, .diff-card, .plat-btn, .type-btn {
  min-height: 42px; border: 1px solid var(--ent-border) !important; border-radius: 9px !important;
  background: #fff !important; color: #475467 !important; box-shadow: none !important;
}
.mode-btn.active, .diff-card.selected, .plat-btn.selected, .type-btn.selected {
  border-color: #9BB1E8 !important; background: var(--ent-primary-soft) !important; color: var(--ent-primary) !important;
}
.workbench-icon { margin-top: 42px !important; font-size: 42px !important; }
.workbench-title { margin-top: 10px !important; font-size: 22px !important; color: var(--ent-text) !important; }
.workbench-sub { max-width: 580px; margin: 8px 0 0 !important; color: var(--ent-muted) !important; line-height: 1.75 !important; }
.current-type { margin: 4px 0 20px !important; padding: 11px 13px !important; border-radius: 9px !important; background: #F7F9FC !important; color: #475467 !important; }
.workbench-actions { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; margin-bottom: 18px !important; }
.workbench-actions .btn:first-child { grid-column: 1 / -1; min-height: 46px; }
.diff-note { margin-top: 8px !important; padding: 10px 12px !important; border-radius: 8px !important; background: #FAFBFD !important; color: var(--ent-muted) !important; line-height: 1.65 !important; text-align: left; }
.warm-tip, .tip-card, .right-emotion, .quick-rules, .three-p-card { margin: 0 !important; padding: 14px !important; border-radius: 10px !important; background: #F8FAFD !important; border: 1px solid #EDF1F6 !important; }
.emotion-options { display: flex !important; flex-wrap: wrap; gap: 6px !important; margin-top: 10px !important; }
.emotion-chip { margin: 0 !important; padding: 6px 8px !important; border-radius: 7px !important; background: #fff !important; border: 1px solid var(--ent-border) !important; }
.emotion-chip.selected { color: var(--ent-primary) !important; border-color: #9BB1E8 !important; background: var(--ent-primary-soft) !important; }
.cockpit-bottom { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 20px !important; border: 1px solid var(--ent-border-soft) !important; box-shadow: var(--ent-shadow) !important; }
.cockpit-bottom .panel-title { margin: 0 !important; }

/* 培训考试：标题、指标、考试卡片形成明确的管理层级 */
.v4-hero {
  min-height: 132px !important; margin-bottom: 18px !important; padding: 26px 28px !important;
  border: 1px solid #DCE5F5 !important; border-radius: 15px !important;
  background: linear-gradient(120deg,#fff 0%,#F4F7FC 100%) !important; box-shadow: var(--ent-shadow) !important;
}
.v4-hero::before, .v4-hero::after { display: none !important; }
.v4-hero-text h2 { color: var(--ent-text) !important; font-size: 26px !important; }
.v4-hero-text p { color: var(--ent-muted) !important; }
.v4-hero-icon { width: 56px !important; height: 56px !important; display: grid; place-items: center; border-radius: 14px !important; background: var(--ent-primary-soft) !important; font-size: 25px !important; }
.metrics-row { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 14px !important; margin-bottom: 20px !important; }
.metric-card {
  min-height: 110px; padding: 18px 20px !important; border: 1px solid var(--ent-border-soft) !important;
  border-radius: 12px !important; background: #fff !important; box-shadow: var(--ent-shadow) !important;
}
.metric-card::before { display: none !important; }
.metric-value { color: var(--ent-text) !important; font-size: 26px !important; }
.metric-label { color: #344054 !important; font-weight: 650 !important; }
.metric-trend { color: var(--ent-muted) !important; }
.content-section { padding: 22px !important; border: 1px solid var(--ent-border-soft) !important; border-radius: 13px !important; background: #fff !important; box-shadow: var(--ent-shadow) !important; }
.content-section .section-header { margin-bottom: 18px !important; padding-bottom: 16px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.exam-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 16px !important; }
/* 该分类只有一张考试卡时占满整行，右侧不再空一大块（2026-09-25） */
.exam-grid.exam-grid--single { grid-template-columns: 1fr !important; }
.exam-card {
  display: flex; flex-direction: column; min-height: 310px; padding: 20px !important;
  border: 1px solid var(--ent-border) !important; border-radius: 12px !important; box-shadow: none !important; background: #fff !important;
}
.exam-card:hover { border-color: #BAC8DD !important; box-shadow: 0 7px 18px rgba(18,38,70,.07) !important; }
.exam-card-head { align-items: flex-start !important; gap: 10px !important; padding-bottom: 15px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.exam-card-title { color: var(--ent-text) !important; font-size: 17px !important; }
.exam-card-desc { margin-top: 5px !important; color: var(--ent-muted) !important; line-height: 1.65 !important; }
.exam-card-stats { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 8px !important; padding: 16px 0 !important; }
.exam-card-stats span { padding: 10px !important; border-radius: 8px !important; background: #F7F9FC !important; text-align: center; }
.exam-card-row { padding: 12px 0 !important; }
.exam-card-actions { margin-top: auto !important; padding-top: 16px !important; border-top: 1px solid var(--ent-border-soft) !important; }
.exam-settings-panel { margin: 10px 0 !important; padding: 16px !important; border-radius: 10px !important; background: #F7F9FC !important; border: 1px solid #E8EDF5 !important; }
.exam-settings-grid { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 10px !important; }
.data-table-wrap { border: 1px solid var(--ent-border) !important; border-radius: 11px !important; overflow: auto !important; }
.data-table { width: 100%; border-collapse: separate !important; border-spacing: 0 !important; }
.data-table th { padding: 12px 14px !important; background: #F7F9FC !important; border-bottom: 1px solid var(--ent-border) !important; }
.data-table td { padding: 13px 14px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }

/* 学习地图：头部操作合并，学员卡片突出进度，详情变成阶段面板 */
.map-page-title { margin: 0 !important; }
.map-title-bar { display: none !important; }
.map-page-title h2 { font-size: 24px !important; color: var(--ent-text) !important; }
.map-tab-row {
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  gap: 16px !important; margin: 12px 0 0 !important; padding-bottom: 14px !important; border-bottom: 1px solid var(--ent-border) !important;
}
.map-tabs { display: flex !important; gap: 4px !important; }
.map-tab-row .tab-item { position: relative; padding: 9px 13px !important; background: transparent !important; color: var(--ent-muted) !important; }
.map-tab-row .tab-item.active { color: var(--ent-primary) !important; background: var(--ent-primary-soft) !important; }
.map-subtitle { margin: 12px 0 22px !important; color: var(--ent-muted) !important; }
.map-progress-list { gap: 14px !important; }
.map-stu-card { padding: 0 !important; overflow: hidden; border: 1px solid var(--ent-border-soft) !important; border-radius: 13px !important; box-shadow: var(--ent-shadow) !important; }
.map-stu-row { min-height: 76px; padding: 18px 20px !important; background: #fff; }
.map-stu-left { flex-direction: column !important; align-items: flex-start !important; gap: 4px !important; }
.map-stu-name { font-size: 16px !important; color: var(--ent-text) !important; }
.map-stu-desc { color: var(--ent-muted) !important; }
.map-stu-right { gap: 14px !important; }
.map-status { padding: 5px 9px !important; border-radius: 999px; background: var(--ent-primary-soft); }
.map-stu-detail { margin: 0 !important; padding: 20px !important; background: #F8FAFD !important; border-top: 1px solid var(--ent-border-soft) !important; }
.map-stage-detail { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 12px !important; }
.stage-item { padding: 16px !important; border-radius: 10px !important; background: #fff !important; border: 1px solid var(--ent-border-soft) !important; }
.map-assign-form { padding: 22px !important; border: 1px solid var(--ent-border-soft) !important; background: #fff !important; box-shadow: var(--ent-shadow) !important; }
.map-tpl-grid { grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 16px !important; }
.map-tpl-card { min-height: 210px; padding: 20px !important; border: 1px solid var(--ent-border-soft) !important; box-shadow: var(--ent-shadow) !important; }
.map-tpl-chips { align-content: flex-start; }

/* 新人培训跟踪：概览、筛选、列表三段式 */
.tk-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 28px; border:1px solid #DCE5F5; border-radius:15px; background:linear-gradient(120deg,#fff 0%,#F3F7FE 100%); box-shadow:var(--ent-shadow); }
.tk-eyebrow { margin-bottom:6px; color:var(--ent-primary); font-size:12px; font-weight:800; letter-spacing:.12em; }
.tk-hero p { margin:7px 0 0; color:var(--ent-muted); }
.tk-hero-actions { display:flex; gap:10px; flex-wrap:wrap; }
.tk-period-select { display:flex; align-items:center; gap:7px; color:var(--ent-muted); font-size:12px; }
.tk-period-select .input { width:112px; min-height:36px; padding:6px 28px 6px 10px; background:#fff; }
.tk-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.tk-summary .stat-card { min-height:86px; margin:0 !important; padding:17px 18px !important; border:1px solid var(--ent-border-soft); border-radius:12px; background:#fff; box-shadow:var(--ent-shadow); }
.tk-summary .stat-card { display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:center !important; text-align:center !important; }
.tk-summary .stat-card > div:last-child { width:100%; text-align:center !important; }
.tk-period-note { margin:10px 2px 0; color:var(--ent-muted); font-size:12px; }
.tk-period-note b { color:var(--ent-primary); }
.tk-person-alerts { margin: 16px 0 18px; }
.tk-person-alerts .rp-risk-cols { align-items: stretch; }
.tk-person-alerts .rp-risk-col { min-height: 124px; }
.tk-eliminate-tag { display: inline-flex; margin-top: 6px; font-size: 10px; }
.tk-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border:1px solid var(--ent-border-soft); border-radius:12px; background:#fff; }
.tk-toolbar .tab-bar { margin:0 !important; padding:0 !important; border:0 !important; background:transparent !important; }
.tk-filter-tabs { display:flex; flex-wrap:wrap; gap:4px; }
.tk-person { display:flex; align-items:center; gap:10px; min-width:112px; }
.tk-person small, .tk-cell-stack small { display:block; margin-top:4px; color:var(--ent-muted); font-size:11px; line-height:1.45; }
.tk-cell-stack { min-width:118px; line-height:1.35; }
/* 操作列：流式紧凑排列，别让 5 个按钮竖堆把行高撑到 178px（2026-10-03 掌柜的：「每个人的间隙太大了」）
   同时收窄本表 padding/最小列宽补回空间，容器兜底横向滚动，避免列被 overflow:hidden 裁掉 */
.tk-table thead th, .tk-table tbody td { padding-left:9px; padding-right:9px; }
.tk-table .tk-cell-stack { min-width:96px; }
.tk-table .tk-person { min-width:96px; }
.tk-table .tk-snap { white-space:normal; }
.tk-table .tk-drop-cat { white-space:normal; max-width:96px; }
.tk-wrap { overflow-x:auto; }
.tk-ops-cell { min-width:150px; }
.tk-ops { display:flex; flex-wrap:wrap; gap:4px; }
.tk-ops .btn-sm { min-height:22px !important; padding:2px 7px !important; font-size:11px !important; line-height:1.5; border-radius:6px; }
.tk-duration-missing { display:inline-block; max-width:90px; color:#B45309; font-size:12px; line-height:1.35; }
.tk-duration-running { display:inline-block; margin-left:5px; padding:2px 6px; border-radius:999px; background:#EEF4FF; color:#315FC5; font-size:10px; }
.tk-add-reason { margin-top:8px; padding:5px 9px; border:1px dashed #9DB1D4; border-radius:7px; background:#F7FAFF; color:#315FC5; font-size:12px; cursor:pointer; }
.tk-add-reason:hover { border-style:solid; background:#EEF4FF; }
.ability-phase { display:inline-block; margin-left:7px; padding:3px 7px; border-radius:999px; background:#EEF4FF; color:#315FC5; font-size:10px; font-weight:700; white-space:nowrap; }
.ability-compact { display:flex; min-width:180px; flex-direction:column; gap:4px; line-height:1.35; }
.ability-compact b { color:var(--ent-primary); font-size:14px; }
.ability-compact span { color:var(--ent-text); font-size:11px; white-space:nowrap; }
.ability-compact small { color:var(--ent-muted); font-size:10px; }
.tk-gate { margin-top:7px; font-size:10px; font-weight:700; white-space:nowrap; }
.tk-gate.ready { color:#15803D; } .tk-gate.pending { color:#B45309; }

/* 新人完整档案 */
.tp-mask { z-index:9999 !important; align-items:flex-start !important; padding:36px 20px; overflow:auto; }
.tp-card { width:min(1040px,96vw); margin:auto; padding:0 0 26px; overflow:hidden; border-radius:16px; background:#F5F7FB; box-shadow:0 24px 70px rgba(15,31,58,.22); }
.tp-head { display:flex; align-items:flex-start; justify-content:space-between; padding:25px 28px; color:#fff; background:linear-gradient(120deg,#173E86,#315FC5); }
.tp-head h2 { margin:5px 0; font-size:27px; } .tp-head p { margin:0; color:#DCE8FF; }
.tp-eyebrow { font-size:11px; font-weight:800; letter-spacing:.14em; color:#BFD2FF; }
.tp-timeline { display:flex; align-items:center; justify-content:center; gap:18px; margin:18px 24px 0; padding:15px; border:1px solid var(--ent-border-soft); border-radius:11px; background:#fff; }
.tp-timeline span { color:var(--ent-muted); font-size:12px; } .tp-timeline b { margin-left:5px; color:var(--ent-text); }
.tp-timeline i { color:#9BABBF; font-style:normal; }
.tp-section, .tp-ability { margin:16px 24px 0; padding:20px; border:1px solid var(--ent-border-soft); border-radius:12px; background:#fff; }
.tp-block-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.tp-ready { padding:5px 10px; border-radius:999px; font-size:11px; font-weight:800; }
.tp-ready.yes { color:#15803D; background:#EAF8EF; } .tp-ready.no { color:#B45309; background:#FFF5E7; }
.tp-checks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.tp-check { display:flex; align-items:center; gap:10px; padding:12px; border-radius:9px; background:#F7F9FC; }
.tp-check>span { width:25px; height:25px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; font-weight:900; }
.tp-check.ok>span { color:#15803D; background:#DCF5E5; } .tp-check.no>span { color:#B45309; background:#FDEBCF; }
.tp-check b,.tp-check small { display:block; } .tp-check b { font-size:12px; } .tp-check small { margin-top:3px; color:var(--ent-muted); font-size:10px; }
.tp-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.tp-ability { margin-left:0; margin-right:0; }
.tp-phase-title { margin:-20px -20px 18px; padding:15px 20px; border-bottom:1px solid #DCE5F5; color:#173E86; background:#F2F6FD; font-size:19px; font-weight:800; letter-spacing:.04em; }
.tp-compare .tp-ability:first-child { margin-left:24px; } .tp-compare .tp-ability:last-child { margin-right:24px; }
.tp-metrics,.tp-deltas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.tp-metric { padding:12px; border-radius:9px; background:#F7F9FC; text-align:center; }
.tp-metric small,.tp-metric b { display:block; } .tp-metric small { color:var(--ent-muted); font-size:10px; } .tp-metric b { margin-top:5px; color:var(--ent-primary); font-size:18px; }
.tp-event-list { display:grid; gap:0; }
.tp-event { display:grid; grid-template-columns:125px 12px 1fr; gap:12px; min-height:68px; }
.tp-event time { padding-top:3px; color:#7A8798; font-size:10px; text-align:right; }
.tp-event>i { position:relative; border-left:2px solid #DCE5F3; }
.tp-event>i:before { content:""; position:absolute; left:-6px; top:4px; width:10px; height:10px; border-radius:50%; background:#315FC5; box-shadow:0 0 0 4px #EAF0FC; }
.tp-event>div { padding:0 0 16px; } .tp-event span { display:inline-block; margin-right:8px; padding:2px 6px; border-radius:5px; color:#2457B9; background:#EEF3FC; font-size:9px; }
.tp-event b,.tp-event small { display:block; } .tp-event b { margin-top:5px; color:#29384F; font-size:12px; } .tp-event small { margin-top:4px; color:#748096; font-size:10px; line-height:1.5; }
.tp-event-empty { padding:22px; color:#8490A1; text-align:center; }

/* 培训主管待办 */
.sup-todo { padding:21px 22px; border:1px solid var(--ent-border-soft); border-radius:13px; background:#fff; box-shadow:var(--ent-shadow); }
.sup-todo-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.sup-todo-head p { margin:5px 0 0; color:var(--ent-muted); font-size:12px; }
.sup-todo-count { padding:5px 9px; border-radius:999px; color:#B42318; background:#FFF0EF; font-size:11px; font-weight:800; }
.sup-todo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.sup-todo-item { display:grid; grid-template-columns:9px 1fr auto; align-items:center; gap:9px; padding:12px 13px; border:1px solid var(--ent-border-soft); border-radius:9px; background:#FAFBFD; }
.sup-todo-dot { width:8px; height:8px; border-radius:50%; background:#F59E0B; } .sup-todo-item.danger .sup-todo-dot { background:#EF4444; } .sup-todo-item.ready .sup-todo-dot { background:#16A34A; } .sup-todo-item.info .sup-todo-dot { background:#3B82F6; }
.sup-todo-item b,.sup-todo-item small { display:block; } .sup-todo-item b { font-size:12px; } .sup-todo-item small { margin-top:3px; color:var(--ent-muted); font-size:10px; }
.sup-todo-item a { color:var(--ent-primary); font-size:11px; font-weight:700; }

/* 入职跟踪：上岗后问题与补训闭环 */
.ob-issues { border-color:#DCE5F5 !important; background:#FBFCFF !important; }
.ob-issue-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:14px; }
.ob-issue-head h4 { margin:0; color:var(--ent-text); font-size:16px; }
.ob-issue-head p { margin:5px 0 0; color:var(--ent-muted); font-size:11px; }
.ob-issue-count { padding:5px 9px; border-radius:999px; color:#B45309; background:#FFF3E2; font-size:11px; font-weight:800; white-space:nowrap; }
.ob-issue-form { display:grid; grid-template-columns:150px 105px minmax(260px,1fr) auto; gap:9px; padding:13px; border:1px solid var(--ent-border-soft); border-radius:10px; background:#fff; }
.ob-issue-empty { margin-top:12px; padding:22px; border:1px dashed #CCD6E5; border-radius:9px; color:var(--ent-muted); text-align:center; font-size:12px; }
.ob-issue-list { display:grid; gap:9px; margin-top:12px; }
.ob-issue-item { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 15px; border:1px solid var(--ent-border-soft); border-left:4px solid #6B8BD4; border-radius:9px; background:#fff; }
.ob-issue-item.important { border-left-color:#F59E0B; } .ob-issue-item.redline { border-left-color:#EF4444; } .ob-issue-item.closed { opacity:.66; border-left-color:#16A34A; }
.ob-issue-main { min-width:0; } .ob-issue-main b,.ob-issue-main small { display:block; }
.ob-issue-main b { margin-top:7px; color:var(--ent-text); font-size:13px; }
.ob-issue-main small { margin-top:6px; color:var(--ent-muted); font-size:10px; }
.ob-issue-cat,.ob-issue-status { display:inline-block; margin-right:6px; padding:3px 7px; border-radius:999px; font-size:10px; font-weight:700; }
.ob-issue-cat { color:#315FC5; background:#EEF4FF; } .ob-issue-status { color:#5D6470; background:#EEF0F3; }
.ob-issue-actions { display:flex; gap:7px; flex:0 0 auto; }

/* 部门接收反馈 */
.ob-dept-feedback { border-color:#D9E6DF !important; background:#FBFDFB !important; }
.ob-df-form { display:grid; grid-template-columns:160px 175px minmax(220px,1fr); gap:9px; padding:13px; border:1px solid var(--ent-border-soft); border-radius:10px; background:#fff; }
.ob-df-form textarea { grid-column:1 / 3; }
.ob-df-check { display:flex; align-items:center; gap:7px; padding:0 10px; color:var(--ent-text); font-size:12px; }
.ob-df-list { display:grid; gap:10px; margin-top:12px; }
.ob-df-item { padding:15px; border:1px solid var(--ent-border-soft); border-radius:9px; background:#fff; }
.ob-df-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ob-df-top>div { display:flex; align-items:center; gap:8px; } .ob-df-top small { color:var(--ent-muted); font-size:10px; }
.ob-df-result,.ob-df-training { padding:4px 8px; border-radius:999px; font-size:10px; font-weight:800; }
.ob-df-result.qualified { color:#15803D; background:#EAF8EF; } .ob-df-result.observe { color:#B45309; background:#FFF4E5; } .ob-df-result.unqualified { color:#B42318; background:#FFF0EF; }
.ob-df-training { color:#B42318; background:#FFF0EF; } .ob-df-training.done { color:#15803D; background:#EAF8EF; } .ob-df-training.intervened { color:#1D4ED8; background:#EFF6FF; }
.ob-df-item p { margin:10px 0 0; color:var(--ent-text); font-size:12px; line-height:1.55; }
.ob-df-item>.btn { margin-top:12px; }

/* 培训效果报表 */
.te-report { padding:23px; border:1px solid var(--ent-border-soft); border-radius:14px; background:#fff; box-shadow:var(--ent-shadow); }
.te-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:16px; border-bottom:1px solid var(--ent-border-soft); }
.te-head p { margin:5px 0 0; color:var(--ent-muted); font-size:12px; }
.notify-btn { position:relative; border:0; background:transparent; padding:7px; line-height:1; }
.notify-count { position:absolute; top:-3px; right:-5px; min-width:17px; height:17px; padding:0 4px; border-radius:9px; background:#EF4444; color:#fff; font-size:9px; font-weight:800; line-height:17px; text-align:center; box-shadow:0 0 0 2px #fff; }
.notify-panel { display:none; position:absolute; z-index:1500; top:58px; right:74px; width:min(390px,calc(100vw - 24px)); max-height:70vh; overflow:hidden; background:#fff; border:1px solid var(--ent-border); border-radius:14px; box-shadow:0 18px 55px rgba(15,23,42,.2); }
.notify-panel.open { display:block; }
.notify-head { display:flex; align-items:center; justify-content:space-between; padding:15px 16px; border-bottom:1px solid var(--ent-border-soft); }
.notify-head div { display:flex; flex-direction:column; gap:3px; }.notify-head b { font-size:14px; }.notify-head small { color:var(--ent-muted); font-size:11px; }.notify-head button { border:0; background:#F1F5F9; width:27px; height:27px; border-radius:8px; cursor:pointer; }
.notify-list { max-height:calc(70vh - 60px); overflow:auto; padding:7px; }.notify-item { display:grid; grid-template-columns:8px 1fr auto; gap:10px; align-items:center; padding:11px 9px; border-radius:10px; color:inherit; text-decoration:none; }.notify-item:hover { background:#F8FAFC; }.notify-item i { width:7px; height:7px; border-radius:50%; background:#3B82F6; }.notify-item.warn i { background:#F59E0B; }.notify-item.danger i { background:#EF4444; }.notify-item div { display:flex; flex-direction:column; gap:4px; min-width:0; }.notify-item b { font-size:12px; }.notify-item small { color:var(--ent-muted); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.notify-item > span { color:var(--ent-primary); font-size:10px; font-weight:700; }.notify-empty { padding:32px 16px; text-align:center; color:var(--ent-muted); font-size:12px; }
.topbar-center { position:relative; }
.global-search-panel { display:none; position:absolute; z-index:1490; left:0; right:0; top:44px; max-height:68vh; overflow:auto; background:#fff; border:1px solid var(--ent-border); border-radius:13px; box-shadow:0 18px 55px rgba(15,23,42,.18); padding:7px; }
.global-search-panel.open { display:block; }.global-search-head { display:flex; align-items:center; justify-content:space-between; padding:8px 9px 10px; color:var(--ent-muted); font-size:10px; }.global-search-head b { color:var(--ent-text); font-size:12px; }
.global-search-item { width:100%; display:grid; grid-template-columns:58px 1fr auto; align-items:center; gap:10px; padding:10px 9px; border:0; border-radius:9px; background:#fff; text-align:left; cursor:pointer; }.global-search-item:hover,.global-search-item:focus { background:#F5F7FB; outline:none; }.global-search-item > span { justify-self:start; padding:3px 6px; border-radius:6px; background:#EEF3FF; color:var(--ent-primary); font-size:9px; font-weight:700; }.global-search-item div { display:flex; flex-direction:column; gap:3px; min-width:0; }.global-search-item b { font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.global-search-item small { color:var(--ent-muted); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.global-search-item em { color:var(--ent-primary); font-size:10px; font-style:normal; font-weight:700; }.global-search-empty { padding:28px 12px; text-align:center; color:var(--ent-muted); font-size:11px; }
.tk-map-progress { display:flex; flex-direction:column; gap:6px; min-width:150px; }
.tk-map-progress.empty { color:var(--ent-muted); font-size:11px; }
.tk-map-progress.empty a { color:var(--ent-primary); font-weight:700; }
.tk-map-item { display:grid; grid-template-columns:minmax(80px,1fr) 56px 32px; align-items:center; gap:6px; color:var(--ent-text); }
.tk-map-item span,.tk-map-item b,.tk-map-item small { display:block; min-width:0; }
.tk-map-item b { overflow:hidden; color:var(--ent-text); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.tk-map-item small { margin-top:2px; color:var(--ent-muted); font-size:9px; }
.tk-map-item i { height:5px; overflow:hidden; border-radius:999px; background:#E8EDF6; }
.tk-map-item i em { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#2563EB,#22C55E); }
.tk-map-item strong { color:var(--ent-primary); font-size:10px; text-align:right; }
.training-data-badge { position:absolute; z-index:8; top:7px; right:8px; padding:3px 7px; border:1px solid #F5D48A; border-radius:999px; background:#FFF8E7; color:#9A6700; font-size:9px; font-weight:700; line-height:1.2; }
.tp-map-recommend { display:grid; gap:8px; }.tp-map-rec { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border:1px solid var(--ent-border-soft); border-radius:9px; background:#FAFBFD; }.tp-map-rec div,.tp-map-rec b,.tp-map-rec small { display:block; }.tp-map-rec b { font-size:12px; }.tp-map-rec small { margin-top:3px; color:var(--ent-muted); font-size:10px; }.tp-map-empty { padding:12px; color:var(--ent-muted); text-align:center; }
.data-audit-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.data-audit-head h3,.data-audit-head p { margin:0; }.data-audit-head p { margin-top:5px; }.data-audit-list { display:grid; gap:6px; margin-top:14px; }.data-audit-item { display:flex; align-items:center; gap:9px; padding:9px 11px; border-radius:8px; background:#F8FAFC; font-size:11px; }.data-audit-item i { width:7px; height:7px; flex:0 0 auto; border-radius:50%; background:#F59E0B; }.data-audit-item.danger { background:#FFF4F2; color:#B42318; }.data-audit-item.danger i { background:#EF4444; }.data-audit-ok { margin-top:14px; padding:14px; border-radius:9px; background:#F0FDF4; color:#15803D; font-size:12px; font-weight:700; }
.backup-status { margin-top:16px; }.backup-status-ok,.backup-status-warn { display:flex; align-items:center; gap:11px; padding:12px 14px; border:1px solid #BBE3C7; border-radius:10px; background:#F0FDF4; }.backup-status-warn { border-color:#F5D48A; background:#FFF8E7; }.backup-status-ok>i,.backup-status-warn>i { display:grid; width:24px; height:24px; place-items:center; flex:0 0 auto; border-radius:50%; background:#16A34A; color:#fff; font-style:normal; font-weight:800; }.backup-status-warn>i { background:#F59E0B; }.backup-status-ok>div,.backup-status-warn>div { flex:1; }.backup-status b,.backup-status small { display:block; }.backup-status small { margin-top:3px; color:var(--ent-muted); font-size:10px; }.backup-status-error { padding:11px; border-radius:9px; background:#FFF4F2; color:#B42318; }
.tb-topbar,.jd-topbar,.dy-topbar,.pdd-topbar { position:relative; }
.te-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:17px; }
.te-metric { position:relative; overflow:hidden; padding:17px 18px; border:1px solid var(--ent-border-soft); border-radius:11px; background:#FAFBFD; }
.te-metric:before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:#C9D6EE; }
/* 2026-09-29 掌柜的：五彩左边条太花，统一一种浅蓝（原 red/purple/green/orange/cyan 各色全部收敛） */
.te-metric.red:before, .te-metric.purple:before, .te-metric.green:before,
.te-metric.orange:before, .te-metric.cyan:before, .te-metric.blue:before { background:#C9D6EE; }
.te-metric small,.te-metric b,.te-metric span { display:block; } .te-metric small { color:var(--ent-muted); font-size:11px; } .te-metric b { margin:7px 0 5px; color:var(--ent-text); font-size:23px; } .te-metric span { color:var(--ent-muted); font-size:10px; }
.te-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin-top:16px; }
.te-panel { padding:18px; border:1px solid var(--ent-border-soft); border-radius:11px; background:#FAFBFD; }
.te-panel h3 { margin:0 0 14px; color:var(--ent-text); font-size:14px; }
.te-table { display:grid; gap:0; overflow:hidden; border:1px solid var(--ent-border-soft); border-radius:8px; background:#fff; }
.te-tr { display:grid; grid-template-columns:minmax(100px,1fr) 48px 68px 58px 76px; align-items:center; gap:8px; padding:10px 11px; border-top:1px solid #EEF1F5; font-size:11px; }
.te-tr:first-child { border-top:0; } .te-th { color:var(--ent-muted); background:#F3F6FA; font-weight:700; }
.te-bars { display:grid; gap:12px; } .te-bar>div { display:flex; justify-content:space-between; margin-bottom:6px; font-size:11px; }
.te-bar>div b { color:var(--ent-muted); } .te-bar i { display:block; height:7px; overflow:hidden; border-radius:999px; background:#E8EDF5; } .te-bar em { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#315FC5,#6F91DC); }
.te-empty { padding:36px 15px; color:var(--ent-muted); text-align:center; font-size:12px; }

/* 错题与补训主页面切换 */
.wb-mode-bar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:7px; border:1px solid var(--ent-border-soft); border-radius:12px; background:#F3F6FA; }
.wb-mode-btn { display:flex; align-items:center; justify-content:center; gap:8px; min-height:48px; border:1px solid transparent; border-radius:9px; background:transparent; color:#5B6574; font-size:14px; font-weight:750; cursor:pointer; }
.wb-mode-btn span { min-width:23px; padding:3px 7px; border-radius:999px; background:#E2E7EF; font-size:10px; }
.wb-mode-btn.active { border-color:#D5E0F4; background:#fff; color:#2457B9; box-shadow:0 4px 12px rgba(32,63,116,.08); }
.wb-mode-btn.active span { color:#fff; background:#315FC5; }

/* 专项补训：执行路径与期限风险 */
.task-risk { display:inline-flex; align-items:center; padding:3px 8px; border-radius:999px; font-size:10px; font-weight:750; background:#EEF2F7; color:#647084; }
.task-risk.overdue,.task-risk.urgent { background:#FEECEB; color:#B42318; }
.task-risk.soon { background:#FFF3DF; color:#A15C00; }
.task-risk.done { background:#E9F7EE; color:#167744; }
.rt-plan { margin:0 0 18px; padding:16px; border:1px solid #DCE5F3; border-radius:12px; background:linear-gradient(135deg,#F5F8FF,#fff); }
.rt-plan-head { display:flex; align-items:baseline; gap:10px; margin-bottom:12px; }
.rt-plan-head b { color:#1D438A; font-size:14px; } .rt-plan-head span { color:#748096; font-size:11px; }
.rt-plan-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.rt-step { display:grid; grid-template-columns:30px 1fr; gap:9px; align-items:start; min-height:94px; padding:12px; border:1px solid #DEE5F0; border-radius:10px; background:#fff; text-align:left; cursor:pointer; }
.rt-step:hover { border-color:#8EACE4; box-shadow:0 6px 16px rgba(31,75,148,.09); transform:translateY(-1px); }
.rt-step i { display:grid; place-items:center; width:28px; height:28px; border-radius:8px; background:#315FC5; color:#fff; font-style:normal; font-weight:850; }
.rt-step span b,.rt-step span small { display:block; } .rt-step span b { color:#27364B; font-size:12px; } .rt-step span small { margin-top:5px; color:#6F7C90; font-size:10px; line-height:1.45; }
.rt-step em { grid-column:2; color:#315FC5; font-size:10px; font-style:normal; font-weight:700; }
.rt-acceptance { margin:0 0 18px; padding:16px; border:1px solid #DFE6F0; border-radius:12px; background:#fff; }
.rt-accept-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px; }
.rt-accept-head b,.rt-accept-head small { display:block; } .rt-accept-head b { color:#27364B; font-size:14px; } .rt-accept-head small { margin-top:4px; color:#778397; font-size:10px; }
.rt-accept-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.rt-accept-actions { display:flex; align-items:center; gap:12px; margin-top:10px; } .rt-accept-actions span { color:#748096; font-size:10px; }
.rt-auto-score { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
.rt-auto-score span { padding:9px 11px; border-radius:8px; background:#F3F7FD; color:#60728D; font-size:10px; } .rt-auto-score b { color:#2457B9; }
.rt-history { display:grid; gap:6px; margin-top:14px; padding-top:12px; border-top:1px solid #E7ECF3; }
.rt-history>b { color:#344052; font-size:11px; } .rt-history span { color:#68758A; font-size:10px; } .rt-history em { color:#B45309; font-style:normal; font-weight:700; }
.rt-accept-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.rt-accept-summary span { padding:11px; border-radius:9px; background:#F6F8FB; color:#677386; font-size:11px; } .rt-accept-summary b { display:block; margin-top:4px; color:#29384F; font-size:13px; }
.permission-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 18px; }
.permission-summary>div { padding:16px; border:1px solid #DEE5F0; border-radius:11px; background:#fff; }
.permission-summary b,.permission-summary span { display:block; } .permission-summary b { color:#244B91; font-size:13px; } .permission-summary span { margin-top:6px; color:#6F7C90; font-size:10px; line-height:1.5; }
.manager-scope-note { margin-bottom:14px; padding:12px 14px; border:1px solid #D9E5F6; border-radius:10px; background:#F3F7FD; color:#41618E; font-size:11px; line-height:1.6; }
.dept-manager-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:230px; overflow:auto; }
.dept-manager-list label { display:flex; align-items:center; gap:7px; padding:10px; border:1px solid #E1E7F0; border-radius:8px; background:#F8FAFD; cursor:pointer; }
.dept-manager-list label span { color:#344052; font-size:11px; font-weight:700; } .dept-manager-list label small { margin-left:auto; color:#8490A2; font-size:9px; }
.data-table-wrap .data-table { min-width:1280px; }
.data-table-wrap .data-table th { white-space:nowrap; background:#F7F9FC !important; }
.data-table-wrap .data-table td { padding-top:15px !important; padding-bottom:15px !important; vertical-align:top !important; }
.wm-board { display: grid !important; gap: 18px !important; }
.wm-card { padding: 20px !important; }
.wm-head { padding-bottom: 14px !important; margin-bottom: 16px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.wm-stats { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 10px !important; }
.wm-stat { padding: 14px !important; border: 1px solid var(--ent-border-soft) !important; border-radius: 10px !important; background: #F8FAFD !important; }
.wm-depts, .wm-reasons { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 12px !important; }

@media (max-width: 1180px) {
  .cockpit-body { grid-template-columns: minmax(260px,310px) 1fr !important; }
  .cockpit-right { grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .metrics-row { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 900px) {
  .rt-plan-grid { grid-template-columns:1fr; }
  .rt-accept-grid,.rt-accept-summary { grid-template-columns:1fr; }
  .rt-auto-score { grid-template-columns:1fr; }
  .permission-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cockpit-body, .exam-grid { grid-template-columns: 1fr !important; }
  .cockpit-left { position: static; }
  .cockpit-right { grid-column: auto; grid-template-columns: 1fr; }
  .map-tpl-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .map-stage-detail { grid-template-columns: 1fr !important; }
}
@media (max-width: 700px) {
  .cockpit-header, .cockpit-bottom, .map-tab-row { align-items: stretch !important; flex-direction: column !important; }
  .cockpit-stats { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .metrics-row, .exam-card-stats, .map-tpl-grid, .wm-stats, .wm-depts, .wm-reasons { grid-template-columns: 1fr !important; }
  .map-stu-row { align-items: flex-start !important; flex-direction: column !important; }
  .map-stu-right { width: 100%; flex-wrap: wrap; }
  .tk-hero, .tk-toolbar { align-items:stretch; flex-direction:column; }
  .tk-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tp-checks,.tp-compare,.sup-todo-grid { grid-template-columns:1fr; }
  .tp-compare .tp-ability { margin-left:24px !important; margin-right:24px !important; }
  .tp-timeline { align-items:flex-start; flex-direction:column; } .tp-timeline i { transform:rotate(90deg); }
  .ob-issue-form { grid-template-columns:1fr; }
  .ob-issue-item { align-items:flex-start; flex-direction:column; }
  .ob-df-form { grid-template-columns:1fr; } .ob-df-form textarea { grid-column:auto; }
  .te-metrics,.te-grid { grid-template-columns:1fr; }
  .te-head { align-items:flex-start; flex-direction:column; }
}

/* 智能体版：AI 先生成草稿，学员修改后再发送 */
.agent-draft-btn {
  min-width: 126px; min-height: 38px; padding: 8px 12px; border: 1px solid #9CB2E8;
  border-radius: 8px; background: #EEF4FF; color: #2457D6; font-size: 13px;
  font-weight: 700; cursor: pointer; white-space: nowrap; align-self: center;
}
.agent-draft-btn:hover { background: #E2EBFF; border-color: #6F8EDC; }
.agent-draft-btn:disabled { cursor: wait; opacity: .65; }
.agent-send { min-width: 150px; }

/* =====================================================================
   第三层：全站内容区统一骨架与剩余模块重排
   ===================================================================== */
.main.v4, #app.main {
  display: flex !important; flex-direction: column !important; gap: 20px !important;
}
.main.v4 > *, #app.main > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.main.v4 > .tab-bar, #app.main > .tab-bar { margin-bottom: 0 !important; }
.section-header {
  min-height: 54px; padding-bottom: 15px !important; margin-bottom: 18px !important;
  border-bottom: 1px solid var(--ent-border-soft) !important;
}
.section-title { line-height: 1.25 !important; }
.section-subtitle, .hero-sub { margin-top: 5px !important; color: var(--ent-muted) !important; }
.section-block, .sec-block {
  padding: 22px !important; border: 1px solid var(--ent-border-soft) !important;
  border-radius: 13px !important; background: #fff !important; box-shadow: var(--ent-shadow) !important;
}
.sec-head { padding-bottom: 14px !important; margin-bottom: 16px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.empty, .empty-state, .kb-doc-empty {
  padding: 42px 24px !important; border: 1px dashed #D7DEEA !important;
  border-radius: 11px !important; background: #FAFBFD !important; color: var(--ent-muted) !important; text-align: center;
}

/* 类目通用知识库：工具区与卡片改为舒展双列 */
.kb-search-wrap { flex: 1; max-width: 380px; }
.kb-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 18px !important; }
.kb-card { min-height: 245px; display: flex; flex-direction: column; padding: 22px !important; }
.kb-card-header { align-items: flex-start !important; padding-bottom: 15px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.kb-card-icon { width: 42px !important; height: 42px !important; display: grid !important; place-items: center; border-radius: 10px !important; }
.kb-card-name { font-size: 17px !important; }
.kb-card-stats { display: grid !important; grid-template-columns: repeat(4,1fr) !important; gap: 8px !important; margin: 16px 0 !important; }
.kb-stat { padding: 12px 8px !important; border-radius: 8px !important; background: #F7F9FC !important; text-align: center; }
.kb-card-actions { display: flex; gap: 8px !important; margin-top: auto !important; }

/* 个人能力汇报：人员卡片双列，概览与风险区分层 */
.rp-hero {
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  padding: 26px 28px !important; border: 1px solid #DCE5F5 !important; border-radius: 15px !important;
  background: linear-gradient(120deg,#fff 0%,#F4F7FC 100%) !important; box-shadow: var(--ent-shadow) !important;
}
.rp-hero-text h2 { font-size: 25px !important; color: var(--ent-text) !important; }
.rp-metrics-row { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 14px !important; }
.rp-metric-card { padding: 18px 20px !important; border: 1px solid var(--ent-border-soft) !important; border-radius: 12px !important; background: #fff !important; box-shadow: var(--ent-shadow) !important; }
.rp-search-bar { padding: 16px 18px !important; border: 1px solid var(--ent-border-soft) !important; border-radius: 12px !important; background: #fff !important; }
.rp-grid, .rp-list { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 16px !important; }
.rp-person-card { min-height: 235px; padding: 20px !important; border: 1px solid var(--ent-border-soft) !important; border-radius: 12px !important; background: #fff !important; box-shadow: var(--ent-shadow) !important; }
.rp-card-head { padding-bottom: 14px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.rp-card-metrics { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 8px !important; margin: 15px 0 !important; }
.rp-card-col { padding: 11px !important; border-radius: 8px !important; background: #F7F9FC !important; text-align: center; }
.rp-risk-cols { gap: 16px !important; }
.rp-risk-col { padding: 20px !important; border-radius: 12px !important; border: 1px solid var(--ent-border-soft) !important; background: #fff !important; }

/* 场景库：从超长单列表改成双列场景目录 */
.sl-card-wrap { padding: 22px !important; }
.sl-body { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 18px !important; }
.sl-list-head { padding-bottom: 14px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.sl-scene-list { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 12px !important; }
.sl-scene-row { min-height: 112px; padding: 16px !important; border: 1px solid var(--ent-border-soft) !important; border-radius: 10px !important; background: #fff !important; }
.sl-scene-row:hover { border-color: #BFCBDD !important; box-shadow: 0 5px 14px rgba(18,38,70,.06) !important; }
.sl-scene-icon { width: 42px !important; height: 42px !important; display: grid; place-items: center; border-radius: 10px; background: var(--ent-primary-soft); }
.sl-scene-name { font-size: 15px !important; color: var(--ent-text) !important; }
.sl-subs { padding: 14px !important; border-radius: 10px !important; background: #F8FAFD !important; }
.sl-info-block { padding: 18px !important; border-radius: 11px !important; background: #F7F9FC !important; border: 1px solid var(--ent-border-soft) !important; }

/* 聊天记录与质检案例：录入表单、档案、案例分区 */
.form-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 14px 18px !important; }
.form-grid .full, .form-grid .form-row:has(textarea) { grid-column: 1 / -1; }
.toolbar { display: flex !important; align-items: center !important; gap: 10px !important; flex-wrap: wrap; padding: 14px 16px !important; border-radius: 10px !important; background: #F7F9FC !important; border: 1px solid var(--ent-border-soft) !important; }
.cards { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 16px !important; }
.case-card { min-height: 270px; padding: 20px !important; display: flex; flex-direction: column; }
.case-card .card-head { padding-bottom: 13px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.case-issue, .case-excerpt { padding: 12px !important; border-radius: 9px !important; background: #F7F9FC !important; }
.tag-row { display: flex; flex-wrap: wrap; gap: 6px !important; }
.case-card .btn-row { margin-top: auto !important; padding-top: 15px !important; border-top: 1px solid var(--ent-border-soft) !important; }
.kb-upload-zone { min-height: 150px; display: grid; place-items: center; border: 1px dashed #B9C6DA !important; border-radius: 11px !important; background: #FAFBFD !important; }

/* 账号权限与 AI 设置：避免长表单连续堆叠 */
.us-add-card, .oplog-card, .ai-card { padding: 22px !important; }
.ai-config-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 18px !important; }
.ai-field { padding: 15px !important; border: 1px solid var(--ent-border-soft) !important; border-radius: 10px !important; background: #F8FAFD !important; }
.ai-card-title { padding-bottom: 14px !important; margin-bottom: 18px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.ai-stats-grid { gap: 14px !important; }
.ai-stat-card { border: 1px solid var(--ent-border-soft) !important; border-top: 1px solid var(--ent-border-soft) !important; box-shadow: var(--ent-shadow) !important; }
.ai-log-wrap, .oplog-table { border: 1px solid var(--ent-border) !important; border-radius: 10px !important; overflow: auto !important; }

/* 错题与补训：筛选、指标、明细分成三个清晰区块 */
.wb-hero { padding-bottom: 16px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.wb-metrics { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
.wb-section-head { display: flex !important; align-items: center !important; justify-content: space-between !important; min-height: 48px; padding: 0 0 14px !important; border-bottom: 1px solid var(--ent-border-soft) !important; }
.wb-empty { min-height: 150px; display: grid; place-items: center; }

/* 统一所有数据列表与信息行 */
.list-group { display: grid !important; gap: 8px !important; }
.list-item { padding: 14px 16px !important; border: 1px solid var(--ent-border-soft) !important; border-radius: 9px !important; background: #fff !important; }
.list-item:hover { background: #FAFBFD !important; border-color: #C9D4E4 !important; }

@media (max-width: 1050px) {
  .kb-grid, .rp-grid, .rp-list, .sl-scene-list, .cards { grid-template-columns: 1fr !important; }
  .rp-metrics-row, .wb-metrics { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
.pid-input { width: 78px; }
.us-reg .badge { margin-right: 2px; }

@media (max-width: 700px) {
  .form-grid, .ai-config-grid { grid-template-columns: 1fr !important; }
  .form-grid .full, .form-grid .form-row:has(textarea) { grid-column: auto; }
  .rp-metrics-row, .wb-metrics { grid-template-columns: 1fr !important; }
  .kb-card-stats, .rp-card-metrics { grid-template-columns: repeat(2,1fr) !important; }
}

/* 账号批量导入 */
.us-import-actions { display: flex; align-items: center; gap: 10px; }
.us-import-actions label.btn { cursor: pointer; }
.us-import-hint { margin: -4px 0 14px; color: var(--ent-muted); font-size: 12px; }

/* 全局汇总卡：数字、图标、标签严格水平居中，避免不同位数造成视觉偏移 */
.metrics-row .metric-card,
.wb-metrics .wb-metric,
.dash-metrics .dash-metric,
.rp-metrics-row .rp-metric-card,
.cockpit-stats .stat-card,
.ai-stats-grid .ai-stat-card,
.stat-cards .stat-card { text-align:center !important; align-items:center !important; justify-content:center !important; }
.metrics-row .metric-card > *,
.wb-metrics .wb-metric > *,
.dash-metrics .dash-metric > *,
.rp-metrics-row .rp-metric-card > *,
.cockpit-stats .stat-card > *,
.ai-stats-grid .ai-stat-card > *,
.stat-cards .stat-card > * { margin-left:auto !important; margin-right:auto !important; text-align:center !important; }
.metric-value,.wb-metric-num,.dash-metric-value,.rp-metric-value,.stat-value,.stat-num { width:100%; text-align:center !important; font-variant-numeric:tabular-nums; }

/* 弹窗不在 #app 内，单独覆盖旧模块写死的小字号 */
.modal-card :where(p,div,span,a,label,button,input,select,textarea,td,th),
.scn-lib :where(p,div,span,a,label,button,input,select,textarea) { font-size:16px !important; }
.modal-card small,.modal-card .text-sm,.modal-card .text-muted,.modal-card .muted,
.scn-lib small,.scn-lib .scn-lib-sub,.scn-lib .scn-lib-note,.scn-lib .scn-big-desc,
.scn-lib .scn-sub-lv,.scn-lib .scn-sub-bg,.scn-lib .scn-sub-goal { font-size:14.5px !important; }
.scn-lib .scn-lib-title { font-size:22px !important; }
.scn-lib .scn-big-label { font-size:18px !important; }
.scn-lib .scn-sub-name { font-size:17px !important; }
.scn-lib .scn-chip { font-size:15px !important; padding:7px 13px !important; }

/* 左侧导航：导航内容独立滚动，品牌区和账号区始终占据各自空间 */
.sidebar {
  height: 100vh !important;
  max-height: 100vh !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}
.sidebar .brand { flex: 0 0 auto !important; }
#main-nav {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.45) transparent;
  padding: 4px 0 12px !important;
}
/* 滚动条必须看得见：原来 6px、26% 透明度在深色侧栏上几乎不可见，
   用户不知道下面还有导航项，会误以为模块不存在（比「能不能滚」更要命） */
#main-nav::-webkit-scrollbar { width: 9px; }
#main-nav::-webkit-scrollbar-track { background: rgba(255,255,255,.06); border-radius: 6px; }
#main-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.45); border-radius: 6px; }
#main-nav::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.68); }
.sidebar .nav-section { min-width: 0; }
.sidebar .nav-item {
  min-width: 0 !important;
  line-height: 1.35 !important;
  gap: 9px !important;
  overflow: hidden;
}
.sidebar .nav-item .nav-badge,
.sidebar .nav-item .badge {
  flex: 0 0 auto !important;
  margin-left: auto !important;
  white-space: nowrap !important;
}
.sidebar .user-box {
  flex: 0 0 auto !important;
  margin-top: 0 !important;
  position: relative !important;
  z-index: 4;
  background: var(--ent-sidebar) !important;
  border-top: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 -10px 20px rgba(5,15,35,.2);
}
/* 导航项紧凑化：18 项原本需要 1015px，1440×900 及以下放不下，会把「人事管理」
   整组推到滚动区外（用户看不到入口就以为模块不存在）。默认折叠「培训资源」后
   剩 12 项 + 4 个分组标题，再按屏幕高度压缩行高，保证 12 项与四个分组标题都落在首屏。 */
@media (max-height: 960px) {
  .sidebar .nav-item { min-height: 38px !important; margin-top: 1px !important; margin-bottom: 1px !important; }
  .sidebar .ns-label { padding: 14px 18px 6px !important; }
}
@media (max-height: 800px) {
  .sidebar .brand { min-height: 60px !important; padding: 10px 16px !important; }
  .sidebar .nav-item { min-height: 34px !important; padding-top: 6px !important; padding-bottom: 6px !important; }
  .sidebar .ns-label { padding: 10px 18px 4px !important; }
  .sidebar .user-box { padding-top: 9px !important; padding-bottom: 9px !important; }
}


/* =========================================================
 * 档案页设计语言全局化（2026-09-29 掌柜的：「很喜欢完整培训档案的排班样子 字体 全局改成类似的」）
 * 提取自新人完整档案 tp-*：浅蓝标题条 + 灰蓝指标块 + 白卡灰蓝底。
 * 只动视觉层（v4 页面），不碰任何业务布局结构。
 * 2026-09-29 掌柜的圈定：培训总览 / 错题与补训 / 人事管理·培训管理 三页恢复上一版样子，
 * 用 main 元素上的 data-route / data-pagetab 标记排除（main.js route() 打点）。
 * ========================================================= */

/* 1) 卡片内首行标题 → 浅蓝标题条（通到卡片左右边，同 tp-phase-title） */
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > .section-title-row,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > h3,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > .section-title,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > .card-title,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .section-block > .sec-head,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .content-section > h3 {
  margin: -22px -22px 16px !important;
  padding: 12px 18px !important;
  background: #F2F6FD !important;
  border-bottom: 1px solid #DCE5F5 !important;
  border-radius: var(--ent-radius) var(--ent-radius) 0 0;
}
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > .section-title-row h3,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > h3,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > .section-title,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > .card-title,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .section-block > .sec-head h3,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .content-section > h3 {
  margin: 0 !important; color: #173E86 !important;
  font-size: 17px !important; font-weight: 750 !important; letter-spacing: .03em;
}
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > .section-title-row .lnk,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .card > .section-title-row a { font-size: 13px !important; }

/* 2) 指标块 → 灰蓝瓷砖（同 tp-metric）：去边框去阴影，数字主蓝 */
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .metric-card,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .wb-metrics .wb-metric,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .dash-metrics .dash-metric,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .rp-metrics-row .rp-metric-card,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .cockpit-stats .stat-card,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .ai-stats-grid .ai-stat-card,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .stat-cards .stat-card {
  background: #F7F9FC !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 10px !important;
}
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .metric-card > b,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .metric-value,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .wb-metric-num,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .dash-metric-value,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .rp-metric-value,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .stat-value,
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .stat-num { color: var(--ent-primary) !important; }

/* 3) 数据表头 → 浅蓝调（同档案页表格气质） */
.main.v4:not([data-route="dashboard"]):not([data-route="wrong"]):not([data-pagetab="training"]) .data-table thead th {
  background: #F7F9FC !important;
  color: #3A4A63 !important;
  border-bottom: 1px solid #DCE5F5 !important;
}

/* =========================================================
 * 页面降噪（2026-09-29 掌柜的：「画面太花花了 看起来还比较乱」）
 * 只收颜色不改布局：条形图一种蓝、统计卡去彩条去彩点、数字不再染色。
 * ========================================================= */

/* 培训总览 条形图：统一一种蓝（原 red/orange/green 渐变条与彩色数值全部收敛） */
.dash-bar-blue { background: linear-gradient(90deg, #7D9BD6, #A8BEE4) !important; }
.dash-bar-red, .dash-bar-orange, .dash-bar-green { background: linear-gradient(90deg, #7D9BD6, #A8BEE4) !important; }
.dash-bar-val, .bar-val-red, .bar-val-orange, .bar-val-green { color: #475467 !important; }

/* 培训跟踪 顶部统计卡：去掉品牌渐变左竖条，数字回归深色（原彩点 emoji 一并去掉） */
.tk-summary .stat-card::before { content: none !important; }
.tk-summary .stat-card .stat-value { color: #173E86 !important; }
.tk-summary .stat-card .stat-icon { display: none !important; }

/* 结业评分表：数字格隐藏上下箭头（spinner 挤压数字导致「10 看不全」），格内居中 */
.tsv-wrap input[type=number]::-webkit-outer-spin-button,
.tsv-wrap input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tsv-wrap input[type=number] { -moz-appearance: textfield; appearance: textfield; }
