  .tl{background:#eef1f5;border-radius:12px;overflow:clip;margin:0 16px 24px;max-height:none}
  .tl-cw{position:relative;width:calc(var(--lw) + var(--iw));min-width:100%;padding-bottom:6px}
  .tl-months{display:grid;grid-template-columns:var(--lw) var(--iw);position:sticky;top:var(--tl-sticky-top,0px);background:#eef1f5;border-bottom:1px solid #e2e8f0;z-index:10}
  .tl-mhead{grid-column:2;display:grid;grid-template-columns:repeat(var(--n),var(--mw))}
  .tl-mcol{text-align:center;font-size:11px;font-weight:700;color:#94a3b8;padding:6px 0;border-left:1px solid #e2e8f0;text-transform:uppercase;overflow:hidden}
  .tl-grow{display:grid;grid-template-columns:var(--lw) var(--iw);align-items:center;border-top:1px solid #e2e8f0;background:#fff;cursor:pointer}
  .tl-grow:hover{background:#f8fafc}
  .tl-ginfo{padding:8px 12px}
  .tl-gname{font-weight:800;font-size:15px;color:#0f172a;line-height:1.15}
  .tl-gschool{font-size:11px;color:#94a3b8;margin-top:1px}
  .tl-kpis{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:7px}
  .tl-kpi{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;padding:4px 7px;background:#f1f5f9;border-radius:7px;color:#64748b}
  .tl-kpi span{font-size:9.5px;font-weight:700;white-space:nowrap}
  .tl-kpi b{font-size:13px;line-height:1;color:#334155}
  .tl-kpi.bad{background:#fef2f2;color:#dc2626}.tl-kpi.bad b{color:#dc2626}
  .tl-kpi.warn{background:#fff7ed;color:#ea580c}.tl-kpi.warn b{color:#ea580c}
  .tl-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:5px}
  .tl-stages.one{grid-template-columns:1fr}
  .tl-stage{min-width:0;padding:5px 6px;border:1px solid #e2e8f0;border-radius:7px;background:#fff}
  .tl-stage span{display:block;overflow:hidden;text-overflow:ellipsis;font-size:9px;line-height:1.1;font-weight:800;color:#64748b;text-transform:uppercase}
  .tl-stage b{display:block;margin-top:2px;font-size:13px;line-height:1.05;color:#334155}
  .tl-stage small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;font-size:8.5px;line-height:1.1;color:#94a3b8;white-space:nowrap}
  .tl-stage.done{border-color:#bbf7d0;background:#f0fdf4}.tl-stage.done b,.tl-stage.done small{color:#15803d}
  .tl-stage.active{border-color:#fed7aa;background:#fff7ed}.tl-stage.active small{color:#ea580c}
  .tl-stage.bad{border-color:#fecaca;background:#fef2f2}.tl-stage.bad b,.tl-stage.bad small{color:#dc2626}
  html.dark .tl-gschool{color:#8a887f}
  html.dark .tl-kpi{background:#23262d;color:#aaa79e}html.dark .tl-kpi b{color:#e7e5df}
  html.dark .tl-kpi.bad{background:#3a1d1d;color:#f87171}html.dark .tl-kpi.bad b{color:#f87171}
  html.dark .tl-kpi.warn{background:#3a2a18;color:#fb923c}html.dark .tl-kpi.warn b{color:#fb923c}
  html.dark .tl-stage{background:#202329;border-color:#363a43}html.dark .tl-stage span{color:#aaa79e}html.dark .tl-stage b{color:#f1efe8}html.dark .tl-stage small{color:#8a887f}
  html.dark .tl-stage.done{background:#16301f;border-color:#1e6b37}html.dark .tl-stage.done b,html.dark .tl-stage.done small{color:#4ade80}
  html.dark .tl-stage.active{background:#3a2a18;border-color:#7c4a18}html.dark .tl-stage.active small{color:#fb923c}
  html.dark .tl-stage.bad{background:#3a1d1d;border-color:#7f1d1d}html.dark .tl-stage.bad b,html.dark .tl-stage.bad small{color:#f87171}
  .tl-exp{font-size:12px;color:#dc2626;font-weight:700;margin-top:2px}
  .tl-track{position:relative;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--mw) - 1px),#eef2f7 calc(var(--mw) - 1px),#eef2f7 var(--mw))}
  .tl-track::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:#e2e8f0}
  .tl-vline{position:absolute;top:50%;transform:translateY(-50%);height:16px;border-radius:8px;background:linear-gradient(90deg,#c4b5fd,#7c3aed)}
  .tl-gbar2{position:absolute;top:50%;transform:translateY(-50%);height:5px;border-radius:3px;background:linear-gradient(90deg,#60a5fa,#2563eb)}
  .tl-dot{position:absolute;top:50%;transform:translate(-50%,-50%);border-radius:50%;z-index:3}
  .tl-dot.start{width:13px;height:13px;background:#fff;border:3px solid #7c3aed}
  .tl-dot.vek{width:13px;height:13px;background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.18)}
  .tl-dot.penddot{width:12px;height:12px;background:#fff;border:3px solid #7c3aed}
  .tl-mb{position:absolute;transform:translate(-50%,-50%);background:#fff;border:2px solid #0f172a;border-radius:11px;padding:1px 7px;font-size:10px;font-weight:800;color:#0f172a;white-space:nowrap;z-index:6;box-shadow:0 1px 3px rgba(0,0,0,.25)}
  html.dark .tl-dot.penddot{background:#1b1e24}
  .tl-lab .st{color:#7c3aed;font-weight:800;font-size:11.5px}
  html.dark .tl-lab .st{color:#c4b5fd}
  .tl-tick{position:absolute;top:50%;transform:translate(-50%,-50%);width:2px;height:15px;background:#1d4ed8;border-radius:2px;z-index:2}
  .tl-conn{position:absolute;width:2px;background:linear-gradient(180deg,#c4b5fd,#7c3aed);border-radius:2px;z-index:2}
  .tl-today{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed #ef4444;z-index:5;pointer-events:none}
  .tl-today-lab{position:sticky;top:8px;left:5px;display:inline-block;font-size:10px;font-weight:800;color:#ef4444;white-space:nowrap;background:rgba(255,255,255,.92);padding:1px 4px;border-radius:4px;z-index:8}
  html.dark .tl-today-lab{background:rgba(21,23,28,.82)}
  .tl-svg{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:1}
  .tl-svg path{fill:none;stroke-linecap:round;stroke-linejoin:round}
  .tl-svg path.pv{stroke:url(#gVek);stroke-width:8}
  .tl-svg path.pvok{stroke:url(#gVekOk);stroke-width:8}
  .tl-svg path.pg{stroke:url(#gGai);stroke-width:3}
  .tl-svg path.pgok{stroke:url(#gGaiOk);stroke-width:3}
  .tl-svg path.pp{stroke:#f59e0b;stroke-width:3;stroke-dasharray:1.5 5}
  .tl-svg path.pq{stroke:url(#gVek);stroke-width:8}
  .tl-end{position:absolute;transform:translate(-50%,-50%);z-index:3}
  .tl-end.open{width:12px;height:12px;border-radius:50%;border:2px solid #f59e0b;background:#fff}
  html.dark .tl-end.open{background:#1b1e24}
  .tl-end.pend{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:2px solid #7c3aed;background:#fff;font-size:9px}
  html.dark .tl-end.pend{background:#1b1e24}
  .tl-elab .pl{color:#7c3aed;font-weight:800;font-size:11px}
  html.dark .tl-elab .pl{color:#c4b5fd}
  .tl-end.done{display:flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:#16a34a;color:#fff;font-size:10px;font-weight:900}
  .tl-lab .rem,.tl-elab .rem{color:#ea580c;font-weight:800;font-size:11px}
  .tl-lab .okt,.tl-elab .okt{color:#16a34a;font-weight:800;font-size:11px}
  .tl-elab{position:absolute;transform:translateY(-50%);white-space:nowrap;z-index:4}
  .tl-dlab{position:absolute;font-size:10px;color:#475569;white-space:nowrap;transform:rotate(40deg);transform-origin:left top;z-index:4}
  html.dark .tl-dlab{color:#94a3b8}
  .tl-cnt{position:absolute;font-size:11px;font-weight:800;color:#2563eb;transform:translateX(-50%);white-space:nowrap;z-index:5}
  html.dark .tl-cnt{color:#93c5fd}
  .tl-cnt.fail{color:#dc2626}
  html.dark .tl-cnt.fail{color:#f87171}
  .tl-final-x{position:absolute;transform:translate(-50%,-50%);color:#dc2626;font-size:22px;font-weight:900;line-height:1;white-space:nowrap;z-index:6;text-shadow:0 1px 0 #fff,-1px 0 0 #fff,1px 0 0 #fff}
  html.dark .tl-final-x{color:#f87171;text-shadow:0 1px 0 #1b1e24,-1px 0 0 #1b1e24,1px 0 0 #1b1e24}
  .tl-elab .final-fail{color:#dc2626;font-weight:800;font-size:11px}
  html.dark .tl-elab .final-fail{color:#f87171}
  .tl-leader{position:absolute;height:1px;background:#cbd5e1;z-index:3}
  html.dark .tl-leader{background:#475569}
  .tl-lab{position:absolute;transform:translateX(-50%);text-align:center;white-space:nowrap;z-index:4}
  .tl-lab.sl{transform:none;text-align:left}
  .tl-lab.above{bottom:calc(50% + 15px)}.tl-lab.below{top:calc(50% + 15px)}
  .tl-lab.vl{transform:translateX(-100%);text-align:right}
  .tl-lab b{display:block;font-size:11.5px;font-weight:800;color:#334155}
  .tl-lab span{display:block;font-size:10.5px;color:#94a3b8}
  .tl-lab .vt{color:#16a34a;font-weight:800;font-size:11.5px}
  .tl-lab .ot{color:#2563eb;font-weight:800;font-size:12.5px}
  html.dark .tl-lab .ot{color:#93c5fd}
  .tl-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:#64748b;padding:8px 18px 2px}
  .tl-legend i{font-style:normal}
  /* тёмная тема графика */
  html.dark .tl{background:#15171c}
  html.dark .tl-months{background:#15171c;border-bottom-color:#2a2f3a}
  html.dark .tl-mcol{color:#9c9a92;border-left-color:#2a2f3a}
  html.dark .tl-grow{background:#1b1e24;border-top-color:#2a2f3a}
  html.dark .tl-grow:hover{background:#242a33}
  html.dark .tl-gname{color:#e8e6df}
  html.dark .tl-gsub{color:#9c9a92}
  html.dark .tl-track{background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--mw) - 1px),#2a2f3a calc(var(--mw) - 1px),#2a2f3a var(--mw))}
  html.dark .tl-track::before{background:#2a2f3a}
  html.dark .tl-tick{background:#93c5fd}
  html.dark .tl-lab b{color:#e8e6df}
  html.dark .tl-lab span{color:#9c9a92}
  html.dark .tl-dot.start{background:#1b1e24}
  html.dark .tl-legend{color:#9c9a92}

#groupsGrid.groups-grid--chart { display:block; padding:0; min-width:0; overflow:visible; }
#groupsGrid.groups-grid--chart .tl { margin:0; }
#groupsGrid.groups-grid--chart .tl-months { top:0; }
#groupsGrid.groups-grid--chart .tl-legend { padding:12px; }
#groupsGrid.groups-grid--chart .tl-grow:focus-visible { outline:2px solid #0d9488; outline-offset:-2px; }
.archive-chart-notice { padding:12px; color:var(--text-muted); }
.archive-chart-missing { display:flex; flex-wrap:wrap; gap:6px; padding:0 12px 12px; }
.archive-chart-missing button { padding:6px 10px; border:1px solid var(--border-color); border-radius:7px; color:var(--text-main); background:var(--bg-card); }
/* The document scrolls. Intermediate overflow:auto containers otherwise trap sticky months. */
body.archive-chart-active { overflow:visible !important; }
body.archive-chart-active .main { overflow:clip !important; }

