/* ============================================================================
 * xinghong.css — 星宏（INSPINIA / H+ admin）后台 设计层【干净重建】2026-06-02
 * 历史设计依据: docs/_archive/旧设计与演示/星宏后台界面设计蓝图.md（仅追溯，不代表当前产品规范）
 * 策略: 新建唯一权威设计层, 最后加载覆盖旧 patchwork(style/submodules/data-query/theme-override);
 *       旧 CSS 暂留逐步淘汰。业主拍板"不在旧基础改, 直接照星宏重建"。
 * 锚点: 墨蓝侧栏 #2F4050 + 青绿主操作 #1ab394 + 白表头2px下框 + 2~3px方角 + 13px密集。
 * ========================================================================== */

/* ===== 1. Token 重定义(最后 :root 覆盖旧值; 现有 markup 用 --ant-* 自动跟随) ===== */
:root {
  /* 主色 青绿 */
  --ant-primary: #1ab394;
  --ant-primary-hover: #18a689;
  --ant-primary-active: #15917a;
  --ant-primary-bg: #e6f7f2;
  --ant-primary-border: #b5e6d9;

  /* 侧栏 墨蓝(星宏经典 skin A) */
  --ant-sider-bg: #2f4050;
  --ant-brand-blue: #2f4050;
  --ant-brand-blue-light: #293846;
  --ant-brand-blue-deep: #2a3a4b;
  --ant-sider-trigger: #293846;
  --ant-sider-text: #a7b1c2;
  --ant-sider-text-hover: #ffffff;
  --ant-sider-text-active: #ffffff;
  --ant-sider-active-bg: #293846;   /* 实色整行(非半透明) */
  --ant-sider-active-bar: #19aa8d;  /* 4px 青绿竖条 */

  /* 背景 / 边框(INSPINIA 暖灰) */
  --ant-bg-page: #f3f3f4;
  --ant-bg-card: #ffffff;
  --ant-bg-hover: #f5f5f5;
  --ant-bg-selected: #e6f7f2;
  --ant-border: #e7eaec;
  --ant-border-soft: #e7eaec;
  --ant-divider: #e7eaec;

  /* 语义色(INSPINIA: info 蓝 / warning 橙 / danger 红 / success=primary 青绿) */
  --ant-success: #1ab394;
  --ant-warning: #f8ac59;
  --ant-error: #ed5565;
  --ant-info: #1c84c6;
  --ant-success-bg: rgba(26,179,148,.10);
  --ant-warning-bg: rgba(248,172,89,.12);
  --ant-error-bg: rgba(237,85,101,.10);
  --ant-info-bg: rgba(28,132,198,.10);

  /* xh 专用 */
  --xh-text: #676a6c;
  --xh-text-strong: #333333;
  --xh-text-muted: #999999;
  --xh-zebra: #f9f9f9;
  --xh-row-hover: #f5f5f5;
  --xh-head-border: #dddddd;
  --xh-input-border: #e5e6e7;
}

