html:root{--pip-accent: #6d28d9;--pip-accent-hover: #5b21b6;--pip-accent-soft: #f1eafd;--pip-on-accent: #ffffff;--pip-accent-2: #f28c00;--pip-ink: #1a1530;--pip-muted: #55526b;--pip-line: #d9d5e6;--pip-bg: #f6f5fa;--pip-surface: #ffffff;--pip-surface-2: #fbfafd;--pip-track: #e4e0ef;--pip-focus: #1a1530;--pip-good: #1f7a4d;--pip-good-bg: #e3f4ea;--pip-warn: #7a4a00;--pip-warn-bg: #fff1d6;--pip-warn-bar: #d98a00;--pip-crit: #b3261e;--pip-crit-bg: #fce7e5;--pip-neutral-bg: #ece9f4;--pip-radius: 10px;--pip-font: "Segoe UI", system-ui, -apple-system, sans-serif;--pip-font-size: 15px;--pip-font-small: 14px;--pip-font-xl: 30px;--sapFontFamily: var(--pip-font);--sapFontSize: var(--pip-font-size);--sapFontSmallSize: var(--pip-font-small);--sapBrandColor: var(--pip-accent);--sapHighlightColor: var(--pip-accent);--sapSelectedColor: var(--pip-accent);--sapLinkColor: var(--pip-accent);--sapLink_Hover_Color: var(--pip-accent-hover);--sapLink_Active_Color: var(--pip-accent-hover);--sapTextColor: var(--pip-ink);--sapHeaderTextColor: var(--pip-ink);--sapContent_LabelColor: var(--pip-muted);--sapContent_FocusColor: var(--pip-focus);--sapBackgroundColor: var(--pip-bg);--sapBaseColor: var(--pip-surface);--sapShellColor: var(--pip-surface);--sapShell_Background: var(--pip-surface);--sapShell_BorderColor: var(--pip-line);--sapShell_TextColor: var(--pip-ink);--sapShell_InteractiveTextColor: var(--pip-ink);--sapPageHeader_Background: var(--pip-surface);--sapObjectHeader_Background: var(--pip-surface);--sapList_SelectionBackgroundColor: var(--pip-accent-soft);--sapList_BorderColor: var(--pip-line);--sapGroup_ContentBorderColor: var(--pip-line);--sapButton_Emphasized_Background: var(--pip-accent);--sapButton_Emphasized_BorderColor: var(--pip-accent);--sapButton_Emphasized_TextColor: var(--pip-on-accent);--sapButton_Emphasized_Hover_Background: var(--pip-accent-hover);--sapButton_Emphasized_Hover_BorderColor: var(--pip-accent-hover);--sapButton_TextColor: var(--pip-accent);--sapButton_BorderColor: var(--pip-accent);--sapPositiveColor: var(--pip-good);--sapPositiveBackground: var(--pip-good-bg);--sapCriticalColor: var(--pip-warn);--sapCriticalBackground: var(--pip-warn-bg);--sapNegativeColor: var(--pip-crit);--sapNegativeBackground: var(--pip-crit-bg);--sapNeutralColor: var(--pip-muted);--sapNeutralBackground: var(--pip-neutral-bg);--sapInformativeColor: var(--pip-accent);--sapInformationBackground: var(--pip-accent-soft);--sapElement_BorderCornerRadius: var(--pip-radius);--sapButton_Negative_Background: var(--pip-crit-bg);--sapButton_Negative_BorderColor: var(--pip-crit);--sapButton_Negative_TextColor: var(--pip-crit);--sapButton_Negative_Hover_Background: var(--pip-crit-bg);--sapButton_Negative_Hover_BorderColor: var(--pip-crit);--sapButton_Negative_Hover_TextColor: var(--pip-crit);--sapButton_Critical_Background: var(--pip-warn-bg);--sapButton_Critical_BorderColor: var(--pip-warn);--sapButton_Critical_TextColor: var(--pip-warn);--sapButton_Critical_Hover_Background: var(--pip-warn-bg);--sapButton_Critical_Hover_BorderColor: var(--pip-warn);--sapButton_Critical_Hover_TextColor: var(--pip-warn);--sapButton_Success_Background: var(--pip-good-bg);--sapButton_Success_BorderColor: var(--pip-good);--sapButton_Success_TextColor: var(--pip-good);--sapButton_Success_Hover_Background: var(--pip-good-bg);--sapButton_Success_Hover_BorderColor: var(--pip-good);--sapButton_Success_Hover_TextColor: var(--pip-good);--sapButton_Information_Background: var(--pip-accent-soft);--sapButton_Information_BorderColor: var(--pip-accent);--sapButton_Information_TextColor: var(--pip-accent);--sapButton_Information_Hover_Background: var(--pip-accent-soft);--sapButton_Information_Hover_BorderColor: var(--pip-accent);--sapButton_Information_Hover_TextColor: var(--pip-accent);--sapButton_Neutral_Background: var(--pip-neutral-bg);--sapButton_Neutral_BorderColor: var(--pip-muted);--sapButton_Neutral_TextColor: var(--pip-muted);--sapButton_Track_Selected_Background: var(--pip-accent);--sapButton_Track_Selected_BorderColor: var(--pip-accent);--sapButton_Track_Selected_Hover_Background: var(--pip-accent-hover);--sapButton_Track_Selected_Hover_BorderColor: var(--pip-accent-hover);--sapButton_Handle_Selected_BorderColor: var(--pip-accent);--sapButton_Handle_Selected_Hover_BorderColor: var(--pip-accent-hover);--sapButton_Lite_TextColor: var(--pip-accent);--sapInformativeTextColor: var(--pip-accent);--sapContent_IconColor: var(--pip-accent);--sapActiveColor: var(--pip-accent-soft);--sapProgress_Background: var(--pip-track);--sapProgress_BorderColor: var(--pip-track);--sapProgress_Value_InformationBackground: var(--pip-accent);--sapProgress_Value_PositiveBackground: var(--pip-good);--sapProgress_Value_CriticalBackground: var(--pip-warn-bar);--sapProgress_Value_NegativeBackground: var(--pip-crit);--sapProgress_TextColor: var(--pip-ink)}html,body,#root{margin:0;min-height:100%}body{background:var(--pip-bg);color:var(--pip-ink);font-family:var(--pip-font);font-size:var(--pip-font-size);line-height:1.45}a{color:var(--pip-accent);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--pip-focus);outline-offset:2px}.shell-nav{display:flex;gap:4px;padding:0 24px;background:var(--pip-surface);border-bottom:1px solid var(--pip-line);overflow-x:auto}.shell-nav a{padding:10px 14px;color:var(--pip-muted);font-weight:600;white-space:nowrap;border-bottom:3px solid transparent}.shell-nav a:hover{text-decoration:none;color:var(--pip-ink)}.shell-nav a[aria-current=page]{color:var(--pip-accent);border-bottom-color:var(--pip-accent)}.rolechip{display:inline-flex;align-items:center;border:1px solid var(--pip-accent);background:var(--pip-accent-soft);color:var(--pip-accent);border-radius:999px;padding:4px 12px;font-weight:600;font-size:var(--pip-font-small);cursor:pointer}.page{max-width:1360px;margin:0 auto;padding:16px 24px 40px;display:flex;flex-direction:column;gap:16px}.page-head h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em}.page-head p{margin:2px 0 0;color:var(--pip-muted)}.row{display:flex;align-items:center;gap:12px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.spacer{flex:1}.sub{color:var(--pip-muted);font-size:var(--pip-font-small)}.strong{font-weight:600}.num{font-variant-numeric:tabular-nums}.crit{color:var(--pip-crit);font-weight:600}.note{background:var(--pip-accent-soft);border:1px dashed var(--pip-accent);border-radius:8px;padding:8px 12px;font-size:var(--pip-font-small)}.role-bar{display:flex;justify-content:flex-end;padding:6px 24px 0;background:var(--pip-surface)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.tile{background:var(--pip-surface);border:1px solid var(--pip-line);border-radius:var(--pip-radius);padding:14px 16px;display:flex;flex-direction:column;gap:4px;color:var(--pip-ink);font-weight:400}a.tile:hover{text-decoration:none;border-color:var(--pip-accent)}.tile .k{color:var(--pip-muted)}.tile .v{font-size:var(--pip-font-xl);font-weight:600;letter-spacing:-.02em}.tile .v.crit{color:var(--pip-crit)}.tile .v.warn{color:var(--pip-warn)}.tile .s{color:var(--pip-muted);font-size:var(--pip-font-small)}.tile .go{color:var(--pip-accent);font-weight:600;margin-top:auto;padding-top:6px}.section{width:100%}.card-b{padding:16px}.card-flush{padding:0;overflow-x:auto}.card-flush>.card-b{padding:12px 16px}.card-plain{background:var(--pip-surface);border:1px solid var(--pip-line);border-radius:var(--pip-radius);padding:16px;display:flex;flex-direction:column;gap:12px}.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px;align-items:start}.split{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.split .side{flex:1 1 260px;min-width:0}.split .main-col{flex:3 1 520px;min-width:0}.split-wide{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.split-wide .main-col{flex:3 1 520px;min-width:0}.split-wide .side-col{flex:2 1 340px;min-width:0;display:flex;flex-direction:column;gap:16px}.main-col{display:flex;flex-direction:column;gap:16px;min-width:0}.stack-col{display:flex;flex-direction:column;gap:12px}.obj-title{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em}.why{margin-top:4px}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filter-field{min-width:190px}.chip{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid var(--pip-accent);background:var(--pip-accent-soft);color:var(--pip-accent);border-radius:999px;font-weight:600}.chip:hover{text-decoration:none;background:var(--pip-surface)}ul.plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:4px 0}dl.facts dt{color:var(--pip-muted)}dl.facts dd{margin:0;font-weight:500}.progress{min-width:110px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.stack{display:flex;height:18px;border-radius:9px;overflow:hidden;background:var(--pip-track)}.stack a{display:block;height:100%}.stack a:hover{opacity:.85}.seg-good{background:var(--pip-good)}.seg-warn{background:var(--pip-warn-bar)}.seg-crit{background:var(--pip-crit)}.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}.meter{position:relative;height:10px;background:var(--pip-track);border-radius:5px}.meter>i{display:block;height:100%;border-radius:5px;background:var(--pip-accent)}.meter.big{margin:12px 0 14px}.meter>b{position:absolute;top:-5px;width:2px;height:20px;background:var(--pip-ink)}.bars{display:flex;flex-direction:column;gap:10px}.bar-label{width:90px;flex:none}.ws-name{width:140px;flex:none}.ws-pct{width:48px;text-align:right}.tl{position:relative}.tl-head{display:grid;color:var(--pip-muted);border-bottom:1px solid var(--pip-line)}.tl-head span{padding:4px 0 6px 6px;border-left:1px solid var(--pip-line)}.tl-row{position:relative;height:38px;border-bottom:1px dashed var(--pip-line)}.tl-row:last-child{border-bottom:none}.tl-dot{position:absolute;top:12px;width:13px;height:13px;transform:translate(-50%) rotate(45deg);border-radius:2px;background:var(--pip-accent)}.tl-dot.crit{background:var(--pip-crit)}.tl-dot.good{background:var(--pip-good)}.tl-lab{position:absolute;top:6px;white-space:nowrap}.tl-today{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--pip-crit)}.steps{display:flex;gap:4px;flex-wrap:wrap;list-style:none;margin:0;padding:0}.pstep{flex:1 1 90px;padding:6px 8px;text-align:center;border-radius:6px;background:var(--pip-neutral-bg);color:var(--pip-muted);border:1px solid transparent}.pstep.done{background:var(--pip-good-bg);color:var(--pip-good)}.pstep.now{background:var(--pip-accent);color:var(--pip-on-accent);font-weight:600}.pstep.next{background:var(--pip-accent-soft);color:var(--pip-accent);border:1px dashed var(--pip-accent);font-weight:600}.proj{padding-bottom:12px;border-bottom:1px solid var(--pip-line);display:flex;flex-direction:column;gap:10px}.proj:last-child{border-bottom:none}.notfound{display:flex;flex-direction:column;gap:12px}.progress{min-width:120px}.progress .pct{width:48px;text-align:right}.crumbs{display:inline-block}.cell{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.logo-mark{display:inline-flex}.mapview{display:flex;flex-direction:column;gap:16px}.mapview .card,.mapview .card-pad{background:var(--pip-surface);border:1px solid var(--pip-line);border-radius:var(--pip-radius)}.mapview .card-pad{padding:16px}.mapview .empty{padding:28px;text-align:center;color:var(--pip-muted)}.mapview .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.mapview .tile .label{color:var(--pip-muted)}.mapview .tile .value{font-size:var(--pip-font-xl);font-weight:600}.mapview .tile .sub{color:var(--pip-muted)}.mapview .two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}.mapview .table-wrap{overflow-x:auto}.mapview table{width:100%;border-collapse:collapse}.mapview th{text-align:left;color:var(--pip-muted);font-weight:600;padding:9px 12px;border-bottom:1px solid var(--pip-line);background:var(--pip-surface-2);white-space:nowrap}.mapview td{padding:10px 12px;border-bottom:1px solid var(--pip-line);vertical-align:top}.mapview .mono,.mapview code,.mapview .code{font-family:Consolas,Courier New,monospace;font-size:var(--pip-font-small)}.mapview .code{background:var(--pip-surface-2);border:1px solid var(--pip-line);border-radius:8px;padding:10px;white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto}.mapview .muted{color:var(--pip-muted)}.mapview .vmap{display:flex;flex-wrap:wrap;gap:4px}.mapview .vmap code{background:var(--pip-neutral-bg);border-radius:4px;padding:1px 6px}.mapview .cov{display:flex;align-items:center;gap:8px;min-width:120px}.mapview .bar{flex:1;height:8px;background:var(--pip-track);border-radius:4px;overflow:hidden}.mapview .bar>i{display:block;height:100%;background:var(--pip-accent)}.mapview .toolbar,.mapview .flex,.mapview .chips{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.mapview .btn{border:1px solid var(--pip-accent);background:var(--pip-surface);color:var(--pip-accent);padding:6px 14px;border-radius:8px;font-weight:600;font-size:var(--pip-font-size);cursor:pointer}.mapview .btn.primary{background:var(--pip-accent);color:var(--pip-on-accent)}.mapview .chip,.mapview button.tab{font-size:var(--pip-font-size)}.mapview .spacer{flex:1}.mapview .note{background:var(--pip-accent-soft);border:1px dashed var(--pip-accent);border-radius:8px;padding:8px 12px}.mapview .sub{color:var(--pip-muted)}.chart{display:block;overflow:visible;max-width:660px}.chart text{font-family:var(--pip-font);font-size:var(--pip-font-small);fill:var(--pip-ink)}.chart .axis{fill:var(--pip-muted)}.chart .value{font-weight:600}.chart .value.small{font-size:var(--pip-font-small);font-weight:600}.chart .row-label{fill:var(--pip-accent);font-weight:600}.chart a:hover .row-label{text-decoration:underline}.chart .grid{stroke:var(--pip-line);stroke-width:1}.chart .zero{stroke:var(--pip-ink);stroke-width:1.5}.chart .limit-warn{stroke:var(--pip-warn-bar);stroke-width:2;stroke-dasharray:5 4}.chart .limit-crit{stroke:var(--pip-crit);stroke-width:2;stroke-dasharray:5 4}.chart .c-good{fill:var(--pip-good)}.chart .c-warn{fill:var(--pip-warn-bar)}.chart .c-crit{fill:var(--pip-crit)}.chart .c-neutral{fill:var(--pip-muted)}.chart .c-accent{fill:var(--pip-accent)}.chart .c-accent-soft{fill:var(--pip-track)}.chart .runrate{stroke:var(--pip-ink);stroke-width:2;stroke-dasharray:6 4}.chart .runrate-label{fill:var(--pip-ink)}.chart .plan{stroke:var(--pip-ink);stroke-width:2}.chart .actual{stroke:var(--pip-accent);stroke-width:3}.chart .forecast{stroke:var(--pip-crit);stroke-width:3;stroke-dasharray:8 5}.chart .today{stroke:var(--pip-muted);stroke-width:2;stroke-dasharray:3 4}.chart .dot-actual{fill:var(--pip-accent)}.chart .dot-forecast{fill:var(--pip-crit)}.chart .dot-plan{fill:var(--pip-ink)}.legend-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.swatch{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:6px;vertical-align:-2px}.swatch.good{background:var(--pip-good)}.swatch.warn{background:var(--pip-warn-bar)}.swatch.crit{background:var(--pip-crit)}.swatch.accent{background:var(--pip-accent)}.swatch.soft{background:var(--pip-track);border:1px solid var(--pip-line)}table.matrix{width:100%;border-collapse:collapse}table.matrix th,table.matrix td{padding:8px 10px;border-bottom:1px solid var(--pip-line);text-align:right}table.matrix th:first-child,table.matrix td:first-child{text-align:left}table.matrix thead th{color:var(--pip-muted);font-weight:600;background:var(--pip-surface-2)}table.matrix td.over{background:var(--pip-warn-bg);color:var(--pip-warn);font-weight:600}table.matrix td.strong{background:var(--pip-crit-bg);color:var(--pip-crit);font-weight:700}table.matrix td.none{color:var(--pip-muted)}.sum-row{font-weight:700;border-top:2px solid var(--pip-line)}
