/* ==================== 全局样式重置 ==================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    width: 100%;
    height: 100%;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 14px;
    color: #303133;
    background-color: #f0f2f5;
    /* 设置页面最小宽度，避免元素被压缩错乱 */
    min-width: 1280px;
    /* 禁用越界滚动导航：X轴禁止侧滑前进/后退，Y轴禁止下拉橡皮筋/刷新 */
    /* 仅阻断滚动边界向外传递的浏览器原生手势，保留页面内部正常滚动 */
    overscroll-behavior-x: none;
    overscroll-behavior-y: none;
}

#app {
    width: 100%;
    height: 100%;
    /* 设置页面最小宽度，避免元素被压缩错乱 */
    min-width: 1280px;
}

/* ==================== 首屏加载状态样式 ==================== */
/* v-cloak：Vue挂载前隐藏模板内容，防止闪现{{ }}语法 */
[v-cloak] {
    display: none !important;
}

/* 首屏加载动画容器（Vue挂载前显示） */
.app-loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #f0f2f5;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

/* 加载动画：旋转圆环 */
.app-loading-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid #e4e7ed;
    border-top-color: #409eff;
    border-radius: 50%;
    animation: app-loading-spin 0.8s linear infinite;
    margin-bottom: 16px;
}

@keyframes app-loading-spin {
    to {
        transform: rotate(360deg);
    }
}

/* 加载文字 */
.app-loading-text {
    font-size: 14px;
    color: #909399;
}

/* 应用内容区域：数据加载完成前整体隐藏 */
.app-content-wrapper {
    width: 100%;
    height: 100%;
}

/* ==================== 顶部导航栏样式 ==================== */
.top-header {
    height: 60px;
    background-color: #304156;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    position: relative;
    z-index: 1000;
    /* 设置最小宽度，与页面整体保持一致 */
    min-width: 1280px;
}

.top-header .logo {
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    margin-right: 40px;
    white-space: nowrap;
}

.top-header .header-menu {
    flex: 1;
    border-bottom: none !important;
    background-color: transparent !important;
}

.top-header .header-menu .el-menu-item {
    color: #bfcbd9 !important;
    border-bottom: 2px solid transparent !important;
}

.top-header .header-menu .el-menu-item:hover {
    color: #fff !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
}

.top-header .header-menu .el-menu-item.is-active {
    color: #fff !important;
    border-bottom: 2px solid #409EFF !important;
    background-color: transparent !important;
}

.header-right {
    display: flex;
    align-items: center;
}

.user-info {
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    padding: 0 12px;
    height: 60px;
}

.user-info:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

/* 去除点击获取焦点时的所有默认边框和轮廓线 */
.user-info:focus,
.user-info:focus-visible,
.user-info:active,
.el-tooltip__trigger:focus,
.el-tooltip__trigger:focus-visible,
.el-dropdown:focus,
.el-dropdown:focus-visible {
    outline: none !important;
    outline-style: none !important;
    outline-width: 0 !important;
    box-shadow: none !important;
    border-color: transparent !important;
}

/* 针对user-info作为tooltip trigger的焦点样式 */
.user-info.el-tooltip__trigger:focus,
.user-info.el-tooltip__trigger:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

.user-info .el-icon {
    margin-right: 6px;
    font-size: 18px;
}

/* ==================== 主内容区样式 ==================== */
.main-container {
    height: calc(100% - 60px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    /* 设置最小宽度，与页面整体保持一致 */
    min-width: 1280px;
}

.content-wrapper {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    /* 设置最小宽度，与页面整体保持一致 */
    min-width: 1280px;
}

/* ==================== 操作栏样式 ==================== */
.action-bar {
    padding: 16px;
    background-color: #fff;
    border-bottom: 1px solid #ebeef5;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.action-bar-left {
    display: flex;
    gap: 10px;
}

.action-bar-right {
    display: flex;
    gap: 10px;
}

/* ==================== 筛选栏样式 ==================== */
.filter-bar {
    padding: 12px 16px 0px;
    background-color: #fff;
    border-bottom: 1px solid #ebeef5;
    /* 设置最小宽度，避免输入组件被压缩变形 */
    min-width: 1280px;
}

.filter-bar .el-form-item {
    margin-bottom: 12px;
    margin-right: 0;
}

.filter-bar .el-form-item__label {
    font-weight: normal;
    padding-right: 8px;
}

/* 筛选操作按钮区域：垂直居中对齐（适配标签左对齐的一行布局） */
.filter-bar .filter-actions .el-form-item {
    display: flex;
    align-items: center;
}

.filter-bar .filter-actions .el-form-item__content {
    justify-content: flex-start;
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
    align-items: center;
    width: 100%;
}

/* 高级筛选按钮：靠右对齐（适配标签左对齐的一行布局） */
.filter-bar .filter-actions-right .el-form-item {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.filter-bar .filter-actions-right .el-form-item__content {
    justify-content: flex-end;
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
    align-items: center;
    width: 100%;
}

/* ==================== 标签页样式 ==================== */
.tab-content {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* ==================== 表格区域样式 ==================== */
.table-section {
    flex: 1;
    overflow: hidden;
    background-color: #fff;
    padding: 0 16px;
    min-height: 0;
}

/* 工单编号链接样式 */
.ticket-no-link {
    color: #409EFF;
    cursor: pointer;
    text-decoration: none;
}

.ticket-no-link:hover {
    text-decoration: underline;
}

/* 反馈内容链接样式 */
.feedback-link {
    color: #409EFF;
    cursor: pointer;
}

.feedback-link:hover {
    text-decoration: underline;
}

/* ==================== 分页器样式 ==================== */
.pagination-container {
    padding: 16px;
    background-color: #fff;
    display: flex;
    justify-content: center;
    border-top: 1px solid #ebeef5;
}

/* ==================== 列设置弹窗样式 ==================== */
.column-setting-tip {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    background-color: #f4f4f5;
    border-radius: 4px;
    margin-bottom: 16px;
    font-size: 13px;
    color: #909399;
}

.column-setting-list {
    max-height: 400px;
    overflow-y: auto;
    border: 1px solid #ebeef5;
    border-radius: 4px;
}

.column-setting-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid #f0f0f0;
    transition: background-color 0.2s;
}

.column-setting-item:last-child {
    border-bottom: none;
}

.column-setting-item:hover {
    background-color: #f5f7fa;
}

.column-setting-actions {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* 列设置冻结开关样式 */
.column-freeze-switch {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-right: 4px;
}

.column-freeze-switch .freeze-label {
    font-size: 12px;
    color: #606266;
    white-space: nowrap;
}

/* 标签颜色圆点样式 */
.tag-color-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 8px;
    vertical-align: middle;
}

/* ==================== 卡片样式 ==================== */
.form-card {
    margin-bottom: 16px;
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05) !important;
}

.form-card .el-card__header {
    padding: 12px 20px;
    background-color: #fafafa;
    border-bottom: 1px solid #ebeef5;
}

.form-card .el-card__body {
    padding: 20px;
}

/* ==================== 对话框样式 ==================== */
.ticket-dialog .el-dialog__body {
    padding: 20px;
}

/* ==================== 上传组件样式 ==================== */
.upload-image-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
}

.upload-image-item {
    position: relative;
    width: 67px;
    height: 67px;
    border: 1px solid #d9d9d9;
    border-radius: 6px;
    overflow: hidden;
}

