/* ============================================================
   Agent 平台 · jzgai 风格换肤（UI改造·第一批 / 工单#73）
   设计令牌唯一来源：全站色值只允许出现在本文件。
   ============================================================ */
/* ---------- 自托管字体（jzgai 同款，本地 /fonts/ 伺服） ---------- */
@font-face{font-family:'Nunito';font-weight:100 900;font-display:swap;
  src:url(/fonts/nunito.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-weight:100 800;font-display:swap;
  src:url(/fonts/jbmono.woff2) format('woff2')}

:root{
  /* ---------- 主色 ---------- */
  --jz-primary:#4A90D9; --jz-primary-hover:#3A7BC0; --jz-primary-soft:#F0F5FF;
  /* ---------- 语义色（各配 soft 浅底） ---------- */
  --jz-success:#34C759; --jz-success-soft:#EBF9F0;
  --jz-warning:#FF9500; --jz-warning-soft:#FFF4E5;
  --jz-danger:#FF3B30;  --jz-danger-soft:#FFEDEC;
  --jz-info:#AF52DE;    --jz-info-soft:#F7EFFC;
  --jz-accent:#FF784B;  --jz-accent-soft:#FFF1EB;
  /* ---------- 中性色 ---------- */
  --jz-text-1:#1D1D1F; --jz-text-2:#6E6E73; --jz-text-3:#8E8E93;
  --jz-border:#E5E7EB; --jz-bg-page:#F7F8FA; --jz-bg-card:#FFFFFF;
  /* ---------- 工单优先级 ---------- */
  --jz-p0:#FF3B30; --jz-p1:#FF9500; --jz-p2:#8E8E93;
  /* ---------- 圆角 / 阴影 / 间距 ---------- */
  --jz-radius-ctl:6px;   /* 按钮/输入 */
  --jz-radius-card:10px; /* 卡片 */
  --jz-radius-pill:999px;
  --jz-shadow:0 1px 2px rgba(16,24,40,.05);
  --jz-shadow-hover:0 4px 12px rgba(16,24,40,.08);
  /* ---------- 字体 ---------- */
  --jz-font:"Nunito","PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,sans-serif;
  --jz-mono:"JetBrains Mono","SFMono-Regular",Consolas,monospace;

  /* ---------- 存量变量映射（组件零改动换肤） ---------- */
  --bg:var(--jz-bg-page); --card:var(--jz-bg-card);
  --text:var(--jz-text-1); --muted:var(--jz-text-3); --border:var(--jz-border);
  --primary:var(--jz-primary);
  --green:var(--jz-success); --yellow:var(--jz-warning);
  --red:var(--jz-danger); --gray:var(--jz-text-3);
  --sidebar:var(--jz-bg-card); --sidebar-text:var(--jz-text-2); --sidebar-active:var(--jz-primary-soft);
  --radius:var(--jz-radius-card); --shadow:var(--jz-shadow);
}

/* ---------- 字体 ---------- */
body{font-family:var(--jz-font)}
.md-body code,.md-body pre,.token-box{font-family:var(--jz-mono)}

/* ---------- 导航（浅色侧栏 + 主色指示条，对应规范"白底主色指示条"） ---------- */
.sidebar{border-right:1px solid var(--jz-border);padding-top:16px}
.sidebar .logo{color:var(--jz-text-1)}
.nav-item{border-radius:var(--jz-radius-ctl);color:var(--jz-text-2);position:relative}
.nav-item:hover{background:var(--jz-primary-soft);color:var(--jz-primary)}
.nav-item.active{background:var(--jz-primary-soft);color:var(--jz-primary);font-weight:600}
.nav-item.active::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;
  border-radius:2px;background:var(--jz-primary)}
.sidebar .foot{color:var(--jz-text-3)}

/* ---------- 卡片 ---------- */
.card{border-radius:var(--jz-radius-card);box-shadow:var(--jz-shadow)}
.card:hover{box-shadow:var(--jz-shadow-hover)}
.stat-card{border-radius:var(--jz-radius-card)}

