/* Реестр проектов: четыре сопоставимые колонки, проблемы ниже. */
.projects-page #projectGrid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.projects-page .portfolio-note{margin:12px 0;font-size:12px}
.projects-page .compact-project{grid-template-columns:minmax(190px,1.12fr) repeat(3,minmax(160px,1fr));padding:18px 20px;gap:16px 20px;border-radius:12px}
.pc-identity h2{font-size:17px;line-height:1.4;margin:8px 0 5px;font-weight:600}.pc-identity h2 a:hover{text-decoration:underline}
.pc-identity p,.pc-identity small{font-size:12px;color:var(--muted);line-height:1.5;margin:2px 0;overflow-wrap:anywhere}.pc-identity small{display:block;margin-top:6px}
.pc-column{border-left:1px solid var(--border);padding-left:20px;min-width:0}
.pc-heading{display:flex;justify-content:space-between;align-items:center;min-height:28px;font-size:13px;font-weight:600}.pc-heading:hover{text-decoration:underline}.pc-heading span{color:var(--muted)}
.pc-value{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;margin:8px 0}.pc-value>b{font:18px Plex,monospace;font-variant-numeric:tabular-nums}.pc-value small{font-size:11px;color:var(--muted);letter-spacing:.01em}
.compact-project .portfolio-track,.pc-material-track{height:6px;margin:10px 0 12px;background:color-mix(in oklch,var(--fg) 12%,transparent);border-radius:3px;overflow:hidden}.pc-material-track{display:flex}.pc-material-track i{height:100%}.pc-critical{background:var(--danger)}.pc-warning{background:oklch(78% .14 55)}.pc-ok{background:var(--success)}
.pc-facts{margin:8px 0 0;display:grid;gap:5px}.pc-facts>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 8px}.compact-project .pc-facts dd{font-size:12px;margin:0;min-width:0;text-align:right;font-variant-numeric:tabular-nums}.compact-project .pc-facts dt{font-size:12px}
.pc-material-legend{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;letter-spacing:.01em}.pc-material-legend b{font-family:Plex,monospace;font-weight:400}.compact-project .warning{color:oklch(80% .13 55)}.pc-note{font-size:11px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.pc-bottom{grid-column:1/-1;display:flex;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding-top:10px}.pc-problems{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12px;line-height:1.65;min-width:0}.pc-problem{overflow-wrap:anywhere}.pc-problem:hover{text-decoration:underline}.pc-problems .portfolio-overrun{display:inline;margin:0;font-size:12px}.pc-open{flex-shrink:0;min-height:32px;font-size:12px;padding:6px 10px}
.pc-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.pc-delete{min-height:32px;font-size:12px;padding:6px 10px}.project-delete-dialog{width:min(440px,calc(100vw - 32px));padding:24px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--fg)}.project-delete-dialog::backdrop{background:oklch(.08 .02 252 / 78%)}.project-delete-dialog h2{margin:0 0 10px;font-size:20px;letter-spacing:-.02em}.project-delete-dialog p{margin:0 0 24px;color:var(--muted);line-height:1.5}.project-delete-actions{display:flex;justify-content:flex-end;gap:8px}
@media(max-width:1250px){.projects-page .compact-project{grid-template-columns:repeat(2,minmax(0,1fr))}.pc-column:nth-child(3){border-left:0;padding-left:0}.pc-column:nth-child(n+3){border-top:1px solid var(--border);padding-top:12px}}
@media(max-width:600px){.projects-page .compact-project{grid-template-columns:minmax(0,1fr);padding:16px;gap:12px}.pc-column{border-left:0;padding:12px 0 0;border-top:1px solid var(--border)}.pc-bottom{align-items:stretch;flex-direction:column;gap:10px}.pc-problems{flex-direction:column}.pc-actions{justify-content:stretch}.pc-actions .btn{flex:1}.pc-heading,.pc-open,.pc-delete,.pc-problem{min-height:44px}.pc-problem{display:flex;align-items:center;gap:6px}.pc-value{margin:4px 0}.pc-open{justify-content:center}}
@media(pointer:coarse){.pc-heading,.pc-open,.pc-delete{min-height:44px}}

/* Общая шкала: факт по отчётам, расчётный план и нехватка до плана. */
.pc-work-chart{position:relative;height:10px;margin:12px 0;background:var(--border);border-radius:2px;color:var(--muted)}
.pc-work-chart.success,.pc-work-value .success{color:var(--success)}
.pc-work-chart.danger,.pc-work-value .danger{color:var(--danger)}
.pc-work-fill{position:absolute;inset:0 auto 0 0;width:var(--fact);background:currentColor;border-radius:2px}
.pc-work-gap{position:absolute;left:var(--fact);width:var(--gap);height:100%;background:color-mix(in oklch,var(--danger) 22%,var(--surface));border-block:1px solid var(--danger)}
.pc-work-plan{position:absolute;left:clamp(0px,var(--plan),calc(100% - 2px));top:-4px;width:2px;height:18px;background:var(--fg)}
.pc-work-caption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 8px;font-size:11px;line-height:1.5;letter-spacing:.01em;color:var(--muted)}
.pc-work-caption i{display:inline-block;width:2px;height:10px;background:var(--fg);margin-right:5px;vertical-align:-1px}
.pc-work-value small{font-size:12px}

