/* ==========================================================================
   活动安排：时间轴 / 看板 / 人员库
   ========================================================================== */

/* ---------- 工具条 ---------- */
.tl-bar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:11px 14px;border-bottom:1px solid var(--line-2);
}
.tl-bar .spacer{flex:1}
.tl-bar .stat{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

/* ---------- 时间轴容器 ---------- */
.tl{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;
}
.tl-scroll{overflow-x:auto;overflow-y:hidden}
.days{width:max-content;min-width:100%}

.day{width:max-content;min-width:100%}
.day + .day .daybar{border-top:1px solid var(--line)}

.daybar{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px 9px;background:var(--surface-2);
}
.dlabel{
  font-size:13px;font-weight:600;letter-spacing:.01em;white-space:nowrap;
  position:sticky;left:14px;z-index:2;background:var(--surface-2);
}
.dlabel em{
  font-style:normal;font-weight:400;font-size:11.5px;color:var(--muted);margin-left:6px;
}
.dcount{
  margin-left:auto;font-size:11.5px;color:var(--muted);
  position:sticky;right:14px;z-index:2;background:var(--surface-2);
}

.daybody{display:flex;gap:0;width:max-content;min-width:100%;padding:0 14px 14px}

/* 左侧时间刻度 */
.times{
  width:54px;flex:none;position:relative;
  position:sticky;left:0;z-index:8;background:var(--surface);
  box-shadow:7px 0 8px -9px rgba(20,30,50,.35);
}
.tl-mark{
  position:absolute;right:8px;transform:translateY(-50%);
  font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;line-height:1;
  background:var(--surface);padding:1px 0;
}

/* 卡片区 */
.lanes{
  flex:none;position:relative;background:var(--surface);
  border-left:1px solid var(--line-2);
}
.gl{position:absolute;left:0;right:0;height:1px;background:var(--line-2)}
.gl.half{background:#f7f9fb}

/* ---------- 卡片 ---------- */
.card-a{
  position:absolute;overflow:hidden;cursor:pointer;
  background:var(--surface);border:1px solid #e0e5ec;border-left-width:3px;
  border-radius:7px;padding:3px 8px 4px;
  transition:box-shadow .12s,border-color .12s,opacity .15s;
  z-index:2;
}
.card-a:hover{box-shadow:0 2px 10px -2px rgba(20,30,50,.16);border-color:#cfd6e0;z-index:3}
.card-a .t{
  font-size:10.5px;line-height:13px;color:var(--muted);
  font-variant-numeric:tabular-nums;white-space:nowrap;
  display:flex;align-items:center;gap:6px;
}
.card-a .t i{font-style:normal;color:var(--ink-2)}
.card-a .t .ty{font-size:10px;line-height:12px;color:var(--muted)}
.card-a .nm{
  font-size:12.5px;font-weight:600;line-height:15px;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;
}
.card-a .lc{
  font-size:10.5px;line-height:13px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.card-a .lc b{font-weight:400;color:var(--faint);margin-right:4px}
.card-a.mini{padding:1px 7px}
.card-a.mini .nm{font-size:11px;line-height:13px}

/* 选中态 */
.card-a.dim{opacity:.28;filter:grayscale(.4)}
.card-a.hit{border-color:#c3cee2;box-shadow:0 0 0 2px rgba(47,91,215,.07)}
.card-a.conflict{border-color:#e4c3c3;background:#fffdfd}
.card-a.conflict::after{
  content:"";position:absolute;top:5px;right:5px;width:5px;height:5px;border-radius:50%;
  background:#c98b8b;
}

/* 人员标签 */
.tags{
  display:flex;flex-wrap:nowrap;gap:3px;margin-top:2px;overflow:hidden;
  font-size:10.5px;
}
.tag-p{
  font-style:normal;font-size:1em;line-height:13px;padding:0 5px;border-radius:4px;
  flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;
}
.tag-p.g{background:#eef2fd;color:#2b4a9e}
.tag-p.h{background:#fbf2e3;color:#8a601e}
.tag-p.s{background:#eaf5f0;color:#1f6b52}
.tag-p[data-sel]{font-weight:600;color:#fff}
.tag-p.more{background:#f2f4f7;color:#8b93a1}

/* 连线层 */
svg.links{position:absolute;left:0;top:0;z-index:4;pointer-events:none;overflow:visible}

/* ---------- 人员轨道 ---------- */
.rails{
  flex:none;display:flex;gap:5px;padding-left:10px;
  position:sticky;right:0;z-index:7;background:var(--surface);
  box-shadow:-7px 0 8px -9px rgba(20,30,50,.35);
}
.rail{position:relative;width:10px;flex:none}
.rail .rno{
  position:absolute;top:1px;left:-1px;width:12px;text-align:center;z-index:2;
  font-size:9px;font-weight:700;line-height:11px;
  background:var(--surface);border-radius:3px;
}
.rail .rbar{position:absolute;left:2px;width:6px;border-radius:3px}
.rail .rgap{
  position:absolute;left:4px;width:2px;border-left:1px dashed;opacity:.5;
}
.rails .rmore{
  position:absolute;top:1px;right:0;font-size:9px;color:var(--muted);
}

/* ---------- 图例 ---------- */
.legend{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:9px 14px;border-top:1px solid var(--line-2);
  font-size:12px;color:var(--muted);
}
.legend .lg{
  display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 6px;
  border-radius:12px;background:#f6f8fa;color:var(--ink-2);cursor:pointer;
}
.legend .lg i{width:7px;height:7px;border-radius:50%;display:inline-block}
.legend .lg b{font-weight:500}
.legend .x{margin-left:auto;color:var(--accent);cursor:pointer}

/* ---------- 冲突提示 ---------- */
.warnbar{
  display:none;padding:9px 14px;border-top:1px solid var(--line-2);
  background:#fffdf6;font-size:12px;color:#7a5a17;line-height:1.8;
}
.warnbar.on{display:block}
.warnbar b{font-weight:600;margin-right:6px}
.warnbar .it{display:inline-block;margin-right:14px}

/* ---------- 看板 ---------- */
.board{display:none}
.board.on{display:block}
.bgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}
.blist{font-size:12.5px;line-height:1.85;color:var(--ink-2)}
.blist .it{display:flex;gap:9px;padding:4px 0;border-bottom:1px dashed var(--line-2)}
.blist .it:last-child{border-bottom:none}
.blist .dt{flex:0 0 54px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px}

/* ---------- 人员库 ---------- */
.plib{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.pcol{border:1px solid var(--line);border-radius:9px;overflow:hidden}
.pcol h4{
  margin:0;padding:9px 12px;font-size:12px;font-weight:600;color:var(--ink-2);
  background:var(--surface-2);border-bottom:1px solid var(--line-2);
  display:flex;align-items:center;gap:6px;
}
.pcol h4 .dot{width:6px;height:6px;border-radius:50%}
.pcol h4 span{margin-left:auto;font-weight:400;color:var(--muted);font-size:11px}
.plist{height:196px;overflow:auto;padding:6px}
.prow{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:6px}
.prow:hover{background:var(--surface-2)}
.prow input{
  flex:1;min-width:0;border:1px solid transparent;background:none;border-radius:5px;
  height:26px;padding:0 6px;font-size:12.5px;font-family:inherit;color:var(--ink);
}
.prow input:hover{border-color:var(--line)}
.prow input:focus{outline:none;border-color:var(--accent);background:#fff}
.prow .use{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;
  width:16px;text-align:right;flex:none}
.prow .del{
  border:0;background:none;color:var(--faint);cursor:pointer;font-size:14px;
  line-height:1;padding:2px 5px;border-radius:4px;
}
.prow .del:hover{background:var(--danger-soft);color:var(--danger)}
.padd{display:flex;gap:5px;padding:7px;border-top:1px solid var(--line-2)}
.padd input{
  flex:1;min-width:0;height:28px;border:1px solid var(--line);border-radius:6px;
  padding:0 8px;font-size:12.5px;font-family:inherit;outline:none;
}
.padd input:focus{border-color:var(--accent)}

/* ---------- 移动端 ---------- */
@media (max-width:900px){
  .tl-bar{padding:9px 11px;gap:8px}
  .tl-bar .field{font-size:12px}
  .tl-bar .field input[type=range]{width:64px}
  .daybar{padding:9px 11px 8px;gap:8px}
  .dlabel{font-size:12.5px;left:11px}
  .dcount{right:11px}
  .daybody{padding:0 11px 12px}
  .times{width:46px}
  .tl-mark{right:6px;font-size:10px}
  .legend{padding:8px 11px;gap:7px;font-size:11.5px}
  .bgrid{grid-template-columns:1fr}
  .plib{grid-template-columns:1fr;gap:10px}
  .pcol .plist{height:auto;max-height:230px}
  .card-a .t{font-size:10px;gap:5px}
  .card-a .t .ty{display:none}
}

/* ---------- 打印 ---------- */
@media print{
  .side,header.top,.tl-bar,.legend,.warnbar,.toast{display:none !important}
  .main{margin:0}
  .wrap{padding:0}
  .tl{border:0}
  .tl-scroll{overflow:visible}
  .day{break-inside:avoid}
}
