.epi{max-width:1320px;padding:28px 0 56px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.epi section{padding:0;border:0}
.epi button,.epi select{font:inherit;color:inherit}.epi button{cursor:pointer}
.epi button:focus-visible,.epi select:focus-visible{outline:3px solid #678700;outline-offset:3px}
.product-head{display:flex;justify-content:space-between;align-items:end;padding-bottom:18px}.product-head a{font-size:.8rem;text-decoration:none;color:var(--muted)}.product-head h1{font-size:clamp(2rem,3.5vw,3rem);line-height:1;margin:8px 0 0;letter-spacing:-.055em}
.refresh{text-align:right;font-size:.78rem}.refresh span,.refresh small{display:block;color:var(--muted)}.refresh b{font-size:.92rem}
.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:13px 0 16px;border-top:1px solid var(--line)}.filters label{display:grid;gap:4px}.filters label>span{font:500 .66rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.filters select{min-width:0;background:#fff;border:1px solid #c9ccc4;padding:8px 26px 8px 9px;font-size:.79rem;border-radius:0}
.kpi-selectors{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.kpi-tile{--rag:#9d710b;text-align:left;background:#fff;border:1px solid #c9ccc4;border-left:4px solid var(--rag);padding:14px 16px;min-height:145px;transition:border-color .15s,background .15s,transform .15s}.kpi-tile.red,.rag.red{--rag:#bb3340}.kpi-tile.amber,.rag.amber{--rag:#9d710b}.kpi-tile.green,.rag.green{--rag:#347254}.kpi-tile:hover{border-color:#858a81;transform:translateY(-1px)}.kpi-tile.selected{border-color:var(--ink);background:#fbfff0;box-shadow:inset 0 0 0 1px var(--ink)}
.kpi-name,.kpi-result,.kpi-stats{display:flex;align-items:center;justify-content:space-between;gap:12px}.kpi-name>span{font-weight:700;font-size:.9rem}.rag{display:inline-flex;align-items:center;gap:6px;color:var(--rag);font:600 .64rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.rag i{width:7px;height:7px;border-radius:50%;background:var(--rag)}.kpi-result{margin:13px 0 10px}.kpi-result>strong{font-size:2rem;line-height:1;letter-spacing:-.06em}.direction{font-size:.7rem;font-weight:700}.direction.up{color:#347254}.direction.down{color:#bb3340}.kpi-stats{border-top:1px solid var(--line);padding-top:8px;justify-content:flex-start}.kpi-stats span{font-size:.67rem;color:var(--muted);flex:1}.kpi-stats b{display:block;color:var(--ink);font-size:.78rem;margin-top:1px}
.contributors{display:flex;align-items:stretch;background:#181b1f;color:#fff;min-height:48px;margin-bottom:12px}.contributors>span{display:flex;align-items:center;padding:10px 15px;color:#c9cdc5;font:500 .65rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.06em;border-right:1px solid #3b3e42;white-space:nowrap}.contributors button{border:0;border-right:1px solid #3b3e42;background:transparent;color:#fff!important;padding:9px 14px;text-align:left;display:flex;align-items:center;gap:16px;flex:1;min-width:0}.contributors button:hover{background:#252a2f}.contributors b{font-size:.73rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contributors strong{font-size:.75rem;color:var(--lime);margin-left:auto}
.tree-shell{background:#e7e8e2;border:1px solid #c9ccc4}.tree-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;padding:13px 16px;border-bottom:1px solid #c9ccc4}.tree-toolbar>div>span{font:500 .65rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.tree-toolbar h2{font-size:1rem;margin:2px 0 0}.tree-key{display:flex;gap:14px;font-size:.67rem;color:var(--muted)}.tree-key span{display:flex;align-items:center;gap:5px}.tree-key .dot{position:static;display:block;width:7px;height:7px;border-radius:50%;transform:none;animation:none}.tree-key .dot.red{background:#bb3340}.tree-key .dot.amber{background:#9d710b}.tree-key .dot.green{background:#347254}
.tree-scroll{overflow-x:auto;overscroll-behavior-inline:contain}.tree-canvas{position:relative;display:grid;grid-template-columns:repeat(var(--levels),250px);gap:62px;min-height:500px;min-width:max-content;padding:22px 28px 30px}.connectors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.connectors path{fill:none;stroke:#a7aaa3;stroke-width:1.4;vector-effect:non-scaling-stroke}.connectors path.active{stroke:#4e554d;stroke-width:2}
.tree-level{position:relative;z-index:1;display:flex;flex-direction:column}.tree-level>p{font:500 .72rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.07em;color:#62665f;margin:0 0 10px;padding-left:2px}.tree-nodes{display:flex;flex-direction:column;gap:10px;justify-content:center;flex:1}.tree-node{--rag:#9d710b;position:relative;width:250px;text-align:left;background:#fff;border:1px solid #bfc2ba;border-left:4px solid var(--rag);padding:9px 11px 8px;box-shadow:0 2px 5px rgba(11,13,16,.04);transition:transform .14s,border-color .14s,box-shadow .14s}.tree-node.red{--rag:#bb3340}.tree-node.amber{--rag:#9d710b}.tree-node.green{--rag:#347254}.tree-node:hover{transform:translateY(-1px);border-color:#696d67;box-shadow:0 5px 12px rgba(11,13,16,.08)}.tree-node.selected{outline:2px solid #0b0d10;outline-offset:2px}.tree-node.expanded{background:#fbfff0}
.node-head{display:flex;justify-content:space-between;align-items:center;gap:8px;line-height:1.2}.node-head>span{font:500 .68rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.tree-node h3{font-size:.96rem;line-height:1.24;letter-spacing:-.015em;margin:6px 0 7px;min-height:2.15em}.node-primary{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--line);line-height:1.2}.node-primary strong{font-size:1.58rem;letter-spacing:-.045em}.node-primary small{font-size:.72rem;color:var(--muted)}.node-impact{padding:6px 0 0;line-height:1.25}.node-impact span,.node-outlook span{font-size:.72rem;color:var(--muted);overflow-wrap:anywhere;line-height:1.25}.node-impact b,.node-outlook b{display:block;color:var(--ink);font-size:.85rem;line-height:1.2}.node-outlook{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:6px 0;line-height:1.25}.node-outlook .metric-red b{color:#bb3340}.node-outlook .metric-amber b{color:#9d710b}.node-outlook .metric-green b{color:#347254}.expand-cue{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:700;margin-top:6px;line-height:1.2}.expand-cue i{font-style:normal;font-size:1.05rem}
.detail-drawer{position:fixed;right:18px;top:90px;width:min(405px,calc(100vw - 28px));max-height:calc(100vh - 108px);overflow:auto;background:#fff;border:1px solid var(--ink);box-shadow:0 20px 60px rgba(11,13,16,.27);z-index:30}.detail-drawer header{display:flex;justify-content:space-between;gap:15px;padding:18px;border-bottom:1px solid var(--line)}.detail-drawer header span,.detail-drawer section span,.detail-drawer footer>span{font:500 .64rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.detail-drawer h2{font-size:1.25rem;line-height:1.2;letter-spacing:-.035em;margin:5px 0 0}.detail-drawer header button{border:0;background:transparent;font-size:1.6rem;line-height:1}.detail-status{display:flex;align-items:center;gap:12px;padding:13px 18px;background:#f4f4ef}.detail-status>strong{font-size:1.45rem;letter-spacing:-.04em;margin-left:auto}.detail-status>span:last-child{font-size:.72rem;color:var(--muted)}.detail-drawer dl{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;padding:17px 18px;margin:0}.detail-drawer dt{font-size:.66rem;color:var(--muted)}.detail-drawer dd{font-size:.85rem;font-weight:700;margin:2px 0 0}.epi .detail-drawer section{padding:16px 18px;border-top:1px solid var(--line)}.detail-drawer section p{font-size:.88rem;margin:5px 0 0}.detail-drawer footer{background:var(--ink)!important;color:#fff!important;padding:18px!important;margin:0!important}.detail-drawer footer>span{color:var(--lime)}.detail-drawer footer h3{font-size:1.05rem;line-height:1.3;margin:7px 0}.detail-drawer footer p{font-size:.76rem;color:#c8cbc4;margin:0 0 12px}.detail-drawer footer strong{font-size:.85rem;color:var(--lime)}
.tree-canvas.vertical-tree{display:block;min-width:0;min-height:0;padding:16px 20px 22px}.vertical-level{position:relative;z-index:1;margin:0 0 20px}.vertical-level>p{margin-bottom:7px}.vertical-level:last-child{margin-bottom:0}.vertical-nodes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;align-items:start;justify-content:stretch}.vertical-level.level-0 .vertical-nodes{display:flex;flex-direction:row;justify-content:center}.vertical-level.level-0 .tree-node{width:min(320px,100%)}.vertical-nodes .tree-node{width:100%;min-height:0}.vertical-level[data-parent]{padding-top:16px}.vertical-level[data-parent]::before{content:'';position:absolute;top:0;left:50%;height:10px;border-left:1px solid #a7aaa3}
.tree-empty{display:grid;gap:5px;place-items:center;min-height:230px;padding:28px;color:var(--muted);text-align:center}.tree-empty strong{color:var(--ink);font-size:1rem}.tree-empty span{font-size:.8rem}.no-data{font:600 .64rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.kpi-tile.empty{opacity:.75}
@media(max-width:850px){.filters{grid-template-columns:repeat(3,1fr)}.kpi-selectors{grid-template-columns:1fr}.kpi-tile{min-height:130px}.contributors{overflow-x:auto}.contributors button{min-width:220px}.tree-canvas{grid-template-columns:repeat(var(--levels),230px);gap:54px}.tree-node{width:230px}}
@media(max-width:850px){.tree-canvas.vertical-tree{display:block;padding:20px}.vertical-nodes{grid-template-columns:repeat(2,minmax(0,1fr))}.vertical-nodes .tree-node{width:100%}}
@media(max-width:560px){.epi{padding-top:18px}.product-head{align-items:start;flex-direction:column;gap:10px}.refresh{text-align:left}.filters{grid-template-columns:1fr 1fr}.filters label:first-child{grid-column:1/-1}.tree-key{display:none}.tree-canvas{padding-left:18px;padding-right:18px;min-height:460px}.contributors>span{display:none}.detail-drawer{top:12px;right:12px;max-height:calc(100vh - 24px)}}
@media(max-width:560px){.tree-canvas.vertical-tree{padding:18px;min-height:0}.vertical-nodes{grid-template-columns:1fr}.vertical-level{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.tree-node,.kpi-tile{transition:none}}
.performance-page .detail-drawer{bottom:68px;max-height:none}
.mobile-parent{display:none}
@media(max-width:520px){.performance-page .detail-drawer{bottom:112px}}
@media(max-width:560px){
  .epi{padding-bottom:28px}
  .filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px 0 12px}
  .filters label:first-child{grid-column:auto}
  .filters select{width:100%;min-height:42px;font-size:.8rem}
  .kpi-selectors{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;padding:2px 2px 8px;margin-bottom:6px}
  .kpi-tile{flex:0 0 min(80vw,300px);min-height:116px;padding:11px 12px;scroll-snap-align:center}
  .kpi-result{margin:7px 0 8px}.kpi-result>strong{font-size:1.75rem}
  .contributors{margin-bottom:8px;min-height:48px}.contributors button{min-width:235px}.contributors b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .tree-canvas.vertical-tree{padding:12px 10px 18px}
  .vertical-level{margin-bottom:16px}.vertical-level>p{display:flex;flex-wrap:wrap;gap:2px 8px;padding:0 2px;margin-bottom:8px}
  .mobile-parent{display:block;width:100%;font:600 .72rem Manrope,sans-serif;letter-spacing:0;text-transform:none;color:var(--ink)}
  .vertical-level[data-parent]{padding-top:10px;border-top:1px solid #b7bbb2}
  .vertical-level[data-parent]::before,.vertical-tree .connectors{display:none}
  .vertical-nodes{display:flex;flex-direction:row;align-items:stretch;overflow-x:auto;gap:8px;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;padding:2px 2px 8px}
  .vertical-nodes .tree-node{flex:0 0 min(78vw,300px);width:auto;scroll-snap-align:center}
  .vertical-level.level-0 .vertical-nodes{overflow:visible;padding:2px 2px 8px}
  .vertical-level.level-0 .tree-node{flex:0 1 320px;width:100%}
  .tree-node h3{min-height:0}
  .kpi-selectors,.vertical-nodes,.contributors{scrollbar-width:none}
  .kpi-selectors::-webkit-scrollbar,.vertical-nodes::-webkit-scrollbar,.contributors::-webkit-scrollbar{display:none}
}
@media(max-width:360px){.filters{grid-template-columns:1fr}}
