body { margin:0; font-family:"Microsoft YaHei",system-ui,sans-serif; background:#f5f7fa; }
#app { height:100vh; }
.login-wrap { height:100vh; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#1f2d3d 0%,#2b3a55 60%,#409EFF 100%); }
.login-card { width:380px; border-radius:8px; }
.login-title { text-align:center; font-size:20px; font-weight:bold; margin-bottom:6px; color:#1f2d3d; }
.login-sub { text-align:center; color:#909399; margin-bottom:20px; }
.sidebar { height:100vh; }
.aside-menu { border-right:1px solid #e6e6e6; height:100%; overflow-y:auto; }
.main-header { background:#fff; padding:0 16px; border-bottom:1px solid #e6e6e6;
  display:flex; align-items:center; justify-content:space-between; height:50px; }
.app-main { padding:16px; }
.page-card { background:#fff; padding:16px; border-radius:6px; }
.stat-card { background:#fff; border-radius:6px; padding:16px; text-align:center;
  border:1px solid #ebeef5; }
.stat-card .num { font-size:26px; font-weight:bold; color:#303133; }
.stat-card .label { color:#909399; margin-top:4px; font-size:13px; }
.stat-card.s { border-top:3px solid #F56C6C; }
.stat-card.a { border-top:3px solid #E6A23C; }
.pointer { cursor:pointer; }
.grade-s { background:#F56C6C; color:#fff; border-radius:3px; padding:1px 6px; font-size:12px; }
.grade-a { background:#E6A23C; color:#fff; border-radius:3px; padding:1px 6px; font-size:12px; }
.grade-b { background:#409EFF; color:#fff; border-radius:3px; padding:1px 6px; font-size:12px; }
.grade-c { background:#909399; color:#fff; border-radius:3px; padding:1px 6px; font-size:12px; }
.grade-d { background:#c0c4cc; color:#fff; border-radius:3px; padding:1px 6px; font-size:12px; }

/* ===== 微信聊天气泡 ===== */
.msg-sender { font-size:12px; color:#909399; margin-bottom:2px; }
.msg-bubble { max-width:80%; padding:8px 12px; border-radius:8px; font-size:14px; line-height:1.5; white-space:pre-wrap; word-break:break-word; }
.msg-bubble.customer { background:#95ec69; align-self:flex-start; }
.msg-bubble.sales { background:#fff; border:1px solid #ebeef5; align-self:flex-end; }

/* ===== 移动端自适应 ===== */
.burger { cursor:pointer; font-size:20px; margin-right:8px; display:inline-flex; align-items:center; }
.main-header { gap:8px; }
.main-header .brand { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.main-header .user-box { white-space:nowrap; }

/* 表格在窄屏允许横向滚动（保留列信息，可滑动查看） */
@media (max-width: 768px) {
  .app-main { padding:8px; }
  .page-card { padding:10px; }
  .el-table { font-size:12px; }
  .el-table .cell { white-space:nowrap; }
  /* 对话框窄屏全宽 */
  .el-dialog { width: 94% !important; max-width: 94% !important; margin: 6vh auto !important; }
  /* 描述列表窄屏改单列 */
  .el-descriptions__table { max-width: 100%; }
  .el-form--inline .el-form-item { margin-right: 4px; }
}
/* 超窄屏统计卡片两列 */
@media (max-width: 480px) {
  .stat-card { padding:10px; }
  .stat-card .num { font-size:20px; }
  .login-card { width:90%; }
}