meraproject/Task/Управление проектами/ДАШБОРД-4-v1.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

540 lines
50 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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>ДАШБОРД-4-v1 — Полный набор разделов</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: minmax(200px, 1.05fr) 1.09fr 0.5fr 2.61fr 1.15fr;
}
* { 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; }
/* ─── ДАШБОРД-3 спец-стили (цвета только из палитры v22) ─── */
.board-row.v3-row {
padding: 0;
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius);
grid-template-rows: auto auto auto;
grid-auto-rows: auto;
row-gap: 0;
column-gap: 0;
flex-shrink: 0;
height: auto;
}
.board-row.v3-row.stage-kk { border-left: 3px solid #E0B15A; }
.board-row.v3-row.stage-pd { border-left: 3px solid #5CC0A0; }
.board-row.v3-row.stage-rd { border-left: 3px solid #5AA6E0; }
.v3-proj-cell {
padding: 6px 10px 4px 12px;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: start;
column-gap: 8px;
grid-row: 1 / span 15;
grid-column: 1;
align-self: stretch;
border-right: 1px solid var(--border);
overflow: hidden;
}
.v3-proj-info { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; min-width: 0; overflow: hidden; flex: 1; }
.v3-proj-cell .p-shifr { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.v3-proj-cell .p-shifr b { color: var(--text); }
.v3-proj-cell .p-name { font-size: 13px; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; line-height: 1.15; }
.v3-proj-cell .badge-stack { display: flex; flex-direction: column; gap: 2px; align-items: stretch; flex-shrink: 0; opacity: 0.55; }
.v3-proj-cell .badge-stack .badge,
.v3-proj-cell .badge-stack .badge-status { width: 42px !important; font-size: 8px; padding: 1px 4px; text-align: center; border-radius: 3px; line-height: 1.2; white-space: nowrap; box-sizing: border-box; }
.v3-section-row { display: contents; }
.v3-section-cell-wrap {
border-top: 1px solid var(--border);
border-right: 1px solid var(--border);
min-height: 32px;
display: flex; align-items: center;
padding: 3px 12px;
min-width: 0;
}
.v3-section-cell-wrap.last-col { border-right: none; }
.v3-section-row.first-row .v3-section-cell-wrap { border-top: none; }
/* Подсветка ячеек — как в v22: перекос (skew) оранжевый, срыв (over) красный */
.v3-section-cell-wrap.skew-cell {
background: rgba(255,140,0,0.07);
border-color: rgba(255,140,0,0.30);
}
.v3-section-cell-wrap.overflow-cell {
background: rgba(224,122,111,0.07);
border-color: rgba(224,122,111,0.30);
}
.v3-section-cell-wrap.overflow-cell.skew-cell {
background: rgba(224,122,111,0.07);
border-color: rgba(224,122,111,0.30);
}
.v3-section-name { display: flex; align-items: baseline; gap: 12px; font-size: 13px; color: var(--muted); line-height: 1.25; }
.v3-sec-code { font-weight: 700; color: var(--muted); min-width: 34px; flex-shrink: 0; }
.v3-sec-full { font-weight: 400; color: var(--muted); }
.v3-sum { width: 100%; text-align: center; font-weight: 700; font-size: 14px; }
.v3-sum.gray { color: var(--muted); }
.v3-sum.skew { color: rgba(255,170,70,1); }
.v3-sum.over { color: rgba(236,140,128,1); }
.v3-sum.good { color: #4cd989; }
/* Бейдж количества сотрудников перед фамилией */
.v3-team-count {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 18px;
height: 18px;
padding: 0 5px;
border-radius: 4px;
background: rgba(255,255,255,0.06);
border: 1px solid rgba(255,255,255,0.10);
color: var(--text);
font-size: 11px;
font-weight: 700;
line-height: 1;
}
/* Парная ячейка Проектирование — две половины: готовность и трудозатраты */
.v3-pair { display: flex; width: 100%; gap: 12px; align-items: center; }
.v3-half { flex: 1; min-width: 0; }
.v3-pair > .v3-half + .v3-half { border-left: 1px solid var(--border); padding-left: 12px; }
/* v3-v2: метрика над баром — две фиксированные колонки 50/50, блоки выравниваются по левым краям колонок */
.v3-metric-line {
display: grid; grid-template-columns: 1fr 1fr; align-items: baseline; column-gap: 0;
margin-bottom: 2px; padding-right: 4px;
}
.v3-metric-line .v3-metric-block:nth-child(1):last-child { grid-column: 2; } /* одиночный блок (готовность "остаток") — в правую колонку */
.v3-metric-line .v3-metric-block { justify-self: end; padding-right: 8px; }
.v3-metric-block { display: inline-flex; align-items: baseline; gap: 4px; line-height: 1; }
.v3-metric-block .kpi-label {
font-size: 9px; text-transform: uppercase; letter-spacing: .07em; color: var(--faint);
}
.v3-metric-block .kpi-n {
font-size: 13px; font-weight: 800; line-height: 1; color: var(--faint);
}
.v3-metric-block .kpi-n.bad { color: var(--bad); }
.v3-metric-block .kpi-n.skew { color: var(--warn); }
.v3-metric-block .kpi-u { font-size: 10px; color: var(--faint); }
.v3-metric-block .kpi-label.is-bad { color: var(--bad); }
.v3-metric-block .kpi-u.is-bad { color: var(--bad); }
/* Цифра процента-факт СЛЕВА от шкалы (как на эскизе) */
.v3-bar-fact {
font-size: 11px; font-weight: 700; color: var(--muted);
width: 34px; text-align: right; flex-shrink: 0;
}
.v3-bar-fact.bad { color: var(--bad); }
.v3-bar-fact.skew { color: #FFA020; }
.v3-team-person { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.v3-team-person::before { content: "▽"; color: var(--faint); font-size: 9px; }
</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">ВСЕ РАЗДЕЛЫ</div><div class="sec-tab">ГП</div><div class="sec-tab active">АР</div><div class="sec-tab active">КР</div><div class="sec-tab active">ОВиК</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 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"><span class="filter-icon"></span></div><div class="filter-cell"><span class="filter-icon"></span></div><div class="filter-cell"><span class="filter-icon"></span></div><div class="filter-cell"><span class="filter-icon"></span></div><div class="filter-cell"><span class="filter-icon"></span></div></div>
<div class="board-body"><div class="board-row v3-row stage-pd"><div class="v3-proj-cell"><div class="v3-proj-info"><div class="p-shifr"><span>ШИФР </span><b>2025-0925</b></div><div class="p-name">ЖК Северный Парк</div></div><div class="badge-stack"><span class="badge badge-pd">ПД</span><span class="badge-status status-stop">СТОП</span></div></div><div class="v3-section-row first-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">АР</span><span class="v3-sec-full">Архитектурные решения</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">16%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">31</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">69%</span><div class="bar"><div class="fill" style="width:69%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">2100</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">315</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">85%</span><div class="bar"><div class="fill" style="width:85%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">3</span><span>Смирнова А.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">7</span><span>Громова А.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">КР</span><span class="v3-sec-full">Конструктив</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum over">60%</div></div><div class="v3-section-cell-wrap skew-cell"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">63</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact skew">37%</span><div class="bar"><div class="fill" style="width:37%;background:rgba(255,160,50,0.75);"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">1600</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">48</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact skew">97%</span><div class="bar"><div class="fill" style="width:97%;background:rgba(255,160,50,0.75);"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">2</span><span>Челядкова А.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">8</span><span>Фёдоров К.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ЭОМ</span><span class="v3-sec-full">Электроснабжение</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">9%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">73</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">27%</span><div class="bar"><div class="fill" style="width:27%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">1600</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">1024</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">36%</span><div class="bar"><div class="fill" style="width:36%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">3</span><span>Соколова И.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">9</span><span>Захарова Л.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ОВиК</span><span class="v3-sec-full">Вентиляция и кондиционирование</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">11%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">50</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">50%</span><div class="bar"><div class="fill" style="width:50%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">2100</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">819</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">61%</span><div class="bar"><div class="fill" style="width:61%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">4</span><span>Иванов М.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">9</span><span>Романов И.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ВК</span><span class="v3-sec-full">Водоснабжение и канализация</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">13%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">50</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">50%</span><div class="bar"><div class="fill" style="width:50%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">1200</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">444</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">63%</span><div class="bar"><div class="fill" style="width:63%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">2</span><span>Громова А.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">5</span><span>Михайлов Б.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ССиАК</span><span class="v3-sec-full">Слаботочные системы</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum skew">20%</div></div><div class="v3-section-cell-wrap skew-cell"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">48</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact skew">52%</span><div class="bar"><div class="fill" style="width:52%;background:rgba(255,160,50,0.75);"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">2400</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">672</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact skew">72%</span><div class="bar"><div class="fill" style="width:72%;background:rgba(255,160,50,0.75);"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">2</span><span>Петров К.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">8</span><span>Сергеева Т.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ПОС</span><span class="v3-sec-full">Проект организации строительства</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum skew">37%</div></div><div class="v3-section-cell-wrap overflow-cell"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">7</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact skew">93%</span><div class="bar"><div class="fill" style="width:93%;background:rgba(255,160,50,0.75);"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">800</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label is-bad">срыв</span><span class="kpi-n bad">+240</span><span class="kpi-u is-bad">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact bad">130%</span><div class="bar bar-overflow"><div class="fill"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">2</span><span>Кузнецова О.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">6</span><span>Никитин В.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ГП</span><span class="v3-sec-full">Генеральный план</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">2%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">39</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">61%</span><div class="bar"><div class="fill" style="width:61%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">2400</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">888</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">63%</span><div class="bar"><div class="fill" style="width:63%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">2</span><span>Морозов Д.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">7</span><span>Поляков Р.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ТХ</span><span class="v3-sec-full">Технологические решения</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum skew">23%</div></div><div class="v3-section-cell-wrap skew-cell"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">51</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact skew">49%</span><div class="bar"><div class="fill" style="width:49%;background:rgba(255,160,50,0.75);"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">800</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">224</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact skew">72%</span><div class="bar"><div class="fill" style="width:72%;background:rgba(255,160,50,0.75);"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">2</span><span>Лебедев П.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">6</span><span>Жукова А.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ПЗ</span><span class="v3-sec-full">Пояснительная записка</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">0%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">21</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">79%</span><div class="bar"><div class="fill" style="width:79%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">1600</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">336</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">79%</span><div class="bar"><div class="fill" style="width:79%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">4</span><span>Тимофеева Е.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">8</span><span>Антонов Е.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ИОИ1</span><span class="v3-sec-full">Инженерные изыскания</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">4%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">7</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">93%</span><div class="bar"><div class="fill" style="width:93%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">1200</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">36</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">97%</span><div class="bar"><div class="fill" style="width:97%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">3</span><span>Орлов С.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">8</span><span>Воробьёв Г.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ПБ</span><span class="v3-sec-full">Пожарная безопасность</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">19%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">23</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">77%</span><div class="bar"><div class="fill" style="width:77%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">2100</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">84</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">96%</span><div class="bar"><div class="fill" style="width:96%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">4</span><span>Белова Н.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">9</span><span>Крыкова А.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ОДИ</span><span class="v3-sec-full">Обследование и демонтаж</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">3%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">20</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">80%</span><div class="bar"><div class="fill" style="width:80%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">1200</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">204</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">83%</span><div class="bar"><div class="fill" style="width:83%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">3</span><span>Смирнова А.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">5</span><span>Громова А.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ТМ</span><span class="v3-sec-full">Транспортная инфраструктура</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">9%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">47</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">53%</span><div class="bar"><div class="fill" style="width:53%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">1200</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">456</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">62%</span><div class="bar"><div class="fill" style="width:62%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">4</span><span>Челядкова А.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">6</span><span>Фёдоров К.</span></div></div></div></div></div><div class="v3-section-row"><div class="v3-section-cell-wrap"><div class="v3-section-name"><span class="v3-sec-code">ЭЭ</span><span class="v3-sec-full">Энергоэффективность</span></div></div><div class="v3-section-cell-wrap"><div class="v3-sum gray">7%</div></div><div class="v3-section-cell-wrap"><div class="v3-pair"><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">67</span><span class="kpi-u">%</span></div></div><div class="bar-row"><span class="v3-bar-fact">33%</span><div class="bar"><div class="fill" style="width:33%"></div></div></div></div><div class="v3-half"><div class="v3-metric-line"><div class="v3-metric-block"><span class="kpi-label">план</span><span class="kpi-n">1600</span><span class="kpi-u">ч/ч</span></div><div class="v3-metric-block"><span class="kpi-label">остаток</span><span class="kpi-n">960</span><span class="kpi-u">ч/ч</span></div></div><div class="bar-row"><span class="v3-bar-fact">40%</span><div class="bar"><div class="fill" style="width:40%"></div></div></div></div></div></div><div class="v3-section-cell-wrap last-col"><div class="v3-pair"><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">4</span><span>Соколова И.</span></div></div><div class="v3-half"><div class="v3-team-person"><span class="v3-team-count">7</span><span>Захарова Л.</span></div></div></div></div></div></div></div><!-- /.board-body -->
</div><!-- /.board -->
</main>
</body>
</html>