﻿/* 锦鹿工作台 · 定稿竖版（真页面补丁） */
.jlw-master{ background:#fff; border:1px solid #e5e9f1; border-radius:14px; padding:14px 16px; margin:8px 0 16px;
  font:14px/1.6 "PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif; color:#1b2434; }
.jlw-people{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding-bottom:12px; border-bottom:1px solid #eef1f6; }
.jlw-p{ border:1px solid #e2e8f2; background:#fbfcfe; border-radius:999px; padding:5px 14px;
  font-size:13px; color:#41506a; cursor:pointer; font-family:inherit; }
.jlw-p:hover{ border-color:#c9d6ee; }
.jlw-p.on{ background:#eef4ff; border-color:#bcd2ff; color:#2572b7; font-weight:600; }
.jlw-link{ margin-left:auto; color:#2572b7; font-size:12.5px; text-decoration:none; }
.jlw-link:hover{ text-decoration:underline; }

.jlw-detail{ padding-top:12px; }
.jlw-sect + .jlw-sect{ border-top:1px dashed #e5e9f1; margin-top:16px; padding-top:14px; }
.jlw-sect-h{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.jlw-sect-h h2{ font-size:15px; margin:0; }
.jlw-count{ font-size:12.5px; color:#8b95a7; }
.jlw-hint{ margin-left:auto; font-size:12px; color:#8b95a7; }

.jlw-split{ display:grid; grid-template-columns:250px 1fr; gap:14px; align-items:start; }
.jlw-boards{ list-style:none; margin:0; padding:6px; background:#f7f9fd; border:1px solid #e5e9f1; border-radius:12px; }
.jlw-board{ display:flex; align-items:center; gap:9px; padding:10px 11px; border-radius:9px; cursor:pointer; border:1px solid transparent; }
.jlw-board:hover{ background:#fff; }
.jlw-board.on{ background:#fff; border-color:#cdd9f2; box-shadow:0 1px 4px rgba(37,114,183,.10); }
.jlw-board .idx{ width:26px; flex:none; color:#5b6b85; font-size:13px; font-weight:600; }
.jlw-board.on .idx{ color:#2572b7; }
.jlw-board .t{ font-size:13px; font-weight:500; line-height:1.4; overflow:hidden;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }

.jlw-items{ min-height:140px; border:1px solid #e5e9f1; border-radius:12px; padding:8px; background:#fff; }
.jlw-item{ display:flex; align-items:flex-start; gap:10px; padding:10px; }
.jlw-item + .jlw-item{ border-top:1px solid #f1f4f9; }
.jlw-item .no{ width:20px; flex:none; color:#9aa5b6; font-size:12.5px; padding-top:1px; }
.jlw-item .txt-wrap{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.jlw-item .txt{ font-size:13.5px; line-height:1.55; }
.jlw-item.done .txt{ color:#9aa5b6; text-decoration:line-through; }
.jlw-reply{ font-size:12px; color:#64748b; line-height:1.5; }
.jlw-empty{ color:#8b95a7; font-size:12.5px; text-align:center; padding:36px 0; }

.jlw-status{ font-size:12.5px; padding:1px 9px; border-radius:999px; white-space:nowrap;
  background:#f1f5f9; color:#64748b; flex:none; }
.jlw-status.done{ background:#e8f8f1; color:#0e9b6b; font-weight:600; }
.jlw-status.blocked{ background:#fdecec; color:#c0392b; }
.jlw-status.not_started{ background:#f1f5f9; color:#64748b; }
.jlw-status.unfinished{ background:#fff4e6; color:#b45309; }

@media (max-width:900px){
  .jlw-split{ grid-template-columns:1fr; }
}

/* 其他一行按钮 */
.jlw-dock{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; background:#fff; border:1px solid #e5e9f1;
  border-radius:12px; padding:10px 16px; margin:14px 0; font:13px/1.6 "PingFang SC","Microsoft YaHei",sans-serif; }
.jlw-dock-l{ font-size:12.5px; color:#8b95a7; }
.jlw-dock button{ border:1px solid #e2e8f2; background:#fbfcfe; border-radius:999px; padding:4px 14px;
  font-size:12.5px; color:#41506a; cursor:pointer; font-family:inherit; }
.jlw-dock button:hover{ border-color:#c9d6ee; }
.jlw-dock button.on{ background:#eef4ff; border-color:#bcd2ff; color:#2572b7; }

/* 按钮点开后的内容面板 */
.jlw-panel:empty{ display:none; }
.jlw-panel{ margin:0 0 16px; }
.jlw-panel > section{ margin:0 !important; }

/* 板块分隔：红色竖条 + 明显的悬停/选中 */
.jlw-board{ border-left:3px solid #f0b9b3; border-radius:8px; padding-left:10px; margin:4px 0; transition:background .12s,border-color .12s; }
.jlw-board:hover{ background:#fff; border-left-color:#c0392b; }
.jlw-board.on{ background:#fff; border-left-color:#c0392b; border-top:1px solid #f3d6d3; border-right:1px solid #f3d6d3; border-bottom:1px solid #f3d6d3; box-shadow:0 1px 4px rgba(192,57,43,.08); }

/* ---- 卡片式板块 ---- */
/* 板块列表：每块一张白卡 + 左侧红条 */
.jlw-boards{ list-style:none; margin:0; padding:0; background:transparent; border:0; display:flex; flex-direction:column; gap:8px; }

.jlw-board{
  position:relative;
  display:flex; align-items:flex-start; gap:8px;
  background:#fff;
  border:1px solid #e7ebf3;
  border-radius:10px;
  padding:11px 12px 11px 16px;
  cursor:pointer;
  transition:border-color .12s, box-shadow .12s, background .12s;
}
.jlw-board::before{
  content:"";
  position:absolute; left:6px; top:9px; bottom:9px; width:3px;
  border-radius:3px;
  background:#f0b9b3;
  transition:background .12s;
}
.jlw-board:hover{ border-color:#f0c9c4; box-shadow:0 1px 3px rgba(16,33,56,.06); }
.jlw-board:hover::before{ background:#c0392b; }

.jlw-board.on{
  border-color:#e8a9a2;
  background:#fffafa;
  box-shadow:0 2px 8px rgba(192,57,43,.10);
}
.jlw-board.on::before{ background:#c0392b; }

:is(.jlw-emp,.jlw-master) .jlw-split{
  grid-template-columns:minmax(244px, min(306px, 40%)) minmax(0, 1fr); gap:16px;
}
:is(.jlw-emp,.jlw-master) .jlw-board-state-row{
  box-sizing:border-box; height:62px; margin:0; padding:0 30px 0 15px;
  display:grid; grid-template-columns:var(--board-index, 22px) minmax(0, 1fr) 24px;
  align-items:center; gap:8px; border-color:#e2e8f0; border-radius:10px;
}
:is(.jlw-emp,.jlw-master) .jlw-board-state-row[data-hbi]{ --board-index:40px; }
:is(.jlw-emp,.jlw-master) .jlw-board-state-row::before{
  width:2px; top:11px; bottom:11px; background:transparent;
}
:is(.jlw-emp,.jlw-master) .jlw-board-state-row:hover{ border-color:#c3d3e7; }
:is(.jlw-emp,.jlw-master) .jlw-board-state-row.on{
  border-color:#b9cce7; background:#f4f8fd; box-shadow:0 1px 3px #23456b0d;
}
:is(.jlw-emp,.jlw-master) .jlw-board-state-row.on::before{ background:#35699e; }
:is(.jlw-emp,.jlw-master) .jlw-board-state-row .idx{
  width:auto; min-width:0; color:#546984; font-variant-numeric:tabular-nums;
}
:is(.jlw-emp,.jlw-master) .jlw-board-state-row.on .idx{ color:#315b89; }
:is(.jlw-emp,.jlw-master) .jlw-board-state-row .t{
  min-width:0; font-size:13px; line-height:1.45; overflow-wrap:anywhere;
}
:is(.jlw-emp,.jlw-master) .jlw-board-state-row .t:has(.jlw-inline-edit){
  display:block; overflow:visible;
}
.jlw-board-state{
  display:grid; place-items:center; justify-self:end;
  width:20px; height:20px; border-radius:50%;
  font-size:12px; font-weight:700; line-height:1; color:#42546b; background:#edf1f6;
}
.jlw-board-state.done,.jlw-board-state.approved{ color:#146345; background:#e4f3eb; }
.jlw-board-state.blocked{ color:#9b3029; background:#fbeae7; }
.jlw-board-state.unfinished{ color:#785014; background:#fbefd9; }
.jlw-board-state.pending,.jlw-board-state.continue{ color:#4d4582; background:#eeeaf8; }
.jlw-reason-link{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:5px;
  align-self:flex-start; max-width:100%; padding:2px 0; border:0; background:none;
  color:#315b89; font:inherit; font-size:12.5px; text-align:left; cursor:pointer;
  white-space:pre-wrap; overflow-wrap:anywhere;
}
.jlw-reason-link:hover{ text-decoration:underline; }
.jlw-reason-link:focus-visible{ outline:2px solid #35699e; outline-offset:2px; border-radius:2px; }
.jlw-reason-edit:empty{ display:none; }
.jlw-reason-edit{ color:#315b89; background:#eaf2fb; border-radius:4px; padding:0 4px; }
.jlw-blocker-line{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:#485c75; font-size:12.5px; }
.jlw-blocker-line span,.jlw-blocker-reply span{ overflow-wrap:anywhere; white-space:pre-wrap; }
.jlw-blocker-reply{
  display:flex; flex-wrap:wrap; gap:3px 8px; margin-top:4px; padding:5px 8px;
  background:#eef4fb; border-radius:6px; color:#315572; font-size:12.5px;
}
@media (max-width:850px){
  :is(.jlw-emp,.jlw-master) .jlw-split{ grid-template-columns:minmax(0, 1fr); }
}
.jlw-board-close{
  position:absolute; top:0; right:0;
  width:27px; height:22px; padding:0; border:0; border-radius:0 10px 0 0;
  background:transparent; color:#353b45; cursor:pointer;
}
.jlw-board-close span{
  position:absolute; top:6px; right:6px; width:9px; height:9px; font-size:0;
}
.jlw-board-close span::before,
.jlw-board-close span::after{
  content:""; position:absolute; inset:4px -1px auto; height:1px;
  background:currentColor; transform:rotate(45deg);
}
.jlw-board-close span::after{ transform:rotate(-45deg); }
.jlw-board-close:hover{ background:#e81123; color:#fff; }
.jlw-board-close:focus-visible{ outline:2px solid #2572b7; outline-offset:-3px; }
.jlw-board-close:disabled{ opacity:.5; cursor:wait; }
.jlw-emp .jlw-appr-btn[data-remove-sub]{ color:#5f6e82; }
.jlw-emp .jlw-appr-btn[data-remove-sub]:hover{ border-color:#ebc9c4; background:#fff5f3; color:#9b3029; }

.jlw-board .idx{ width:26px; flex:none; color:#5b6b85; font-size:13px; font-weight:600; line-height:1.5; }
.jlw-board.on .idx{ color:#c0392b; }
.jlw-board .t{ font-size:13px; font-weight:500; line-height:1.5; color:#1b2434;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }


/* 板块右端的完成状态图标 */
.jlw-bi{ width:18px; height:18px; flex:none; margin-left:auto; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }
.jlw-bi.ok{ background:#e8f8f1; color:#0e9b6b; }
.jlw-bi.no{ background:#fdecec; color:#c0392b; }

/* 今日板块状态图标：加大加粗 */
.jlw-bi{ width:22px; height:22px; flex:none; margin-left:auto; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; line-height:1; }
.jlw-bi.ok{ background:#0e9b6b; color:#fff; }
.jlw-bi.no{ background:#d14343; color:#fff; }

/* 我的任务列表 */
.jlw-tasks{ display:flex; flex-direction:column; gap:10px; }
.jlw-task{ background:#fff; border:1px solid #e5e9f1; border-radius:10px; padding:12px 14px; }
.jlw-task-t{ font-size:14px; font-weight:600; margin-bottom:4px; }
.jlw-task-d{ font-size:12.5px; color:#64748b; line-height:1.55; margin-bottom:6px; }
.jlw-task-m{ display:flex; gap:14px; font-size:12px; color:#8b95a7; }
.jlw-task-s{ color:#2572b7; }

/* 面板跟主内容同宽 */
.jlw-panel{ width:100%; }

.jlw-tasks-h{ font-size:13px; color:#41506a; font-weight:600; margin-bottom:10px; }

/* 先藏起来，等补丁铺好再显示，避免闪回旧版 */
/* 不再预隐藏，失败时原页面可直接显示 */

/* ---- 员工端 ---- */
.jlw-emp{ padding:2px 0; }
.jlw-emp-bar{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.jlw-emp-title{ font-size:15px; font-weight:600; }
.jlw-emp-stat{ font-size:12.5px; color:#8b95a7; }
.jlw-emp-stat b{ color:#2572b7; font-weight:600; }

.jlw-personal-report .jlw-report-toolbar{
  display:flex; justify-content:flex-end; padding:0;
}
.jlw-report-tools .jlw-report-toolbar{
  display:flex; justify-content:flex-end; padding:0;
}
.jlw-report-tools-link{
  color:#245a94; font-size:12.5px; border:1px solid #d5e2f1; border-radius:7px;
  padding:3px 9px; text-decoration:none; white-space:nowrap;
}
.jlw-report-tools-link:hover,.jlw-report-tools-link:focus-visible{
  color:#173d66; background:#eef5ff;
}
.jlw-personal-report [data-jlw-personal-report]{
  min-width:0;
}
.jlw-report-tools .jlw-report-extra{
  min-width:0; padding:12px 16px; border:1px solid #e0e7f0; border-radius:12px; background:#fff;
}
.jlw-report-tools .jlw-report-extra>summary{
  color:#28435f; cursor:pointer; font-weight:600;
}
.jlw-report-tools .jlw-report-extra[open]>summary{ margin-bottom:12px; }
.jlw-report-tools .jlw-report-extra>.wb-dw-item+.wb-dw-item{ margin-top:12px; }
.jlw-report-tools .jlw-report-extra .wb-dw-card-head{ grid-template-columns:minmax(0,1fr) auto; }
.jlw-personal-report [data-jlw-personal-report] :is(button,select):disabled{
  cursor:not-allowed; opacity:.6;
}
.jlw-personal-report [data-jlw-personal-report] [aria-disabled="true"]{ cursor:default; }
@media(max-width:640px){
  .jlw-report-tools .jlw-report-extra .wb-dw-card-head{ grid-template-columns:minmax(0,1fr); }
}

.jlw-sel{ border:1px solid #dfe5ef; border-radius:8px; padding:5px 8px; font-size:12.5px;
  background:#fff; color:#41506a; font-family:inherit; cursor:pointer; flex:none; }
.jlw-sel.st-done{ border-color:#a9dfc5; color:#0e9b6b; background:#f3fbf7; }
.jlw-sel.st-blocked{ border-color:#f0cccc; color:#c0392b; background:#fdf5f5; }
.jlw-sel.st-unfinished{ border-color:#f0dcc0; color:#b45309; background:#fffaf2; }

/* 弹窗 */
.jlw-mask{ position:fixed; inset:0; background:rgba(17,24,39,.38); z-index:100000;
  display:flex; align-items:center; justify-content:center; padding:20px; }
.jlw-card{ width:420px; max-width:92vw; background:#fff; border-radius:14px;
  box-shadow:0 18px 50px rgba(16,33,56,.22); overflow:hidden;
  font:14px/1.6 "PingFang SC","Microsoft YaHei",sans-serif; color:#1b2434; }
.jlw-card-h{ display:flex; align-items:center; padding:14px 16px; border-bottom:1px solid #eef1f6; }
.jlw-card-h h3{ margin:0; font-size:14.5px; }
.jlw-x{ margin-left:auto; border:0; background:transparent; font-size:18px; color:#9aa5b6; cursor:pointer; line-height:1; }
.jlw-card-body{ padding:14px 16px; }
.jlw-field label{ display:block; font-size:12.5px; color:#64748b; margin-bottom:6px; }
.jlw-field textarea{ width:100%; border:1px solid #dfe5ef; border-radius:9px; padding:9px 10px;
  font:13.5px/1.6 inherit; resize:vertical; box-sizing:border-box; }
.jlw-field textarea:focus{ outline:none; border-color:#2572b7; }
.jlw-card-f{ display:flex; justify-content:flex-end; gap:10px; padding:12px 16px 16px; }
.jlw-b{ border-radius:9px; padding:8px 18px; font-size:13.5px; cursor:pointer; font-family:inherit; border:1px solid transparent; }
.jlw-b.jlw-main{ background:#2572b7; color:#fff; }
.jlw-b.jlw-main:hover{ background:#1e609c; }
.jlw-b.jlw-ghost{ background:#fff; border-color:#e2e8f2; color:#41506a; }

/* 骨架占位：先把结构画出来，数据到了再替换 */
.jlw-skel-p{ display:inline-block; width:64px; height:26px; border-radius:999px; background:#eef2f8;
  margin-right:8px; animation:jlw-pulse 1.1s ease-in-out infinite; }
.jlw-skel-row{ height:52px; border-radius:10px; background:#f3f6fa; margin-bottom:8px;
  animation:jlw-pulse 1.1s ease-in-out infinite; }
.jlw-skel-box{ height:160px; border-radius:12px; background:#f3f6fa;
  animation:jlw-pulse 1.1s ease-in-out infinite; }
@keyframes jlw-pulse{ 0%,100%{opacity:1} 50%{opacity:.62} }


/* 更像最终界面的骨架 */
.jlw-skel-card{ height:52px; border-radius:10px; background:#f6f8fc; border:1px solid #eef2f8; margin-bottom:8px;
  position:relative; overflow:hidden; }
.jlw-skel-card::before{ content:""; position:absolute; left:6px; top:9px; bottom:9px; width:3px; border-radius:3px; background:#f3dfe0; }
.jlw-skel-line{ height:44px; border-radius:8px; background:#f7f9fd; margin-bottom:8px; }
.jlw-skel-card, .jlw-skel-line, .jlw-skel-p{ animation:jlw-pulse 1.15s ease-in-out infinite; }

/* 日期滑块 */
.jlw-datebar{ display:inline-flex; align-items:center; gap:4px; margin-left:8px; }
.jlw-datebar b{ font-size:13px; color:#1b2434; font-weight:600; }
.jlw-datebar em{ font-style:normal; font-size:11px; color:#0e9b6b; background:#e8f8f1; padding:0 6px; border-radius:999px; }
.jlw-nav{ border:1px solid #e2e8f2; background:#fff; border-radius:6px; width:22px; height:22px; line-height:1;
  cursor:pointer; color:#41506a; padding:0; font-size:14px; }
.jlw-nav:hover{ border-color:#c9d6ee; color:#2572b7; }
.jlw-today{ border:0; background:transparent; color:#2572b7; font-size:11.5px; cursor:pointer; }

/* 历史未完成列表 */
.jlw-hist{ border:1px solid #e5e9f1; border-radius:12px; padding:6px 8px; background:#fff; }
.jlw-hist-item{ display:flex; align-items:flex-start; gap:10px; padding:9px 6px; }
.jlw-hist-item + .jlw-hist-item{ border-top:1px solid #f1f4f9; }
.jlw-hist-item .d{ width:46px; flex:none; color:#9aa5b6; font-size:12.5px; }
.jlw-hist-item .st{ flex:none; font-size:11.5px; border-radius:999px; padding:0 7px; background:#f1f5f9; color:#64748b; }
.jlw-hist-item .st.blocked{ background:#fdecec; color:#c0392b; }
.jlw-hist-item .st.in_progress{ background:#fff4e6; color:#b45309; }
.jlw-hist-item .tt{ flex:1; font-size:13px; line-height:1.55; }

/* 审核按钮 */
.jlw-appr-btn{ border:1px solid #e2e8f2; background:#fff; border-radius:6px; padding:2px 10px; font-size:12px;
  color:#41506a; cursor:pointer; margin-left:6px; }
.jlw-appr-btn:hover{ border-color:#c9d6ee; color:#2572b7; }
.jlw-appr-btn.ghost{ color:#8b95a7; }
.jlw-appr{ font-size:11.5px; padding:1px 8px; border-radius:999px; margin-left:6px; }
.jlw-appr.end{ background:#eef1f6; color:#64748b; }
.jlw-appr.cont{ background:#fff4e6; color:#b45309; }

/* 原系统那块「历史未完结工作」隐藏，避免和我们的重复 */
#wbxUnfinished{ display:none !important; }

/* 审核：一个按钮 → ✅ ❌ */
.jlw-appr-group{ display:inline-flex; gap:6px; margin-left:6px; }
.jlw-appr-btn.ok{ border-color:#a9dfc5; color:#0e9b6b; background:#f3fbf7; }
.jlw-appr-btn.no{ border-color:#f0cccc; color:#c0392b; background:#fdf5f5; }
.jlw-appr-btn.tiny{ padding:1px 7px; font-size:11.5px; }
.jlw-appr.ok{ background:#e8f8f1; color:#0e9b6b; font-size:11.5px; padding:1px 8px; border-radius:999px; margin-left:6px; }
.jlw-appr.no{ background:#fdecec; color:#c0392b; font-size:11.5px; padding:1px 8px; border-radius:999px; margin-left:6px; }

/* 左侧小日期 */
.jlw-board .idx.jlw-date-small{ width:auto; min-width:38px; font-size:12px; color:#8b95a7; }

/* 已完成的记录：变灰加划线 */
.jlw-hist-done .t,
.jlw-hist-done .idx{ color:#b7c0cd !important; text-decoration:line-through; }
.jlw-hist-done{ opacity:.75; }

/* 可编辑区域：鼠标变文本、聚焦有边框 */
.jlw-item .txt[contenteditable],
.jlw-board .t[contenteditable]{ cursor:text; border-radius:4px; }
.jlw-item .txt[contenteditable]:focus,
.jlw-board .t[contenteditable]:focus{ outline:2px solid #bcd2ff; outline-offset:2px; background:#f8fbff; }

/* 双击编辑用的行内输入框 */
.jlw-inline-edit{ width:100%; min-height:52px; border:1px solid #9db8e8; border-radius:8px;
  padding:8px 10px; font:inherit; color:#1f2937; background:#fff; resize:vertical; outline:none;
  box-shadow:0 2px 10px rgba(31,41,55,.08); }

/* 新增行 */
.jlw-board.jlw-addrow{ border:1px dashed #c6d3e6; background:#fbfdff; color:#5b6b85; cursor:pointer; justify-content:center; }
.jlw-board.jlw-addrow:hover{ border-color:#8fb0e6; color:#2a6fd6; }

/* 加号按钮与分隔线 */
.jlw-plus{ border:1px dashed #c6d3e6; background:#fbfdff; color:#5b6b85; border-radius:8px;
  padding:6px 10px; font-size:12px; cursor:pointer; width:100%; }
.jlw-plus:hover{ border-color:#8fb0e6; color:#2a6fd6; }
.jlw-addl1{ list-style:none; margin-top:6px; }
.jlw-sep{ height:1px; background:#e8eef7; margin:6px 0; }
.jlw-item.jlw-l2 .txt{ color:#3d4a5c; }

/* 可编辑文字：鼠标变文本 */
.jlw-item .txt, .jlw-board .t{ cursor:text; }
