/* ===== 全局 ===== */
html, body, #app { height: 100%; margin: 0; }
body {
  font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
  background: #f5f7fa;
  color: #303133;
}
.page { padding: 16px; }
.page-title { font-size: 17px; font-weight: 600; margin: 0 0 14px; display: flex; align-items: center; gap: 8px; }
.toolbar { margin-bottom: 12px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.grow { flex: 1; }
.muted { color: #909399; font-size: 12px; }
.danger-text { color: #f56c6c; }

/* ===== 登录页 ===== */
.login-bg {
  height: 100%; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1f3b73 0%, #2f5cad 55%, #4472c4 100%);
}
.login-card {
  width: 400px; padding: 36px 38px 30px; background: #fff; border-radius: 10px;
  box-shadow: 0 12px 40px rgba(0,0,0,.25);
}
.login-title { text-align: center; font-size: 21px; font-weight: 700; color: #1f3b73; margin-bottom: 4px; }
.login-sub { text-align: center; color: #909399; font-size: 12px; margin-bottom: 26px; }

/* ===== 布局 ===== */
.layout-aside { background: #1f2d3d; }
.layout-aside .el-menu { border-right: none; background: #1f2d3d; }
.layout-aside .el-menu-item { color: #c0c4cc; }
.layout-aside .el-menu-item.is-active { color: #fff; background: #4472c4; }
.layout-header {
  background: #fff; height: 54px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 20px; box-shadow: 0 1px 4px rgba(0,0,0,.08); position: relative; z-index: 5;
}
.brand { font-weight: 700; color: #1f3b73; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.layout-main { padding: 14px 18px; overflow-y: auto; }

/* ===== 通用组件 ===== */
.stat-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; }
.stat-card { background: #fff; border-radius: 8px; padding: 18px 20px; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.stat-num { font-size: 30px; font-weight: 700; color: #1f3b73; }
.stat-label { color: #909399; font-size: 13px; margin-top: 2px; }

.countdown-chip { font-weight: 600; }
.countdown-chip.warn { color: #e6a23c; }
.countdown-chip.danger { color: #f56c6c; }

/* ===== 汇总矩阵 ===== */
.matrix-wrap { overflow: auto; background: #fff; border: 1px solid #ebeef5; border-radius: 6px; max-height: 72vh; }
table.matrix { border-collapse: collapse; font-size: 12.5px; min-width: 100%; }
.matrix th, .matrix td { border: 1px solid #e4e7ed; padding: 6px 10px; white-space: nowrap; }
.matrix thead th { background: #4472c4; color: #fff; position: sticky; top: 0; z-index: 2; font-weight: 600; }
.matrix td.section-cell { background: #d9e1f2; font-weight: 700; position: sticky; left: 0; z-index: 1; min-width: 86px; }
.matrix td.field-cell { position: sticky; left: 86px; z-index: 1; background: #fff; min-width: 170px; }
.matrix td.empty-val { color: #c0c4cc; }
.matrix tr:hover td.field-cell { background: #f5f7fa; }
/* ---- 填报详情：技术交流项（勾选列 + 勾选行高亮 + 批注输入） ---- */
.matrix th.anno-chk, .matrix td.anno-chk { width: 40px; min-width: 40px; text-align: center; padding: 6px 4px; }
.matrix th.anno-chk { font-size: 12px; }
.matrix tr.anno-row td { background: #fdf6ec; }
.matrix td .el-textarea__inner { white-space: normal; }
/* ---- 填报详情：指标描述列（与供应商填报页同款可见，含说明截图） ---- */
.matrix td .detail-desc { white-space: normal; word-break: break-all; color: #606266; font-size: 12px;
  line-height: 1.6; max-width: 100%; }
.matrix td .detail-desc .detail-desc-img { max-height: 90px; max-width: 160px; display: block;
  margin-top: 4px; border-radius: 4px; border: 1px solid #ebeef5; }

/* ===== 表单设计器 ===== */
.designer-field-row { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border: 1px solid #ebeef5; border-radius: 6px; margin-bottom: 6px; background: #fff; }
.designer-field-row:hover { border-color: #4472c4; }
.drag-handle { cursor: move; color: #909399; }
.section-head { display: flex; align-items: center; gap: 8px; margin: 14px 0 8px; font-weight: 700; }

/* ===== 填报页 ===== */
.fill-header { background: #fff; border-radius: 8px; padding: 12px 18px; margin-bottom: 12px;
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.fill-section-title { font-weight: 700; margin: 18px 0 10px; font-size: 14px; border-left: 4px solid #4472c4; padding-left: 8px; }
.upload-list-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 13px; }
.upload-list-item a { color: #409eff; text-decoration: none; }

.pwd-show-box { background: #fdf6ec; border: 1px dashed #e6a23c; border-radius: 6px; padding: 10px 14px; margin-top: 10px; }
.pwd-big { font-size: 20px; font-weight: 700; color: #e6a23c; letter-spacing: 1px; }

/* ---- 填报页三列表格布局：指标名称 | 指标描述 | 填报内容 ---- */
.fill-table { border: 1px solid #ebeef5; border-radius: 4px; overflow: hidden; margin-bottom: 14px; }
.fill-row { display: grid; grid-template-columns: 220px minmax(200px, 1fr) minmax(340px, 1.5fr); border-bottom: 1px solid #ebeef5; }
.fill-row:last-child { border-bottom: none; }
.fill-row > div { padding: 10px 12px; align-self: start; }
.fill-head { background: #f5f7fa; font-weight: 700; font-size: 13px; color: #606266; }
.fill-row .c-name, .fill-row .c-desc { border-right: 1px solid #ebeef5; }
.fill-row .c-name { font-weight: 500; }
.fill-row .c-desc { font-size: 13px; color: #606266; word-break: break-all; line-height: 1.6; }
/* 填报页指标名称：必填标注（小1号黑体加粗）；单位：填报框后 红色加粗（比原字号大1号） */
.req-mark { font-size: 13px; font-weight: 700; font-family: "SimHei", "黑体", "Microsoft YaHei", sans-serif; color: #303133; margin-left: 4px; }
.ctl-unit-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.unit-after { color: #f56c6c; font-weight: 700; font-size: 14px; line-height: 1.4; white-space: nowrap; }
.desc-ellipsis { display: inline-block; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

/* ---- 指标描述截图（供应商填报页 / 设计器缩略图） ---- */
.desc-img { max-width: 100%; width: auto; max-height: 220px; border-radius: 4px;
  border: 1px solid #ebeef5; margin-top: 6px; cursor: zoom-in; display: block; }