/* Суммы отклонений остаются в финансовой колонке, без округления до миллионов. */
.pc-finance-signals{display:grid;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}
.pc-finance-issue{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 8px;font-size:11px;line-height:1.5;letter-spacing:.01em}
.pc-finance-issue b{font:12px/1.5 Plex,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
.pc-finance-issue:hover{text-decoration:underline}
.pc-finance-signals .pc-note{margin:0}
@media(pointer:coarse){.pc-finance-issue{min-height:44px;align-items:center}}

/* Иллюстрация объекта сохраняет плотность рабочих колонок. */
.pc-identity{min-width:0}
.pc-identity .pc-object-measures{margin-top:10px;color:var(--fg);font-family:Plex,ui-monospace,monospace;font-size:12px}
.pc-object-measures a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.pc-object-measures a:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.pc-cover{display:block;position:relative;width:100%;height:112px;margin-bottom:12px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.pc-cover img{display:block;width:100%;height:100%;object-fit:cover}
.pc-cover span{position:absolute;bottom:6px;right:6px;padding:2px 6px;border-radius:4px;background:oklch(18% .045 252 / 90%);color:oklch(96% .018 82);font-size:10px;line-height:1.5;letter-spacing:.02em}
.pc-cover:hover{border-color:var(--muted)}
.pc-cover:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(min-width:601px) and (max-width:1250px){.pc-cover{height:144px}}
@media(max-width:600px){.pc-cover{height:auto;aspect-ratio:16/9}}

/* Оперативная сводка и первоочередное отклонение видны до числовых колонок. */
.portfolio-pulse{display:grid;gap:14px;margin:18px 0 18px;padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.pulse-head{display:flex;align-items:end;justify-content:space-between;gap:10px 20px;flex-wrap:wrap}.pulse-head>div{display:grid;gap:4px}.pulse-head small{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.pulse-head strong{color:var(--fg);font-size:18px;line-height:1.3;font-weight:600;letter-spacing:-.01em}.pulse-head>span{color:var(--muted);font-size:12px}
.pulse-queue{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:8px}.pulse-item{display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-content:start;min-height:132px;padding:14px;border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--fg);text-decoration:none}.pulse-item:hover{border-color:var(--muted)}.pulse-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pulse-item.critical{border-color:color-mix(in oklch,var(--danger) 52%,var(--border));background:color-mix(in oklch,var(--danger) 8%,var(--bg))}.pulse-item.warning{border-color:color-mix(in oklch,var(--warning) 45%,var(--border));background:color-mix(in oklch,var(--warning) 6%,var(--bg))}.pulse-level{grid-column:1/-1;width:max-content;margin-bottom:5px;font-size:11px;font-weight:600;letter-spacing:.04em}.pulse-item.critical .pulse-level{color:oklch(.82 .14 28)}.pulse-item.warning .pulse-level{color:var(--warning)}.pulse-item.stable .pulse-level{color:var(--success)}.pulse-object{font-size:12px;color:var(--muted);line-height:1.45}.pulse-item strong{grid-column:1;font-size:14px;font-weight:600;line-height:1.4}.pulse-detail{grid-column:1;font-size:12px;color:var(--muted);line-height:1.45}.pulse-arrow{grid-column:2;grid-row:3/5;align-self:end;color:var(--fg);font-size:17px}
.content a.pulse-item{display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0}
.pulse-item .pulse-object,.pulse-item .pulse-detail{overflow-wrap:anywhere}
.pc-statuses{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pc-operational{padding:3px 7px;border-radius:5px;border:1px solid var(--border);font-size:11px;line-height:1.4}.pc-operational.critical{color:oklch(.82 .14 28);border-color:color-mix(in oklch,var(--danger) 45%,var(--border))}.pc-operational.warning{color:var(--warning);border-color:color-mix(in oklch,var(--warning) 40%,var(--border))}.pc-operational.stable{color:var(--success)}
.pc-priority{grid-column:1/-1;display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:color-mix(in oklch,var(--fg) 4%,var(--surface));font-size:12px;line-height:1.45}
.pc-priority.critical{border-color:oklch(.62 .18 28 / 50%);background:oklch(.62 .18 28 / 10%)}
.pc-priority.warning{border-color:oklch(.82 .14 78 / 42%);background:oklch(.82 .14 78 / 8%)}
.pc-priority-label{flex:none;font-weight:700;letter-spacing:.02em}.pc-priority.critical .pc-priority-label{color:oklch(.78 .13 28)}.pc-priority.warning .pc-priority-label{color:var(--warning)}.pc-priority.stable .pc-priority-label{color:var(--success)}
.pc-priority-text{flex:1;min-width:180px}.pc-priority a{color:var(--fg);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.pc-priority a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.pc-more{position:relative;color:var(--muted)}.pc-more summary{cursor:pointer;min-height:28px;list-style:none;text-decoration:underline;text-underline-offset:3px}.pc-more summary::-webkit-details-marker{display:none}.pc-more[open]{flex-basis:100%}.pc-more>div{display:flex;flex-wrap:wrap;gap:5px 18px;padding-top:8px}.pc-more summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:600px){.pc-priority{align-items:flex-start;flex-direction:column}.pc-priority-text{min-width:0}.pc-priority a{min-height:44px;display:inline-flex;align-items:center}}
