:root{
  /* ===== Pro UI Theme (enterprise, high-contrast, airy) ===== */
  --bg: #f8fafc;
  --panel: #ffffff;
  --text: #0f172a;
  --muted: #64748b;

  --border: rgba(15,23,42,.10);
  --border-2: rgba(15,23,42,.16);

  --shadow: 0 1px 2px rgba(15,23,42,.06);
  --shadow-2: 0 10px 30px rgba(15,23,42,.08);

  --radius: 16px;
  --radius2: 20px;

  /* brand */
  --primary: #0f172a;
  --primaryText: #ffffff;
  --accent: #2563eb;
}

/* page rhythm */
.main{ padding: 18px 0 48px; }

/* card: softer border, premium shadow */
.card{
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: var(--shadow-2);
}

/* buttons: clearer hierarchy */
.btn{ border-radius: 12px; }
.btn.primary{
  background: var(--primary);
  border-color: rgba(15,23,42,.18);
}
.btn.primary:hover{ filter: brightness(.98); }

.btn.ghost{
  background: transparent;
  border-color: transparent;
}
.btn.ghost:hover{ background: rgba(37,99,235,.08); border-color: rgba(37,99,235,.12); }

/* tags (missing in base) */
.tag{
  display:inline-flex;
  align-items:center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  border: 1px solid var(--border);
  background: rgba(148,163,184,.12);
  color: #334155;
  white-space: nowrap;
}
.tag.ok{ background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.20); color:#0f766e; }
.tag.warn{ background: rgba(245,158,11,.14); border-color: rgba(245,158,11,.22); color:#b45309; }
.tag.danger{ background: rgba(239,68,68,.10); border-color: rgba(239,68,68,.20); color:#b91c1c; }
.tag.info{ background: rgba(37,99,235,.10); border-color: rgba(37,99,235,.20); color:#1d4ed8; }

/* tables: cleaner header + hover */
.table{
  border-radius: var(--radius);
  border-color: rgba(15,23,42,.08);
}
.table th{
  background: linear-gradient(to bottom, #ffffff, #fbfbfd);
  color: #334155;
}
.table tr:hover td{ background: rgba(37,99,235,.04); }

/* utility: page header (optional) */
.page-hd{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 14px;
  flex-wrap:wrap;
  margin-bottom: 14px;
}
.page-hd .left{ display:flex; flex-direction:column; gap:6px; }
.page-hd .title{ font-size: 18px; font-weight: 900; letter-spacing: .2px; }
.page-hd .desc{ font-size: 12.5px; color: var(--muted); }
.page-hd .right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

/* KPI strip */
.kpi-strip{
  display:grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: var(--radius);
  background: rgba(255,255,255,.86);
  box-shadow: 0 1px 0 rgba(15,23,42,.04);
  margin-bottom: 14px;
}
.kpi{
  padding: 10px 12px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(15,23,42,.06);
}
.kpi .k{ font-size: 12px; color: var(--muted); font-weight: 800; }
.kpi .v{ margin-top: 6px; font-size: 18px; font-weight: 900; color: var(--text); }

/* WF stage cards */
.wf-stage-grid{ gap: 12px !important; }
.wf-stage-card{
  padding: 14px !important;
  border-radius: var(--radius) !important;
  box-shadow: 0 8px 24px rgba(15,23,42,.08);
}
.wf-stage-card .wf-stage-name{ font-weight: 900; }
.wf-stage-card .wf-stage-meta{ margin-top: 6px; font-size: 12px; color: var(--muted); }
.wf-stage-actions{
  margin-top: 12px;
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
}

@media (max-width: 860px){
  .kpi-strip{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ===== WF Situation / Dashboard (Pro) ===== */
.wfpro{ display:block; }
.wfpro .muted{ color: var(--muted) !important; }

.wfpro .kpi-strip{ background: rgba(255,255,255,.92); }

.tag.todo{ background: rgba(148,163,184,.14); border-color: rgba(148,163,184,.26); color:#334155; }
.tag.doing{ background: rgba(37,99,235,.10); border-color: rgba(37,99,235,.20); color:#1d4ed8; }
.tag.block{ background: rgba(239,68,68,.10); border-color: rgba(239,68,68,.20); color:#b91c1c; }
.tag.done{ background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.20); color:#0f766e; }

.wfpro .section-title{
  margin: 14px 0 10px;
  font-size: 14px;
  font-weight: 900;
  color: var(--text);
  letter-spacing: .2px;
}

.wfpro .table td{ font-size: 13px; }
.wfpro .table th{ font-size: 12px; }

.wf-score{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.wf-score .pct{ font-weight: 900; color: var(--text); }
.wf-score .bar{
  height: 8px;
  border-radius: 999px;
  background: rgba(148,163,184,.22);
  overflow:hidden;
}
.wf-score .bar > i{
  display:block;
  height: 100%;
  width: var(--p, 0%);
  background: linear-gradient(90deg, rgba(37,99,235,.95), rgba(16,185,129,.85));
  border-radius: 999px;
}

.wf-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.wf-actions .btn{ padding: 8px 12px; }
.wf-actions .btn.btn-sm{ padding: 6px 10px; }

@media (max-width: 860px){
  .wfpro .kpi-strip{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ===== WF Matrix (Stage Board) Pro v4 ===== */
.wfpro .wfbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin: 6px 0 12px;
}

/* segmented control (filter) */
.wfseg{
  display:inline-flex;
  align-items:center;
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 12px;
  overflow:hidden;
  background: rgba(255,255,255,.92);
  box-shadow: 0 1px 0 rgba(15,23,42,.04);
}
.wfseg .seg{
  height: 34px;
  padding: 0 12px;
  font-size: 12.5px;
  font-weight: 900;
  border: 0;
  background: transparent;
  color: #334155;
  cursor:pointer;
}
.wfseg .seg + .seg{ border-left: 1px solid rgba(15,23,42,.10); }
.wfseg .seg:hover{ background: rgba(37,99,235,.06); }
.wfseg .seg.active{ background: rgba(37,99,235,.10); color:#1d4ed8; }

/* matrix quick stats */
.wfstats{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  flex-wrap:wrap;
  padding: 10px 12px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: var(--radius);
  background: rgba(255,255,255,.92);
  box-shadow: 0 1px 0 rgba(15,23,42,.04);
  margin: 0 0 12px;
}
.wfstats .left{ display:flex; align-items:center; gap: 12px; flex-wrap:wrap; }
.wfstats .bar{
  width: 220px;
  height: 8px;
  border-radius: 999px;
  background: rgba(148,163,184,.22);
  overflow:hidden;
}
.wfstats .bar > i{
  display:block;
  height:100%;
  width: var(--p, 0%);
  background: linear-gradient(90deg, rgba(37,99,235,.95), rgba(16,185,129,.85));
  border-radius: 999px;
}
.wfstats .legend{ display:flex; align-items:center; gap: 8px; flex-wrap:wrap; }
.wfstats .pill{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(148,163,184,.12);
  color:#334155;
  font-size: 12px;
  font-weight: 900;
}
.wfstats .pill b{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; }
.wfstats .pill.todo{ background: rgba(148,163,184,.14); border-color: rgba(148,163,184,.22); }
.wfstats .pill.doing{ background: rgba(37,99,235,.10); border-color: rgba(37,99,235,.20); color:#1d4ed8; }
.wfstats .pill.block{ background: rgba(239,68,68,.10); border-color: rgba(239,68,68,.20); color:#b91c1c; }
.wfstats .pill.done{ background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.20); color:#0f766e; }

@media (max-width: 720px){
  .wfstats .bar{ width: 160px; }
}

/* matrix filter highlight (best effort) */
.wfpro .wfwrap[data-filter="DOING"] .wfDot:not([data-status="DOING"]),
.wfpro .wfwrap[data-filter="DOING"] .wfcell:not([data-status="DOING"]){
  opacity: .18;
}
.wfpro .wfwrap[data-filter="BLOCK"] .wfDot:not([data-status="BLOCK"]),
.wfpro .wfwrap[data-filter="BLOCK"] .wfcell:not([data-status="BLOCK"]){
  opacity: .18;
}

/* scroll container (flex version) */
.wfpro{
  display:flex;
  flex-direction:column;
  min-height:0;
}

.wfpro .wfwrap{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;

  border: 1px solid rgba(15,23,42,.08);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 10px 30px rgba(15,23,42,.06);

  overscroll-behavior: contain;
}

/* sizing vars (JS may override) */
.wfpro .wfwrap{ --col-no: 38px; --proc-w: 12em; --col-obj: 44px; }

.wfpro .wftable{
  border-collapse: separate;
  border-spacing: 0;
  width: max-content;
  min-width: 100%;
}

/* cells */
.wfpro .wftable th,
.wfpro .wftable td{
  padding: 7px 10px;
  border-bottom: 1px solid rgba(15,23,42,.06);
  border-right: 1px solid rgba(15,23,42,.06);
  font-size: 12.5px;
  white-space: nowrap;
  text-align: left;
}
.wfpro .wftable th{
  position: sticky;
  top: 0;
  z-index: 5;
  background: linear-gradient(to bottom, #ffffff, #fbfbfd);
  color: #334155;
}

/* row hover */
.wfpro .wftable tbody tr:hover td{ background: rgba(37,99,235,.035); }

/* sticky columns */
.wfpro .wftable .sticky{
  position: sticky;
  left: 0;
  z-index: 6;
  background: #fff;
  min-width: var(--col-no);
  width: var(--col-no);
}
.wfpro .wftable .sticky2{
  position: sticky;
  left: var(--col-no);
  z-index: 6;
  background: #fff;
  width: var(--proc-w);
  min-width: var(--proc-w);
  max-width: var(--proc-w);
  overflow: hidden;
  text-overflow: ellipsis;
}
/* sticky boundary shadow for depth */
.wfpro .wftable .sticky2{
  box-shadow: 10px 0 20px rgba(15,23,42,.06);
}

/* group rows */
.wfpro .wftable .group td{
  background: rgba(15,23,42,.03);
  font-weight: 900;
  color: #0f172a;
}

/* header second row (assignee row) */
.wfpro .wftable thead tr:nth-child(2) th{ top: 40px; }

/* object columns */
.wfpro .wfCellTh,
.wfpro .wfCellTd{
  text-align: center;
  padding: 4px 6px !important;
  min-width: var(--col-obj);
  width: var(--col-obj);
}
.wfpro .wftable thead th.wfCellTh{ text-align:center; }

/* remark col (stage_matrix_v2: 缩成“两个字”宽度) */
.wfpro .wfRemarkTh{
  width: 3.2em;
  min-width: 3.2em;
  max-width: 3.2em;
  text-align:center;
  padding: 4px 4px !important;
}

/* group range in timeline col */
.wfpro .wfGroupRange{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:12px;
  color:#0f172a;
  padding: 0 6px;
  white-space:nowrap;
}
.wfpro .wfGroupRange.empty{ color: rgba(100,116,139,.75); }
.wfpro .wfGroupRange .gstart,
.wfpro .wfGroupRange .gend{
  display:inline-flex;
  align-items:center;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.9);
}

/* dots */
.wfpro .wfDot,
.wfpro .wfNoteDot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: block;
  margin: 0 auto;
  border: 1px solid rgba(15,23,42,.18);
  box-shadow: 0 1px 2px rgba(15,23,42,.08);
  cursor: pointer;
  transition: transform .08s ease, filter .08s ease;
}
.wfpro .wfDot:hover,
.wfpro .wfNoteDot:hover{ transform: translateY(-1px); filter: brightness(1.02); }

.wfpro .wfDot.disabled,
.wfpro .wfNoteDot.disabled{ cursor:not-allowed; opacity:.45; }

.wfpro .wfDot[data-status="TODO"],
.wfpro .wfNoteDot.empty{ background: rgba(148,163,184,.70); }
.wfpro .wfDot[data-status="DOING"]{ background: rgba(37,99,235,.85); }
.wfpro .wfDot[data-status="DONE"]{ background: rgba(16,185,129,.85); }
.wfpro .wfDot[data-status="BLOCK"]{ background: rgba(239,68,68,.85); }
.wfpro .wfNoteDot.has{ background: rgba(245,158,11,.85); }

/* assignee pill */
.wfpro .wfAssigneePill{
  cursor:pointer;
  border-radius: 999px;
  padding: 4px 10px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.9);
  margin:0 auto;
  font-size: 12px;
  line-height: 1.2;
  max-width: 64px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.wfpro .wfAssigneePill.empty{ opacity:.65; }

/* compact density */
.wfpro .wfwrap.compact{
  flex:1 1 auto;
  min-height:0;
  --col-no: 32px;
}
.wfpro .wfwrap.compact .wftable th,
.wfpro .wfwrap.compact .wftable td{ padding: 5px 8px; font-size: 12px; }
.wfpro .wfwrap.compact .wfCellTh,
.wfpro .wfwrap.compact .wfCellTd{ padding: 2px 4px !important; }

/* compact: cell capsule progress (90% width) */
.wfpro .wfwrap.compact .wfDotWrap.wfCapWrap{ display:flex; align-items:center; justify-content:center; width:100%; }
.wfpro .wfwrap.compact .wfDot.wfCap{
  width: 90%;
  height: 12px;
  border-radius: 6px;
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  border: 1px solid rgba(15,23,42,.16);
  box-shadow: 0 1px 2px rgba(15,23,42,.06);
  background: rgba(148,163,184,.35); /* TODO default */
  transform:none !important;
}
.wfpro .wfwrap.compact .wfDot.wfCap:hover{ filter: brightness(1.02); }
.wfpro .wfwrap.compact .wfDot.wfCap.nocell{ cursor: default; }
.wfpro .wfwrap.compact .wfDot.wfCap.disabled{ cursor:not-allowed; opacity:.45; }
.wfpro .wfwrap.compact .wfDot.wfCap[data-status="DOING"]{ background: rgba(37,99,235,.12); }
.wfpro .wfwrap.compact .wfDot.wfCap[data-status="DONE"]{ background: rgba(16,185,129,.12); }
.wfpro .wfwrap.compact .wfDot.wfCap[data-status="BLOCK"]{ background: rgba(239,68,68,.12); }
.wfpro .wfwrap.compact .wfDot.wfCap[data-status="TODO"]{ background: rgba(148,163,184,.35); }

.wfpro .wfwrap.compact .wfCapFill{ position:absolute; left:0; top:0; bottom:0; border-radius:6px; }
.wfpro .wfwrap.compact .wfCapText{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  color: rgba(255,255,255,.85);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .2px;
  text-shadow: 0 1px 2px rgba(15,23,42,.25);
  line-height: 1;
  pointer-events:none;
}
.wfpro .wfwrap.compact .wfCapText.black{
  color: #111827;
  text-shadow:none;
}

/* time anomaly outline */
.wfpro .wfwrap.compact .wfDot.wfCap.ok{ border-color: rgba(16,185,129,.75); box-shadow: 0 0 0 2px rgba(16,185,129,.10), 0 1px 2px rgba(15,23,42,.06); }
.wfpro .wfwrap.compact .wfDot.wfCap.warn{ border-color: rgba(245,158,11,.80); box-shadow: 0 0 0 2px rgba(245,158,11,.12), 0 1px 2px rgba(15,23,42,.06); }
.wfpro .wfwrap.compact .wfDot.wfCap.bad{ border-color: rgba(239,68,68,.85); box-shadow: 0 0 0 2px rgba(239,68,68,.14), 0 1px 2px rgba(15,23,42,.06); }
.wfpro .wfwrap.compact .wfNoteDot{ width: 12px; height: 12px; }

/* hide assignee row in compact (admin_wf.js toggles .is-hidden) */
.wfpro .wftable thead tr.wfAssigneeRow.is-hidden th{
  padding:0 !important;
  border-bottom:none !important;
  height:0 !important;
  line-height:0 !important;
  font-size:0 !important;
  overflow:hidden !important;
}
.wfpro .wftable thead tr.wfAssigneeRow.is-hidden th *{ display:none !important; }

/* drag cursor */
.wfpro .wfwrap.drag-ready{ cursor: grab; }
.wfpro .wfwrap.dragging{ cursor: grabbing; user-select:none; }

@media(max-width: 720px){
  .wfpro .wftable .sticky{ display:none; }
  .wfpro .wftable .sticky2{ left: 0; }
  .wfpro .wftable thead tr:nth-child(2) th{ top: 40px; }
}

/* WF Matrix: detail cells + modal */
.wfpro .wfcell,
.wfpro .wfNoteCell{
  cursor:pointer;
  border-radius: 12px;
  padding: 6px 10px;
  display:inline-flex;
  gap: 8px;
  align-items:center;
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.92);
  box-shadow: 0 1px 2px rgba(15,23,42,.06);
  margin: 0 auto;
}
.wfpro .wfcell[data-status="TODO"]{ opacity:.70; }
.wfpro .wfcell[data-status="DOING"]{ border-color: rgba(37,99,235,.28); }
.wfpro .wfcell[data-status="DONE"]{ border-color: rgba(16,185,129,.28); }
.wfpro .wfcell[data-status="BLOCK"]{ border-color: rgba(239,68,68,.24); }
.wfpro .wfcell.disabled{ cursor:not-allowed; opacity:.45; }

.wfpro .wfcell{ position:relative; overflow:hidden; }
.wfpro .wfcell .wfpctfill{ position:absolute; left:0; top:0; bottom:0; width:0%; background: rgba(37,99,235,.10); pointer-events:none; }
.wfpro .wfcell .wfpctfill.is-done{ background: rgba(16,185,129,.12); }
.wfpro .wfcell .wfcell-inner{ position:relative; z-index:1; }

.wfpro .wfNoteCell.empty{ opacity:.75; }
.wfpro .wfNoteCell.has{ border-color: rgba(245,158,11,.30); }

.wfpro .wfmini{ font-size: 12px; color: var(--muted); }

.wfmodal-mask{
  position: fixed;
  inset: 0;
  background: rgba(2,6,23,.45);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 200;
}
.wfmodal{
  width: calc(74px * 4 + 6px * 3 + 16px);
  max-width: 92vw;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 18px 60px rgba(15,23,42,.22);
  border: 1px solid rgba(15,23,42,.10);
  font-size: 13px;
}
.wfmodal .hd{ padding: 10px 12px; border-bottom: 1px solid rgba(15,23,42,.08); font-weight: 900; }
.wfmodal .bd{ padding: 12px; }
.wfmodal .ft{ padding: 10px 12px; border-top: 1px solid rgba(15,23,42,.08); display:flex; gap:8px; justify-content:flex-end; }
.wfmodal .hide{ display:none !important; }

.wfStatusGrid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.wfStatusGrid .btn{ width:100%; min-width:0 !important; padding: 9px 0; border-radius: 12px; font-size: 13px; }
.wfDateRow{ display:flex; gap: 8px; align-items:center; justify-content:center; flex-wrap: nowrap; }

/* =============================
   Topbar · 右上角登录身份卡
   ============================= */
.x-me{ position:relative; }
.x-me-btn{
  display:flex;
  align-items:center;
  gap:10px;
  height:40px;
  padding: 0 10px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.72);
  cursor:pointer;
}
.x-me-btn:hover{ background:#fff; }
.topbar.is-dark .x-me-btn{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.18);
  color:#fff;
}
.topbar.is-dark .x-me-btn:hover{ background: rgba(255,255,255,.16); }

.x-me-avatar{
  width:28px;
  height:28px;
  border-radius: 10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  background: rgba(59,130,246,.12);
  color: #1d4ed8;
  flex: 0 0 auto;
}
.topbar.is-dark .x-me-avatar{ background: rgba(255,255,255,.16); color:#fff; }

.x-me-text{ display:flex; flex-direction:column; line-height:1.05; min-width:0; }
.x-me-name{ font-weight: 900; font-size: 12px; white-space:nowrap; }
.x-me-no{ font-size: 11px; color: var(--muted); white-space:nowrap; }
.topbar.is-dark .x-me-no{ color: rgba(255,255,255,.75); }

.x-me-menu{ min-width: 260px; }
.x-me-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom: 6px; }
.x-me-ttl{ font-weight: 900; }
.x-me-tag{
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(16,185,129,.10);
}
.x-me-line{ font-size: 12px; color: var(--text); margin: 4px 0; }
.x-me-actions{ display:flex; gap:8px; margin-top: 10px; }
.x-me-actions .btn{ height:32px; padding: 0 10px; border-radius: 10px; }
.x-me-actions .btn.danger{ border-color: rgba(239,68,68,.35); color: #b91c1c; }
.x-me-actions .btn.danger:hover{ background: rgba(239,68,68,.08); }

/* =============================
   Topbar · 右上角登录身份卡（舒适版覆盖）
   - 更宽/更松
   - 信息分组
   - 按钮轻量化
   ============================= */
.x-me-btn{ height:44px; padding: 0 12px; border-radius: 16px; gap:12px; }
.x-me-avatar{ width:32px; height:32px; border-radius: 12px; }
.x-me-name{ font-size: 13px; }
.x-me-no{ font-size: 12px; }

/* 下拉容器（more-menu 的外框由系统样式提供，这里做内卡片） */
.x-me-menu{ min-width: 300px; }
.x-me-card{ padding: 12px; }

.x-me-hd{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom: 10px; }
.x-me-title{ font-size: 16px; font-weight: 900; color: var(--text); }
.x-me-sub{ font-size: 12px; font-weight: 800; color: var(--muted); margin-left: 6px; }
.x-me-badge{
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(16,185,129,.10);
  color: #065f46;
  font-weight: 900;
}

.x-me-meta{
  padding: 12px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid rgba(15,23,42,.06);
  margin-bottom: 12px;
}
.x-me-item{ display:flex; justify-content:space-between; gap:12px; font-size: 13px; line-height: 1.8; color: #334155; }
.x-me-item span{ color: #64748b; }
.x-me-item b{ font-weight: 800; color: #0f172a; }

.x-me-pill{
  display:inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(37,99,235,.10);
  color: #1d4ed8;
  font-weight: 900;
  font-size: 12px;
}

.x-me-actions{ display:flex; gap:10px; }
.x-me-act{
  flex: 1;
  display:flex;
  align-items:center;
  justify-content:center;
  height: 38px;
  border-radius: 12px;
  background: #f1f5f9;
  border: 1px solid rgba(15,23,42,.10);
  color: #0f172a;
  text-decoration:none;
  font-weight: 900;
  font-size: 13px;
}
.x-me-act:hover{ background:#eaf0f7; }

.x-me-act.danger{
  background: rgba(239,68,68,.10);
  border-color: rgba(239,68,68,.22);
  color: #b91c1c;
}
.x-me-act.danger:hover{ background: rgba(239,68,68,.14); }

/* ================================
 * progress_v2 / 控制点确认：进度条（DOING 0~100）
 * ================================ */
.p2-pctbar{
  width:100%;
  height:10px;
  border-radius:999px;
  background: rgba(15,23,42,.10);
  overflow:hidden;
}
.p2-pctbar>i{
  display:block;
  height:100%;
  width:0;
  background: rgba(99,102,241,.65);
  border-radius:999px;
}

/* 抽屉内 slider 行布局 */
.p2-sliderRow{display:flex;align-items:center;gap:10px;}
.p2-slider{flex:1;}
.p2-sliderRow .val{min-width:44px;text-align:right;font-weight:800;}
/* ===== page-full + page-bleed layout fix ===== */

body.page-full.page-bleed .main,
body.page-full.page-bleed .container,
body.page-full.page-bleed .wfpro{
  min-height:0;
}

body.page-full.page-bleed .main .container{
  height: calc(100vh - 52px); /* topbar 高度 */
  display:flex;
  flex-direction:column;
}

body.page-full.page-bleed .wfpro{
  flex:1 1 auto;
  min-height:0;
}