.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#20221f;background:#f3f4f1;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #20221f;--muted: #747a73;--faint: #9ba09a;--line: #dfe2dc;--line-strong: #cdd2cb;--surface: #ffffff;--surface-alt: #f7f8f5;--green: #147d64;--green-soft: #e2f1eb;--blue: #3267a8;--blue-soft: #e8eef7;--amber: #a56e12;--amber-soft: #f8eed8;--red: #b64f3d;--red-soft: #f7e8e4;--sidebar: #171917}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:#f3f4f1}button,input,textarea,select{font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;width:232px;flex-direction:column;background:var(--sidebar);color:#f6f7f3;border-right:1px solid #2a2d29}.brand-row{display:flex;align-items:center;gap:11px;height:74px;padding:0 18px;border-bottom:1px solid #2a2d29}.brand-row>div:nth-child(2){display:grid;gap:2px;min-width:0}.brand-row strong{font-size:15px;letter-spacing:0}.brand-row span{color:#8e958e;font-size:11px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border:1px solid #3a3e39;border-radius:6px;background:#232623;color:#89d8ba}.primary-nav{display:grid;gap:4px;padding:18px 12px}.primary-nav button,.attention-link{display:grid;grid-template-columns:22px 1fr auto;align-items:center;width:100%;min-height:40px;padding:0 10px;border:0;border-radius:5px;background:transparent;color:#aeb4ad;text-align:left;cursor:pointer}.primary-nav button:hover,.attention-link:hover{background:#202320;color:#fff}.primary-nav button.active{background:#292d29;color:#fff}.primary-nav button.active svg{color:#82d6b6}.primary-nav button span,.attention-link span{font-size:13px;font-weight:600}.primary-nav small,.attention-link small{color:#707770;font-size:11px}.sidebar-section{padding:10px 12px;border-top:1px solid #282b28}.sidebar-label{padding:5px 10px 8px;color:#656c65;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.attention-link{min-height:34px}.attention-dot{width:7px;height:7px;margin-left:4px;border-radius:50%}.band-focus{--band: #2b9a74;--band-bg: #e1f2eb}.band-maintain{--band: #3d72b4;--band-bg: #e8eef7}.band-incubate{--band: #a47622;--band-bg: #f7eedc}.band-parked{--band: #7f8580;--band-bg: #eceeeb}.attention-dot.band-focus,.attention-dot.band-maintain,.attention-dot.band-incubate,.attention-dot.band-parked{background:var(--band)}.sidebar-footer{display:grid;gap:5px;margin-top:auto;padding:17px 20px 22px;border-top:1px solid #282b28}.sidebar-footer span{color:#686f68;font-size:10px;text-transform:uppercase;letter-spacing:.07em}.sidebar-footer strong{color:#aeb4ad;font-size:11px;font-weight:500}.sidebar-close{display:none!important;margin-left:auto}.main-shell{min-height:100vh;margin-left:232px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;height:64px;padding:0 28px;border-bottom:1px solid var(--line);background:#fafbf8f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.search-box{display:flex;align-items:center;gap:9px;width:min(440px,46vw);height:38px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:#8b918a}.search-box:focus-within{border-color:#9ebcaf;box-shadow:0 0 0 3px #dcece5}.search-box input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.search-box input::placeholder{color:#a0a59f}.search-box kbd{padding:2px 5px;border:1px solid #dfe2dd;border-radius:4px;color:#9ba09a;font-size:10px}.sync-status{display:flex;align-items:center;gap:7px;margin-left:auto;color:#747a73;font-size:11px;white-space:nowrap}.sync-dot{width:7px;height:7px;border-radius:50%;background:#2f9a76;box-shadow:0 0 0 3px #dbede5}.icon-button{display:inline-grid;place-items:center;width:36px;height:36px;flex:0 0 36px;padding:0;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:#5f655f;cursor:pointer}.icon-button:hover{border-color:var(--line-strong);background:#f7f8f5;color:var(--ink)}.mobile-menu{display:none}.content-shell{width:min(1500px,100%);margin:0 auto;padding:38px 38px 64px}.view-stack{display:grid;gap:30px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.page-heading>div{min-width:0}.eyebrow{display:block;margin-bottom:7px;color:#7d837c;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.page-heading h1,.project-title-row h1{margin:0;font-size:30px;line-height:1.12;letter-spacing:0}.page-heading p{max-width:680px;margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--surface)}.metric{display:flex;align-items:center;gap:13px;min-height:82px;padding:15px 18px;border-right:1px solid var(--line)}.metric:last-child{border-right:0}.metric-icon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:5px}.metric-green{color:var(--green);background:var(--green-soft)}.metric-blue{color:var(--blue);background:var(--blue-soft)}.metric-amber{color:var(--amber);background:var(--amber-soft)}.metric-red{color:var(--red);background:var(--red-soft)}.metric div:last-child{display:grid;gap:2px}.metric strong{font-size:21px;line-height:1}.metric span:last-child{color:var(--muted);font-size:11px}.section-block{min-width:0;border-top:1px solid var(--line-strong);padding-top:18px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:17px}.section-heading.compact{margin-bottom:14px}.section-heading h2{margin:0;font-size:18px;line-height:1.2}.section-count{color:#888e87;font-size:11px;font-weight:600}.focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.focus-card{display:flex;min-width:0;min-height:288px;flex-direction:column;justify-content:space-between;padding:18px;border:1px solid var(--line);border-radius:6px;background:var(--surface);text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.focus-card:hover{transform:translateY(-2px);border-color:#bdc7bd;box-shadow:0 10px 26px #20262012}.focus-card-top{display:flex;align-items:flex-start;justify-content:space-between}.focus-number{color:#c0c4be;font-family:"Instrument Serif",Georgia,serif;font-size:25px}.focus-card h3{margin:18px 0 7px;font-size:18px}.focus-card p{display:-webkit-box;overflow:hidden;margin:0;color:#686e67;font-size:12px;line-height:1.55;-webkit-line-clamp:3;-webkit-box-orient:vertical}.focus-next{display:grid;gap:6px;margin-top:18px;padding-top:14px;border-top:1px solid #eceeea}.focus-next span{color:#969b95;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.focus-next strong{display:-webkit-box;overflow:hidden;font-size:11px;font-weight:600;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}.focus-footer{display:flex;align-items:center;justify-content:space-between;margin-top:17px;color:#858b84}.focus-footer span{display:flex;align-items:center;gap:5px;font-size:10px}.project-avatar{display:inline-grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border:1px solid;border-radius:6px;font-size:12px;font-weight:700}.project-avatar.avatar-small{width:31px;height:31px;flex-basis:31px;border-radius:5px;font-size:9px}.two-column-band{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.8fr);gap:34px}.activity-list{display:grid}.activity-list button{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:start;min-height:62px;padding:13px 4px;border:0;border-bottom:1px solid #e4e7e1;background:transparent;text-align:left;cursor:pointer}.activity-list button:hover strong{color:var(--green)}.activity-list button:last-child{border-bottom:0}.timeline-mark{width:7px;height:7px;margin-top:5px;border-radius:50%;box-shadow:0 0 0 4px #ecefeb}.activity-list div{min-width:0}.activity-list strong{display:block;margin-bottom:4px;font-size:12px}.activity-list p{overflow:hidden;margin:0;color:#737972;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.activity-list time{color:#929791;font-size:10px;white-space:nowrap}.attention-list{display:grid;gap:4px}.attention-list button{display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:10px;min-width:0;padding:9px;border:0;border-radius:5px;background:transparent;text-align:left;cursor:pointer}.attention-list button:hover{background:#e9ece7}.attention-list div{min-width:0}.attention-list strong,.attention-list span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attention-list strong{font-size:11px}.attention-list span{margin-top:3px;color:#818780;font-size:10px}.attention-list svg{color:#a2a7a1}.portfolio-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;width:100%}.segmented-control{display:inline-flex;max-width:100%;overflow-x:auto;padding:3px;border:1px solid var(--line);border-radius:6px;background:#ebece9}.segmented-control button{display:flex;align-items:center;gap:7px;min-height:32px;padding:0 11px;border:0;border-radius:4px;background:transparent;color:#70766f;font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer}.segmented-control button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #1e221e1a}.segmented-control span{color:#9ba09a;font-size:9px}.project-table-wrap{overflow:visible;border:1px solid var(--line);background:var(--surface)}.project-table{display:grid;grid-template-columns:minmax(180px,1.05fr) minmax(210px,1.3fr) minmax(190px,1.1fr) minmax(190px,1.1fr) 110px;column-gap:22px;align-items:center}.header-row{min-height:42px;padding:0 17px;border-bottom:1px solid var(--line);background:#f5f6f3;color:#868b85;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.data-row{width:100%;min-height:96px;padding:12px 17px;border:0;border-bottom:1px solid #e8eae6;background:var(--surface);text-align:left}.data-row:last-child{border-bottom:0}.data-row:hover{background:#fafbf8}.project-cell{min-width:0}.identity-cell{display:flex;align-items:center;gap:10px}.identity-cell>div{display:grid;justify-items:start;min-width:0;gap:5px}.project-name-button{overflow:hidden;max-width:100%;padding:0;border:0;background:transparent;font-size:12px;font-weight:700;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.project-name-button:hover{color:var(--green)}.band-pill{display:inline-flex;align-items:center;min-height:18px;padding:0 6px;border-radius:999px;background:var(--band-bg);color:var(--band);font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.data-row>p{display:-webkit-box;overflow:hidden;margin:0;color:#656b65;font-size:10px;line-height:1.48;-webkit-line-clamp:2;-webkit-box-orient:vertical}.freshness-cell{display:grid;grid-template-columns:7px 1fr 16px;align-items:center;gap:7px;padding:8px 0;border:0;background:transparent;color:#747a73;font-size:10px;text-align:left;cursor:pointer}.freshness-cell:hover{color:var(--ink)}.fresh-dot,.stale-dot{width:7px;height:7px;border-radius:50%;background:#2d9a73}.stale-dot{background:#bd5b48}.freshness-cell svg{color:#b0b5af}.resource-links{position:relative;display:flex;align-items:center;gap:4px;margin-top:2px}.resource-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:25px;height:25px;flex:0 0 auto;padding:0;border:1px solid #e0e3de;border-radius:4px;background:#f8f9f6;color:#747a73;cursor:pointer}.resource-link:hover{border-color:#bfc7bf;background:#fff;color:var(--ink)}.resource-link-disabled{color:#b2b7b1;cursor:default}.resource-link-disabled:hover{border-color:#e0e3de;background:#f8f9f6;color:#b2b7b1}.resource-label{display:none}.resource-count{min-width:9px;font-size:8px;font-weight:700;line-height:1}.resource-links-labeled{flex-wrap:wrap;justify-content:flex-end;margin:0}.resource-links-labeled .resource-link{width:auto;min-width:36px;height:36px;padding:0 10px;background:var(--surface)}.resource-links-labeled .resource-label{display:inline;font-size:10px;font-weight:650}.chat-links-menu{position:relative}.chat-links-menu>summary{list-style:none}.chat-links-menu>summary::-webkit-details-marker{display:none}.chat-links-menu[open]{z-index:40}.chat-links-popover{position:absolute;z-index:50;top:calc(100% + 6px);left:0;display:grid;width:230px;overflow:hidden;border:1px solid var(--line-strong);border-radius:5px;background:#fff;box-shadow:0 12px 30px #191e1924}.resource-links-labeled .chat-links-popover{right:0;left:auto}.chat-links-popover a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px;padding:8px 10px;border-bottom:1px solid #eceeea}.chat-links-popover a:last-child{border-bottom:0}.chat-links-popover a:hover{background:#f5f7f3}.chat-links-popover span{overflow:hidden;font-size:10px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.chat-links-popover time{color:#969b95;font-size:8px;white-space:nowrap}.empty-state{display:grid;place-items:center;gap:8px;min-height:180px;color:#969b95}.empty-state p{margin:0;font-size:12px}.back-button{display:inline-flex;align-items:center;gap:6px;justify-self:start;padding:0;border:0;background:transparent;color:#70766f;font-size:11px;font-weight:600;cursor:pointer}.back-button:hover{color:var(--ink)}.project-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:28px;border-bottom:1px solid var(--line-strong)}.project-title-row{display:flex;align-items:flex-start;gap:14px;min-width:0}.project-title-row>div{min-width:0}.project-title-row h1{margin-top:7px}.project-title-row p{max-width:740px;margin:7px 0 0;color:#6f756e;font-size:12px;line-height:1.5}.project-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#8d928c;font-size:9px}.warning-text{display:inline-flex;align-items:center;gap:4px;color:var(--amber)}.project-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 12px;border-radius:5px;font-size:11px;font-weight:650;cursor:pointer}.primary-button{border:1px solid #19664f;background:#196e55;color:#fff}.primary-button:hover{background:#135e48}.secondary-button{border:1px solid var(--line-strong);background:var(--surface);color:#555b55}.secondary-button:hover{background:#f6f7f4;color:var(--ink)}.outcome-band{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:15px;padding:18px 20px;border:1px solid #cbded6;background:#f3faf7}.outcome-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid #bfdbd0;border-radius:6px;color:var(--green);background:#e2f1eb}.outcome-band h2{margin:0;max-width:800px;font-size:16px;line-height:1.4}.outcome-evidence{display:flex;align-items:center;gap:16px;color:#7b827c}.outcome-evidence>span{font-size:9px;text-transform:uppercase;letter-spacing:.07em}.outcome-evidence div{display:grid;gap:1px;font-size:9px}.outcome-evidence strong{color:#345348;font-size:13px}.now-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:var(--surface)}.now-panel{display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto auto;column-gap:11px;min-height:155px;padding:17px;border-right:1px solid var(--line)}.now-panel:last-child{border-right:0}.now-icon{display:grid;grid-row:1 / span 3;place-items:center;align-self:start;width:36px;height:36px;border-radius:5px}.now-green{color:var(--green);background:var(--green-soft)}.now-blue{color:var(--blue);background:var(--blue-soft)}.now-amber{color:var(--amber);background:var(--amber-soft)}.now-panel>span{color:#8d928c;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.now-panel p{display:-webkit-box;overflow:hidden;margin:7px 0 0;font-size:12px;font-weight:600;line-height:1.52;-webkit-line-clamp:4;-webkit-box-orient:vertical}.now-panel small{margin-top:8px;color:#9ba09a;font-size:9px}.detail-columns{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);gap:34px}.detail-aside{display:grid;align-content:start;gap:28px;min-width:0}.detail-timeline{position:relative;display:grid}.detail-timeline:before{position:absolute;top:20px;bottom:20px;left:16px;width:1px;background:#dde1db;content:""}.timeline-item{position:relative;z-index:1;display:grid;grid-template-columns:34px minmax(0,1fr) auto 14px;gap:11px;align-items:start;min-height:70px;padding:9px 0}a.timeline-item:hover strong{color:var(--green)}.timeline-icon{display:grid;place-items:center;width:33px;height:33px;border:1px solid var(--line);border-radius:50%;background:#f8f9f6;color:#697069}.timeline-item div:nth-child(2){display:grid;gap:3px;min-width:0}.timeline-item span{color:#969b95;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.timeline-item strong{overflow:hidden;font-size:11px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.timeline-item small,.timeline-item time{color:#9ba09a;font-size:9px}.timeline-external{margin-top:4px;color:#a3a8a2}.loop-list{display:grid;gap:10px}.loop-list>div{display:grid;grid-template-columns:23px 1fr;gap:9px;align-items:start}.loop-list span{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;color:#8e948d;font-family:"Instrument Serif",serif;font-size:12px}.loop-list p{margin:2px 0 0;color:#606660;font-size:10px;line-height:1.5}.related-list{display:grid;gap:4px}.related-list button{display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:9px;padding:7px;border:0;border-radius:5px;background:transparent;text-align:left;cursor:pointer}.related-list button:hover{background:#e9ece7}.related-list span{font-size:11px;font-weight:600}.related-list svg{color:#a4a9a3}.empty-inline{padding:13px 0;color:#929791;font-size:10px}.map-page{height:calc(100vh - 128px);grid-template-rows:auto minmax(420px,1fr)}.map-shell{position:relative;overflow:hidden;min-height:520px;border:1px solid var(--line);background:#f8f9f6}.map-legend{display:flex;align-items:center;gap:7px;color:#70766f;font-size:11px}.map-band-labels{position:absolute;z-index:5;inset:13px 54px auto 18px;display:grid;grid-template-columns:repeat(4,1fr);pointer-events:none}.map-band-labels span{color:#8f958e;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.react-flow__node{cursor:pointer}.react-flow__node:hover{box-shadow:0 8px 24px #191e191f!important}.react-flow__controls{border:1px solid var(--line);box-shadow:none}.react-flow__controls-button{border-bottom-color:var(--line);background:#fff}.issue-table{overflow:hidden;border:1px solid var(--line);background:var(--surface)}.issue-row{display:grid;grid-template-columns:90px minmax(170px,.8fr) minmax(260px,1.8fr) 100px 20px;gap:18px;align-items:center;width:100%;min-height:56px;padding:9px 15px;border:0;border-bottom:1px solid #e8eae6;background:transparent;text-align:left;cursor:pointer}.issue-row:last-child{border-bottom:0}.issue-row:not(.issue-header):hover{background:#fafbf8}.issue-header{min-height:39px;background:#f5f6f3;color:#8a9089;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;cursor:default}.issue-row>span:first-child{display:flex;align-items:center;gap:7px;color:#7a8079;font-size:9px;text-transform:capitalize}.severity{width:7px;height:7px;border-radius:50%}.severity-high{background:var(--red)}.severity-medium{background:var(--amber)}.severity-low{background:#7794ad}.issue-project{display:flex!important;align-items:center!important;gap:9px!important;color:var(--ink)!important;font-size:11px!important;font-weight:600;text-transform:none!important}.issue-row strong{font-size:10px;line-height:1.4}.issue-row>span:nth-child(4){color:#8e948d;font-size:9px}.issue-row>svg{color:#adb2ac}.unmatched-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.unmatched-grid>div{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:48px;padding:9px 12px;background:var(--surface);color:#6d736c}.unmatched-grid span{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.unmatched-grid time{color:#9ba09a;font-size:9px}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#1214128c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(620px,100%);max-height:calc(100vh - 48px);overflow-y:auto;border:1px solid #cdd2cb;border-radius:7px;background:var(--surface);box-shadow:0 24px 80px #0d100d3d}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:20px 22px 17px;border-bottom:1px solid var(--line)}.modal-header h2{margin:0;font-size:18px}.form-grid{display:grid;gap:16px;padding:20px 22px}.form-grid label{display:grid;gap:7px}.form-grid label>span{color:#666c65;font-size:10px;font-weight:700}.form-grid textarea,.form-grid select{width:100%;border:1px solid var(--line-strong);border-radius:5px;outline:0;background:#fbfcf9;color:var(--ink);font-size:11px}.form-grid textarea{min-height:74px;resize:vertical;padding:10px 11px;line-height:1.5}.form-grid select{height:38px;padding:0 9px}.form-grid textarea:focus,.form-grid select:focus{border-color:#82aa9a;box-shadow:0 0 0 3px #e1eee8}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:15px 22px 20px;border-top:1px solid var(--line)}@media(max-width:1180px){.project-table{grid-template-columns:minmax(180px,1fr) minmax(220px,1.25fr) minmax(200px,1fr) 105px}.project-table>:nth-child(3){display:none}.outcome-evidence>span{display:none}}@media(max-width:920px){.sidebar{transform:translate(-100%);transition:transform .18s ease}.sidebar.sidebar-open{transform:translate(0);box-shadow:18px 0 50px #0000002e}.sidebar-scrim{position:fixed;z-index:29;top:0;right:0;bottom:0;left:0;border:0;background:#1416146b}.sidebar-close{display:inline-grid!important;border-color:#343834;background:#232623;color:#b9beb8}.main-shell{margin-left:0}.mobile-menu{display:inline-grid}.content-shell{padding:30px 24px 54px}.focus-grid{grid-template-columns:1fr}.focus-card{min-height:240px}.two-column-band,.detail-columns,.now-grid{grid-template-columns:1fr}.now-panel{min-height:126px;border-right:0;border-bottom:1px solid var(--line)}.now-panel:last-child{border-bottom:0}.project-table{grid-template-columns:minmax(170px,1fr) minmax(220px,1.2fr) 105px}.project-table>:nth-child(4){display:none}}@media(max-width:680px){.topbar{height:58px;padding:0 14px}.search-box{width:auto;flex:1}.search-box kbd,.sync-status{display:none}.content-shell{padding:24px 15px 44px}.view-stack{gap:23px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1,.project-title-row h1{font-size:25px}.metric-strip{grid-template-columns:repeat(2,1fr)}.metric{min-height:70px;padding:11px;border-bottom:1px solid var(--line)}.metric:nth-child(2){border-right:0}.metric:nth-child(3),.metric:nth-child(4){border-bottom:0}.metric strong{font-size:18px}.project-table-wrap{overflow:visible;border:0;background:transparent}.project-table.header-row{display:none}.project-table.data-row{position:relative;display:block;width:100%;min-height:0;margin-bottom:8px;padding:14px;border:1px solid var(--line);border-radius:6px}.project-table.data-row>p{display:none}.project-table.data-row .identity-cell{padding-right:84px}.freshness-cell{position:absolute;top:12px;right:10px;grid-template-columns:7px auto;width:auto}.freshness-cell svg{display:none}.resource-links{flex-wrap:wrap}.portfolio-toolbar{align-items:stretch}.portfolio-toolbar>.icon-button{display:none}.segmented-control{width:100%;min-width:0;flex:1}.project-table-wrap{width:100%;min-width:0}.project-hero{flex-direction:column}.project-actions{justify-content:flex-start;width:100%}.project-actions .secondary-button{flex:1}.project-actions .resource-links-labeled{width:100%;justify-content:flex-start}.outcome-band{grid-template-columns:38px 1fr;padding:15px}.outcome-icon{width:38px;height:38px}.outcome-evidence{grid-column:1 / -1;padding-top:10px;border-top:1px solid #d5e6df}.map-page{height:auto;grid-template-rows:auto 560px}.map-band-labels{display:none}.issue-table{border:0;background:transparent}.issue-row.issue-header{display:none}.issue-row{grid-template-columns:80px 1fr 16px;gap:8px;margin-bottom:7px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.issue-row strong{grid-column:1 / 3;grid-row:2}.issue-row>span:nth-child(4){display:none}.issue-row>svg{grid-column:3;grid-row:1 / 3}.unmatched-grid{grid-template-columns:1fr}.modal-backdrop{align-items:end;padding:0}.modal{max-height:92vh;border-radius:7px 7px 0 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