/* ---------- 按钮 / 输入 / 标签 ---------- */
.el-button{border-radius:var(--jz-radius-ctl)}
.el-button--primary{--el-button-bg-color:var(--jz-primary);--el-button-border-color:var(--jz-primary);
  --el-button-hover-bg-color:var(--jz-primary-hover);--el-button-hover-border-color:var(--jz-primary-hover);
  --el-button-active-bg-color:var(--jz-primary-hover)}
.el-input__wrapper,.el-select__wrapper,.el-textarea__inner{border-radius:var(--jz-radius-ctl)}
.el-tag{border-radius:var(--jz-radius-pill)}
.type-badge{border-radius:var(--jz-radius-pill);background:var(--jz-primary-soft);color:var(--jz-primary)}
.chip{border-radius:var(--jz-radius-pill)}

/* ---------- 表格（行高 48px、悬停主色浅底） ---------- */
.el-table td.el-table__cell,.el-table th.el-table__cell{padding:12px 0}  /* ≈48px 行高 */
.el-table{--el-table-row-hover-bg-color:var(--jz-primary-soft)}

/* ---------- 工单卡：左侧 4px 状态色条 ---------- */
.card[data-status]{border-left:4px solid transparent;padding-left:14px}
.card[data-status="pending"]{border-left-color:var(--jz-warning)}
.card[data-status="claimed"]{border-left-color:var(--jz-primary)}
.card[data-status="done"]{border-left-color:var(--jz-success)}
.card[data-status="failed"]{border-left-color:var(--jz-danger)}

/* ---------- 状态 pill 配色走语义色 ---------- */
.pill.g{background:var(--jz-success-soft);color:var(--jz-success)}
.pill.y{background:var(--jz-warning-soft);color:var(--jz-warning)}
.pill.r{background:var(--jz-danger-soft);color:var(--jz-danger)}
.pill.gr{background:var(--jz-bg-page);color:var(--jz-text-3)}

/* ---------- 控制台网格防溢出（修布局错位根因） ---------- */
.console-grid{grid-template-columns:minmax(0,1fr) 340px}
.console-grid>*{min-width:0}
.cal-grid{min-width:0}
.cal-cell{min-width:0;overflow:hidden;text-overflow:ellipsis}

/* ---------- 统计卡：jzgai 浅蓝渐变（批3） ---------- */
.stat-card{background:linear-gradient(160deg,var(--jz-primary-soft) 0%,var(--jz-bg-card) 70%)}
.stat-card:nth-child(2){background:linear-gradient(160deg,var(--jz-success-soft) 0%,var(--jz-bg-card) 70%)}
.stat-card:nth-child(3){background:linear-gradient(160deg,var(--jz-warning-soft) 0%,var(--jz-bg-card) 70%)}
.stat-card:nth-child(4){background:linear-gradient(160deg,var(--jz-accent-soft) 0%,var(--jz-bg-card) 70%)}

/* ---------- 空态统一（批2） ---------- */
.empty{padding:26px 0;text-align:center;color:var(--jz-text-3);font-size:12.5px}
.empty::before{content:"🗂️";display:block;font-size:22px;opacity:.45;margin-bottom:6px}

/* ---------- 登录页：jzgai 浅色明亮系（原深色渐变退役） ---------- */
.login-page{background:linear-gradient(160deg,var(--jz-primary-soft) 0%,var(--jz-bg-page) 55%,#fff 100%)}
.login-card{border:1px solid var(--jz-border);box-shadow:var(--jz-shadow-hover)}
.login-card h2{color:var(--jz-text-1)}

/* ---------- 滚动条 / 选中态 / focus ---------- */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--jz-border);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--jz-text-3)}
::selection{background:var(--jz-primary-soft);color:var(--jz-primary)}
:focus-visible{outline:2px solid var(--jz-primary);outline-offset:1px;border-radius:4px}

/* ---------- 弹窗 / 日历 / 提醒条圆角统一 ---------- */
.el-dialog,.el-message-box{border-radius:var(--jz-radius-card)}
.cal-cell{border-radius:var(--jz-radius-ctl)}
.opt-bar{border-radius:var(--jz-radius-ctl)}
.login-card{border-radius:var(--jz-radius-card)}
