html, body, #app {
height: 100%;
margin: 0;
color: #243447;
background: #eef2f6;
font-family: "Microsoft YaHei", Arial, sans-serif;
}
* { box-sizing: border-box; }
.page {
min-height: 100%;
padding: 14px;
}
.page-title {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 38px;
margin-bottom: 12px;
}
.page-title h2 {
margin: 0;
color: #1f3348;
font-size: 20px;
line-height: 28px;
}
.page-title p {
margin: 3px 0 0;
color: #718096;
font-size: 13px;
}
.toolbar {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
margin-bottom: 12px;
padding: 10px 12px;
border: 1px solid #dce4ec;
border-radius: 4px;
background: #fff;
}
.toolbar .spacer { flex: 1; }
.table-panel {
padding: 0;
border: 1px solid #dce4ec;
border-radius: 4px;
background: #fff;
overflow: hidden;
}
.table-panel .el-table th {
color: #31465d;
background: #f4f7fa;
}
.stat-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 10px;
}
.stat-card {
padding: 14px;
border: 1px solid #dce4ec;
border-radius: 4px;
background: #fff;
}
.stat-card .label { color: #6b7c93; font-size: 13px; }
.stat-card .value { margin-top: 8px; color: #1769aa; font-size: 28px; font-weight: 700; }
.section-panel {
margin-top: 12px;
padding: 14px;
border: 1px solid #dce4ec;
border-radius: 4px;
background: #fff;
}
.form-tip {
color: #7b8a9a;
font-size: 12px;
}
.chart-box { width: 100%; height: 320px; }
.el-table .cell { line-height: 22px; }
.el-dialog__body { padding-top: 14px; }
@media (max-width: 900px) {
.page { padding: 10px; }
.toolbar { align-items: stretch; }
.toolbar .el-input, .toolbar .el-select { width: 100% !important; }
}