/* ===== 2. 全局: 字体雅黑 + 13px 密集基准 + 内容区灰底 ===== */
body { font-family: "Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important; }
.content-wrapper, .main-content, #contentContainer, .app-content { background: var(--ant-bg-page) !important; }

/* 内容区铺满: 收掉外层 #contentContainer 的大留白(原 pad32+mar24=每边56px), 内容贴近侧栏填满屏宽
 * (留白由 .ps-page 的 12px 统一提供; 之前双重留白吃掉~136px宽导致宽表被切) */
#contentContainer, .content-container { padding: 0 !important; margin: 0 !important; }

/* 圆角全局收紧到 2~3px(星宏方正; 覆盖旧 4/6/8) */
.ps-page, .ps-filterbar, .ps-content, .data-table-container, .data-query-search, .data-query-container,
.hd-hero, .hd-kpi-card, .hd-trend-card, .hd-actions, .ibox, .card, .modal-overlay > div {
  border-radius: 2px !important;
}

/* ===== 3. 数据表格(星宏: 白表头 + 2px 下边框, 居中, 13px, 斑马, hover) ===== */
table th, table thead th, .data-table th {
  background: #ffffff !important;
  color: var(--xh-text-strong) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  padding: 8px 10px !important;
  text-align: center !important;
  border-bottom: 2px solid var(--xh-head-border) !important;
  white-space: nowrap !important;
}
table td, table tbody td, .data-table td {
  padding: 8px 10px !important;
  font-size: 13px !important;
  text-align: center !important;
  color: var(--xh-text) !important;
  border-bottom: 1px solid var(--ant-border) !important;
  background: transparent !important;
  vertical-align: middle !important;
}
.data-table tbody tr:nth-child(even) td { background: var(--xh-zebra) !important; }
.data-table tbody tr:hover td { background: var(--xh-row-hover) !important; }

/* ===== 4. 状态徽章(3px 小圆角矩形 + INSPINIA 四色 + 700) ===== */
.status-badge, .level-badge {
  display: inline-block !important;
  padding: 3px 7px !important;
  border-radius: 3px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  color: #fff !important;
  border: none !important;
}
.status-badge.success, .status-badge.status-success { background: #1ab394 !important; color:#fff !important; }
.status-badge.pending, .status-badge.status-pending, .status-badge.warning { background: #f8ac59 !important; color:#fff !important; }
.status-badge.danger,  .status-badge.status-danger  { background: #ed5565 !important; color:#fff !important; }
.status-badge.info,    .status-badge.status-info,
.status-badge.primary, .status-badge.status-primary { background: #1c84c6 !important; color:#fff !important; }
.status-badge.default, .status-badge.status-default { background: #d1dade !important; color:#5e5e5e !important; }
/* 2026-06-04 徽章实心化收口:补全各页实际用的语义类名变体(原仅覆盖.success等→.status-active等落到旧淡色层=白字淡底几乎不可见)
   四色映射:绿=启用/正常/通过 | 橙=待处理/审核中 | 红=拒绝/封禁/失败 | 灰=禁用/离线(中性,非告警红) */
.status-badge.status-active, .status-badge.status-normal, .status-badge.status-approved,
.status-badge.status-completed, .status-badge.status-enabled, .status-badge.status-online,
.status-badge.status-passed, .status-badge.active { background: #1ab394 !important; color:#fff !important; }
.status-badge.status-warning, .status-badge.status-processing, .status-badge.status-in_review,
.status-badge.status-reviewing { background: #f8ac59 !important; color:#fff !important; }
.status-badge.status-rejected, .status-badge.status-banned, .status-badge.status-blacklist,
.status-badge.status-blocked, .status-badge.status-failed, .status-badge.status-error { background: #ed5565 !important; color:#fff !important; }
.status-badge.status-inactive, .status-badge.status-disabled, .status-badge.status-offline,
.status-badge.status-pending_review, .status-badge.inactive { background: #d1dade !important; color:#5e5e5e !important; }

/* ===== 5. 按钮(扁平实心 3px, 13px) ===== */
.btn-primary, button.btn-primary {
  background: #1ab394 !important; border: 1px solid #1ab394 !important; color: #fff !important;
  border-radius: 3px !important; font-size: 13px !important; box-shadow: none !important;
}
.btn-primary:hover { background: #18a689 !important; border-color:#18a689 !important; }
.btn-secondary {
  background: #fff !important; border: 1px solid var(--ant-border) !important; color: var(--xh-text) !important;
  border-radius: 3px !important; font-size: 13px !important;
}
.btn-secondary:hover { border-color: #d2d2d2 !important; }
.btn-danger  { background:#ed5565 !important; border:1px solid #ed5565 !important; color:#fff !important; border-radius:3px !important; }
.btn-info    { background:#1c84c6 !important; border:1px solid #1c84c6 !important; color:#fff !important; border-radius:3px !important; }
.btn-warning { background:#f8ac59 !important; border:1px solid #f8ac59 !important; color:#fff !important; border-radius:3px !important; }
.btn-success { background:#1ab394 !important; border:1px solid #1ab394 !important; color:#fff !important; border-radius:3px !important; }

/* ===== 6. 输入 / 下拉(34px, 2px 角, #e5e6e7 边, focus 青绿) ===== */
input[type=text], input[type=number], input[type=date], input[type=password], select,
.filter-input, .filter-select, .ps-filterbar input, .ps-filterbar select {
  border: 1px solid var(--xh-input-border) !important;
  border-radius: 2px !important;
  font-size: 13px !important;
  color: #555 !important;
}
input:focus, select:focus { border-color: #1ab394 !important; box-shadow: 0 0 0 2px rgba(26,179,148,.12) !important; outline: none !important; }

/* ===== 7. 卡片 / 筛选卡 扁平(ibox 风, 极淡阴影) ===== */
.ps-filterbar, .data-query-search, .ps-content .data-table-container, .data-table-container,
.hd-kpi-card, .hd-trend-card, .hd-actions, .hd-hero {
  box-shadow: 0 1px 1px rgba(0,0,0,.05) !important;
  border: 1px solid var(--ant-border) !important;
}

/* ===== 8. 分页(方钮组 + active 青绿) ===== */
.page-btn {
  border: 1px solid var(--xh-head-border) !important;
  border-radius: 2px !important;
  color: var(--xh-text) !important;
  background: #fff !important;
  font-size: 13px !important;
}
.page-btn:hover { background: #eee !important; }
.page-btn.active { background: #1ab394 !important; color: #fff !important; border-color: #1ab394 !important; }
.pagination-info { color: var(--xh-text) !important; font-size: 13px !important; }

/* ===== 9. 页头(标题区) 收紧, 标题深色 13~16px ===== */
.ps-title, .page-title, .data-query-header h2, .page-header h2 { color: var(--xh-text-strong) !important; }
.ps-subtitle, .page-subtitle { color: var(--xh-text-muted) !important; }

/* ============================================================================
 * 10. 星宏密集化 —— 覆盖 page-shell 的"松散 SaaS 风", 压成星宏"密集扁平边到边"
 *     星宏特征: 几乎无外留白 + 内容铺满宽度 + 单行紧凑筛选 + 表格行矮 12px + 无大卡片
 * ========================================================================== */

/* 页面容器: 铺满宽度(去 1200 居中), 留白 24→12 */
.ps-page { padding: 12px !important; max-width: none !important; }
.ps-page--list, .ps-page--config, .ps-page--detail { max-width: none !important; }

/* 页头: 细条, 标题 15px, 去副标题(星宏页名在页签里, 不要大 hero) */
.ps-header { margin-bottom: 10px !important; align-items: center !important; }
.ps-title { font-size: 15px !important; font-weight: 700 !important; }
.ps-title i { font-size: 14px !important; }
.ps-subtitle { display: none !important; }

/* 筛选条: 单行紧凑, 浅灰底, 2px 角, 小控件(星宏:label+控件+搜索钮一行平铺) */
.ps-filterbar {
  padding: 8px 12px !important; gap: 10px 14px !important; margin-bottom: 8px !important;
  background: #f9f9fb !important; border: 1px solid var(--ant-border) !important; border-radius: 2px !important;
  box-shadow: none !important;
}
.ps-filterbar__fields { gap: 10px 14px !important; }
.ps-filterbar label { font-size: 13px !important; font-weight: 400 !important; color: var(--xh-text) !important; }
.ps-filterbar input, .ps-filterbar select {
  height: 30px !important; padding: 4px 8px !important; border-radius: 2px !important;
  font-size: 13px !important; min-width: 120px !important; border: 1px solid var(--xh-input-border) !important;
}
.ps-filterbar input[type="date"] { min-width: 140px !important; }

/* 日期快捷 chip: 去药丸, 改星宏方角小标签 */
.date-chip { padding: 3px 9px !important; border-radius: 2px !important; font-size: 12px !important; font-weight: 400 !important; }

/* 内容卡: 扁平(去圆角去阴影), 表格容器铺满, 边框细 */
.ps-content .data-table-container, .data-table-container {
  border-radius: 2px !important; box-shadow: none !important; border: 1px solid var(--ant-border) !important;
  padding: 0 !important; overflow-x: auto !important;
  max-width: 100% !important;   /* 2026-06-04 修:约束容器不超父宽,宽表(min-width)在容器内横滚而非撑大整页(原 user-list 表溢出392px/leader页带累分页溢出) */
}

/* 表格再压密: 行内边距 8→5px, 字 12px(星宏密集) */
table th, table thead th, .data-table th { padding: 6px 8px !important; font-size: 12px !important; }
table td, table tbody td, .data-table td { padding: 5px 8px !important; font-size: 12px !important; }
/* 表内头像/图标缩小 */
.data-table td img, .data-table td .avatar, table td img.avatar { width: 26px !important; height: 26px !important; }

/* 统计条(总金额等): 收成细条不抢眼, 放表上方薄薄一行 */
.flow-stats {
  padding: 6px 12px !important; margin-bottom: 8px !important; border-radius: 2px !important;
  background: #f9f9fb !important; border: 1px solid var(--ant-border) !important; box-shadow: none !important;
  font-size: 13px !important;
}
.flow-stats .stat-value { color: var(--ant-error) !important; font-weight: 700 !important; }

/* 页脚分页: 收紧间距 */
.ps-footer { margin-top: 8px !important; }
.pagination-container { padding: 8px 4px !important; }

/* ============================================================================
 * 11. 侧栏密集化 —— 星宏侧栏窄(~150-180)、项矮、字 13px
 * ========================================================================== */
.sidebar { width: 180px !important; min-width: 180px !important; }
.sidebar-header { height: 50px !important; padding: 10px 16px !important; gap: 8px !important; }
.sidebar-header h2 { font-size: 15px !important; letter-spacing: -0.3px !important; }
.sidebar-logo i { font-size: 18px !important; }
.user-info { padding: 8px 16px !important; }
.sidebar-nav { padding: 6px 0 !important; }
.sidebar-nav li, #menuList li { margin: 0 !important; }
.sidebar-nav a, .sidebar-nav button,
#menuList li > a, #menuList li > button, #menuList li .menu-link, .menu-item {
  padding: 7px 16px !important; gap: 8px !important; font-size: 13px !important;
}
/* 二级子菜单缩进收紧 */
#menuList li ul a, #menuList li .submenu a, .sidebar-nav .submenu a { padding-left: 38px !important; font-size: 12.5px !important; }

/* ============================================================================
 * 12. 旧 chrome 全站密集化 —— 把未转 page-shell 的 ~51 页(page-header/data-query-
 *     header/bare-h2/other 四变体)统一压成星宏密集扁平风。纯 CSS 零逻辑改动。
 *     用 !important 压过页面注入的 <style> 与内联(同名 class 可达)。
 *     依据 workflow 全 53 页 chrome 分类清单(2026-06-02)。
 * ========================================================================== */

/* ---- 12.1 旧页头变体 → 细条(标题深色小字, 去大留白与副标题) ---- */
.page-header, .data-query-header {
  padding: 0 0 8px !important; margin: 0 0 10px !important;
  border-bottom: 1px solid var(--ant-border) !important;
  display: flex !important; align-items: center !important; justify-content: space-between !important;
}
.page-header h1, .page-header h2, .data-query-header h2, .data-query-header h1, .page-title {
  font-size: 15px !important; font-weight: 700 !important; color: var(--xh-text-strong) !important;
  margin: 0 !important; line-height: 1.4 !important;
}
.page-header h2 i, .data-query-header h2 i, .page-title i { font-size: 14px !important; color: var(--ant-primary) !important; }
.page-subtitle { font-size: 12px !important; color: var(--xh-text-muted) !important; margin: 2px 0 0 !important; }
/* 容器外层去大留白 */
.data-query-container, .page-content, .content-page { padding: 12px !important; }

/* ---- 12.2 旧筛选条变体 → 紧凑单行(浅灰底, 小控件, 13px label) ---- */
.data-query-search, .search-container, .filter-container, .filter-section, .search-filters,
.coin-search-container, .ad-income-search-container {
  padding: 8px 12px !important; gap: 8px 12px !important; margin-bottom: 8px !important;
  background: #f9f9fb !important; border: 1px solid var(--ant-border) !important; border-radius: 2px !important;
  box-shadow: none !important;
}
.filter-row { gap: 8px 12px !important; margin: 0 !important; }
.filter-item { gap: 4px !important; min-width: auto !important; margin: 0 !important; }
.data-query-search label, .search-container label, .filter-container label, .filter-item label, .filter-row label {
  font-size: 13px !important; font-weight: 400 !important; color: var(--xh-text) !important; white-space: nowrap !important;
}
.data-query-search input, .data-query-search select,
.search-container input, .search-container select,
.filter-container input, .filter-container select,
.filter-input, .filter-select, .filter-row input, .filter-row select {
  height: 30px !important; padding: 4px 8px !important; border-radius: 2px !important;
  font-size: 13px !important; border: 1px solid var(--xh-input-border) !important;
}
.filter-btns { gap: 6px !important; }

/* ---- 12.3 通用卡片 / 表单 / 网格 → 收紧 + 方角 ---- */
.card, .ibox, .form-section {
  padding: 14px !important; margin-bottom: 12px !important; border-radius: 2px !important;
  box-shadow: 0 1px 1px rgba(0,0,0,.05) !important; border: 1px solid var(--ant-border) !important;
}
.card-header { padding: 10px 14px !important; font-size: 14px !important; }
.card-body   { padding: 12px 14px !important; }
.form-group  { margin-bottom: 12px !important; }
.form-row    { gap: 10px !important; margin-bottom: 10px !important; }
.form-section h3 { margin-bottom: 10px !important; font-size: 14px !important; }
.grid-2 { gap: 10px !important; }
hr { margin: 12px 0 !important; }

/* ---- 12.4 分页条 → 紧凑右对齐 ---- */
.pagination-container, .pagination-wrapper {
  padding: 8px 4px !important; margin-top: 8px !important; gap: 6px !important; font-size: 13px !important;
  flex-wrap: wrap !important;   /* 2026-06-04 修:分页项(信息+页码+每页+跳转)过宽时换行,防横向溢出(原 leader 4页 page-jump 溢出158px) */
}
.pagination-controls { gap: 4px !important; flex-wrap: wrap !important; min-width: 0 !important; }
.page-ellipsis { color: var(--xh-text-muted) !important; }
.page-size-select { height: 30px !important; border-radius: 2px !important; font-size: 13px !important; border: 1px solid var(--xh-input-border) !important; }

/* ---- 12.5 弹窗 modal → 收紧 padding + 方角 ---- */
.modal-content, .modal-overlay > div, .modal-box {
  border-radius: 3px !important; box-shadow: 0 4px 16px rgba(0,0,0,.18) !important;
}
.modal-header { padding: 12px 16px !important; font-size: 15px !important; }
.modal-body   { padding: 14px 16px !important; }
.modal-footer { padding: 10px 16px !important; gap: 8px !important; }

/* ---- 12.6 页面特有内联 <style> 类(从清单提取, !important 压过注入样式) ---- */
.data-table-compact th, .data-table-compact td { padding: 4px 6px !important; font-size: 12px !important; }
.cs-row { margin-bottom: 12px !important; }
.rp-row { gap: 10px !important; margin-bottom: 12px !important; padding: 8px !important; align-items: center !important; }
.rp-key { width: 180px !important; }
.rp-field input, .rp-field select { min-width: 0 !important; }
.cell-num { width: 140px !important; }
.reward-input { width: 100px !important; }
.audit-stats, .blocked-stats { gap: 10px !important; margin-bottom: 10px !important; padding: 8px 0 !important; }
.batch-add-form .form-row { gap: 8px !important; }
.accordion-header { padding: 8px 14px !important; }
.menu-table th, .menu-table td { padding: 6px 10px !important; font-size: 12px !important; }
.commission-rate-cards { gap: 10px !important; }
.upload-avatar-form { gap: 10px !important; }

/* ---- 12.7 首页(home.js .hd-*)收紧到星宏密度 ---- */
.hd-hero { padding: 16px 18px !important; margin-bottom: 12px !important; border-radius: 2px !important; }
.hd-kpi-grid { gap: 10px !important; }
.hd-kpi-card { padding: 14px !important; border-radius: 2px !important; }
.hd-actions { padding: 14px !important; border-radius: 2px !important; }
.hd-kpi-card .hd-kpi-icon, .hd-actions .hd-action-icon { border-radius: 6px !important; }

/* ---- 12.8 #1残留收尾: 表内头像统一缩小(覆盖内联width/height) + 任务奖励保存钮不换行 ---- */
.data-table td img.user-avatar, table td img.user-avatar,
.data-table td img.user-avatar-sm, table td img.user-avatar-sm,
td img.user-avatar, td img.user-avatar-sm {
  width: 28px !important; height: 28px !important; object-fit: cover !important;
}
.btn-save-reward { white-space: nowrap !important; min-width: auto !important; padding: 3px 10px !important; }

/* 表格操作列按钮紧凑: 多按钮 flex-wrap 时少占高(操作密集页如用户列表行高受按钮数限制, 尽量压) */
.data-table td button.btn-sm, .data-table td .btn-sm, table td button.btn-sm, table td a.btn-sm {
  padding: 2px 7px !important; font-size: 11px !important; line-height: 1.5 !important; height: auto !important;
}
.data-table td .btn-sm i, table td .btn-sm i { margin-right: 2px !important; }
/* 操作列按钮容器: 不换行排成一行(宽表横向滚动够到), 行立刻变薄, 星宏宽表标准行为 */
.data-table td > div[style*="flex-wrap"], .data-table td > div[style*="flex"] { flex-wrap: nowrap !important; gap: 3px !important; white-space: nowrap !important; }
.data-table td button.btn-sm, table td button.btn-sm { white-space: nowrap !important; }

/* ---- 12.9 宽表适配屏宽: 去掉写死min-width, 表填满容器自适应屏宽(消除横滑) ----
 * 长用户编号统一由 .compact-identifier 缩写，不再用极小字号硬塞。 */
.ps-content table.data-table, .data-table-container table.data-table {
  min-width: 0 !important; width: 100% !important;
}
/* ---- 12.10 宽表(data-table-compact)照星宏: 11px密集 + 单元格上限+长内容省略, 让多列也能塞进屏宽 ---- */
.data-table-compact th, .data-table-compact td { font-size: 11px !important; padding: 4px 6px !important; }
.data-table-compact td {
  max-width: 140px !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important;
}
.data-table-compact td:hover { overflow: visible !important; white-space: normal !important; word-break: break-all !important; position: relative !important; }

/* 列表中的长用户/团长/师傅编号：缩写但可查看、可复制完整值。 */
.compact-identifier {
  all: unset !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  max-width: 132px !important;
  padding: 2px 6px !important;
  border-radius: 3px !important;
  color: var(--ant-info) !important;
  background: var(--ant-bg-page) !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
  font-size: 11px !important;
  line-height: 18px !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}
.compact-identifier:hover { background: var(--ant-bg-hover) !important; color: var(--ant-primary-hover) !important; }
.compact-identifier:focus-visible { outline: 2px solid var(--ant-info) !important; outline-offset: 2px !important; }
.compact-identifier i { flex: 0 0 auto !important; font-size: 10px !important; opacity: .65 !important; }
.compact-identifier-empty { color: var(--ant-text-tertiary); }
