/* BODHI Dashboard · css/jobs.css · 后台生成任务信箱 📬（红点 / 面板 / 条目 / 失败原因）
   ⚠ 层叠顺序 = index.html 里 <link> 的先后，别随手调换。*/

/* 后台生成任务信箱：顶栏 + 镜次面板 📬 按钮 + 点开的悬浮任务列表
   （视频 /api/generate + AI 生图/改图；z=220 压过 aigen/editor/picker） */
.jobs-dot {
  position: absolute;
  top: 1px;
  right: 1px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgb(220 38 38);
  box-shadow: 0 0 0 2px white;
}
.dark .jobs-dot { box-shadow: 0 0 0 2px rgb(28 25 23); }
.jobs-panel {
  position: fixed;
  z-index: 220;
  width: min(440px, calc(100vw - 16px));
  max-height: 70vh;
  overflow-y: auto;
  background: white;
  border: 1px solid rgb(214 211 209);
  border-radius: 8px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);
  padding: 4px;
}
.dark .jobs-panel { background: rgb(28 25 23); border-color: rgb(68 64 60); }
.jobs-row { padding: 8px 10px; border-radius: 6px; }
.jobs-row + .jobs-row { border-top: 1px solid rgb(231 229 228); }
.dark .jobs-row + .jobs-row { border-top-color: rgb(41 37 36); }
/* 可点条目（视频→镜次详情 / 生图→重开面板） */
.jobs-row-click { cursor: pointer; }
.jobs-row-click:hover { background: rgb(245 245 244); }
.dark .jobs-row-click:hover { background: rgb(41 37 36); }
.jobs-more {
  margin-left: auto;
  flex-shrink: 0;
  font-size: 10px;
  padding: 0 4px;
  border-radius: 4px;
  color: rgb(120 113 108);
}
.jobs-more:hover { background: rgb(231 229 228); color: rgb(41 37 36); }
.dark .jobs-more:hover { background: rgb(68 64 60); color: rgb(231 229 228); }
.jobs-note {
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.5;
  color: rgb(120 113 108);
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.jobs-tail {
  margin-top: 4px;
  font-size: 10px;
  line-height: 1.4;
  color: rgb(120 113 108);
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 4.2em;
  overflow: hidden;
}
/* 失败原因摘要（末行）：常驻可见、红底，不用点「全文」就知道为啥挂了 */
.jobs-err {
  margin-top: 3px;
  padding: 3px 5px;
  border-radius: 4px;
  font-size: 10px;
  line-height: 1.45;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: rgb(185 28 28);
  background: rgb(254 242 242);
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.dark .jobs-err { color: rgb(252 165 165); background: rgb(69 26 26); }
/* 完整报错 + 日志出处只在展开区（收起时由上面的摘要代表，免重复占满面板） */
.jobs-tail-err, .jobs-errsrc { display: none; }
.jobs-errsrc { margin-top: 3px; font-size: 10px; color: rgb(120 113 108); overflow-wrap: anywhere; }
/* 「▸ 全文」展开：note 去掉行数夹取、tail 放开高度并可自行滚动，长文本不再截断 */
.jobs-row-open .jobs-note { -webkit-line-clamp: unset; display: block; overflow: visible; }
.jobs-row-open .jobs-err { -webkit-line-clamp: unset; display: block; overflow: visible; }
.jobs-row-open .jobs-tail { max-height: 24em; overflow-y: auto; }
.jobs-row-open .jobs-tail-err { display: block; max-height: 24em; overflow-y: auto; }
.jobs-row-open .jobs-errsrc { display: block; }
.dark .jobs-tail { color: rgb(146 138 132); }
