852 lines
81 KiB
HTML
852 lines
81 KiB
HTML
|
|
<!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
|
|||
|
|
<!-- СТРОКА 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-r
|
|||
|
|
<!-- СТРОКА 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>
|