* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
  background: #f0f2f5;
  color: #303133;
}

/* 顶部导航 */
.topbar {
  height: 56px;
  background: #fff;
  border-bottom: 1px solid #e6e6e6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.topbar-left { display: flex; align-items: center; gap: 28px; }
.logo {
  height: 38px;
  width: auto;
  display: block;
  flex-shrink: 0;
}
.menu { display: flex; gap: 8px; }
.menu-item {
  font-size: 15px; color: #303133; cursor: pointer;
  padding: 6px 16px; border-radius: 16px;
  text-decoration: none;            /* 去掉链接下划线 */
  transition: background .15s, color .15s;
}
.menu-item:hover { color: #409eff; background: #f0f6ff; }
/* 选中项：胶囊底色 + 主题色文字 */
.menu-item.active {
  color: #409eff; background: #ecf5ff; font-weight: 600;
}
.topbar-right { display: flex; align-items: center; gap: 18px; }
.sys-title { font-size: 20px; font-weight: 700; letter-spacing: 1px; }
.bell { font-size: 18px; color: #606266; cursor: pointer; }
.user { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.avatar {
  width: 30px; height: 30px; border-radius: 50%;
  background: #409eff; color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 13px;
}

/* 主体 */
.container { padding: 18px; }
.panel {
  background: #fff; border-radius: 6px; padding: 18px 20px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.panel-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.panel-header h2 { margin: 0; font-size: 20px; }
.header-actions { display: flex; align-items: center; gap: 10px; }
/* Element Plus 给相邻按钮自带 margin-left，会让间距不均，统一交给 flex gap 控制 */
.header-actions .el-button + .el-button { margin-left: 0; }
.toolbar { margin-bottom: 14px; }
.muted { color: #909399; }

/* 台账表格：原生表格，仿 Excel 样式 */
.table-wrap { overflow-x: auto; }
.ledger {
  border-collapse: collapse;
  width: max-content;
  font-size: 13px;
  table-layout: fixed;
}
.ledger th, .ledger td {
  border: 1px solid #8c8c8c;
  padding: 6px 8px;
  word-break: break-all;
  vertical-align: middle;
}
.ledger thead th {
  background: rgb(245, 247, 250);
  color: #303133;
  font-weight: 700;
  font-size: 12px;
  text-align: center;
  white-space: nowrap;
  padding: 5px 8px;
  border-color: #8c8c8c;
}
.ledger tbody tr:hover td { background: #f5f7fa; }
/* 过滤行 */
.ledger .filter-row th { background: #fff; padding: 3px 4px; }
.ledger .filter-row .flt {
  width: 100%; box-sizing: border-box;
  border: 1px solid #dcdfe6; border-radius: 4px;
  padding: 3px 5px; font-size: 12px; color: #303133; outline: none;
}
.ledger .filter-row .flt:focus { border-color: #409eff; }
/* 备注可编辑 */
.ledger td.editable { cursor: pointer; }
.ledger td.editable:hover { background: #ecf5ff; }
.ledger .inline-edit {
  width: 100%; box-sizing: border-box;
  border: 1px solid #409eff; border-radius: 4px;
  padding: 4px 6px; font-size: 13px; color: #303133; outline: none;
  font-family: inherit;      /* textarea 默认等宽字体，改为与表格一致 */
  line-height: 1.5;
  resize: vertical;          /* 允许纵向拉高 */
  min-height: 58px;
  display: block;
  text-align: left;          /* 数值列单元格居右，输入时统一左对齐 */
}
.ledger .filter-row .el-input__wrapper { padding: 0 6px; }
.ledger .tc { text-align: center; }
/* 序号列展开按钮 */
.ledger .idx-cell { white-space: nowrap; }
.expand-btn {
  display: inline-block; cursor: pointer; color: #409eff;
  font-size: 11px; margin-right: 4px; user-select: none;
}
.expand-btn:hover { color: #66b1ff; }
.idx-num { color: #303133; }
/* 序号列内容：删除 · 展开 · 序号 */
.ledger .idx-wrap {
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
/* 展开明细子表：列宽与主表逐列对齐 */
.ledger .detail-row > td.detail-cell { background: #f0f6ff; padding: 0; }
.sub-ledger {
  border-collapse: collapse; table-layout: fixed; width: max-content;
  font-size: 13px; background: #fff;
}
.sub-ledger th, .sub-ledger td {
  border: 1px solid #c6d8f0; padding: 6px 8px; vertical-align: middle;
  word-break: break-all;
}
.sub-ledger thead th {
  background: #dbeafe; color: #303133; font-weight: 700; white-space: nowrap;
  text-align: center;
}
.sub-ledger .tc { text-align: center; }
.sub-ledger .tr { text-align: right; }
/* AI大模型：厂家、模型名分两行显示 */
.sub-ledger .model-vendor { font-weight: 600; line-height: 1.4; }
.sub-ledger .model-name { font-size: 12px; color: #909399; line-height: 1.4; }
/* 占位列：透明无边框，用于让子表与主表对齐 */
.sub-ledger .spacer { border: none; background: transparent; }
/* 子列表序号列操作按钮（识别 / 使用），窄列内竖排 */
/* 操作列本身是透明占位列，默认无边框会让各行按钮连成一片，这里补回行分割线 */
.sub-ledger .op-cell {
  padding: 4px 2px;
  border-bottom: 1px solid #c6d8f0;
}
.sub-ledger .sub-ops { display: flex; align-items: center; justify-content: center; gap: 6px; }

/* 描边按钮（浅色底 + 同色实线框 + 同色文字）—— 通用 */
.el-button.btn-soft {
  margin: 0 !important;
  height: auto;
  padding: 5px 12px;
  font-size: 12px;
  border-radius: 4px;
  background-color: #ecf5ff;
  border: 1px solid #409eff;
  color: #409eff;
}
.el-button.btn-soft:hover {
  background-color: #d9ecff;
  border-color: #66b1ff;
  color: #66b1ff;
}
.el-button.btn-soft-green { background-color: #f0f9eb; border-color: #67c23a; color: #67c23a; }
.el-button.btn-soft-green:hover { background-color: #e1f3d8; border-color: #85ce61; color: #85ce61; }
.el-button.btn-soft-red { background-color: #fef0f0; border-color: #f56c6c; color: #f56c6c; }
.el-button.btn-soft-red:hover { background-color: #fde2e2; border-color: #f78989; color: #f78989; }
.ledger .tr { text-align: right; }
.ledger .empty-row { padding: 28px 0; }
.ledger .path-cell { font-size: 12px; color: #606266; }
.file-link { color: #409eff; text-decoration: none; }
.file-link:hover { text-decoration: underline; }
.tag-yes, .tag-no {
  display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px;
}
.tag-yes { background: #e1f3d8; color: #67c23a; }
.tag-no { background: #fde2e2; color: #f56c6c; }

/* 列宽 */
.w55 { width: 55px; } .w70 { width: 70px; } .w80 { width: 80px; } .w90 { width: 90px; }
.w100 { width: 100px; } .w110 { width: 110px; } .w120 { width: 120px; } .w130 { width: 130px; }
.w140 { width: 140px; } .w150 { width: 150px; } .w160 { width: 160px; }
.w170 { width: 170px; } .w200 { width: 200px; } .w220 { width: 220px; }

/* 分页 */
.pager { display: flex; justify-content: flex-end; margin-top: 14px; }

/* 批量弹窗的序号说明 */
.seq-tip {
  margin: -6px 0 0 90px; font-size: 12px; color: #909399; line-height: 1.7;
}
.seq-tip b { color: #606266; }
.seq-preview { margin-top: 4px; color: #409eff; }

/* 弹窗表单 */
.dlg-form { max-height: 66vh; overflow-y: auto; padding-right: 6px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.upload-info { margin-left: 12px; font-size: 13px; }
