/*
 * 名单状态条。名单版本原先是一个独立菜单，但它既不是一件要做的事，
 * 也不是一个要反复看的列表 —— 它是「这份名单现在能不能被计划用」这个
 * 状态，所以压成名单页顶部一条，确认动作就在它右边。
 */
.roster-bar {
  display: flex; align-items: center; gap: 13px;
  margin-bottom: 16px; padding: 14px 16px; border-left: 3px solid #2d8cf0;
}
.roster-bar.is-wait { border-left-color: #ff9900; background: #fffdf7; }
.roster-bar.is-none { border-left-color: #b2b7c3; }
.roster-bar .rb-icon {
  display: grid; place-items: center; width: 38px; height: 38px; flex: none;
  border-radius: 50%; color: #2d8cf0; background: #eaf5ff; font-size: 20px;
}
.roster-bar.is-wait .rb-icon { color: #ff9900; background: #fff4e6; }
.roster-bar.is-none .rb-icon { color: #808695; background: #f2f3f5; }
.roster-bar .rb-main { min-width: 0; }
.roster-bar .rb-name { display: flex; align-items: center; gap: 8px; color: #17233d; font-weight: 500; }
.roster-bar .rb-sub { margin-top: 3px; color: #808695; font-size: 12px; }
.roster-bar .rb-acts { display: flex; align-items: center; gap: 9px; margin-left: auto; flex: none; }
.roster-bar .rb-acts .ivu-btn { height: 32px; }
.notice .promote-preview { width: 100%; margin: 10px 0 6px; }
.notice .promote-preview th { color: #808695; font-weight: 400; }
.pane-note { color: #808695; font-size: 12px; }
.flow-notice { margin-bottom: 12px; }

/* 名单默认按班级小方块铺开，一眼看到本班人数和有没有筛查计划 */
.class-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(176px, 1fr));
  gap: 12px;
}
.class-card {
  display: flex; flex-direction: column; align-items: flex-start;
  min-height: 176px; padding: 14px 14px 12px; text-align: left;
  border: 1px solid #e8eaec; border-radius: 6px; background: #fff;
  cursor: pointer;
}
.class-card:hover { border-color: #2d8cf0; box-shadow: 0 0 0 1px #2d8cf0 inset; }
.class-card.is-live { border-color: #8ee0b0; background: #f6fff9; }
.class-card.is-empty { background: #fcfcfd; }
.class-card .cc-grade { color: #808695; font-size: 12px; }
.class-card .cc-name { margin-top: 2px; color: #17233d; font-size: 20px; font-weight: 600; line-height: 1.2; }
.class-card .cc-meta { margin-top: 6px; color: #808695; font-size: 12px; }
.class-card .cc-plan {
  display: flex; flex-direction: column; gap: 4px;
  width: 100%; margin-top: auto; padding-top: 10px;
  border-top: 1px dashed #eef1f5;
}
.class-card .cc-plan b {
  color: #17233d; font-size: 12px; font-weight: 600; line-height: 1.45;
  overflow: hidden; text-overflow: ellipsis;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.class-card .cc-plan small { color: #b2b7c3; font-size: 12px; }
.class-card .cc-plan.is-empty small { margin-top: 4px; }
.filter-bar #cls-kw { flex: 1; min-width: 200px; }

/* 筛查协作 · 现场进度：每个检查点一行进度 */
.cp-row {
  display: grid; grid-template-columns: 132px minmax(0, 1fr) 108px;
  gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid #f0f0f0;
}
.cp-row:last-child { border-bottom: 0; }
.cp-row .cp-name { color: #17233d; font-weight: 500; }
.cp-row .cp-sub { margin-top: 2px; color: #b2b7c3; font-size: 12px; }
.cp-bar { height: 8px; border-radius: 4px; background: #eef1f5; overflow: hidden; }
.cp-fill { height: 100%; border-radius: 4px; background: #2d8cf0; }
.cp-row .cp-n { text-align: right; color: #515a6e; font-size: 13px; }
.cp-row .cp-n b { color: #17233d; font-weight: 600; }
.collab-sec { margin-top: 22px; }
.collab-sec:first-child { margin-top: 0; }
.collab-sec > h3 {
  position: relative; margin: 0 0 12px; padding-left: 10px;
  color: #17233d; font-size: 14px; font-weight: 500;
}
.collab-sec > h3:before {
  content: ""; position: absolute; top: 3px; bottom: 3px; left: 0;
  width: 3px; border-radius: 2px; background: #2d8cf0;
}
.collab-sec > h3 small { margin-left: 8px; color: #b2b7c3; font-size: 12px; font-weight: 400; }

/* 变更记录抽屉：版本历史与导入记录合并在一处 */
.log-sec { margin-top: 20px; }
.log-sec:first-child { margin-top: 0; }
.log-sec > h3 { margin: 0 0 10px; color: #17233d; font-size: 14px; font-weight: 500; }

/* 表格内的主次两行文字，与医院端 resource.css 保持同一套写法 */
.r-name { color: #17233d; font-weight: 500; }
.r-sub { margin-top: 3px; color: #b2b7c3; font-size: 12px; }
.row-acts { display: flex; flex-wrap: wrap; gap: 4px 10px; }
.plain-action.bad { color: #ed4014; }
.plain-action.bad:hover { border-color: #ed4014; color: #ed4014; }
.filter-bar #stu-kw { flex: 1; min-width: 200px; }
.qr-toolbar .fh-select { width: 160px; height: 32px; }
.qr-board {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 8px;
}
.qr-card {
  padding: 12px 10px 14px; border: 1px solid #e8eaec; border-radius: 4px;
  background: #fff; text-align: center;
}
.qr-card svg { display: block; width: 112px; height: 112px; margin: 0 auto 8px; }
.qr-card b { display: block; color: #17233d; font-weight: 600; }
.qr-card small { display: block; margin-top: 3px; color: #808695; font-size: 12px; }
.preview-banner {
  margin-bottom: 14px; padding: 10px 14px; border: 1px solid #d9ecff;
  border-radius: 4px; background: #f7fbff; color: #515a6e; font-size: 13px;
}

/*
 * 学生档案列表。详情是独立页面（five-health-student-archive.html），
 * 它的样式在 archive.css，这里只管列表这一层。
 */
.filter-bar .check-line {
  display: inline-flex; align-items: center; gap: 6px;
  color: #515a6e; font-size: 13px; cursor: pointer; user-select: none;
}
.filter-bar .check-line input { width: 14px; height: 14px; margin: 0; accent-color: #2d8cf0; }
.filter-bar #arc-kw { flex: 1; min-width: 200px; }

/*
 * 档案列表按单行排。原先每一格都压了一行小字（姓名+档案号、日期+来源+状态、
 * 班级+学号），一屏十二行全是两层文字，谁都不比谁显眼，扫起来很费劲。
 * 现在只有姓名那一格分主次，其余同格信息横排：主值正常色，附注小一号弱色。
 */
#arc-list .plan-table td { height: 44px; }
#arc-list .r-sub { display: inline; margin-left: 8px; color: #b2b7c3; font-size: 12px; }
#arc-list .arc-name { color: #17233d; font-size: 13px; font-weight: 600; }
#arc-list .arc-date { font-variant-numeric: tabular-nums; }
#arc-list .arc-last .tag, #arc-list .arc-last .ar-kind { margin-left: 8px; }
#arc-list .arc-follow .arc-items { margin-left: 8px; color: #808695; font-size: 12px; }
/* 当年在籍：升级转班就变，不是档案的主信息，整格弱色 */
#arc-list .r-enroll { color: #808695; }
#arc-list .arc-tip { margin: 4px 0 0; color: #808695; font-size: 12px; line-height: 20px; }
#arc-list .arc-tip b { color: #515a6e; }
#arc-list .ar-kind {
  padding: 1px 6px; border-radius: 2px;
  color: #9a66e4; background: #f5f0fd; font-size: 12px;
}
@media print {
  .app-top, .side, .page-head, .qr-toolbar, .preview-banner, .head-actions { display: none !important; }
  .shell { display: block; }
  .main { padding: 0; }
  .qr-board { grid-template-columns: repeat(4, 1fr); }
  .qr-card { break-inside: avoid; }
}
