/* ============================================================
   科德大陆 · 符文试炼 —— 运维页 + 我的班级页样式
   （players.html「玩家运维」· class.html「我的班级」✓）
   ⚠️ 本文件**服务这两页**（开号页见 admin.css，补通页见 skip.css）
      两页共用的是 **玩家卡片**（`.pcard*`）与 `.players` 列表 ——
      班级成员也是"一个人一张卡"，与其复制一份到 class.css（迟早跑偏 ✗），
      不如共用一份 ✓（与 admin-common.css 的取舍一致 ✓）
   共用的提示 / 选项行 / 结果摘要 / 单列三段布局 / 可折叠卡片 → admin-common.css
   页面外壳 .app / .topbar / .panel / .actions / .chip → style.css

   加载顺序（硬约束）：
     vendor/bootstrap.min.css → theme.css → style.css → admin-common.css → players.css

   运维页结构：**单列三张卡**（不用开号页那个 .admin 双栏 ✗）
     ① 管理身份   —— <details> 可折叠（未鉴权自动展开，见 players.js）
     ② 查找玩家   —— 关键词 + 查找
     ③ 查询结果   —— 撑满剩余高度；列表内滚；审计说明压底 ⇐ 只有这卡吃高度 ✓
   班级页结构（/class.html，2026-09-20 拆出 ✓）：
     ① 管理身份（同上）② 我的班级 —— **主内容** ⇒ 也吃剩余高度 ✓（见文件末尾）
   ============================================================ */

/* ---------------- 玩家卡片列表 ----------------
   本卡（③）里是**自身滚动**的滚动区，卡片之间留间距 */

/* 摘要与列表之间留距离（.summary 自身没有下边距） */
.console #list { margin-top: 10px; }

.players {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.players--empty {
  display: block;
  font-size: 12px;
  color: var(--text-dim);
  line-height: 1.9;
}

.pcard {
  padding: 12px;
  background: var(--bg-panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
}

.pcard__head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.pcard__name { font-weight: 600; }
.pcard__phone { font-family: var(--mono); font-size: 12px; color: var(--text-dim); }

.pcard__meta {
  margin-top: 6px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text-dim);
}

.pcard__ops {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
  align-items: center;
}

/* 尺寸 / 边框 / 焦点态由 Bootstrap .form-control 提供（同 .options input） */
.pcard__ops input,
.confirm__row input {
  width: 200px;
  padding: 5px 8px;
  background-color: var(--bg-panel-2);
  font-family: var(--mono);
  font-size: 12px;
}
.pcard__ops input:focus,
.confirm__row input:focus { background-color: var(--bg-panel-2); }

/* 危险操作确认区的外观（.confirm / .confirm__row）在 admin-common.css ——
   补通页也要用它 ✓ 这里只补本页输入框的宽度 */
.confirm__row input { width: 180px; }

/* 操作结果 */
.opresult {
  margin-top: 10px;
  padding: 10px;
  font-size: 12px;
  line-height: 1.9;
  background: rgba(var(--accent-rgb), .08);
  border: 1px solid rgba(var(--accent-rgb), .3);
  border-radius: 8px;
}
/* 新密码：页面刷新后就看不到了，所以要显眼 */
.opresult .pw {
  font-family: var(--mono);
  font-size: 16px;
  letter-spacing: 2px;
  color: var(--accent);
}
.opresult .warn { color: var(--text-dim); }
.opresult .bad { color: var(--danger); }

/* 已删除的卡片：**留在列表里**（上面那段"OJ 上仍留着一个号"的提示要看得到），
   但灰掉、虚线描边，并且两个操作入口已被移除 */
.pcard--gone {
  opacity: .75;
  border-style: dashed;
  border-color: var(--danger);
}
.pcard--gone .pcard__name { text-decoration: line-through; }

/* 卡片里的折叠区（换绑 OJ 账号）—— <details> 自带折叠，无需额外 JS */
.pcard__more { margin-top: 10px; }
.pcard__more > summary {
  cursor: pointer;
  font-size: 12px;
  color: var(--text-dim);
}
.pcard__more[open] > summary { color: var(--accent); }
.pcard__more .hint { margin: 8px 0; }

.pcard__flag {
  padding: 1px 6px;
  font-size: 11px;
  color: var(--danger);
  border: 1px solid var(--danger);
  border-radius: 4px;
}

/* ---------------- 班级页（/class.html）：班级卡**吃剩余高度** ----------------
   ⚠️ 在运维页里班级卡是"第 4 张折叠卡"⇒ 不参与高度分配 ✓；
      拆成独立页后它变成**主内容** ⇒ 让它像运维页的结果卡那样撑满，
      成员列表在卡内自滚（`.players` 已自带 `flex:1 + overflow-y` ✓，不用重复写）
   链路：details.panel--grow（flex:1 ✓ admin-common.css）
        → .disclosure__body（本规则 ⇒ 接着长 ✓）
        → #members.players（自滚 ✓） */
.console > .panel--grow > .disclosure__body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
