
.dash-title[data-v-ca2c61c4] {
    font-size: 20px;
    font-weight: 600;
    color: #262626;
    text-align: center;
    margin-bottom: 16px;
}
.dash-row[data-v-ca2c61c4] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}
.dash-panel[data-v-ca2c61c4] {
    border: 1px solid #ebeef5;
    border-radius: 8px;
    padding: 12px;
    background: #fff;
    min-width: 0; /* 允许 grid 单元格收缩，避免表格撑宽 */
    overflow: hidden;
}
.table-wrap[data-v-ca2c61c4] {
    overflow-x: auto;
    width: 100%;
}
.region-map[data-v-ca2c61c4] {
    width: 100%;
    height: 320px;
}
.panel-title[data-v-ca2c61c4] {
    font-size: 15px;
    font-weight: 600;
    color: #262626;
    margin-bottom: 10px;
    padding-left: 8px;
    border-left: 3px solid #409eff;
}
.chart[data-v-ca2c61c4] {
    width: 100%;
    height: 320px;
}
.kpi-panel[data-v-ca2c61c4] {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}
.kpi-group[data-v-ca2c61c4] {
    display: grid;
    grid-template-columns: repeat(var(--cols, 3), 1fr);
    gap: 8px;
    margin-bottom: 10px;
}
.kpi-item[data-v-ca2c61c4] {
    border: 1px solid #ebeef5;
    border-radius: 6px;
    background: #fafbfc;
    text-align: center;
    padding: 8px 4px;
}
.kpi-val[data-v-ca2c61c4] {
    display: block;
    font-size: 20px;
    font-weight: 600;
    color: #1f6feb;
}
.kpi-name[data-v-ca2c61c4] {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #8c8c8c;
}
.today-row[data-v-ca2c61c4] {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    background: -webkit-gradient(linear, left top, right top, from(#1f6feb), to(#6a9df3));
    background: linear-gradient(90deg, #1f6feb, #6a9df3);
    border-radius: 8px;
    padding: 14px 10px;
    margin-bottom:10px;
}
.today-item[data-v-ca2c61c4] {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 100px;
    text-align: center;
    color: #fff;
}
.today-val[data-v-ca2c61c4] {
    display: block;
    font-size: 26px;
    font-weight: 700;
}
.today-name[data-v-ca2c61c4] {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    opacity: 0.9;
}

