/* Общий график отслеживания работ (ui_modules/work-timeline.js). */
.wt{--wt-row:40px;--wt-work:30px;font-size:13px;color:var(--text,#0F172A)}
.wt-legend{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:flex-end;font-size:12px;color:var(--muted,#64748B);margin:0 0 8px;white-space:nowrap}
.wt-sw{display:inline-block;width:14px;height:8px;border-radius:3px;margin-right:5px;vertical-align:1px}
.wt-body{position:relative;overflow:hidden;border-top:1px solid var(--border,#E2E8F0)}
.wt-row{display:grid;grid-template-columns:var(--wt-label) minmax(0,1fr);align-items:center}
.wt-axis{height:32px;font-size:11px;color:var(--muted,#64748B);border-bottom:1px solid var(--border,#E2E8F0)}
.wt-axis-label{font-size:11px;padding-left:6px;align-self:end;padding-bottom:3px}
.wt-months{position:relative;height:100%}
.wt-months span{position:absolute;top:15px;line-height:14px;transform:translateX(4px);white-space:nowrap}
.wt-months i{position:absolute;top:1px;line-height:13px;transform:translateX(4px);font-style:normal;font-size:10.5px;font-weight:700;color:#475569;white-space:nowrap}
.wt-months b{position:absolute;top:0;bottom:-4000px;border-left:1px dashed #E5E9F0;pointer-events:none}
.wt-stage-row{height:var(--wt-row);border-bottom:1px solid #F1F4F8}
.wt-stage-row[onclick]{cursor:pointer}
.wt-stage-row:hover{background:#FAFBFD}
.wt-stage.is-selected>.wt-stage-row{background:#F0FDF4}
.wt-label{display:flex;align-items:center;gap:6px;padding-right:12px;min-width:0}
.wt-ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.wt-toggle,.wt-toggle-space{flex:0 0 18px;height:18px}
.wt-toggle{border:0;background:none;padding:0;color:#94A3B8;cursor:pointer;font-size:11px;border-radius:4px;transition:transform .15s}
.wt-toggle:hover{background:#EEF2F6;color:#334155}
.wt-toggle.is-open{transform:rotate(90deg)}
.wt-no{flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:#EEF2F6;color:#64748B}
.wt-no--done{background:#DCFCE7;color:#15803D}.wt-no--late{background:#FEE2E2;color:#DC2626}.wt-no--work{background:#DBEAFE;color:#2563EB}
.wt-track{position:relative;height:100%}
.wt-bar{position:absolute;top:50%;transform:translateY(-50%);height:14px;border-radius:5px;background:#CBD5E1;min-width:4px}
.wt-bar.done,.wt-sw.done{background:#16A34A}
.wt-bar.work,.wt-sw.work{background:#2563EB}
.wt-bar.overdue,.wt-sw.overdue{background:repeating-linear-gradient(45deg,#DC2626 0 5px,#F87171 5px 10px)}
.wt-bar.forecast,.wt-sw.forecast{background:repeating-linear-gradient(45deg,#BBF7D0 0 6px,#DCFCE7 6px 12px);box-shadow:inset 0 0 0 1px #86EFAC}
.wt-bar.inherited,.wt-sw.inherited{background:#F1F5F9;box-shadow:inset 0 0 0 1px #CBD5E1}
.wt-bar.wait{background:#CBD5E1}
.wt-works .wt-row{height:var(--wt-work);border-bottom:1px solid #F5F7FA;background:#FCFDFE}
.wt-works .wt-bar{height:9px}
.wt-work .wt-label{padding-left:30px;font-size:12px;color:#334155}
.wt-work-no{flex:0 0 auto;color:#94A3B8;font-variant-numeric:tabular-nums}
.wt-note .wt-track{display:flex;align-items:center}
.wt-note-text{font-size:12px;color:#B45309;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:6px}
.wt-note-text a{color:#15803D;font-weight:600}
.wt-mark{position:absolute;top:50%;width:11px;height:11px;margin-top:-13px;transform:translateX(-50%) rotate(45deg);border-radius:2px;border:2px solid #fff;box-shadow:0 0 0 1px #94A3B8;background:#fff;z-index:1}
.wt-mark.paid{background:#16A34A;box-shadow:0 0 0 1px #16A34A}
.wt-mark.late{background:#DC2626;box-shadow:0 0 0 1px #DC2626}
.wt-mark.hold{background:#FBBF24;box-shadow:0 0 0 1px #F59E0B}
.wt-mark.money{margin-top:-6px;background:#2563EB;box-shadow:0 0 0 1px #2563EB}
.wt-flag{position:absolute;top:2px;font-size:12px;color:#15803D;z-index:1}
/* «Сегодня» — своя строка над месяцами: подпись не налезает на шапку. */
.wt-today-lane{height:20px}
.wt-today-label{position:absolute;bottom:2px;transform:translateX(-50%);font-size:11px;font-weight:700;line-height:15px;color:#fff;background:#DC2626;border-radius:4px;padding:0 6px;white-space:nowrap}
.wt-today-layer{position:absolute;top:20px;bottom:0;left:var(--wt-label);right:0;pointer-events:none}
.wt-today{position:absolute;top:0;bottom:0;border-left:2px solid #DC2626;z-index:2}
@media (max-width:760px){.wt{--wt-label:140px!important}.wt-legend{justify-content:flex-start}}
.wt-bar.window,.wt-sw.window{background:#DBEAFE;box-shadow:inset 0 0 0 1px #93C5FD;height:8px}
.wt-mark.wait{background:#fff;box-shadow:0 0 0 1px #94A3B8}
.wt-wait-note{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;color:#B45309;white-space:nowrap}
.wt-pay-row .wt-mark{margin-top:-6px;z-index:2}
.wt-pay-row .wt-flag{top:3px;transform:translateX(-2px)}
.wt-bar.plan,.wt-sw.plan{background:#BFDBFE;box-shadow:inset 0 0 0 1px #93C5FD}
.wt-bar.auto,.wt-sw.auto{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 4px,transparent 4px 8px)}
.wt-note-text{color:#B45309}
.wt-bar.reserve,.wt-sw.reserve{background:repeating-linear-gradient(45deg,#E2E8F0 0 4px,#F8FAFC 4px 8px);box-shadow:inset 0 0 0 1px #CBD5E1;height:10px}
.wt-bar.reserve.used{background:repeating-linear-gradient(45deg,#FCD34D 0 4px,#FEF3C7 4px 8px);box-shadow:inset 0 0 0 1px #F59E0B}
.wt-deadline{position:absolute;top:50%;width:2px;height:20px;margin-top:-10px;background:#0F172A;border-radius:1px;transform:translateX(-1px);z-index:1}
.wt-sw.deadline{width:3px;background:#0F172A}
