meraproject/Task/Управление проектами/ДАШБОРД-1-v22.html
keboss-m 5c21d25d45 Initial commit: Merakomis portal, Docker stack and user-reader API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 11:04:05 +03:00

852 lines
81 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>Портфель проектов v22</title>
<style>
:root {
--bg: #0c1117;
--surface: #131a22;
--surface-2: #18212b;
--surface-3: #1e2935;
--border: rgba(120,160,200,0.16);
--text: #e8eef5;
--muted: #93a3b5;
--faint: #647386;
--accent: #5aa6e0;
--accent-2: #6fd1c0;
--ok: #5cc0a0;
--warn: #e0b15a;
--bad: #e07a6f;
--bar-track: rgba(255,255,255,0.07);
--shadow: 0 16px 44px rgba(0,0,0,0.40);
--radius: 14px;
/* Единый нейтральный серый для всех шкал */
--bar-neutral: rgba(100,130,160,0.55);
--bar-neutral-s: rgba(100,130,160,0.65); /* сводная */
--c1: 260px; --c2: 280px;
--grid-cols: var(--c1) 100px var(--c2) 1.1fr 2.2fr 2.2fr;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: Inter, Arial, sans-serif;
background:
radial-gradient(circle at top left, rgba(90,166,224,0.08), transparent 32%),
radial-gradient(circle at top right, rgba(111,209,192,0.07), transparent 30%),
linear-gradient(180deg, #0e141b 0%, #0a0f14 100%);
color: var(--text);
}
html { height: 100%; scroll-padding-top: 70px; }
body { min-height: 100%; }
.page { max-width: 1800px; margin: 0 auto; padding: 24px 22px 40px; }
/* sticky-header удалён */
/* ─── КОМАНДА ─── */
.team-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:6px 6px; }
.team-roles { flex:0 0 auto; display:flex; flex-direction:column; gap:1px; align-self:center; }
.team-role-row { display:flex; align-items:center; gap:4px; }
.team-role-name { color:var(--faint); font-size:10px; min-width:34px; }
.team-role-count { font-weight:700; color:var(--text); font-size:11px; min-width:16px; text-align:right; }
.team-donut-wrap { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
.team-total { font-size:11px; font-weight:700; color:var(--muted); white-space:nowrap; }
/* ─── ТОПБАР ─── */
.topbar { margin-bottom: 7px; }
.eyebrow { color: var(--accent); text-transform: uppercase; letter-spacing: .14em; font-size: 12px; margin-bottom: 6px; }
h1 { font-size: 30px; font-weight: 700; }
.date-tag {
display: inline-flex; align-items: center; gap: 6px;
background: rgba(90,166,224,0.12); border: 1px solid rgba(90,166,224,0.28);
border-radius: 8px; padding: 4px 12px;
font-size: 12px; color: var(--accent); font-weight: 600;
margin-top: 8px;
}
.date-tag .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 5px var(--ok); }
/* ─── СВОДНАЯ СТРОКА (7 колонок, над доской) ─── */
.portfolio-summary {
display: grid;
grid-template-columns: var(--grid-cols);
gap: 10px;
margin-bottom: 12px;
}
.ps-card {
background: rgba(90,166,224,0.06);
border: 1px solid rgba(90,166,224,0.15);
border-radius: 10px;
padding: 10px 14px;
display: flex; flex-direction: column; justify-content: center;
}
.ps-card .ps-title { font-size: 9px; text-transform: uppercase; letter-spacing: .1em; color: var(--faint); margin-bottom: 3px; }
.ps-card .ps-val { font-size: 15px; font-weight: 700; color: var(--accent); }
.ps-card .ps-sub { font-size: 11px; color: var(--muted); margin-top: 2px; }
.ps-metric {
background: rgba(255,255,255,0.022);
border: 1px solid var(--border);
border-radius: 10px;
padding: 10px 14px;
display: flex; flex-direction: column; justify-content: center; gap: 5px;
}
.ps-metric .ps-title { font-size: 9px; text-transform: uppercase; letter-spacing: .08em; color: var(--faint); }
.ps-avg { display: flex; align-items: center; gap: 8px; }
.ps-avg .avg-n { font-size: 18px; font-weight: 700; min-width: 44px; color: var(--text); }
.ps-avg .avg-bar { flex: 1; height: 5px; border-radius: 3px; background: var(--bar-track); overflow: hidden; }
.ps-avg .avg-fill { height: 100%; border-radius: inherit; }
/* Итоговые заголовки: серый или красный если >100% */
.avg-neutral { background: var(--bar-neutral); }
.avg-overflow { background: rgba(224,122,111,0.85); }
/* ─── ДОСКА ─── */
.board { display: flex; flex-direction: column; gap: 0; overflow: visible; }
.board-head {
display: grid; grid-template-columns: var(--grid-cols); gap: 10px;
margin-bottom: 0;
position: sticky;
top: 0;
z-index: 100;
background: #0d131a;
padding: 10px 0 8px;
box-shadow: 0 6px 24px rgba(0,0,0,0.6);
}
.col-head {
background: linear-gradient(180deg, var(--surface-3), var(--surface-2));
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 13px 12px;
display: flex; align-items: center; justify-content: center; gap: 6px;
font-weight: 700; font-size: 14px;
box-shadow: var(--shadow);
}
.col-sort {
width: 18px; height: 18px; border-radius: 5px;
background: rgba(255,255,255,0.05); border: 1px solid var(--border);
display: flex; align-items: center; justify-content: center;
font-size: 9px; color: var(--faint); cursor: pointer; flex-shrink: 0;
}
.col-sort:hover { border-color: rgba(90,166,224,0.4); color: var(--accent); }
.board-body { display: flex; flex-direction: column; gap: 4px; }
/* ─── СТРОКА ─── */
.board-row {
display: grid; grid-template-columns: var(--grid-cols); gap: 6px;
}
.board-row .proj-cell { border-left: 3px solid transparent; }
/* Левая полоска — по стадии проекта */
.board-row.stage-kk .proj-cell { border-left-color: #E0B15A; }
.board-row.stage-pd .proj-cell { border-left-color: #5CC0A0; }
.board-row.stage-rd .proj-cell { border-left-color: #5AA6E0; }
/* health-dot остаётся отдельной логикой */
/* ─── ЯЧЕЙКИ ─── */
.cell {
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 8px 10px; min-height: 0;
display: flex; flex-direction: column; justify-content: center;
}
.cell.overflow-cell {
background: rgba(224,122,111,0.07);
border-color: rgba(224,122,111,0.30);
}
/* ─── КАРТОЧКА ПРОЕКТА ─── */
.proj-cell { align-items: stretch; justify-content: flex-start; }
.proj-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.proj-code { font-size: 10px; color: var(--muted); margin-bottom: 1px; }
.proj-code b { color: var(--text); }
.proj-name { font-size: 13px; font-weight: 700; line-height: 1.2; }
.proj-dev { font-size: 10px; color: var(--faint); margin-top: 1px; }
.proj-gip { font-size: 10px; color: var(--muted); margin-top: 2px; }
.badge { flex: none; font-size: 11px; font-weight: 700; border-radius: 8px; padding: 4px 9px; }
/* Стадии: КК=золотой, ПД=зелёный, РД=синий */
.badge-kk { background: rgba(224,177,90,0.15); border: 2px solid rgba(224,177,90,0.55); color: #E0B15A; font-weight: 800; }
.badge-pd { background: rgba(92,192,160,0.15); border: 2px solid rgba(92,192,160,0.55); color: #5CC0A0; font-weight: 800; }
.badge-rd { background: rgba(90,166,224,0.15); border: 2px solid rgba(90,166,224,0.55); color: #5AA6E0; font-weight: 800; }
.proj-health { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.health-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.health-dot.ok { background: var(--ok); box-shadow: 0 0 6px var(--ok); }
.health-dot.warn { background: var(--warn); box-shadow: 0 0 6px var(--warn); }
.health-dot.bad { background: var(--bad); box-shadow: 0 0 6px var(--bad); }
.health-label { font-size: 11px; color: var(--muted); }
.proj-link { font-size: 10px; color: var(--accent); margin-top: 3px; cursor: pointer; opacity: 0.75; text-decoration: none; display: inline-flex; align-items: center; gap: 3px; }
.proj-link:hover { opacity: 1; }
/* ─── СВОДНАЯ КОЛОНКА (mini-bars) ─── */
.summary-list { display: flex; flex-direction: column; gap: 3px; }
.srow { display: flex; align-items: center; gap: 6px; }
.srow .slabel { width: 58px; flex-shrink: 0; color: var(--faint); font-size: 10px; text-transform: lowercase; }
.srow .sbar-wrap {
flex: 1; height: 9px; border-radius: 4px;
background: var(--bar-track); border: 1px solid var(--border);
overflow: hidden; position: relative;
}
.srow .sbar-fill { height: 100%; border-radius: inherit; }
/* Единый нейтральный серый для всех мини-баров */
.sbar-neutral { background: var(--bar-neutral-s); }
/* Перерасход в сводной */
.sbar-over { background: rgba(224,122,111,0.85); width: 100% !important; }
.sbar-wrap.over-wrap { border-color: rgba(224,122,111,0.3); background: rgba(224,122,111,0.08); }
.srow .spct { width: 36px; text-align: right; font-size: 11px; font-weight: 700; flex-shrink: 0; color: var(--muted); }
.spct-over { color: var(--bad) !important; }
.ok { color: var(--ok); }
.warn { color: var(--warn); }
.bad { color: var(--bad); }
/* ─── МЕТРИКА ─── */
.metric-top {
display: flex; justify-content: space-between; align-items: stretch;
flex: 1; margin-bottom: 4px;
}
.metric-pair { font-size: 11px; color: var(--muted); line-height: 1.7; display: flex; flex-direction: column; justify-content: space-evenly; flex: 1; }
.mp-label { font-size: 9px; text-transform: uppercase; letter-spacing: .07em; color: var(--faint); margin-bottom: 1px; }
.mp-plan { color: var(--faint); margin-bottom: 0px; }
.mp-fact { color: var(--faint); font-weight: 400; }
.metric-kpi {
text-align: right;
border-left: 1px solid var(--border);
padding-left: 12px;
display: flex; flex-direction: column; align-items: flex-end; justify-content: space-evenly;
}
.kpi-label { font-size: 9px; text-transform: uppercase; letter-spacing: .07em; color: var(--faint); margin-bottom: 0px; }
.kpi-n { font-size: 14px; font-weight: 800; line-height: 1; color: var(--faint); }
.kpi-n.bad { color: var(--bad); }
.kpi-u { font-size: 10px; color: var(--faint); margin-top: 0px; }
.kpi-delta { font-size: 10px; font-weight: 700; color: var(--bad); margin-top: 0px; }
/* ─── БАР — единый серый, читаемый % ─── */
.bar-row {
display: flex; align-items: center; gap: 6px;
}
.bar {
height: 9px;
border-radius: 4px;
background: var(--bar-track);
border: 1px solid var(--border);
overflow: hidden;
position: relative;
flex: 1;
}
.bar .fill {
height: 100%;
border-radius: inherit;
background: var(--bar-neutral);
}
.bar .pct { display: none; }
.bar-pct-over { color: var(--bad) !important; font-weight: 800; }
.bar-pct-skew { color: #FFA020 !important; font-weight: 800; }
.bar-pct {
font-size: 11px; font-weight: 700;
color: var(--muted);
white-space: nowrap;
width: 36px;
text-align: right;
flex-shrink: 0;
}
/* Бар при перерасходе >100% — красный + пульсация */
.bar.bar-overflow {
border-color: rgba(224,122,111,0.55);
background: rgba(224,122,111,0.85);
}
.bar.bar-overflow .fill {
width: 100% !important;
background: rgba(224,122,111,0.85);
border-radius: inherit;
position: relative;
}
.bar.bar-overflow .fill::after {
content: '';
position: absolute; right: 0; top: 0; bottom: 0; width: 4px;
background: rgba(255,80,60,0.9);
animation: pulse-edge 1.4s ease-in-out infinite;
}
@keyframes pulse-edge {
0%, 100% { opacity: 1; }
50% { opacity: 0.3; }
}
.bar.bar-overflow .pct {
color: #fff;
font-weight: 800;
text-shadow: 0 1px 4px rgba(0,0,0,0.9);
}
/* ─── ПЕРЕКОС >20% — оранжевый нижний бордер ─── */
.cell.skew-cell {
background: rgba(255,140,0,0.07);
border-color: rgba(255,140,0,0.30);
}
/* СРЫВ перекрывает — overflow-cell не получает skew стиль */
.cell.overflow-cell {
border-bottom-color: rgba(224,122,111,0.30); /* красный, не оранжевый */
}
/* Оранжевый мини-бар при расхождении >20% */
.sbar-skew { background: rgba(255,150,30,0.85) !important; }
.spct-skew { color: #FFA020 !important; font-weight: 800; }
/* overflow-cell.skew-cell — красный фон приоритетнее */
.cell.overflow-cell.skew-cell {
background: rgba(224,122,111,0.07);
border-color: rgba(224,122,111,0.30);
}
/* Ячейки метрик (Готовность, Трудозатраты, Сроки, Поступления, Затраты) — без скруглений */
.board-row .cell:nth-child(n+4) {
border-radius: 4px;
}
/* Бары внутри этих ячеек тоже без скруглений */
.board-row .cell:nth-child(n+4) .bar {
border-radius: 4px;
}
.board-row .cell:nth-child(n+4) .bar .fill {
border-radius: 2px;
}
/* ─── ПАРНАЯ ЯЧЕЙКА (Готовн.+Трудозат., Поступл.+Затраты) ─── */
.pair-cell { display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; padding: 8px 10px; }
.pair-half { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; }
.pair-half + .pair-half { border-left: 1px solid var(--border); padding-left: 10px; }
.pair-half .metric-top { margin-bottom: 4px; }
/* override v21 rule that gave nth-child >=4 ячейкам square corners is fine, no override needed */
/* ─── ЯЧЕЙКА СРОКОВ (начало/окончание + осталось) ─── */
/* выравнивание по вертикали повторяет структуру .metric-top в соседних ячейках:
верхние .mp-label / .kpi-label стоят на одной линии; первая .dr-line = первая строка .metric-pair */
/* Повторяем поведение .metric-top + .metric-pair (space-evenly, line-height: 1.7),
чтобы верхние метки и строки внутри стояли на тех же высотах, что в соседних ячейках */
/* dates-cell: повторяет геометрию .pair-half — metric-top (gap-row-1) + bar-row снизу.
Никакого space-evenly на pair-ах, чтобы строки лежали ровно как у соседей. */
.dates-cell { display: flex; flex-direction: column; padding: 8px 10px; }
.dates-top { display: flex; gap: 10px; align-items: stretch; margin-bottom: 4px; flex: 1; }
.dates-range { display: flex; flex-direction: column; flex: 1.6; }
.dates-kpi { display: flex; flex-direction: column; flex: 1; border-left: 1px solid var(--border); padding-left: 12px; text-align: right; align-items: flex-end; justify-content: space-evenly; }
.dates-kpi .kpi-label { font-size: 9px; text-transform: uppercase; letter-spacing: .07em; color: var(--faint); margin-bottom: 0; }
.dates-range .mp-label { font-size: 9px; visibility: hidden; margin-bottom: 0; }
.dates-range .dates-pair { font-size: 11px; color: var(--muted); line-height: 1.7; display: flex; flex-direction: column; justify-content: space-evenly; flex: 1; }
.dates-range .dr-line { color: var(--faint); white-space: nowrap; }
.dates-range .dr-line.bad { color: var(--bad); font-weight: 600; }
.dates-kpi .kpi-n { font-size: 14px; font-weight: 800; line-height: 1; color: var(--faint); }
.dates-kpi .kpi-n.bad { color: var(--bad); }
.dates-kpi .kpi-u { font-size: 10px; color: var(--faint); line-height: 1.2; }
.dates-kpi .kpi-delta { font-size: 10px; line-height: 1.2; }
/* ─── ВЫРАВНИВАНИЕ ГРИДОВ ─── */
.board-head { gap: 6px !important; }
/* ─── РАЗМЕР ШРИФТА ШАПКИ: +30% (14px → 18px) ─── */
.col-head { font-size: 18px !important; }
/* ─── ПАРНАЯ ШАПКА ─── */
/* ПАРНАЯ ШАПКА: «Проектирование»/«Деньги» без линий, линии-брекеты под заголовком */
.col-head.col-head-pair { flex-direction: column; justify-content: center; align-items: stretch; gap: 0; padding: 4px 14px 6px; }
.col-head-roof { display: flex; align-items: center; justify-content: center; width: 100%; line-height: 1.1; }
.col-head-roof-text { white-space: nowrap; font-size: 16px; font-weight: 700; color: #fff; padding: 0 4px; }
/* под заголовком — просто прямая жёлтая линия */
.col-head-bracket { height: 1px; margin: 4px 0 4px 25%; width: 50%; background: rgba(255,255,255,0.25); }
.col-head.col-head-pair .col-head-pair-row { display: flex; width: 100%; gap: 0; align-items: center; justify-content: space-around; }
.col-head.col-head-pair .col-head-half { flex: 1; text-align: center; font-size: 16px !important; font-weight: 700; opacity: 0.85; text-transform: none; letter-spacing: 0; line-height: 1.1; }
.col-head.col-head-pair .col-head-half + .col-head-half { border-left: none; }
/* ─── TOPBAR: h1 и date-tag в одной строке ─── */
.topbar-head { display: flex; align-items: center; gap: 16px; }
.topbar-head h1 { margin: 0; }
.topbar-head .date-tag { margin: 0; }
/* ─── КНОПКИ-РАЗДЕЛЫ (над шапкой) ─── */
.sections-tabs { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.sec-tab { padding: 5px 12px; border: 1px solid var(--border); border-radius: 4px;
font-size: 11px; font-weight: 600; letter-spacing: .04em; color: var(--muted);
background: var(--surface, #11161d); cursor: default; user-select: none; }
.sec-tab.active { background: rgba(90, 166, 224, 0.18); border-color: rgba(90,166,224,.55); color: #cfe5fa; }
/* ─── СТРОКА ФИЛЬТРОВ ─── */
.board-filters { display: grid; grid-template-columns: var(--grid-cols); gap: var(--gap, 6px); margin-top: 4px; }
.filter-cell { background: var(--surface, #0e131a); border: 1px solid var(--border); border-radius: 8px;
display: flex; align-items: center; justify-content: center; padding: 3px 6px; min-height: 21px; }
.filter-cell.filter-pair { justify-content: space-around; }
.filter-cell.filter-pair .filter-icon + .filter-icon { border-left: 1px solid var(--border); padding-left: 0; margin-left: 0; }
.filter-cell.filter-pair .filter-icon { flex: 1; display: flex; align-items: center; justify-content: center; }
.filter-icon { color: var(--faint); display: flex; align-items: center; justify-content: center; }
.filter-icon:hover { color: var(--muted); }
/* ─── STICKY ШАПКА + ФИЛЬТРЫ, SCROLL ТОЛЬКО СПИСКА ─── */
.board { display: flex; flex-direction: column; min-height: 0; }
.board-head { position: sticky; top: 0; z-index: 3; background: var(--bg, #0a0d12); }
.board-filters { position: sticky; top: 56px; z-index: 2; background: var(--bg, #0a0d12); padding-bottom: 6px; }
.board-body { overflow-y: auto; max-height: calc(100vh - 240px); scrollbar-gutter: stable; }
.board-body::-webkit-scrollbar { width: 8px; }
.board-body::-webkit-scrollbar-thumb { background: rgba(255,255,255,.08); border-radius: 3px; }
.board-body::-webkit-scrollbar-track { background: transparent; }
/* head/filters резервируют такой же отступ справа, как в body */
.board-head, .board-filters { padding-right: 8px; box-sizing: border-box; }
/* ─── СТАТУСЫ ПРОЕКТОВ (СТОП/ТЕК/НОВ) ─── */
/* все бейджи (стадия + статус) в карточке — фиксированной ширины по самому широкому (СТОП) */
.badge-stack { display: inline-flex; flex-direction: column; align-items: stretch; gap: 4px; width: 44px; opacity: 0.55; }
.badge-stack .badge { width: 100%; box-sizing: border-box; text-align: center; font-size: 8px; padding: 3px 6px; border-radius: 6px; border-width: 1.5px; line-height: 1; }
.badge-status { display: block; width: 100%; box-sizing: border-box; font-size: 8px; font-weight: 700; padding: 3px 6px; border-radius: 6px; text-align: center; line-height: 1; }
.status-stop { background: rgba(232,90,90,0.15); border: 1.5px solid rgba(232,90,90,0.55); color: #e85a5a; }
.status-new { background: rgba(92,192,160,0.15); border: 1.5px solid rgba(92,192,160,0.55); color: #5CC0A0; }
.status-cur { background: rgba(160,180,200,0.12); border: 1.5px solid rgba(160,180,200,0.45); color: #a0b4c8; }
</style>
</head>
<body>
<main class="page">
<!-- ТОПБАР -->
<div class="topbar">
<div class="topbar-head"><h1>Портфель проектов</h1><div class="date-tag"><span class="dot"></span> Данные на: 08.06.2026</div><div class="sections-tabs"><div class="sec-tab active">ВСЕ РАЗДЕЛЫ</div><div class="sec-tab">ГП</div><div class="sec-tab">АР</div><div class="sec-tab">КР</div><div class="sec-tab">ОВиК</div><div class="sec-tab">ВК</div><div class="sec-tab">ЭОМ</div><div class="sec-tab">ССиАК</div></div></div>
</div>
<div class="board">
<div class="board-head"><div class="col-head">Проекты</div><div class="col-head">Команда</div><div class="col-head">Сводная</div><div class="col-head">Сроки</div><div class="col-head col-head-pair"><div class="col-head-roof"><span class="col-head-roof-text">Проектирование</span></div><div class="col-head-bracket"></div><div class="col-head-pair-row"><div class="col-head-half">готовность</div><div class="col-head-half">трудозатраты</div></div></div><div class="col-head col-head-pair"><div class="col-head-roof"><span class="col-head-roof-text">Деньги</span></div><div class="col-head-bracket"></div><div class="col-head-pair-row"><div class="col-head-half">поступления</div><div class="col-head-half">затраты</div></div></div></div><div class="board-filters"><div class="filter-cell"><div class="filter-icon"><svg fill="none" height="13" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" viewbox="0 0 16 16" width="13"><path d="M2 3h12l-4.5 5.5V13l-3 1.5V8.5L2 3z"></path></svg></div></div><div class="filter-cell"><div class="filter-icon"><svg fill="none" height="13" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" viewbox="0 0 16 16" width="13"><path d="M2 3h12l-4.5 5.5V13l-3 1.5V8.5L2 3z"></path></svg></div></div><div class="filter-cell"><div class="filter-icon"><svg fill="none" height="13" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" viewbox="0 0 16 16" width="13"><path d="M2 3h12l-4.5 5.5V13l-3 1.5V8.5L2 3z"></path></svg></div></div><div class="filter-cell"><div class="filter-icon"><svg fill="none" height="13" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" viewbox="0 0 16 16" width="13"><path d="M2 3h12l-4.5 5.5V13l-3 1.5V8.5L2 3z"></path></svg></div></div><div class="filter-cell filter-pair"><div class="filter-icon"><svg fill="none" height="13" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" viewbox="0 0 16 16" width="13"><path d="M2 3h12l-4.5 5.5V13l-3 1.5V8.5L2 3z"></path></svg></div><div class="filter-icon"><svg fill="none" height="13" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" viewbox="0 0 16 16" width="13"><path d="M2 3h12l-4.5 5.5V13l-3 1.5V8.5L2 3z"></path></svg></div></div><div class="filter-cell filter-pair"><div class="filter-icon"><svg fill="none" height="13" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" viewbox="0 0 16 16" width="13"><path d="M2 3h12l-4.5 5.5V13l-3 1.5V8.5L2 3z"></path></svg></div><div class="filter-icon"><svg fill="none" height="13" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" viewbox="0 0 16 16" width="13"><path d="M2 3h12l-4.5 5.5V13l-3 1.5V8.5L2 3z"></path></svg></div></div></div>
<div class="board-body">
<!-- СТРОКА 1: ЖК Северный Парк — СРЫВ Трудозатраты + Сроки -->
<div class="board-row health-bad stage-pd">
<div class="cell proj-cell">
<div class="proj-head">
<div>
<div class="proj-code">ШИФР <b>2025-0925</b></div>
<div class="proj-name">ЖК Северный Парк</div>
<div class="proj-dev">СЗ Альфа Девелопмент</div>
<div class="proj-gip">ГИП: А. Иванов · 74,0 млн ₽</div>
</div>
<div class="badge-stack"><span class="badge badge-pd">ПД</span><span class="badge-status status-stop">СТОП</span></div>
</div>
<div class="proj-health">
<span class="health-dot bad"></span>
<span class="health-label">В работе · Перерасход</span>
</div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="24.5 138.9" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">15%</text></svg><div class="team-total">34 чел.</div></div></div><div class="cell" style="padding:8px 8px;">
<div class="summary-list">
<div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap over-wrap"><div class="sbar-fill sbar-over"></div></div><span class="spct spct-over">160%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:60%"></div></div><span class="spct spct-skew">60%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap over-wrap"><div class="sbar-fill sbar-over"></div></div><span class="spct spct-over">125%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:60%"></div></div><span class="spct">60%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:68%"></div></div><span class="spct">68%</span></div></div>
</div><div class="cell dates-cell overflow-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2026.05.01</div><div class="dr-line bad">оконч.: 2026.07.01</div></div></div><div class="dates-kpi"><div class="kpi-label" style="color:var(--bad);font-weight:700;font-size:10px;letter-spacing:.08em;">СРЫВ</div><div class="kpi-n bad">150</div><div class="kpi-u">дней</div><div class="kpi-delta">+60 дн</div></div></div><div class="bar-row"><div class="bar bar-overflow"><div class="fill"></div></div><span class="bar-pct bar-pct-over">160%</span></div></div><div class="cell pair-cell overflow-cell skew-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair">
<div class="mp-label">план / факт</div>
<div class="mp-plan">100%</div>
<div class="mp-fact">60%</div>
</div>
<div class="metric-kpi">
<div class="kpi-label">остаток</div>
<div class="kpi-n">40</div>
<div class="kpi-u">%</div>
</div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:60%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">60%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair">
<div class="mp-label">план / факт</div>
<div class="mp-plan">1 200 ч/ч</div>
<div class="mp-fact bad">1 500 ч/ч</div>
</div>
<div class="metric-kpi">
<div class="kpi-label" style="color:var(--bad);font-weight:700;font-size:10px;letter-spacing:.08em;">СРЫВ</div>
<div class="kpi-n bad">1875</div>
<div class="kpi-u">ч/ч</div>
<div class="kpi-delta">+300 ч/ч</div>
</div>
</div><div class="bar-row"><div class="bar bar-overflow"><div class="fill"></div></div><span class="bar-pct bar-pct-over">125%</span></div></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair">
<div class="mp-label">план / факт</div>
<div class="mp-plan">1,2 млн ₽</div>
<div class="mp-fact">0,7 млн ₽</div>
</div>
<div class="metric-kpi">
<div class="kpi-label">остаток</div>
<div class="kpi-n">0,5</div>
<div class="kpi-u">млн</div>
</div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:60%"></div></div><span class="bar-pct">60%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair">
<div class="mp-label">план / факт</div>
<div class="mp-plan">1,0 млн ₽</div>
<div class="mp-fact">0,68 млн ₽</div>
</div>
<div class="metric-kpi">
<div class="kpi-label">остаток</div>
<div class="kpi-n">0,32</div>
<div class="kpi-u">млн</div>
</div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:68%"></div></div><span class="bar-pct">68%</span></div></div></div></div>
<!-- СТРОКА 2: ЖК Север — СРЫВ Затраты 138% -->
<div class="board-row health-bad stage-pd">
<div class="cell proj-cell">
<div class="proj-head">
<div>
<div class="proj-code">ШИФР <b>2023-0011</b></div>
<div class="proj-name">ЖК Север</div>
<div class="proj-dev">Град Инвест</div>
<div class="proj-gip">ГИП: И. Смирнов · 58,0 млн ₽</div>
</div>
<div class="badge-stack"><span class="badge badge-pd">ПД</span><span class="badge-status status-cur">ТЕК</span></div>
</div>
<div class="proj-health">
<span class="health-dot bad"></span>
<span class="health-label">В работе · Перерасход затрат</span>
</div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="16.3 147.0" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">10%</text></svg><div class="team-total">24 чел.</div></div></div><div class="cell" style="padding:8px 8px;">
<div class="summary-list">
<div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:68%"></div></div><span class="spct">68%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:66%"></div></div><span class="spct">66%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:63%"></div></div><span class="spct">63%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:57%"></div></div><span class="spct spct-skew">57%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap over-wrap"><div class="sbar-fill sbar-over"></div></div><span class="spct spct-over">138%</span></div></div>
</div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2026.01.10</div><div class="dr-line">оконч.: 2026.04.25</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">41</div><div class="kpi-u">дня</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:68%"></div></div><span class="bar-pct">68%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">66%</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">34</div><div class="kpi-u">%</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:66%"></div></div><span class="bar-pct">66%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1 750 ч/ч</div><div class="mp-fact">1 100 ч/ч</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">640</div><div class="kpi-u">ч/ч</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:63%"></div></div><span class="bar-pct">63%</span></div></div></div><div class="cell pair-cell overflow-cell skew-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2,1 млн ₽</div><div class="mp-fact">1,2 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">0,9</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:57%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">57%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair">
<div class="mp-label">план / факт</div>
<div class="mp-plan">1,8 млн ₽</div>
<div class="mp-fact bad">2,5 млн ₽</div>
</div>
<div class="metric-kpi">
<div class="kpi-label" style="color:var(--bad);font-weight:700;font-size:10px;letter-spacing:.08em;">СРЫВ</div>
<div class="kpi-n bad">3,4</div>
<div class="kpi-u">млн ₽</div>
<div class="kpi-delta">+0,7 млн</div>
</div>
</div><div class="bar-row"><div class="bar bar-overflow"><div class="fill"></div></div><span class="bar-pct bar-pct-over">138%</span></div></div></div></div>
<!-- СТРОКА 3: ЖК Юг — норма -->
<div class="board-row health-ok stage-rd">
<div class="cell proj-cell">
<div class="proj-head">
<div>
<div class="proj-code">ШИФР <b>2023-0014</b></div>
<div class="proj-name">ЖК Юг</div>
<div class="proj-dev">Сити Девелопмент</div>
<div class="proj-gip">ГИП: М. Волков · 82,0 млн ₽</div>
</div>
<div class="badge-stack"><span class="badge badge-rd">РД</span><span class="badge-status status-new">НОВ</span></div>
</div>
<div class="proj-health">
<span class="health-dot ok"></span>
<span class="health-label">В работе · 72%</span>
</div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="32.7 130.7" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">20%</text></svg><div class="team-total">40 чел.</div></div></div><div class="cell" style="padding:8px 8px;">
<div class="summary-list">
<div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:72%"></div></div><span class="spct">72%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:72%"></div></div><span class="spct">72%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:72%"></div></div><span class="spct">72%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:72%"></div></div><span class="spct">72%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:68%"></div></div><span class="spct">68%</span></div></div>
</div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2026.03.15</div><div class="dr-line">оконч.: 2026.07.30</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">48</div><div class="kpi-u">дня</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:72%"></div></div><span class="bar-pct">72%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">72%</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">28</div><div class="kpi-u">%</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:72%"></div></div><span class="bar-pct">72%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2 100 ч/ч</div><div class="mp-fact">1 520 ч/ч</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">580</div><div class="kpi-u">ч/ч</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:72%"></div></div><span class="bar-pct">72%</span></div></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2,8 млн ₽</div><div class="mp-fact">2,0 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">0,8</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:72%"></div></div><span class="bar-pct">72%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2,2 млн ₽</div><div class="mp-fact">1,5 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">0,7</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:68%"></div></div><span class="bar-pct">68%</span></div></div></div></div>
<!-- СТРОКА 4: БЦ Zorge — ПЕРЕКОС: трудозатраты опережают готовность на 25% -->
<div class="board-row health-warn stage-kk">
<div class="cell proj-cell">
<div class="proj-head">
<div>
<div class="proj-code">ШИФР <b>2025-0013-ПД</b></div>
<div class="proj-name">БЦ Zorge</div>
<div class="proj-dev">Форсайт</div>
<div class="proj-gip">ГИП: Е. Петрова · 31,0 млн ₽</div>
</div>
<div class="badge-stack"><span class="badge badge-kk">КК</span><span class="badge-status status-cur">ТЕК</span></div>
</div>
<div class="proj-health">
<span class="health-dot warn"></span>
<span class="health-label">В работе · 35%</span>
</div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="19.6 143.8" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">12%</text></svg><div class="team-total">17 чел.</div></div></div><div class="cell" style="padding:8px 8px;">
<div class="summary-list">
<div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:55%"></div></div><span class="spct">55%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:35%"></div></div><span class="spct spct-skew">35%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:60%"></div></div><span class="spct spct-skew">60%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:25%"></div></div><span class="spct">25%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:38%"></div></div><span class="spct">38%</span></div></div>
</div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2026.04.01</div><div class="dr-line">оконч.: 2026.09.30</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">114</div><div class="kpi-u">дней</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:55%"></div></div><span class="bar-pct">55%</span></div></div><div class="cell pair-cell skew-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">35%</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">65</div><div class="kpi-u">%</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:35%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">35%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">480 ч/ч</div><div class="mp-fact">290 ч/ч</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">190</div><div class="kpi-u">ч/ч</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:60%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">60%</span></div></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">0,6 млн ₽</div><div class="mp-fact">0,15 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">0,45</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:25%"></div></div><span class="bar-pct">25%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">0,55 млн ₽</div><div class="mp-fact">0,21 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">0,34</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:38%"></div></div><span class="bar-pct">38%</span></div></div></div></div>
<!-- СТРОКА 5: ЖК Большой Палашевский ЭТАП 1 -->
<div class="board-row health-warn stage-rd">
<div class="cell proj-cell">
<div class="proj-head">
<div>
<div class="proj-code">ШИФР <b>2024-0001</b></div>
<div class="proj-name">ЖК Большой Палашевский ЭТАП 1</div>
<div class="proj-dev">Sminex</div>
<div class="proj-gip">ГИП: С. Орлов · 83,8 млн ₽</div>
</div>
<div class="badge-stack"><span class="badge badge-rd">РД</span><span class="badge-status status-stop">СТОП</span></div>
</div>
<div class="proj-health">
<span class="health-dot warn"></span>
<span class="health-label">В работе · 52%</span>
</div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="29.4 134.0" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">18%</text></svg><div class="team-total">25 чел.</div></div></div><div class="cell" style="padding:8px 8px;">
<div class="summary-list">
<div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:60%"></div></div><span class="spct">60%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:52%"></div></div><span class="spct">52%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:58%"></div></div><span class="spct">58%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:50%"></div></div><span class="spct">50%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:54%"></div></div><span class="spct">54%</span></div></div>
</div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2025.11.01</div><div class="dr-line">оконч.: 2026.08.15</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">68</div><div class="kpi-u">дней</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:60%"></div></div><span class="bar-pct">60%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">52%</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">48</div><div class="kpi-u">%</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:52%"></div></div><span class="bar-pct">52%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1 640 ч/ч</div><div class="mp-fact">950 ч/ч</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">690</div><div class="kpi-u">ч/ч</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:58%"></div></div><span class="bar-pct">58%</span></div></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">3,2 млн ₽</div><div class="mp-fact">1,6 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,6</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:50%"></div></div><span class="bar-pct">50%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2,9 млн ₽</div><div class="mp-fact">1,57 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,33</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:54%"></div></div><span class="bar-pct">54%</span></div></div></div></div>
<!-- СТРОКА 6: ТПУ Восток -->
<div class="board-row health-warn stage-rd">
<div class="cell proj-cell">
<div class="proj-head">
<div>
<div class="proj-code">ШИФР <b>2022-0020</b></div>
<div class="proj-name">ТПУ Восток</div>
<div class="proj-dev">Урбан Система</div>
<div class="proj-gip">ГИП: В. Лапин · 44,0 млн ₽</div>
</div>
<div class="badge-stack"><span class="badge badge-rd">РД</span><span class="badge-status status-new">НОВ</span></div>
</div>
<div class="proj-health">
<span class="health-dot warn"></span>
<span class="health-label">В работе · 61%</span>
</div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="35.9 127.4" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">22%</text></svg><div class="team-total">34 чел.</div></div></div><div class="cell" style="padding:8px 8px;">
<div class="summary-list">
<div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:70%"></div></div><span class="spct">70%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:61%"></div></div><span class="spct">61%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:65%"></div></div><span class="spct">65%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:35%"></div></div><span class="spct spct-skew">35%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:62%"></div></div><span class="spct spct-skew">62%</span></div></div>
</div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2025.09.01</div><div class="dr-line">оконч.: 2026.06.30</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">22</div><div class="kpi-u">дня</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:70%"></div></div><span class="bar-pct">70%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">61%</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">39</div><div class="kpi-u">%</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:61%"></div></div><span class="bar-pct">61%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">900 ч/ч</div><div class="mp-fact">585 ч/ч</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">315</div><div class="kpi-u">ч/ч</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:65%"></div></div><span class="bar-pct">65%</span></div></div></div><div class="cell pair-cell skew-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1,5 млн ₽</div><div class="mp-fact">0,53 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">0,97</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:35%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">35%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1,3 млн ₽</div><div class="mp-fact">0,81 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">0,49</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:62%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">62%</span></div></div></div></div>
<!-- СТРОКА 7: БЦ Meridian — СРЫВ Затраты 118% -->
<div class="board-row health-bad stage-rd">
<div class="cell proj-cell">
<div class="proj-head">
<div>
<div class="proj-code">ШИФР <b>2024-0010</b></div>
<div class="proj-name">БЦ Meridian</div>
<div class="proj-dev">North Capital</div>
<div class="proj-gip">ГИП: Н. Соколов · 65,0 млн ₽</div>
</div>
<div class="badge-stack"><span class="badge badge-rd">РД</span><span class="badge-status status-cur">ТЕК</span></div>
</div>
<div class="proj-health">
<span class="health-dot bad"></span>
<span class="health-label">В работе · Перерасход затрат</span>
</div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="26.1 137.2" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">16%</text></svg><div class="team-total">23 чел.</div></div></div><div class="cell" style="padding:8px 8px;">
<div class="summary-list">
<div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:62%"></div></div><span class="spct">62%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:58%"></div></div><span class="spct">58%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:65%"></div></div><span class="spct">65%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:52%"></div></div><span class="spct spct-skew">52%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap over-wrap"><div class="sbar-fill sbar-over"></div></div><span class="spct spct-over">118%</span></div></div>
</div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2025.12.01</div><div class="dr-line">оконч.: 2026.09.01</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">85</div><div class="kpi-u">дней</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:62%"></div></div><span class="bar-pct">62%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">58%</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">42</div><div class="kpi-u">%</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:58%"></div></div><span class="bar-pct">58%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1 200 ч/ч</div><div class="mp-fact">780 ч/ч</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">420</div><div class="kpi-u">ч/ч</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:65%"></div></div><span class="bar-pct">65%</span></div></div></div><div class="cell pair-cell overflow-cell skew-cell"><div class="pair-half"><div class="metric-top">
<div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2,4 млн ₽</div><div class="mp-fact">1,25 млн ₽</div></div>
<div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,15</div><div class="kpi-u">млн</div></div>
</div><div class="bar-row"><div class="bar"><div class="fill" style="width:52%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">52%</span></div></div><div class="pair-half"><div class="metric-top">
<div class="metric-pair">
<div class="mp-label">план / факт</div>
<div class="mp-plan">2,0 млн ₽</div>
<div class="mp-fact bad">2,36 млн ₽</div>
</div>
<div class="metric-kpi">
<div class="kpi-label" style="color:var(--bad);font-weight:700;font-size:10px;letter-spacing:.08em;">СРЫВ</div>
<div class="kpi-n bad">2,36</div>
<div class="kpi-u">млн ₽</div>
<div class="kpi-delta">+0,36 млн</div>
</div>
</div><div class="bar-row"><div class="bar bar-overflow"><div class="fill"></div></div><span class="bar-pct bar-pct-over">118%</span></div></div></div></div>
<!-- СТРОКА 8: ЖК Речной — норма -->
<div class="board-row health-ok stage-rd">
<div class="cell proj-cell">
<div class="proj-head"><div><div class="proj-code">ШИФР <b>2024-0015</b></div><div class="proj-name">ЖК Речной</div><div class="proj-dev">Речные Берега</div><div class="proj-gip">ГИП: А. Фёдоров · 91,0 млн ₽</div></div><div class="badge-stack"><span class="badge badge-rd">РД</span><span class="badge-status status-cur">ТЕК</span></div></div>
<div class="proj-health"><span class="health-dot ok"></span><span class="health-label">В работе · 78%</span></div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="29.4 134.0" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">18%</text></svg><div class="team-total">29 чел.</div></div></div><div class="cell" style="padding:8px 8px;"><div class="summary-list"><div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:80%"></div></div><span class="spct">80%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:78%"></div></div><span class="spct">78%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:75%"></div></div><span class="spct">75%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:76%"></div></div><span class="spct">76%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:74%"></div></div><span class="spct">74%</span></div></div></div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2025.06.01</div><div class="dr-line">оконч.: 2026.10.15</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">127</div><div class="kpi-u">дней</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:80%"></div></div><span class="bar-pct">80%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">78%</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">22</div><div class="kpi-u">%</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:78%"></div></div><span class="bar-pct">78%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2 400 ч/ч</div><div class="mp-fact">1 800 ч/ч</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">600</div><div class="kpi-u">ч/ч</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:75%"></div></div><span class="bar-pct">75%</span></div></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">4,5 млн ₽</div><div class="mp-fact">3,4 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,1</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:76%"></div></div><span class="bar-pct">76%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">3,8 млн ₽</div><div class="mp-fact">2,8 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,0</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:74%"></div></div><span class="bar-pct">74%</span></div></div></div></div>
<!-- СТРОКА 9: ЖК Западный — перекос поступл/затраты -->
<div class="board-row health-warn stage-pd">
<div class="cell proj-cell">
<div class="proj-head"><div><div class="proj-code">ШИФР <b>2023-0031</b></div><div class="proj-name">ЖК Западный</div><div class="proj-dev">Запад Девелопмент</div><div class="proj-gip">ГИП: О. Белова · 54,0 млн ₽</div></div><div class="badge-stack"><span class="badge badge-pd">ПД</span><span class="badge-status status-stop">СТОП</span></div></div>
<div class="proj-health"><span class="health-dot warn"></span><span class="health-label">В работе · Перерасход затрат</span></div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="22.6 140.7" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">14%</text></svg><div class="team-total">23 чел.</div></div></div><div class="cell" style="padding:8px 8px;"><div class="summary-list"><div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:52%"></div></div><span class="spct">52%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:55%"></div></div><span class="spct">55%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:58%"></div></div><span class="spct">58%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:42%"></div></div><span class="spct spct-skew">42%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap over-wrap"><div class="sbar-fill sbar-over"></div></div><span class="spct spct-over">112%</span></div></div></div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2025.03.01</div><div class="dr-line">оконч.: 2026.12.01</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">174</div><div class="kpi-u">дней</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:52%"></div></div><span class="bar-pct">52%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">55%</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">45</div><div class="kpi-u">%</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:55%"></div></div><span class="bar-pct">55%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1 900 ч/ч</div><div class="mp-fact">1 100 ч/ч</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">800</div><div class="kpi-u">ч/ч</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:58%"></div></div><span class="bar-pct">58%</span></div></div></div><div class="cell pair-cell overflow-cell skew-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">3,1 млн ₽</div><div class="mp-fact">1,3 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,8</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:42%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">42%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2,5 млн ₽</div><div class="mp-fact bad">2,8 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label" style="color:var(--bad);font-weight:700;font-size:10px;">СРЫВ</div><div class="kpi-n bad">2,8</div><div class="kpi-u">млн ₽</div><div class="kpi-delta">+0,3 млн</div></div></div><div class="bar-row"><div class="bar bar-overflow"><div class="fill"></div></div><span class="bar-pct bar-pct-over">112%</span></div></div></div></div>
<!-- СТРОКА 10: МФЦ Центральный — КК ранняя стадия -->
<div class="board-row health-ok stage-kk">
<div class="cell proj-cell">
<div class="proj-head"><div><div class="proj-code">ШИФР <b>2025-0044</b></div><div class="proj-name">МФЦ Центральный</div><div class="proj-dev">ЦентрСтрой</div><div class="proj-gip">ГИП: В. Кузнецов · 38,0 млн ₽</div></div><div class="badge-stack"><span class="badge badge-kk">КК</span><span class="badge-status status-new">НОВ</span></div></div>
<div class="proj-health"><span class="health-dot ok"></span><span class="health-label">В работе · 30%</span></div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="14.5 148.8" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">9%</text></svg><div class="team-total">15 чел.</div></div></div><div class="cell" style="padding:8px 8px;"><div class="summary-list"><div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:28%"></div></div><span class="spct">28%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:30%"></div></div><span class="spct">30%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:32%"></div></div><span class="spct">32%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:30%"></div></div><span class="spct">30%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:29%"></div></div><span class="spct">29%</span></div></div></div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2026.01.15</div><div class="dr-line">оконч.: 2027.03.01</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">293</div><div class="kpi-u">дней</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:28%"></div></div><span class="bar-pct">28%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">30%</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">70</div><div class="kpi-u">%</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:30%"></div></div><span class="bar-pct">30%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">980 ч/ч</div><div class="mp-fact">314 ч/ч</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">666</div><div class="kpi-u">ч/ч</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:32%"></div></div><span class="bar-pct">32%</span></div></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1,8 млн ₽</div><div class="mp-fact">0,54 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,26</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:30%"></div></div><span class="bar-pct">30%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1,5 млн ₽</div><div class="mp-fact">0,44 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,06</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:29%"></div></div><span class="bar-pct">29%</span></div></div></div></div>
<!-- СТРОКА 11: ЖК Парковый — СРЫВ трудозатраты -->
<div class="board-row health-bad stage-pd">
<div class="cell proj-cell">
<div class="proj-head"><div><div class="proj-code">ШИФР <b>2023-0019</b></div><div class="proj-name">ЖК Парковый</div><div class="proj-dev">ПаркСити</div><div class="proj-gip">ГИП: Д. Миронов · 67,5 млн ₽</div></div><div class="badge-stack"><span class="badge badge-pd">ПД</span><span class="badge-status status-cur">ТЕК</span></div></div>
<div class="proj-health"><span class="health-dot bad"></span><span class="health-label">В работе · СРЫВ трудозатрат</span></div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="34.3 129.0" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">21%</text></svg><div class="team-total">36 чел.</div></div></div><div class="cell" style="padding:8px 8px;"><div class="summary-list"><div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:71%"></div></div><span class="spct">71%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-skew" style="width:48%"></div></div><span class="spct spct-skew">48%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap over-wrap"><div class="sbar-fill sbar-over"></div></div><span class="spct spct-over">131%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:50%"></div></div><span class="spct">50%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:55%"></div></div><span class="spct">55%</span></div></div></div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2024.09.01</div><div class="dr-line">оконч.: 2026.11.30</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">172</div><div class="kpi-u">дней</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:71%"></div></div><span class="bar-pct">71%</span></div></div><div class="cell pair-cell overflow-cell skew-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">48%</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">52</div><div class="kpi-u">%</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:48%;background:rgba(255,160,50,0.75);"></div></div><span class="bar-pct bar-pct-skew">48%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">1 600 ч/ч</div><div class="mp-fact bad">2 096 ч/ч</div></div><div class="metric-kpi"><div class="kpi-label" style="color:var(--bad);font-weight:700;font-size:10px;">СРЫВ</div><div class="kpi-n bad">2 096</div><div class="kpi-u">ч/ч</div><div class="kpi-delta">+496 ч/ч</div></div></div><div class="bar-row"><div class="bar bar-overflow"><div class="fill"></div></div><span class="bar-pct bar-pct-over">131%</span></div></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">3,2 млн ₽</div><div class="mp-fact">1,6 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,6</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:50%"></div></div><span class="bar-pct">50%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">2,8 млн ₽</div><div class="mp-fact">1,54 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">1,26</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:55%"></div></div><span class="bar-pct">55%</span></div></div></div></div>
<!-- СТРОКА 12: ТЦ Галактика — норма -->
<div class="board-row health-ok stage-kk">
<div class="cell proj-cell">
<div class="proj-head"><div><div class="proj-code">ШИФР <b>2025-0051</b></div><div class="proj-name">ТЦ Галактика</div><div class="proj-dev">GalaxyRetail</div><div class="proj-gip">ГИП: Е. Романова · 120,0 млн ₽</div></div><div class="badge-stack"><span class="badge badge-kk">КК</span><span class="badge-status status-cur">ТЕК</span></div></div>
<div class="proj-health"><span class="health-dot ok"></span><span class="health-label">В работе · 22%</span></div>
</div><div class="cell team-cell"><div class="team-donut-wrap"><svg height="66" viewbox="0 0 66 66" width="66"><circle cx="33" cy="33" fill="none" r="26" stroke="rgba(120,160,200,0.12)" stroke-width="5"></circle><circle cx="33" cy="33" fill="none" r="26" stroke="#5aa6e0" stroke-dasharray="36.1 127.2" stroke-dashoffset="40.8" stroke-linecap="round" stroke-width="5"></circle><text fill="#5aa6e0" font-family="Inter,Arial,sans-serif" font-size="15" font-weight="700" text-anchor="middle" x="33" y="38">23%</text></svg><div class="team-total">46 чел.</div></div></div><div class="cell" style="padding:8px 8px;"><div class="summary-list"><div class="srow"><span class="slabel">сроки</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:20%"></div></div><span class="spct">20%</span></div><div class="srow"><span class="slabel">готовность</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:22%"></div></div><span class="spct">22%</span></div><div class="srow"><span class="slabel">трудозат</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:24%"></div></div><span class="spct">24%</span></div><div class="srow"><span class="slabel">поступл.</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:22%"></div></div><span class="spct">22%</span></div><div class="srow"><span class="slabel">затраты</span><div class="sbar-wrap"><div class="sbar-fill sbar-neutral" style="width:21%"></div></div><span class="spct">21%</span></div></div></div><div class="cell dates-cell"><div class="dates-top"><div class="dates-range"><div class="mp-label"> </div><div class="dates-pair"><div class="dr-line">начало: 2026.02.01</div><div class="dr-line">оконч.: 2027.08.01</div></div></div><div class="dates-kpi"><div class="kpi-label">осталось</div><div class="kpi-n">416</div><div class="kpi-u">дней</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:20%"></div></div><span class="bar-pct">20%</span></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">100%</div><div class="mp-fact">22%</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">78</div><div class="kpi-u">%</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:22%"></div></div><span class="bar-pct">22%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">5 200 ч/ч</div><div class="mp-fact">1 248 ч/ч</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">3 952</div><div class="kpi-u">ч/ч</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:24%"></div></div><span class="bar-pct">24%</span></div></div></div><div class="cell pair-cell"><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">6,0 млн ₽</div><div class="mp-fact">1,32 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">4,68</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:22%"></div></div><span class="bar-pct">22%</span></div></div><div class="pair-half"><div class="metric-top"><div class="metric-pair"><div class="mp-label">план / факт</div><div class="mp-plan">5,2 млн ₽</div><div class="mp-fact">1,09 млн ₽</div></div><div class="metric-kpi"><div class="kpi-label">остаток</div><div class="kpi-n">4,11</div><div class="kpi-u">млн</div></div></div><div class="bar-row"><div class="bar"><div class="fill" style="width:21%"></div></div><span class="bar-pct">21%</span></div></div></div></div>
</div><!-- /.board-body -->
</div><!-- /.board -->
</main>
</body>
</html>