@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(/fonts/IBMPlexSans-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:PT Serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/PTSerif-700-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:PT Serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/PTSerif-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:PT Serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/PTSerif-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f6f7f5;--card:#fff;--ink:#1b2430;--muted:#66707d;--line:#dee2e7;--line-soft:#ebedf0;--accent:#2b47c4;--accent-soft:#e8ecfb;--g:#1f8a55;--g-soft:#e4f2ea;--a:#c97b00;--a-soft:#f8eedc;--r:#c13a2e;--r-soft:#f9e7e4;--trust-hi:#2b47c4;--trust-lo:#b7bdc6;--radius:10px;--font-sans:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--font-serif:"PT Serif", Georgia, serif;--ease-out:cubic-bezier(.23, 1, .32, 1);--tap:44px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:15px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.mono{font-family:var(--font-mono);font-size:13px}.muted{color:var(--muted)}.good{color:var(--g)}.warn{color:var(--a)}.bad{color:var(--r)}.shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:10;padding:0 24px;padding-top:env(safe-area-inset-top);background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:24px;min-height:56px;display:flex;position:sticky;top:0}.shell[data-host=b24] .topbar{min-height:48px;position:static}.brand{font:700 18px/1 var(--font-serif);color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent);border-radius:2px;width:10px;height:18px}.nav{gap:4px;display:flex}.nav-link{min-height:36px;color:var(--muted);transition:background-color .16s var(--ease-out), color .16s var(--ease-out);border-radius:8px;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}@media (hover:hover){.nav-link:hover{color:var(--ink);background:var(--line-soft)}}.nav-link.active{color:var(--accent);background:var(--accent-soft)}.nav-toggle{display:none}.content{width:100%;max-width:1280px;padding:32px 24px 48px;padding-bottom:calc(48px + env(safe-area-inset-bottom));flex:1;margin:0 auto}.page-title{font:700 28px/1.2 var(--font-serif);margin:0 0 24px}.empty{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);max-width:560px;padding:28px}.empty-lead{margin:0 0 8px;font-size:17px}.empty p:last-child{margin-bottom:0}.kv{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:max-content 1fr;gap:12px 24px;max-width:720px;margin:0;padding:24px;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;margin:0}.page-title.tight{margin-bottom:4px}.small{color:var(--muted);font-size:13px}.lead{max-width:720px;margin:-12px 0 20px}.crumbs{color:var(--muted);margin-bottom:6px;font-size:13px}.crumbs a{text-decoration:none}.sources{margin:4px 0 0}.notice{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);max-width:640px;margin-top:16px;padding:20px 24px}.notice-lead{margin:0 0 6px;font-size:16px}.notice p:last-child{margin-bottom:0}.notice.locked{border-style:dashed}.btn{border:1px solid var(--line);background:var(--card);min-height:36px;color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;align-items:center;padding:0 14px;display:inline-flex}.btn:disabled{color:var(--muted);cursor:default}@media (hover:hover){.btn:not(:disabled):hover{border-color:var(--accent)}}.pf-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.pf-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);flex-direction:column;gap:9px;padding:16px 20px;text-decoration:none;display:flex}.pf-card.clickable{transition:border-color .16s var(--ease-out)}@media (hover:hover){.pf-card.clickable:hover{border-color:var(--accent)}}.pf-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.pf-name{font:700 17px/1.3 var(--font-serif)}.pf-meta{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:13px;display:flex}.pf-meta b{color:var(--ink);font-weight:600}.pf-sums{border-top:1px solid var(--line-soft);flex-wrap:wrap;gap:18px;padding-top:9px;font-size:14px;display:flex}.pf-sums .v{font-family:var(--font-mono);font-weight:500}.pf-locked{border-top:1px solid var(--line-soft);color:var(--muted);align-items:center;gap:7px;padding-top:9px;font-size:13px;display:flex}.rights{white-space:nowrap;border-radius:99px;padding:1px 9px;font-size:12px}.rights.edit{background:var(--accent-soft);color:var(--accent)}.rights.read{background:var(--line-soft);color:var(--muted)}.rights.none{border:1px dashed var(--line);color:var(--muted)}.kpi{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:16px;margin:16px 0 20px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px}.kpi-card{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;transition:border-color .16s var(--ease-out);display:block}.kpi-card.static{cursor:default}@media (hover:hover){.kpi-card:not(.static):hover{border-color:var(--accent)}}.kpi-card.active{border-color:var(--accent);background:var(--accent-soft)}.kpi .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:23px}.kpi .big .num{font-size:36px;line-height:1.05}.kpi .label{color:var(--muted);margin-top:2px;font-size:12px}.kpi .label b{color:var(--ink);font-weight:600}.trend{white-space:nowrap}.trend-down{color:var(--r)}.trend-up{color:var(--g)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;display:flex}.search{flex:1;min-width:220px;max-width:420px;position:relative}.search input{border:1px solid var(--line);background:var(--card);width:100%;min-height:36px;color:var(--ink);font:inherit;border-radius:8px;padding:0 12px 0 32px}.search input::placeholder{color:var(--muted)}.search .ico{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.toolbar select{border:1px solid var(--line);background:var(--card);min-height:36px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px}.chips{flex-wrap:wrap;gap:8px;margin:0 0 14px;display:flex}.chip{border:1px solid var(--line);background:var(--card);min-height:32px;color:var(--muted);font:inherit;cursor:pointer;border-radius:99px;padding:0 13px;font-size:14px;transition:background-color .12s,border-color .12s}.chip.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow-x:auto}.registry{border-collapse:collapse;width:100%}.registry thead th{border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.06em;text-align:left;text-transform:uppercase;background:#fbfcfb;padding:10px 13px;font-size:12px;font-weight:600}.registry tbody td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:11px 13px}.registry tbody td:last-child{white-space:nowrap}.registry tbody tr:last-child td{border-bottom:none}.registry .row{cursor:pointer;transition:background-color .12s}@media (hover:hover){.registry .row:hover{background:var(--accent-soft)}}.proj-name{font-weight:600}.proj-name a{color:inherit;text-decoration:none}.proj-client{color:var(--muted);font-size:13px}.chain{color:var(--accent);border:1px solid var(--accent-soft);background:var(--accent-soft);white-space:nowrap;border-radius:5px;padding:0 6px;font-size:11px}.stage{color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:5px;padding:1px 7px;font-size:12px}.rag{vertical-align:middle;flex-direction:column;gap:3px;min-width:120px;display:inline-flex}.rag .pill{background:var(--line-soft);width:max-content;color:var(--muted);border-radius:99px;align-items:center;gap:6px;padding:2px 9px;font-size:13px;display:inline-flex}.rag .dot{background:var(--muted);border-radius:50%;width:8px;height:8px}.rag.green .pill{background:var(--g-soft);color:var(--g)}.rag.green .dot{background:var(--g)}.rag.amber .pill{background:var(--a-soft);color:var(--a)}.rag.amber .dot{background:var(--a)}.rag.red .pill{background:var(--r-soft);color:var(--r)}.rag.red .dot{background:var(--r)}.trust{background:var(--trust-lo);border-radius:2px;height:3px;position:relative;overflow:hidden}.trust>i{width:var(--w,0%);background:var(--trust-hi);border-radius:2px;position:absolute;inset:0}.trust.stale>i,.trust.low>i{background:repeating-linear-gradient(90deg, var(--trust-lo) 0 4px, #8f97a3 4px 8px)}.trust.unknown>i{background:0 0}.prog{min-width:130px}.prog .bar{background:var(--line-soft);border-radius:4px;height:7px;overflow:hidden}.prog .bar>i{height:100%;width:var(--w,0%);background:var(--ink);display:block}.prog .cov{color:var(--muted);margin-top:3px;font-size:12px}.prog .cov.bad{color:var(--a)}.mini-line{align-items:center;min-width:120px;height:18px;display:flex}.mini-line .tr{background:var(--line);flex:1;height:2px}.mini-line .tr.done{background:var(--ink)}.mm{flex:none;width:8px;height:8px;display:inline-block}.mm.result{border-radius:50%}.mm.obligation{border-radius:1px;transform:rotate(45deg)}.mm.done{background:var(--ink)}.mm.due{background:var(--card);border:2px solid var(--ink)}.mm.late{background:var(--r)}.mm.cancelled{background:var(--line)}.table-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}@media (max-width:900px){.kpi{grid-template-columns:1fr 1fr}.kpi .big{grid-column:1/-1}.col-hide{display:none}}@media (max-width:640px){.topbar{padding:0 16px;padding-top:env(safe-area-inset-top);flex-wrap:wrap;gap:0}.nav-toggle{min-height:var(--tap);border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;border-radius:8px;align-items:center;margin-left:auto;padding:0 12px;display:inline-flex}.nav{flex-direction:column;flex-basis:100%;padding:8px 0 12px;display:none}.nav-open{display:flex}.nav-link{min-height:var(--tap)}.content{padding:20px 16px 32px;padding-bottom:calc(32px + env(safe-area-inset-bottom))}.page-title{font-size:24px}.kv{grid-template-columns:1fr;gap:2px;padding:16px}.kv dd{margin-bottom:12px}.kv dd:last-child{margin-bottom:0}.pf-grid{grid-template-columns:1fr}.kpi{gap:10px}.card{padding:12px 14px}.kpi .big .num{font-size:30px}.search{flex-basis:100%;max-width:none}.toolbar select{flex:1}.chip,.toolbar select,.search input,.btn{min-height:var(--tap)}.registry,.registry tbody,.registry tr,.registry td{display:block}.registry thead{display:none}.registry .row{border-bottom:1px solid var(--line);padding:12px 14px}.registry .row:last-child{border-bottom:none}.registry tbody td{white-space:normal;border:none;align-items:flex-start;gap:12px;padding:4px 0;display:flex}.registry tbody td:last-child{white-space:normal}.registry td[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex:0 0 96px;padding-top:2px;font-size:12px}.registry td[data-label=Проект]{padding-bottom:8px;display:block}.registry td[data-label=Проект]:before{display:none}.prog,.rag{flex:1;min-width:0}.table-foot{flex-direction:column;align-items:stretch}.table-foot .btn{justify-content:center}}@media (prefers-reduced-motion:reduce){.nav-link,.pf-card,.kpi-card,.chip,.registry .row{transition:none}}.pagehead{align-items:flex-start;gap:24px;display:flex}.pagehead-main{flex:1;min-width:0}.pagehead-main .small{margin:4px 0 0}.pagehead-side{flex:none;padding-top:8px}.reason{border-left:3px solid var(--line);border-radius:0 var(--radius) var(--radius) 0;background:var(--card);margin-top:16px;padding:12px 16px}.reason.red{border-left-color:var(--r);background:var(--r-soft)}.reason.amber{border-left-color:var(--a);background:var(--a-soft)}.reason.not-our{border-left-style:dashed}.card-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.card-title{margin:0 0 12px;font-size:16px;font-weight:600}.card-title .small{font-weight:400}.card>p.small:last-child{margin:10px 0 0}.facts{grid-template-columns:max-content 1fr;gap:8px 20px;margin:0;display:grid}.facts dt{color:var(--muted);font-size:14px}.facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.delays{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.delay{border:1px solid var(--line-soft);border-radius:8px;padding:10px 12px}.delay.client{border-color:var(--a);background:var(--a-soft)}.delay .who{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.delay .days{margin:2px 0;font-size:20px}.doclist{margin:0;padding:0;list-style:none}.doclist li{gap:8px;padding:4px 0;display:flex}.doc{text-align:center;flex:none;width:16px}.doc.ok{color:var(--g)}.doc.warn{color:var(--a)}.doc.muted{color:var(--muted)}.w-src{white-space:nowrap;font-size:13px}.w-src.manual{color:var(--a)}.block{margin-top:24px}.versions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.ver{border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;padding:8px 14px;transition:border-color .12s;display:flex}.ver .vn{font-weight:600}.ver .vd{color:var(--muted);font-size:12px}.ver.active{border-color:var(--accent);background:var(--accent-soft)}.ver.draft{border-style:dashed}@media (hover:hover){.ver:not(.active):hover{border-color:var(--accent)}}.milestones thead th{white-space:nowrap}.milestones tbody td{vertical-align:top}.milestones tbody td:last-child{white-space:normal}.milestones tr.cancelled td{color:var(--muted);text-decoration:line-through}.ms-name{align-items:baseline;gap:8px;font-weight:600;display:flex}.crit{border:1px solid var(--ink);font:600 10px/16px var(--font-mono);vertical-align:1px;border-radius:4px;margin-left:6px;padding:0 5px}.blockers{margin:0;padding:0;font-size:13px;list-style:none}.legend{flex-wrap:wrap;gap:6px 20px;margin:10px 0 0;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend .crit{margin-left:0}@media (max-width:900px){.card-grid{grid-template-columns:1fr}}@media (max-width:640px){.pagehead{flex-direction:column;gap:8px}.pagehead-side{padding-top:0}.facts{grid-template-columns:1fr;gap:2px}.facts dd{margin-bottom:8px}.delays{grid-template-columns:1fr}.ver{min-height:var(--tap);flex:100%}.milestones tbody tr{border-bottom:1px solid var(--line);padding:12px 14px}.milestones tbody tr:last-child{border-bottom:none}.milestones td[data-label=Веха]{padding-bottom:8px;display:block}.milestones td[data-label=Веха]:before{display:none}}@media (prefers-reduced-motion:reduce){.ver{transition:none}}