.upload-image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.upload-image-item .image-delete {
    position: absolute;
    top: 0;
    right: 0;
    width: 20px;
    height: 20px;
    background-color: rgba(0, 0, 0, 0.5);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 14px;
}

.upload-image-item .image-delete:hover {
    background-color: rgba(255, 0, 0, 0.7);
}

.upload-add-btn {
    width: 67px;
    height: 67px;
    border: 1px dashed #d9d9d9;
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #8c939d;
    transition: border-color 0.3s;
}

.upload-add-btn:hover {
    border-color: #409EFF;
    color: #409EFF;
}

.upload-add-btn .el-icon {
    font-size: 28px;
    margin-bottom: 8px;
}

/* ==================== 登录页面样式 ==================== */
.login-container {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-card {
    width: 420px;
    padding: 40px;
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.login-title {
    text-align: center;
    font-size: 24px;
    font-weight: bold;
    color: #303133;
    margin-bottom: 30px;
}

.login-form .el-form-item {
    margin-bottom: 22px;
}

.captcha-row {
    display: flex;
    gap: 10px;
}

.captcha-row .el-input {
    flex: 1;
}

.captcha-img {
    width: 120px;
    height: 40px;
    cursor: pointer;
    border-radius: 4px;
    border: 1px solid #dcdfe6;
}

.login-btn {
    width: 100%;
    height: 44px;
    font-size: 16px;
}

/* ==================== 分析页面样式 ==================== */
.analysis-container {
    height: 100%;
    display: flex;
    flex-direction: column;
    background-color: #f0f2f5;
}

.analysis-filter {
    padding: 16px;
    background-color: #fff;
    border-bottom: 1px solid #ebeef5;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 10px;
}

.analysis-filter-left {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.analysis-content {
    flex: 1;
    display: flex;
    overflow: hidden;
}

.analysis-sidebar {
    width: 200px;
    background-color: #fff;
    border-right: 1px solid #ebeef5;
    overflow-y: auto;
    padding: 16px 0;
}

.sidebar-title {
    padding: 0 20px 12px;
    font-size: 14px;
    font-weight: bold;
    color: #303133;
    border-bottom: 1px solid #ebeef5;
    margin-bottom: 8px;
}

.sidebar-menu-item {
    padding: 12px 20px;
    cursor: pointer;
    color: #606266;
    transition: all 0.3s;
    border-left: 3px solid transparent;
}

.sidebar-menu-item:hover {
    background-color: #ecf5ff;
    color: #409EFF;
}

.sidebar-menu-item.active {
    background-color: #ecf5ff;
    color: #409EFF;
    border-left-color: #409EFF;
    font-weight: 500;
}

.analysis-report-container {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    background-color: #f0f2f5;
}

/* A4纸张样式 */
.a4-page {
    width: 210mm;
    min-height: 297mm;
    background-color: #fff;
    margin: 0 auto 20px auto;
    padding: 10mm;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
    position: relative;
    box-sizing: border-box;
}

.a4-page:last-child {
    margin-bottom: 0;
}

/* 流式A4页面：内容自适应高度，用于打印预览 */
.a4-page-flow {
    width: 210mm;
    min-height: auto;
    height: auto;
    background-color: #fff;
    margin: 0 auto 20px auto;
    padding: 10mm;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
    position: relative;
    box-sizing: border-box;
}

.a4-page-flow .section-content .el-table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    box-sizing: border-box;
}

.a4-page-flow .section-content .el-table .cell {
    white-space: normal !important;
    word-break: break-all !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}

.report-header {
    text-align: center;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 2px solid #409EFF;
}

.report-title {
    font-size: 28px;
    font-weight: bold;
    color: #303133;
    margin-bottom: 15px;
}

.report-meta {
    font-size: 12px;
    color: #909399;
    display: flex;
    justify-content: center;
    gap: 30px;
}

.report-section {
    margin-bottom: 25px;
}

.report-section-title {
    font-size: 18px;
    font-weight: bold;
    color: #303133;
    margin-bottom: 15px;
    padding-left: 10px;
    border-left: 4px solid #409EFF;
}

.report-placeholder {
    padding: 40px;
    text-align: center;
    color: #909399;
    background-color: #fafafa;
    border: 1px dashed #dcdfe6;
    border-radius: 4px;
}

/* 图表容器样式 */
.chart-container {
    width: 100%;
    height: 300px;
    background-color: #fff;
    border-radius: 4px;
}

.overview-charts-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

.overview-chart-card {
    background-color: #fff;
    border-radius: 8px;
    padding: 15px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.overview-chart-card .chart-container {
    height: 260px;
}

.chart-card {
    background-color: #fff;
    border-radius: 8px;
    padding: 15px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin-bottom: 15px;
}

.chart-card-title {
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ebeef5;
}

.trend-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 10px;
}

/* 概况图表区域 */
.overview-charts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 20px;
}

.overview-chart {
    width: 100%;
    height: 280px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* 趋势图表 */
.trend-chart {
    width: 100%;
    height: 350px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* 趋势图网格布局（单列布局，一行一个） */
.trend-charts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    margin-bottom: 15px;
}

.trend-chart-item {
    display: flex;
    flex-direction: column;
}

.trend-chart-title {
    font-size: 14px;
    font-weight: 600;
    color: #303133;
    margin-bottom: 8px;
    padding-left: 8px;
    border-left: 3px solid #409EFF;
}

.trend-charts-grid .trend-chart {
    height: 350px;
}

/* 维度趋势图标题 */
.dim-trend-title {
    font-size: 13px;
    font-weight: 600;
    color: #606266;
    margin-bottom: 6px;
    text-align: center;
    padding-top: 8px;
}

.section-chart-full .dim-trend-title {
    padding-top: 10px;
    margin-bottom: 6px;
    font-size: 14px;
}

/* 整行图表（饼图占满整行） */
.section-chart-full {
    width: 100%;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin-bottom: 15px;
}

/* 分类图表 */
.category-subtitle {
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    margin: 20px 0 10px 0;
    padding-left: 10px;
    border-left: 3px solid #409EFF;
}

.category-chart {
    width: 100%;
    height: 320px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin-bottom: 15px;
}

/* 经营模式图表 */
.mode-chart {
    width: 100%;
    height: 350px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* 品牌门店图表 */
.brand-subtitle {
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    margin: 20px 0 10px 0;
    padding-left: 10px;
    border-left: 3px solid #67C23A;
}

.brand-chart {
    width: 100%;
    height: 380px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin-bottom: 15px;
}

/* 处理效率图表 */
.efficiency-subtitle {
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    margin: 20px 0 10px 0;
    padding-left: 10px;
    border-left: 3px solid #E6A23C;
}

.efficiency-chart {
    width: 100%;
    height: 400px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* 风险图表区域 */
.risk-charts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 20px;
}

.risk-chart {
    width: 100%;
    height: 300px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* 概况卡片 - 三列布局 */
.overview-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 20px;
}

.overview-cards-3col {
    grid-template-columns: repeat(3, 1fr);
}

.overview-card {
    background-color: #fff;
    border-radius: 8px;
    padding: 20px 15px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.overview-card-value {
    font-size: 28px;
    font-weight: bold;
    color: #303133;
    margin-bottom: 8px;
}

.overview-card-label {
    font-size: 14px;
    color: #606266;
}

/* 章节子标题 */
.section-subtitle {
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    margin: 20px 0 10px 0;
    padding-left: 10px;
    border-left: 3px solid #409EFF;
}

/* 章节图表容器 */
.section-chart {
    width: 100%;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin-bottom: 15px;
}

/* 图表行布局 */
.section-charts-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 15px;
}

.section-chart-half {
    width: 100%;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* 集团Top6卡片 */
.group-top-cards {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

/* 2列布局（每行2个卡片） */
.group-top-cards-2col {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.group-top-card {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* 卡片顶部排名色带 */
.group-top-card.rank-card-1 {
    border-top: 4px solid #F56C6C;
}

.group-top-card.rank-card-2 {
    border-top: 4px solid #E6A23C;
}

.group-top-card.rank-card-3 {
    border-top: 4px solid #409EFF;
}

.group-top-card.rank-card-4 {
    border-top: 4px solid #67C23A;
}

.group-top-card.rank-card-5 {
    border-top: 4px solid #909399;
}

.group-top-card.rank-card-6 {
    border-top: 4px solid #909399;
}

/* 卡片头部 */
.group-card-header {
    padding: 12px 15px 8px 15px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.group-card-rank {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    border-radius: 6px;
    background: linear-gradient(135deg, #f0f2f5 0%, #e8eaed 100%);
}

.group-card-rank .rank-number {
    font-size: 18px;
    font-weight: bold;
    line-height: 1;
}

.group-card-rank .rank-label {
    font-size: 10px;
    color: #909399;
    margin-top: 2px;
    letter-spacing: 0.5px;
}

.rank-card-1 .group-card-rank {
    background: linear-gradient(135deg, #FEF0F0 0%, #FDE2E2 100%);
}

.rank-card-1 .group-card-rank .rank-number {
    color: #F56C6C;
}

.rank-card-2 .group-card-rank {
    background: linear-gradient(135deg, #FDF6EC 0%, #FAECD5 100%);
}

.rank-card-2 .group-card-rank .rank-number {
    color: #E6A23C;
}

.rank-card-3 .group-card-rank {
    background: linear-gradient(135deg, #ECF5FF 0%, #D9ECFF 100%);
}

.rank-card-3 .group-card-rank .rank-number {
    color: #409EFF;
}

.rank-card-4 .group-card-rank {
    background: linear-gradient(135deg, #F0F9EB 0%, #E1F3D8 100%);
}

.rank-card-4 .group-card-rank .rank-number {
    color: #67C23A;
}

.rank-card-5 .group-card-rank {
    background: linear-gradient(135deg, #F4F4F5 0%, #E9E9EB 100%);
}

.rank-card-5 .group-card-rank .rank-number {
    color: #909399;
}

.rank-card-6 .group-card-rank {
    background: linear-gradient(135deg, #F4F4F5 0%, #E9E9EB 100%);
}

.rank-card-6 .group-card-rank .rank-number {
    color: #909399;
}

.group-card-name {
    flex: 1;
    font-size: 14px;
    font-weight: 600;
    color: #303133;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 卡片内容区 */
.group-card-body {
    padding: 8px 12px 12px 12px;
    display: flex;
    gap: 8px;
}

.group-stat-card {
    flex: 1;
    text-align: center;
    padding: 8px 4px;
    background-color: #fafafa;
    border-radius: 6px;
}

.group-stat-card .stat-value {
    font-size: 18px;
    font-weight: bold;
    color: #303133;
    line-height: 1.2;
}

.group-stat-card .stat-label {
    font-size: 12px;
    color: #909399;
    margin-top: 4px;
    white-space: nowrap;
}

/* 分析报告表格边框样式（模拟Element Plus border效果） */
.section-content .el-table.el-table--fit {
    border: 1px solid #ebeef5 !important;
    border-right: none !important;
    border-bottom: none !important;
}

.section-content .el-table.el-table--fit th.el-table__cell.is-leaf,
.section-content .el-table.el-table--fit td.el-table__cell {
    border-right: 1px solid #ebeef5 !important;
    border-bottom: 1px solid #ebeef5 !important;
}

/* 分析报告表格紧凑样式 */
.section-content .el-table {
    font-size: 12px;
}

.section-content .el-table th.el-table__cell,
.section-content .el-table td.el-table__cell {
    padding: 6px 8px;
}

.section-content .el-table .el-table__cell {
    height: 32px;
}

.section-content .el-table .cell {
    padding-left: 0;
    padding-right: 0;
}

/* 表格自动高度（无滚动条，完全显示所有行，用于打印场景） */
.print-table-auto-height .el-table__body-wrapper {
    overflow-y: visible !important;
    overflow-x: visible !important;
}

.print-table-auto-height .el-table__body {
    width: 100% !important;
}

.page-number {
    position: absolute;
    bottom: 15mm;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 12px;
    color: #909399;
}

/* 浮动工具栏 */
.floating-toolbar {
    position: fixed;
    bottom: 30px;
    right: 30px;
    display: flex;
    gap: 10px;
    z-index: 100;
}

.floating-toolbar .el-button {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* ==================== 分享页面样式 ==================== */
.share-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background-color: #f0f2f5;
}

.share-header {
    height: 60px;
    background-color: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    padding: 0 30px;
    justify-content: space-between;
}

.share-header-title {
    font-size: 20px;
    font-weight: bold;
    color: #303133;
}

.share-info {
    font-size: 13px;
    color: #909399;
    display: flex;
    gap: 20px;
}

.share-content {
    flex: 1;
    display: flex;
    overflow: hidden;
}

.share-sidebar {
    width: 250px;
    background-color: #fff;
    border-right: 1px solid #ebeef5;
    overflow-y: auto;
}

.share-report-container {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
}

.share-pagination {
    padding: 16px;
    background-color: #fff;
    display: flex;
    justify-content: center;
    border-top: 1px solid #ebeef5;
}

/* ==================== 标签页样式 ==================== */
.tab-content {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* ==================== 用户管理样式 ==================== */
.user-table-container {
    padding: 16px;
    background-color: #fff;
    flex: 1;
    overflow: auto;
}

/* ==================== 响应式适配 ==================== */
@media screen and (max-width: 1200px) {
    .a4-page {
        width: 100%;
        padding: 20px;
    }
}

/* ==================== 打印样式 ==================== */
@media print {
    /* 全局盒模型统一：确保所有元素宽度计算包含padding和border */
    *, *::before, *::after {
        box-sizing: border-box !important;
    }

    /* A4纸张设置：精确控制纸张尺寸和页边距 */
    @page {
        size: A4 portrait;
        margin: 15mm 10mm;
    }

    /* 全局宽度限制：防止任何元素超出页面宽度 */
    html, body, #app {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
    }

    /* 隐藏不需要打印的元素 */
    .top-header,
    .action-bar,
    .filter-bar,
    .pagination-container,
    .analysis-filter,
    .analysis-sidebar,
    .floating-toolbar,
    .share-header,
    .share-sidebar,
    .share-pagination,
    .el-dialog__wrapper,
    .el-message,
    .el-message-box__wrapper,
    .page-number {
        display: none !important;
    }

    /* 重置页面样式：确保打印根容器正确 */
    html, body {
        background-color: #fff !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    #app,
    .main-container,
    .content-wrapper,
    .analysis-container,
    .analysis-content,
    .analysis-report-container,
    .share-container,
    .share-content,
    .share-report-container {
        height: auto !important;
        overflow: visible !important;
        background-color: #fff !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* A4页面容器：流式布局，宽度100%适配纸张可打印区域 */
    .a4-page,
    .a4-page-flow {
        width: 100% !important;
        max-width: 100% !important;
        min-height: auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
        overflow: visible !important;
        page-break-after: auto;
        page-break-before: auto;
        page-break-inside: auto;
    }

    .a4-page:last-child,
    .a4-page-flow:last-child {
        page-break-after: auto;
    }

    /* 报告头部：确保不与内容分离 */
    .report-header {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
        page-break-after: avoid;
        page-break-inside: avoid;
        box-sizing: border-box !important;
    }

    /* 报告章节：允许内部分页，标题不被拆分 */
    .report-section {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
        page-break-inside: auto;
        page-break-before: auto;
        box-sizing: border-box !important;
    }

    /* 章节标题：避免出现在页面底部（与内容分离） */
    .report-section-title {
        page-break-after: avoid;
        page-break-inside: avoid;
    }

    /* 子标题：避免与下方表格/图表分离 */
    .section-subtitle {
        page-break-after: avoid;
        page-break-inside: avoid;
    }

    /* 子标题与表格连在一起，不分开 */
    .section-subtitle + .el-table,
    .section-subtitle + div > .el-table,
    .section-subtitle + .section-chart,
    .section-subtitle + div > .section-chart {
        page-break-before: avoid;
    }

    /* ===== 内容区域：严格控制宽度，防止溢出 ===== */
    .section-content {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    /* ===== Element Plus 表格打印适配（核心改造 - 最强制约束） ===== */
    
    /* 表格容器：强制宽度100%，固定布局，清除最小宽度 */
    .section-content .el-table,
    body.print-mode .section-content .el-table {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
        page-break-inside: auto;
        page-break-after: auto;
        table-layout: fixed !important;
        box-sizing: border-box !important;
    }

    /* 表格内部所有层级wrapper：强制宽度100%，清除最小宽度 */
    .section-content .el-table .el-table__inner-wrapper,
    .section-content .el-table__inner-wrapper,
    body.print-mode .section-content .el-table .el-table__inner-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    /* colgroup：宽度100%，让表格铺满容器 */
    /* 注意：不要给col设置width: 100%，否则所有列会均分宽度！
       col的具体宽度由adjustTablesForPrint函数通过JS设置为百分比 */
    .section-content .el-table colgroup,
    body.print-mode .section-content .el-table colgroup {
        width: 100% !important;
        table-layout: fixed !important;
    }

    .section-content .el-table col,
    body.print-mode .section-content .el-table col {
        min-width: 0 !important;
    }

    /* 表格外层包装：移除滚动，完全显示，宽度100% */
    .section-content .el-table .el-table__body-wrapper,
    .section-content .el-table .el-table__header-wrapper,
    .section-content .el-table .el-table__fixed-body-wrapper,
    .section-content .el-table .el-table__fixed-header-wrapper,
    body.print-mode .section-content .el-table .el-table__body-wrapper,
    body.print-mode .section-content .el-table .el-table__header-wrapper {
        overflow: visible !important;
        height: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* 表格主体和表头：宽度100%，固定布局 */
    .section-content .el-table .el-table__body,
    .section-content .el-table .el-table__header,
    body.print-mode .section-content .el-table .el-table__body,
    body.print-mode .section-content .el-table .el-table__header {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        table-layout: fixed !important;
        box-sizing: border-box !important;
    }

    /* 确保表格分页时表头在每页重复显示 */
    .section-content .el-table thead,
    body.print-mode .section-content .el-table thead {
        display: table-header-group !important;
    }

    .section-content .el-table tbody,
    body.print-mode .section-content .el-table tbody {
        display: table-row-group !important;
    }

    /* 表格行：避免行内部分页（行不被截断） */
    .section-content .el-table tr,
    body.print-mode .section-content .el-table tr {
        page-break-inside: avoid;
        page-break-after: auto;
    }

    /* 确保表头wrapper和表体wrapper不被分开（Element Plus有两个独立table） */
    .section-content .el-table .el-table__header-wrapper,
    body.print-mode .section-content .el-table .el-table__header-wrapper {
        page-break-after: avoid !important;
    }

    .section-content .el-table .el-table__body-wrapper,
    body.print-mode .section-content .el-table .el-table__body-wrapper {
        page-break-before: avoid !important;
    }

    /* 表格行高自适应，内容可换行 */
    .section-content .el-table .el-table__row,
    body.print-mode .section-content .el-table .el-table__row {
        height: auto !important;
        box-sizing: border-box !important;
    }

    /* 单元格：高度自适应，内容换行，清除最小宽度 */
    .section-content .el-table th.el-table__cell,
    .section-content .el-table td.el-table__cell,
    body.print-mode .section-content .el-table th.el-table__cell,
    body.print-mode .section-content .el-table td.el-table__cell {
        padding: 4px 6px !important;
        height: auto !important;
        min-height: 24px !important;
        min-width: 0 !important;
        width: auto !important;
        box-sizing: border-box !important;
    }

    /* 单元格内容：强制换行，防止溢出 */
    .section-content .el-table .cell,
    body.print-mode .section-content .el-table .cell {
        padding-left: 0 !important;
        padding-right: 0 !important;
        white-space: normal !important;
        word-break: break-all !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        line-height: 1.4 !important;
        height: auto !important;
        box-sizing: border-box !important;
        min-width: 0 !important;
    }

    /* 表头单元格：换行支持 */
    .section-content .el-table th.el-table__cell .cell,
    body.print-mode .section-content .el-table th.el-table__cell .cell {
        white-space: normal !important;
        word-break: break-all !important;
        font-weight: bold !important;
    }

    /* 表格行分页控制：尽量避免行内部分页 */
    .section-content .el-table tr,
    body.print-mode .section-content .el-table tr {
        page-break-inside: avoid;
        page-break-after: auto;
    }

    /* 表格表头：每页重复显示 */
    .section-content .el-table thead,
    body.print-mode .section-content .el-table thead {
        display: table-header-group;
    }

    /* 表格边框：确保打印时边框完整 */
    .section-content .el-table.el-table--fit,
    body.print-mode .section-content .el-table.el-table--fit {
        border: 1px solid #ebeef5 !important;
        border-right: none !important;
        border-bottom: none !important;
        box-sizing: border-box !important;
    }

    .section-content .el-table.el-table--fit th.el-table__cell.is-leaf,
    .section-content .el-table.el-table--fit td.el-table__cell,
    body.print-mode .section-content .el-table.el-table--fit th.el-table__cell.is-leaf,
    body.print-mode .section-content .el-table.el-table--fit td.el-table__cell {
        border-right: 1px solid #ebeef5 !important;
        border-bottom: 1px solid #ebeef5 !important;
        box-sizing: border-box !important;
    }

    /* 移除固定列（打印时不需要固定列） */
    .section-content .el-table .el-table__fixed,
    .section-content .el-table .el-table__fixed-right,
    .section-content .el-table .el-table__fixed-body-wrapper,
    .section-content .el-table .el-table__fixed-header-wrapper,
    body.print-mode .section-content .el-table .el-table__fixed,
    body.print-mode .section-content .el-table .el-table__fixed-right {
        display: none !important;
    }

    /* 表格所有子元素：强制不超出父容器宽度 */
    .section-content .el-table *,
    .section-content .el-table *::before,
    .section-content .el-table *::after,
    body.print-mode .section-content .el-table * {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* 标签组件：确保不溢出 */
    .section-content .el-tag {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* ===== 图表打印适配 ===== */
    
    /* 图表容器：尽量整页显示，避免被拆分 */
    .section-chart,
    .section-chart-full,
    .overview-chart,
    .trend-chart {
        width: 100% !important;
        max-width: 100% !important;
        page-break-inside: avoid;
        box-sizing: border-box !important;
    }

    /* 图表网格：尽量保持完整 */
    .overview-charts,
    .trend-charts-grid,
    .section-charts-row,
    .risk-charts,
    .group-top-cards {
        width: 100% !important;
        max-width: 100% !important;
        page-break-inside: avoid;
        box-sizing: border-box !important;
    }

    /* ===== 概览卡片打印适配 ===== */
    
    .overview-cards {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
        page-break-inside: avoid;
        box-sizing: border-box !important;
    }

    .overview-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        page-break-inside: avoid;
        box-sizing: border-box !important;
    }

    /* ===== 概览图表打印适配 ===== */
    
    .overview-charts {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
        page-break-inside: avoid;
        box-sizing: border-box !important;
    }

    .overview-charts > * {
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    /* 趋势图网格：保持和屏幕一致的单列布局 */
    .trend-charts-grid {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    .trend-chart-item {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        page-break-inside: avoid;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    /* 确保所有内容不超出页面宽度 */
    .report-section,
    .section-content,
    .el-table,
    .el-table__body,
    .el-table__header,
    .el-table__body-wrapper,
    .el-table__header-wrapper,
    .overview-cards,
    .overview-charts,
    .trend-charts-grid,
    .section-charts-row,
    .group-top-cards,
    .report-header,
    .report-section-title,
    .section-subtitle,
    div[class*="chart"],
    div[class*="card"] {
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    /* 图表容器：强制宽度100%，防止ECharts固定宽度溢出 */
    .overview-chart,
    .trend-chart,
    .section-chart,
    .section-chart-full,
    .risk-chart,
    .category-chart,
    .mode-chart,
    .brand-chart,
    .efficiency-chart {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    /* 图表内部canvas：强制自适应 */
    .overview-chart canvas,
    .trend-chart canvas,
    .section-chart canvas,
    .section-chart-full canvas,
    .risk-chart canvas,
    .category-chart canvas,
    .mode-chart canvas,
    .brand-chart canvas,
    .efficiency-chart canvas {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        box-sizing: border-box !important;
    }

    /* 图表网格容器：防止内部元素撑开宽度 */
    .overview-charts,
    .trend-charts-grid,
    .section-charts-row,
    .risk-charts {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    /* 图表容器的直接子元素：也限制宽度 */
    .overview-charts > *,
    .trend-charts-grid > *,
    .section-charts-row > *,
    .risk-charts > * {
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    /* 自动高度表格：完全显示，无滚动 */
    .print-table-auto-height .el-table__body-wrapper {
        overflow: visible !important;
    }

    .print-table-auto-height .el-table__body {
        width: 100% !important;
    }

    /* 图片自适应 */
    img,
    canvas {
        max-width: 100% !important;
        height: auto !important;
        box-sizing: border-box !important;
    }

    /* 防止空内容导致分页异常 */
    .report-placeholder {
        page-break-inside: avoid;
    }
}

/* ==================== 工单弹窗左右布局样式 ==================== */
.ticket-dialog-split .el-dialog__body {
    padding: 15px 20px;
    max-height: 70vh;
    overflow-y: auto;
}

.ticket-dialog-body {
    display: flex;
    gap: 20px;
}

.ticket-dialog-left {
    flex: 1;
    min-width: 0;
}

.ticket-dialog-right {
    width: 380px;
    flex-shrink: 0;
}

.form-section {
    margin-bottom: 16px;
}

.form-section-title {
    font-size: 14px;
    font-weight: 600;
    color: #303133;
    padding-bottom: 8px;
    margin-bottom: 12px;
    border-bottom: 1px solid #ebeef5;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ticket-dialog-left .el-form-item {
    margin-bottom: 14px;
}

.ticket-dialog-right .el-form-item {
    margin-bottom: 12px;
}

/* 只读内容展示 */
.readonly-content {
    padding: 8px 12px;
    background-color: #f5f7fa;
    border-radius: 4px;
    min-height: 60px;
    font-size: 13px;
    color: #606266;
    line-height: 1.6;
    word-break: break-all;
    white-space: pre-wrap;
    border: 1px solid #ebeef5;
}

/* ========== 内容卡片式布局 ========== */
/* 左侧内容区卡片容器 */
.content-cards-container {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px;
}

/* 内容卡片通用样式 */
.content-card {
    border: 1px solid #ebeef5;
    border-radius: 8px;
    overflow: hidden;
    background-color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.2s ease;
}

.content-card:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* 卡片头部 */
.content-card-header {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 600;
    border-bottom: 1px solid #ebeef5;
    background-color: #fafbfc;
}

/* 卡片头部左侧色条 */
.content-card-header::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 16px;
    border-radius: 2px;
    margin-right: 10px;
    flex-shrink: 0;
}

/* 卡片主体 */
.content-card-body {
    padding: 14px 16px;
}

/* 反馈内容卡片 - 橙色主题 */
.content-card.feedback-card .content-card-header {
    color: #e67e22;
    background-color: #fff8f0;
    border-bottom-color: #faecd8;
}

.content-card.feedback-card .content-card-header::before {
    background-color: #ff9800;
}

.content-card.feedback-card {
    border-color: #faecd8;
}

/* 问题分析卡片 - 蓝色主题 */
.content-card.detail-card .content-card-header {
    color: #409eff;
    background-color: #ecf5ff;
    border-bottom-color: #d9ecff;
}

.content-card.detail-card .content-card-header::before {
    background-color: #3b82f6;
}

.content-card.detail-card {
    border-color: #d9ecff;
}

/* 解决方案卡片 - 绿色主题 */
.content-card.solution-card .content-card-header {
    color: #67c23a;
    background-color: #f0f9eb;
    border-bottom-color: #e1f3d8;
}

.content-card.solution-card .content-card-header::before {
    background-color: #10b981;
}

.content-card.solution-card {
    border-color: #e1f3d8;
}

/* 卡片内的表单项 - 去掉底部边距 */
.content-card .el-form-item {
    margin-bottom: 0 !important;
}

/* 卡片内的图片组 - 增加上边距，左对齐（无左边距） */
.content-card .ticket-edit-image-group {
    margin-top: 12px;
    margin-left: 0;
}

.content-card .audit-image-group {
    margin-top: 12px;
}

/* 卡片内的表单项 - label为空时内容占满宽度 */
.content-card .el-form-item .el-form-item__content {
    width: 100%;
    margin-left: 0 !important;
}

.content-card .el-textarea__inner {
    font-size: 13px;
}

/* 审核信息表格 */
.audit-info-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    table-layout: fixed;
}

.audit-info-table td {
    padding: 6px 10px;
    border: 1px solid #ebeef5;
    vertical-align: middle;
}

.audit-info-table .audit-label {
    width: 80px;
    background-color: #f5f7fa;
    color: #909399;
    text-align: right;
    font-weight: 500;
    white-space: nowrap;
}

.audit-info-table .audit-value {
    color: #303133;
    word-break: break-all;
}

/* 审核操作栏 */
.audit-action-form {
    margin-top: 16px;
}

.audit-action-bar {
    padding: 16px;
    border-top: 2px solid #409EFF;
    background-color: #ecf5ff;
    border-radius: 4px;
}

.audit-action-bar .el-form-item {
    margin-bottom: 0;
}

/* 截图区域横跨 */
.ticket-dialog-images {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #dcdfe6;
}

.image-tip {
    font-size: 12px;
    font-weight: normal;
    color: #909399;
}

/* 截图来源边框颜色 */
.upload-image-item.img-from-feedback {
    border: 3px solid #e6a23c;
    border-radius: 6px;
    padding: 2px;
    box-shadow: 0 0 0 1px #e6a23c;
}

.upload-image-item.img-from-solution {
    border: 3px solid #67c23a;
    border-radius: 6px;
    padding: 2px;
    box-shadow: 0 0 0 1px #67c23a;
}

/* 问题分析图片（蓝色边框） */
.upload-image-item.img-from-detail {
    border: 3px solid #409eff;
    border-radius: 6px;
    padding: 2px;
    box-shadow: 0 0 0 1px #409eff;
}

/* 截图来源标签 */
.image-source-tag {
    position: absolute;
    top: 2px;
    left: 2px;
    background-color: #e6a23c;
    color: #fff;
    font-size: 10px;
    padding: 1px 4px;
    border-radius: 0 0 4px 0;
    line-height: 1.4;
}

.image-source-tag.solution-tag {
    background-color: #67c23a;
}

.image-source-tag.detail-tag {
    background-color: #409eff;
}

/* 动态记录图片（紫色边框） */
.upload-image-item.img-from-activity {
    border: 3px solid #9254de;
    border-radius: 6px;
    padding: 2px;
    box-shadow: 0 0 0 1px #9254de;
}

.image-source-tag.activity-tag {
    background-color: #9254de;
}

/* ==================== 创建/编辑弹窗：日期时间经营模式行（无label项对齐） ==================== */
.date-time-business-row .no-label-item .el-form-item__content {
    margin-left: 0 !important;
}
/* 使无label的form-item与有label的form-item底部对齐（通过margin-top补偿label高度） */
.date-time-business-row .no-label-item {
    margin-bottom: 18px; /* el-form-item 默认margin-bottom为18px，保持一致 */
}
.date-time-business-row .no-label-item.el-form-item {
    padding-top: 0;
}
/* 确保三个输入框的底部在同一水平线上 */
.date-time-business-row .el-form-item {
    display: flex;
    align-items: flex-end;
    margin-bottom: 18px;
}
.date-time-business-row .el-form-item .el-form-item__content {
    flex: 1;
    line-height: normal;
}

/* ==================== 反馈日期行新布局（左侧标签 + 右侧三等分容器） ==================== */
.feedback-date-row-item {
    margin-bottom: 18px;
}
/* 确保 form-item 的 content 区域占满剩余宽度 */
.feedback-date-row-item.el-form-item .el-form-item__content {
    flex: 1 !important;
    width: auto !important;
    min-width: 0;
    line-height: normal;
}
/* 右边容器占满 content 宽度 */
.feedback-date-right-wrap {
    width: 100%;
    display: flex;
    gap: 12px;
    align-items: center;
}
/* 三个列等宽 */
.feedback-date-col {
    flex: 1;
    min-width: 0;
}
/* 确保输入组件占满列宽 */
.feedback-date-col .el-date-editor,
.feedback-date-col .el-select,
.feedback-date-col .el-input {
    width: 100% !important;
}

/* ==================== 审核模态窗：反馈日期行布局（左侧标签 + 右侧三等分） ==================== */
.audit-feedback-date-cell {
    width: 100%;
}
.audit-feedback-date-cell .audit-label {
    flex-shrink: 0;
}
.audit-feedback-date-right {
    flex: 1;
    min-width: 0;
    display: flex;
    gap: 12px;
    width: 100%;
}
.audit-feedback-date-col {
    flex: 1;
    min-width: 0;
}
.audit-feedback-date-col .audit-value {
    color: #303133;
    font-size: 14px;
    line-height: 1.5;
    word-break: break-all;
}

/* ==================== 查询条件6列布局适配 ==================== */
.filter-bar .el-col-4 .el-form-item__label {
    font-size: 13px;
}

.filter-bar .el-date-editor.el-input__wrapper {
    width: 100% !important;
}

/* ==================== 分享弹窗样式 ==================== */
.share-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ==================== 用户弹窗密码生成 ==================== */
.password-generate-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.password-generate-row .el-input {
    flex: 1;
}

/* ==================== Tab布局工单弹窗样式 ==================== */
/* el-dialog本身作为flex容器，固定高度，不随内容变化 */
/* ==================== Tab布局模态窗（审核/编辑）固定高度 ==================== */
.ticket-dialog-tab.el-dialog {
    display: flex !important;
    flex-direction: column !important;
    width: 80% !important;
    min-width: 1000px !important;
    max-width: none !important;
    --el-dialog-width: 80% !important;
    height: 90vh !important;
    max-height: 90vh !important;
    margin: 5vh auto !important;
    overflow: hidden !important;
    box-sizing: border-box;
}

.ticket-dialog-tab .el-dialog__header {
    flex-shrink: 0 !important;
    padding: 15px 20px !important;
    border-bottom: 1px solid #ebeef5;
    margin: 0 !important;
}

.ticket-dialog-tab .el-dialog__body {
    padding: 0 !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box;
}

.ticket-dialog-tab .el-dialog__footer {
    flex-shrink: 0 !important;
    border-top: 1px solid #ebeef5;
    padding: 12px 20px !important;
}

/* Tabs组件占满body剩余空间 */
.ticket-dialog-tabs {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    min-height: 0 !important;
}

.ticket-dialog-tabs .el-tabs__header {
    margin: 0 !important;
    padding: 0 20px !important;
    background-color: #fff;
    border-bottom: 1px solid #e4e7ed;
    flex-shrink: 0 !important;
}

.ticket-dialog-tabs .el-tabs__content {
    flex: 1 1 auto !important;
    overflow: hidden !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
}

.ticket-dialog-tabs .el-tab-pane {
    height: 100% !important;
    overflow: hidden !important;
}

/* Tab内容容器（上下分层：上层可滚动，下层固定） */
.ticket-tab-body {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    padding: 15px 20px !important;
    overflow: hidden !important;
    box-sizing: border-box;
}

/* 上层内容区（左右两栏，分别独立滚动） */
.ticket-tab-body .ticket-tab-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    gap: 0;
    overflow: hidden !important;
}

/* 左侧内容区：反馈内容、问题分析、解决方案 */
.ticket-dialog-tab .ticket-dialog-left {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding-right: 15px;
    border-right: 1px solid #ebeef5;
    overflow-y: auto !important;
    overflow-x: hidden;
}

/* 右侧内容区：基础信息、处理信息 */
.ticket-dialog-tab .ticket-dialog-right {
    width: 600px;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    min-height: 0 !important;
    padding-left: 15px;
    overflow-y: auto !important;
    overflow-x: hidden;
}

.ticket-dialog-tab .ticket-dialog-images {
    flex-shrink: 0;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #dcdfe6;
    max-height: 150px;
    overflow-y: auto;
}

.ticket-left-form,
.ticket-right-form {
    padding-right: 0;
}

/* 无标签的表单项：隐藏标签，让输入组件占满宽度 */
.ticket-right-form .form-item-no-label .el-form-item__label {
    display: none !important;
    width: 0 !important;
    flex: 0 0 0 !important;
}
.ticket-right-form .form-item-no-label .el-form-item__content {
    margin-left: 0 !important;
    width: 100% !important;
}

.ticket-left-form .el-form-item,
.ticket-right-form .el-form-item {
    margin-bottom: 14px;
}

/* 工单等级评分组件样式 */
.ticket-rate-wrapper {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ticket-rate-wrapper .level-text {
    font-size: 13px;
    color: #606266;
    margin-left: 4px;
}

/* 工单等级说明样式 */
.level-description {
    padding: 8px 12px;
    background-color: #f5f7fa;
    border-radius: 4px;
    font-size: 13px;
    color: #606266;
    line-height: 1.5;
    border: 1px solid #ebeef5;
    min-height: 36px;
}

/* 审核信息网格布局 */
.audit-info-grid {
    font-size: 13px;
}

.audit-info-row {
    display: flex;
    gap: 12px;
    margin-bottom: 8px;
}

.audit-info-cell {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: flex-start;
    padding: 6px 8px;
    background-color: #f5f7fa;
    border-radius: 4px;
    border: 1px solid #ebeef5;
}

.audit-info-cell .audit-label {
    color: #909399;
    font-weight: 500;
    white-space: nowrap;
    flex-shrink: 0;
}

.audit-info-cell .audit-value {
    color: #303133;
    word-break: break-all;
    flex: 1;
}

/* 工单信息Tab底部审核操作栏（固定，不参与滚动） */
.audit-tab-action-bar {
    flex-shrink: 0 !important;
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid #ebeef5;
}

.audit-tab-action-bar .el-form-item {
    margin-bottom: 10px;
}

.audit-tab-action-bar .el-form-item:last-child {
    margin-bottom: 0;
}

/* ==================== 群组管理页面样式 ==================== */

/* 群组管理容器 - 上中下布局 */
.group-manage-container {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    overflow: hidden;
}

/* 群组管理头部 - 操作栏 + 查询栏 */
.group-manage-header {
    flex-shrink: 0;
    background-color: #fff;
    border-bottom: 1px solid #ebeef5;
    padding: 12px 16px;
}

/* 操作栏 */
.group-manage-header .action-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.group-manage-header .action-bar-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.group-manage-header .action-bar-right {
    display: flex;
    align-items: center;
}

/* 查询栏 */
.group-manage-header .filter-bar {
    background-color: #fafafa;
    padding: 12px 16px;
    border-radius: 4px;
}

.group-manage-header .filter-bar .el-form-item {
    margin-bottom: 0;
}

/* 群组管理内容区 - 左右布局 */
.group-manage-content {
    flex: 1;
    display: flex;
    overflow: hidden;
    min-height: 0;
}

/* 左侧群分类树 */
.group-category-tree {
    width: 280px;
    flex-shrink: 0;
    background-color: #fff;
    border-right: 1px solid #ebeef5;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* 树头部 */
.group-category-tree .tree-header {
    flex-shrink: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #ebeef5;
    background-color: #fafafa;
}

.group-category-tree .tree-title {
    font-size: 14px;
    font-weight: 600;
    color: #303133;
}

/* 树主体 */
.group-category-tree .tree-body {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
    min-height: 0;
}

/* 自定义树节点 */
.custom-tree-node {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-right: 8px;
    font-size: 14px;
}

.tree-node-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tree-node-code {
    flex-shrink: 0;
    margin-left: 6px;
    font-size: 12px;
    color: #909399;
}

/* 右侧群信息列表 */
.group-info-list {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    background-color: #fff;
}

/* 表格区域 */
.group-info-list .table-section {
    flex: 1;
    overflow: hidden;
    min-height: 0;
}

/* 分页器容器 */
.pagination-container {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 12px 16px;
    background-color: #fff;
    border-top: 1px solid #ebeef5;
}

/* 表格操作列按钮间距 */
.group-info-list .el-table .el-button + .el-button {
    margin-left: 8px;
}

/* 模态窗表单样式优化 */
.group-category-dialog .el-form-item,
.group-info-dialog .el-form-item {
    margin-bottom: 18px;
}

/* 必填字段开关组样式 */
.required-switches-group {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    padding-top: 8px 0;
}

.required-switch-item {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: #606266;
}

.required-switch-item .el-switch {
    margin-right: 8px;
}

/* 经营模式单选组样式 */
.business-mode-radio-group {
    display: flex;
    gap: 24px;
}

/* 响应式适配 */
@media (max-width: 1200px) {
    .group-category-tree {
        width: 240px;
    }
}

@media (max-width: 768px) {
    .group-manage-content {
        flex-direction: column;
    }

    .group-category-tree {
        width: 100%;
        height: 200px;
        border-right: none;
        border-bottom: 1px solid #ebeef5;
    }
}

/* 右键菜单样式 */
.context-menu {
    position: fixed;
    z-index: 9999;
    min-width: 160px;
    padding: 6px 0;
    background-color: #fff;
    border: 1px solid #e4e7ed;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    user-select: none;
}

.context-menu-item {
    display: flex;
    align-items: center;
    padding: 8px 16px;
    font-size: 14px;
    color: #606266;
    cursor: pointer;
    transition: background-color 0.2s;
}

.context-menu-item:hover {
    background-color: #ecf5ff;
    color: #409eff;
}

.context-menu-item.context-menu-danger:hover {
    background-color: #fef0f0;
    color: #f56c6c;
}

.context-menu-icon {
    margin-right: 10px;
    font-size: 14px;
    width: 16px;
    text-align: center;
}

.context-menu-icon.icon-add {
    color: #409eff;
}

.context-menu-icon.icon-edit {
    color: #e6a23c;
}

.context-menu-icon.icon-delete {
    color: #f56c6c;
}

.context-menu-item:hover .context-menu-icon.icon-add {
    color: #409eff;
}

.context-menu-item:hover .context-menu-icon.icon-edit {
    color: #e6a23c;
}

.context-menu-item:hover .context-menu-icon.icon-delete {
    color: #f56c6c;
}

.audit-tab-action-btns {
    text-align: right;
    margin-top: 8px;
}

/* 工单动态Tab样式 */
.ticket-activity-tab {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    overflow: hidden !important;
}

.activity-timeline-container {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    padding: 10px 10px 10px 0;
    min-height: 0 !important;
}

.activity-input-bar {
    flex-shrink: 0 !important;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #ebeef5;
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

/* 左侧：输入框和图片列表 */
.activity-input-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.activity-input-left .el-textarea {
    width: 100%;
}

/* 右侧：添加按钮（顶部对齐） */
.activity-input-right {
    flex-shrink: 0;
    padding-top: 2px;
}

.activity-item {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 13px;
}

.activity-tag {
    margin-right: 4px;
}

.activity-user {
    color: #409EFF;
    font-weight: 500;
    margin-right: 4px;
}

.activity-content {
    width: 100%;
    color: #606266;
    word-break: break-all;
    margin-top: 4px;
    line-height: 1.6;
}

/* 字段变更详情样式 */
.activity-change-details {
    margin-top: 8px;
    padding: 8px 12px;
    background-color: #f5f7fa;
    border-radius: 4px;
    border-left: 3px solid #409eff;
    font-size: 13px;
}

.change-detail-item {
    line-height: 1.8;
    color: #606266;
}

.change-field-name {
    color: #909399;
    font-weight: 500;
}

.change-old-value {
    color: #f56c6c;
    text-decoration: line-through;
    text-decoration-color: #f56c6c;
}

.change-old-value.empty {
    color: #c0c4cc;
    text-decoration: none;
}

.change-arrow {
    color: #909399;
    margin: 0 4px;
}

.change-new-value {
    color: #67c23a;
    font-weight: 500;
}

.change-new-value.empty {
    color: #c0c4cc;
    font-weight: normal;
}

.activity-empty {
    text-align: center;
    color: #909399;
    padding: 60px 0;
    font-size: 13px;
}

/* 查询条件按钮区不换行 */
.filter-actions .el-form-item__content {
    display: flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    gap: 4px;
}

.filter-actions .el-button {
    margin-left: 0 !important;
    padding: 8px 10px;
}

.filter-bar .el-form-item {
    margin-bottom: 12px;
}

/* 只读内容块 */
.readonly-content {
    padding: 8px 12px;
    background-color: #f5f7fa;
    border-radius: 4px;
    font-size: 13px;
    color: #606266;
    line-height: 1.8;
    word-break: break-all;
    white-space: pre-wrap;
    border: 1px solid #ebeef5;
    margin-bottom: 14px;
    min-height: 50px;
}

/* 审核弹窗中的图片分组展示 */
.audit-image-group {
    margin-bottom: 14px;
}

.audit-image-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
}

.audit-image-item {
    width: 53px;
    height: 53px;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid #e6a23c;
    box-shadow: 0 0 0 1px #e6a23c;
    transition: transform 0.2s;
    background-color: #f5f7fa;
}

.audit-image-item:hover {
    transform: scale(1.05);
}

.audit-image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 解决方案图片：绿色边框 */
.audit-image-item.audit-image-solution {
    border-color: #67c23a;
    box-shadow: 0 0 0 1px #67c23a;
}

/* 问题分析图片：蓝色边框 */
.audit-image-item.audit-image-detail {
    border-color: #409eff;
    box-shadow: 0 0 0 1px #409eff;
}

/* 动态记录图片：紫色边框 */
.audit-image-item.audit-image-activity {
    border-color: #9254de;
    box-shadow: 0 0 0 1px #9254de;
}

/* 创建/编辑弹窗中的图片分组间距 */
.ticket-edit-image-group {
    margin: 0 0 14px 80px;
}

.ticket-edit-image-group .upload-image-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ticket-edit-image-group .upload-add-btn {
    margin: 0;
}

/* 动态输入框下方的待上传图片（无左侧label，不需要左边距） */
.activity-pending-images {
    margin-left: 0 !important;
    margin-top: 8px;
}

/* 动态记录中的图片展示 */
.activity-image-group {
    margin-top: 8px;
}

.activity-image-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.activity-image-item {
    width: 60px;
    height: 60px;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid #9254de;
    box-shadow: 0 0 0 1px #9254de;
    transition: transform 0.2s;
    background-color: #f5f7fa;
}

.activity-image-item:hover {
    transform: scale(1.05);
}

.activity-image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ==================== 业务标签样式 ==================== */
.business-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.business-tag-item {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    font-size: 13px;
    line-height: 1.5;
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
    background-color: #f5f7fa;
    color: #909399;
}

.business-tag-item:hover {
    opacity: 0.8;
    transform: translateY(-1px);
}

.business-tag-item.is-selected {
    font-weight: 500;
}

/* ==================== 设备管理页面样式 ==================== */

/* 设备管理容器 - 上下布局 */
.device-manage-container {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    overflow: hidden;
}

/* 设备管理头部 - 操作栏 + 查询栏 */
.device-manage-header {
    flex-shrink: 0;
    background-color: #fff;
    border-bottom: 1px solid #ebeef5;
}

/* 页面标题 */
.page-title {
    font-size: 18px;
    font-weight: 600;
    color: #303133;
}

/* 设备管理内容区 - 左右布局 */
.device-manage-content {
    flex: 1;
    display: flex;
    overflow: hidden;
    min-height: 0;
}

/* 左侧状态导航 */
.device-sidebar {
    width: 200px;
    flex-shrink: 0;
    background-color: #fff;
    border-right: 1px solid #ebeef5;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* 侧边栏头部 */
.device-sidebar .sidebar-header {
    flex-shrink: 0;
    padding: 16px 20px 12px;
    border-bottom: 1px solid #ebeef5;
    background-color: #fafafa;
}

.device-sidebar .sidebar-title {
    font-size: 14px;
    font-weight: 600;
    color: #303133;
}

/* 侧边栏主体 */
.device-sidebar .sidebar-body {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
    min-height: 0;
}

/* 状态菜单 */
.device-status-menu {
    border-right: none !important;
    background-color: transparent !important;
}

.device-status-menu .el-menu-item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 50px !important;
    line-height: 50px !important;
    padding: 0 20px !important;
    border-left: 3px solid transparent !important;
    color: #606266 !important;
}

.device-status-menu .el-menu-item:hover {
    background-color: #ecf5ff !important;
    color: #409eff !important;
}

.device-status-menu .el-menu-item.is-active {
    background-color: #ecf5ff !important;
    color: #409eff !important;
    border-left-color: #409eff !important;
    font-weight: 500;
}

/* 菜单项左侧图标和文字 */
.device-status-menu .el-menu-item .el-icon {
    margin-right: 10px;
    font-size: 16px;
}

/* 菜单项徽章 */
.menu-badge {
    margin-left: auto;
}

/* 右侧内容区 */
.device-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    background-color: #fff;
}

/* 表格区域 */
.device-content .table-section {
    flex: 1;
    overflow: hidden;
    min-height: 0;
    padding: 0 !important;
}

/* 分页器容器 */
.device-content .pagination-container {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 12px 16px;
    background-color: #fff;
    border-top: 1px solid #ebeef5;
}

/* 密钥轮换警告 */
.key-rotation-warning {
    margin-bottom: 20px;
}

/* 响应式适配 */
@media (max-width: 1200px) {
    .device-sidebar {
        width: 180px;
    }
}

/* 处理状态确认弹窗样式 - 放大版 */
.handle-status-confirm-box {
    width: 600px !important;
    max-width: 600px !important;
}

/* 弹窗头部标题放大 */
.handle-status-confirm-box .el-message-box__title {
    font-size: 20px !important;
}

/* 警告图标放大 */
.handle-status-confirm-box .el-message-box__status {
    font-size: 48px !important;
}

/* 弹窗内容文字放大 */
.handle-status-confirm-box .el-message-box__message p {
    font-size: 18px !important;
    line-height: 1.8 !important;
}

/* 按钮放大 */
.handle-status-confirm-box .el-message-box__btns .el-button {
    min-width: 160px;
    height: 48px;
    font-size: 16px;
    padding: 0 24px;
}

/* ==================== 审核对话框自定义头部（左侧标题+右上角金色工单号） ==================== */
.audit-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.audit-dialog-title {
    font-size: 18px;
    font-weight: 600;
    color: #303133;
}

/* 右上角金色工单号：高亮醒目，区分普通信息 */
.audit-dialog-ticket-no {
    display: inline-flex;
    align-items: center;
    padding: 6px 16px;
    border-radius: 20px;
    background: linear-gradient(135deg, #fff7e6 0%, #ffe7ba 100%);
    border: 1px solid #ffd591;
    color: #d48806;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 6px rgba(212, 136, 6, 0.12);
    user-select: none;
}

/* 基础信息区内的工单编号：金色加粗显示 */
.audit-ticket-no-highlight {
    color: #d48806 !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    letter-spacing: 0.3px;
}

