.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: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--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}.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{--cgi-red: #E31937;--cgi-red-deep: #B81229;--cgi-red-tint: #FCE7EB;--cgi-purple: #200A58;--cgi-purple-2: #5236AB;--cgi-purple-3: #9E83F5;--cgi-purple-4: #CBC3E6;--cgi-purple-tint:#F1EEF9;--ink-900: #0E0B1A;--ink-800: #1A1530;--ink-700: #2E2A45;--ink-500: #5C5878;--ink-400: #87849C;--ink-300: #B6B3C5;--ink-200: #DAD8E2;--ink-100: #ECEAF1;--ink-50: #F6F5F9;--paper: #FFFFFF;--ok: #1F8A4C;--ok-tint: #E5F4EC;--warn: #B36B00;--warn-tint:#FBF1DF;--crit: #B81229;--crit-tint:#FCE7EB;--info: #5236AB;--info-tint:#F1EEF9;--sev-crit-text: var(--crit);--sev-crit-bg: var(--crit-tint);--sev-high-text: #B85C00;--sev-high-bg: #FBEEDF;--sev-medium-text: var(--warn);--sev-medium-bg: var(--warn-tint);--sev-low-text: var(--text-2);--sev-low-bg: var(--ink-100);--font-display: "Söhne", "Inter Tight", "Helvetica Neue", Arial, sans-serif;--font-sans: "Inter", "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;--tx-12: 12px;--tx-13: 13px;--tx-14: 14px;--tx-16: 16px;--tx-18: 18px;--tx-20: 20px;--tx-24: 24px;--tx-30: 30px;--tx-38: 38px;--tx-48: 48px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--r-xs: 3px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--shadow-1: 0 1px 0 rgba(32, 10, 88, .04), 0 1px 2px rgba(32, 10, 88, .06);--shadow-2: 0 2px 4px rgba(32, 10, 88, .06), 0 8px 24px rgba(32, 10, 88, .08);--shadow-3: 0 12px 32px rgba(32, 10, 88, .14);--bg: var(--ink-50);--surface: var(--paper);--surface-2: var(--ink-100);--border: var(--ink-200);--border-strong: var(--ink-300);--text: var(--ink-900);--text-2: var(--ink-500);--text-3: var(--ink-400);--link: var(--cgi-purple-2)}:root[data-theme=dark]{--bg: #0A0716;--surface: #110D22;--surface-2: #1A1530;--border: #2A2447;--border-strong: #3A3360;--text: #F6F5F9;--text-2: #B6B3C5;--text-3: #87849C;--link: var(--cgi-purple-3);--shadow-1: 0 1px 0 rgba(0,0,0,.4), 0 1px 2px rgba(0,0,0,.35);--shadow-2: 0 2px 4px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.5);--shadow-3: 0 12px 32px rgba(0,0,0,.55);--ok-tint: #0F2A1B;--warn-tint: #2A1F0C;--crit-tint: #2A0E15;--info-tint: #1A1340;--sev-crit-text: #FF4361;--sev-high-text: #E0A24A;--sev-high-bg: #2A1B0C;--sev-low-bg: var(--ink-800)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11"}:root{--text-muted: var(--text-2);--accent: var(--cgi-purple-2);--accent-light: var(--info-tint);--accent-hover: var(--cgi-purple);--surface-hover: var(--info-tint);--border-hover: var(--border-strong);--high: var(--crit);--high-bg: var(--crit-tint);--medium: var(--warn);--medium-bg: var(--warn-tint);--low: var(--ok);--low-bg: var(--ok-tint);--report-only: var(--warn);--enabled: var(--ok);--disabled: var(--text-3);--sidebar-bg: var(--cgi-purple);--sidebar-text: var(--cgi-purple-4);--sidebar-active: rgba(158, 131, 245, .2)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:var(--text);background:var(--bg);min-height:100vh;line-height:1.6}:root{--shell-rail-w: 60px;--shell-nav-w: 224px;--shell-topbar-h: 46px}.shell-grid{display:grid;grid-template-columns:var(--shell-rail-w) var(--shell-nav-w) 1fr;grid-template-rows:var(--shell-topbar-h) 1fr;grid-template-areas:"rail topbar topbar" "rail nav    main";min-height:100vh;background:var(--bg);color:var(--text)}.shell-rail{grid-area:rail;background:var(--cgi-purple);display:flex;flex-direction:column;align-items:center;padding:.5rem 0;gap:.25rem;position:sticky;top:0;height:100vh}.shell-rail-logo{width:36px;height:36px;border-radius:8px;background:var(--cgi-red);color:var(--paper);display:grid;place-items:center;font-family:var(--font-display);font-weight:900;font-size:13px;letter-spacing:-.04em;margin-bottom:.5rem}.shell-rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem;width:100%}.shell-rail-item{display:flex;justify-content:center}.shell-rail-btn{position:relative;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--r-sm);cursor:pointer;color:var(--cgi-purple-4);font-family:inherit;transition:background .15s,color .15s}.shell-rail-btn:hover{background:#ffffff14;color:var(--paper)}.shell-rail-btn:focus-visible{outline:none;background:#ffffff1f;box-shadow:0 0 0 2px var(--cgi-purple-3)}.shell-rail-btn.active{background:#ffffff1a;color:var(--paper)}.shell-rail-btn.active:after{content:"";position:absolute;right:-10px;top:6px;bottom:6px;width:3px;background:var(--cgi-purple-3);border-radius:2px 0 0 2px}.shell-rail-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:currentColor}.shell-sidenav{grid-area:nav;background:var(--surface);border-right:1px solid var(--border);padding:.85rem .5rem;overflow-y:auto;display:flex;flex-direction:column;gap:.1rem}.shell-nav-row{display:flex;align-items:center;gap:.15rem;position:relative;border-radius:var(--r-sm)}.shell-nav-row.active,.shell-nav-row.child-active{background:var(--cgi-purple-tint)}.shell-nav-row.active:before,.shell-nav-row.child-active:before{content:"";position:absolute;left:-.5rem;top:.35rem;bottom:.35rem;width:3px;background:var(--cgi-purple-2);border-radius:0 2px 2px 0}[data-theme=dark] .shell-nav-row.active,[data-theme=dark] .shell-nav-row.child-active{background:#9e83f51f}.shell-nav-btn{flex:1;display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;background:transparent;border:none;text-align:left;cursor:pointer;color:var(--text);font-family:inherit;font-size:.85rem;border-radius:var(--r-sm);min-width:0}.shell-nav-btn:hover{background:var(--surface-2)}.shell-nav-row.active .shell-nav-btn,.shell-nav-row.child-active .shell-nav-btn{background:transparent}.shell-nav-row.active .shell-nav-btn{color:var(--cgi-purple-2);font-weight:600}[data-theme=dark] .shell-nav-row.active .shell-nav-btn{color:var(--cgi-purple-3)}.shell-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;color:var(--text-2)}.shell-nav-row.active .shell-nav-icon,.shell-nav-row.child-active .shell-nav-icon,.shell-nav-child.active .shell-nav-icon{color:inherit}.shell-nav-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-nav-badge{font-family:var(--font-mono);font-size:.7rem;font-weight:600;background:var(--cgi-red);color:var(--paper);padding:.12rem .5rem;border-radius:var(--r-pill);min-width:1.4rem;text-align:center;font-variant-numeric:tabular-nums;flex-shrink:0}.shell-nav-chevron{background:transparent;border:none;cursor:pointer;color:var(--text-3);width:26px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-xs);margin-right:.25rem}.shell-nav-chevron:hover{color:var(--text);background:var(--surface-2)}.shell-nav-children{display:flex;flex-direction:column;padding-left:1.4rem;gap:.05rem;margin:.05rem 0 .2rem}.shell-nav-child{font-size:.82rem;color:var(--text-2);padding:.45rem .7rem}.shell-nav-child.active{background:var(--cgi-purple-tint);color:var(--cgi-purple-2);font-weight:600}[data-theme=dark] .shell-nav-child.active{background:#9e83f51f;color:var(--cgi-purple-3)}.shell-topbar{grid-area:topbar;display:flex;align-items:center;gap:1rem;padding:0 1rem;background:var(--surface);border-bottom:1px solid var(--border);height:var(--shell-topbar-h);min-width:0}.shell-topbar-left,.shell-topbar-center,.shell-topbar-right{display:flex;align-items:center;gap:.65rem;min-width:0}.shell-topbar-left{flex:0 0 auto}.shell-topbar-center{flex:1 1 auto;justify-content:center;flex-wrap:wrap}.shell-topbar-right{flex:0 0 auto;margin-left:auto}.shell-topbar-brand{display:inline-flex;align-items:center;gap:.65rem;background:transparent;border:none;cursor:pointer;font-family:inherit;color:inherit;padding:.2rem .3rem;border-radius:var(--r-xs)}.shell-topbar-brand:hover{background:var(--surface-2)}.shell-topbar-product{font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.04em;color:var(--cgi-purple)}[data-theme=dark] .shell-topbar-product{color:var(--text)}.shell-env-chip{display:inline-block;margin-left:.55rem;padding:.18rem .45rem;border-radius:3px;font-family:var(--font-mono);font-size:.65rem;font-weight:700;letter-spacing:.12em;vertical-align:.05em;border:1px solid transparent}.shell-env-chip.shell-env-test{background:var(--warn-tint);color:var(--warn);border-color:var(--warn)}.shell-env-chip.shell-env-demo{background:var(--surface-2);color:var(--text-3);border-color:var(--border)}[data-theme=dark] .shell-env-chip.shell-env-demo{background:var(--ink-800)}.shell-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.22rem .6rem;border:1px solid var(--border);border-radius:var(--r-pill);background:transparent;font-size:.78rem;line-height:1.2;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.shell-pill-key{font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.1em;color:var(--text-3)}.shell-pill-val{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.shell-pill-empty .shell-pill-val{color:var(--text-3);font-style:italic;font-weight:400}.shell-topbar-refresh{font-size:.82rem;padding:.32rem .7rem}.shell-topbar-theme{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;padding:0;cursor:pointer;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-2);background:transparent;transition:background .15s,border-color .15s,color .15s}.shell-topbar-theme:hover{border-color:var(--border-strong);background:var(--surface-2);color:var(--text)}.shell-topbar-theme:focus-visible{outline:none;border-color:var(--cgi-purple-2);box-shadow:0 0 0 2px var(--cgi-purple-tint)}.shell-user{position:relative}.shell-user-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.2rem .55rem .2rem .25rem;border:1px solid var(--border);border-radius:var(--r-pill);background:transparent;color:var(--text);font-size:.82rem;cursor:pointer;font-family:inherit}.shell-user-btn:hover{border-color:var(--border-strong);background:var(--surface-2)}.shell-user-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--cgi-purple-2);color:var(--paper);font-size:.7rem;font-weight:600}.shell-user-name{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-user-chevron{font-size:.65rem;color:var(--text-3)}.shell-user-menu{position:absolute;top:calc(100% + .4rem);right:0;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow-2);z-index:100;padding:.3rem}.shell-user-menu-item{display:block;padding:.45rem .7rem;color:var(--text);text-decoration:none;font-size:.82rem;border-radius:var(--r-xs)}.shell-user-menu-item:hover{background:var(--surface-2);color:var(--cgi-purple-2)}.shell-main{grid-area:main;padding:1.75rem 2rem;min-width:0;overflow-x:hidden}@media(max-width:980px){.shell-grid{grid-template-columns:var(--shell-rail-w) 1fr;grid-template-areas:"rail topbar" "rail main"}.shell-sidenav,.shell-topbar-product,.shell-topbar-refresh,.shell-user-name{display:none}}.page-title{font-size:1.4rem;font-weight:600;color:var(--text);margin-bottom:1.5rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-header .page-title{margin-bottom:0}.page-actions{display:flex;align-items:center;gap:.5rem}.page-head{margin-bottom:2rem}.page-eyebrow{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-2);margin:0 0 .5rem}.page-rule{display:block;width:48px;height:3px;background:var(--cgi-red);margin-bottom:1rem}.page-h1{font-family:var(--font-display);font-size:clamp(1.6rem,2vw + .8rem,2.25rem);line-height:1.15;font-weight:700;color:var(--cgi-purple);letter-spacing:-.015em;margin:0}[data-theme=dark] .page-h1{color:var(--text)}.dashboard-page{padding-top:0}.dash-row{margin-bottom:1.5rem}.dash-score-card{display:grid;grid-template-columns:200px 1fr;gap:2rem;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:1.5rem 2rem;cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.dash-score-card:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:var(--shadow-1)}.dash-score-card:focus-visible{outline:none;border-color:var(--cgi-purple-2);box-shadow:0 0 0 2px var(--cgi-purple-tint)}.dash-score-ring-wrap{position:relative;width:180px;height:180px}.dash-score-ring{display:block}.dash-score-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.dash-score-pct{font-family:var(--font-display);font-size:2.6rem;font-weight:700;color:var(--cgi-purple);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}[data-theme=dark] .dash-score-pct{color:var(--text)}.dash-score-pct-unit{font-size:1.2rem;font-weight:500;color:var(--text-2);margin-left:.1rem}.dash-score-pct-label{font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-top:.4rem}.dash-score-meta{display:flex;flex-direction:column;gap:.4rem}.dash-score-eyebrow{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin:0}.dash-score-headline{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--cgi-purple);letter-spacing:-.01em;margin:0;font-variant-numeric:tabular-nums}[data-theme=dark] .dash-score-headline{color:var(--text)}.dash-score-of{font-family:var(--font-sans);font-size:1rem;font-weight:500;color:var(--text-3)}.dash-score-sub{font-size:.875rem;color:var(--text-2);margin:0;line-height:1.5}.dash-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.dash-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:1.1rem 1.25rem;text-align:left;cursor:pointer;font-family:inherit;transition:border-color .15s,transform .15s,box-shadow .15s}.dash-kpi:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:var(--shadow-1)}.dash-kpi:focus-visible{outline:none;border-color:var(--cgi-purple-2);box-shadow:0 0 0 2px var(--cgi-purple-tint)}.dash-kpi-key{font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.dash-kpi-val{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--cgi-purple);letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums}[data-theme=dark] .dash-kpi-val{color:var(--text)}.dash-kpi-val-text{font-size:1.4rem}.dash-kpi-sub{font-size:.8rem;color:var(--text-2);line-height:1.45}.dash-twocol{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem;margin-bottom:2rem}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:1.25rem 1.5rem 1.5rem}.dash-card-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1rem}.dash-card-title{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--cgi-purple);margin:0}[data-theme=dark] .dash-card-title{color:var(--text)}.dash-card-link{background:transparent;border:none;color:var(--cgi-purple-2);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:500;padding:0}.dash-card-link:hover{text-decoration:underline}.dash-card-empty{color:var(--text-3);font-size:.875rem;margin:0;padding:1rem 0}.dash-finding-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.dash-finding-row{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;padding:.7rem 0;border-top:1px solid var(--border)}.dash-finding-row:first-child{border-top:none;padding-top:0}.dash-finding-row:last-child{padding-bottom:0}.dash-finding-body{min-width:0}.dash-finding-rule{font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:.2rem}.dash-finding-desc{font-size:.875rem;color:var(--text);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dash-version-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.dash-version-row{display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.7rem 0;border-top:1px solid var(--border);cursor:pointer}.dash-version-row:first-child{border-top:none;padding-top:0}.dash-version-row:last-child{padding-bottom:0}.dash-version-row:hover .dash-version-name{color:var(--cgi-purple-2)}.dash-version-name{font-size:.9rem;color:var(--text);font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;transition:color .15s ease}.dash-version-tag{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--text-2);font-variant-numeric:tabular-nums;flex-shrink:0}@media(max-width:1080px){.dash-kpi-grid{grid-template-columns:repeat(2,1fr)}.dash-twocol{grid-template-columns:1fr}}@media(max-width:720px){.dash-score-card{grid-template-columns:1fr;gap:1.25rem;padding:1.25rem}.dash-score-ring-wrap{margin:0 auto}.dash-kpi-grid{grid-template-columns:1fr}}.overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin-bottom:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem;transition:border-color .15s,box-shadow .15s}.card.clickable{cursor:pointer}.card.clickable:hover{border-color:var(--accent);box-shadow:0 2px 12px #0078d414}.card.clickable.active{border-color:var(--accent);background:var(--accent-light)}.card .label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.5rem;font-weight:600}.card .value{font-size:2rem;font-weight:700}.card .value.high{color:var(--high)}.card .value.medium{color:var(--medium)}.card .value.low{color:var(--low)}.card .value.accent{color:var(--accent)}.card .value.muted{color:var(--disabled)}.overview-alert{display:flex;align-items:center;gap:.75rem;background:var(--high-bg);border:1px solid rgba(209,52,56,.2);border-radius:8px;padding:.75rem 1rem;font-size:.85rem;color:var(--high)}.overview-alert-icon{font-size:1.1rem}.link-btn{background:none;border:none;color:var(--accent);font-size:.85rem;font-weight:600;cursor:pointer;margin-left:auto;font-family:inherit}.link-btn:hover{text-decoration:underline}.btn-primary{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-outline{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:.5rem 1rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}.btn-outline:hover{border-color:var(--accent);background:var(--accent-light)}.btn-outline.active{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.btn-outline:disabled{opacity:.5;cursor:not-allowed}.hint-text{font-size:.75rem;color:var(--text-muted)}.policies-download-panel{margin-top:1.5rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:8px}.policies-download-header{margin-bottom:.75rem}.policies-download-title{margin:0 0 .25rem;font-size:.95rem;font-weight:600;color:var(--text)}.policies-download-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.policies-download-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.35rem 1rem;max-height:320px;overflow-y:auto}.policies-download-item{display:flex;align-items:center;gap:.5rem;padding:.3rem .4rem;border-radius:4px;cursor:pointer;font-size:.85rem;color:var(--text)}.policies-download-item:hover{background:var(--surface-hover, rgba(0, 120, 212, .06))}.policies-download-item input[type=checkbox]{flex-shrink:0;cursor:pointer}.policies-download-item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.state-badge-sm{font-size:.65rem;padding:.1rem .45rem}.filter-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.filter-chip{font-size:.75rem;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);padding:.3rem .7rem;border-radius:16px;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:background .15s,border-color .15s,color .15s;font-family:inherit}.filter-chip:hover{border-color:var(--accent);color:var(--text)}.filter-chip.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.filter-chip.severity-high.active{background:var(--high-bg);border-color:var(--high);color:var(--high)}.filter-chip.severity-medium.active{background:var(--medium-bg);border-color:var(--medium);color:var(--medium)}.filter-chip.severity-low.active{background:var(--low-bg);border-color:var(--low);color:var(--low)}.filter-chip-count{font-size:.6rem;font-weight:700;background:#0000000f;padding:.1rem .35rem;border-radius:8px;min-width:1.2rem;text-align:center}.filter-chip.active .filter-chip-count{background:#0078d426}.finding{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin-bottom:.6rem;display:flex;align-items:flex-start;gap:1rem;transition:border-color .15s}.finding:hover{border-color:var(--border-hover)}.badge{display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:600;line-height:1.2;letter-spacing:0;text-transform:lowercase;padding:3px 8px;border-radius:3px;white-space:nowrap;flex-shrink:0}.badge.critical{background:var(--sev-crit-bg);color:var(--sev-crit-text)}.badge.high{background:var(--sev-high-bg);color:var(--sev-high-text)}.badge.medium{background:var(--sev-medium-bg);color:var(--sev-medium-text)}.badge.low{background:var(--sev-low-bg);color:var(--sev-low-text)}.finding-body{flex:1}.finding-rule{font-size:.72rem;color:var(--text-muted);margin-bottom:.2rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.finding-description{font-size:.875rem;color:var(--text)}.finding-acknowledged{opacity:.5}.finding-acknowledged .badge{background:var(--border);color:var(--text-muted)}.finding-ack-meta{margin-top:.5rem;color:var(--text-muted);font-size:.75rem;font-style:italic}.btn-acknowledge{font-size:.75rem;padding:.3rem .7rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;align-self:flex-start;transition:border-color .15s,color .15s}.btn-acknowledge:hover{border-color:var(--primary);color:var(--primary)}.btn-acknowledge.acknowledged{border-color:var(--border);color:var(--text-muted)}.btn-acknowledge.acknowledged:hover{border-color:var(--medium);color:var(--medium)}.policy-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.policy-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg)}.policy-table td{padding:.75rem 1rem;font-size:.85rem;border-bottom:1px solid var(--border)}.policy-table tr:last-child td{border-bottom:none}.policy-table tbody tr{cursor:pointer}.policy-table tr:hover td{background:var(--surface-hover)}.policy-version{font-size:.65rem;color:var(--text-muted);margin-top:.15rem;font-family:SF Mono,Fira Code,Consolas,monospace}.state-badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:4px}.state-badge.enabled{background:var(--low-bg);color:var(--enabled)}.state-badge.report-only{background:var(--medium-bg);color:var(--report-only)}.state-badge.disabled{background:var(--surface-2);color:var(--disabled)}.policy-table tr.compare-selected td{background:var(--accent-light)}.col-checkbox{width:32px;text-align:center}.col-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.status-message{text-align:center;padding:3rem;color:var(--text-muted)}.error{color:var(--high)}.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-bottom:1.5rem}.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.tool-card-icon{font-size:1.5rem}.tool-card-body h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.tool-card-body p{font-size:.8rem;color:var(--text-muted);line-height:1.5}.tool-card-link{cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:border-color .15s ease,transform .15s ease}.tool-card-link:hover{border-color:var(--accent);transform:translateY(-1px)}.tool-card-cta{align-self:flex-start;color:var(--accent);font-size:.82rem;font-weight:600}.tool-card .btn-primary,.tool-card .btn-outline{align-self:flex-start}.tools-error{background:var(--high-bg);border:1px solid rgba(209,52,56,.2);border-radius:8px;padding:.75rem 1rem;font-size:.85rem;color:var(--high);margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem;justify-content:space-between}.tools-error>span{flex:1}.tools-info{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.tools-info h3{font-size:.85rem;font-weight:600;margin-bottom:.75rem;color:var(--text)}.info-row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.8rem;border-bottom:1px solid var(--border)}.info-row:last-child{border-bottom:none}.info-label{color:var(--text-muted)}.info-value{font-weight:600;color:var(--text)}.panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:100;animation:fadeIn .2s ease}.panel{position:fixed;top:0;right:0;width:60%;max-width:900px;min-width:500px;height:100vh;background:var(--bg);border-left:1px solid var(--border);z-index:101;display:flex;flex-direction:column;animation:slideIn .25s ease;transition:width .3s ease,max-width .3s ease,left .3s ease}.panel-expanded{width:calc(100% - 240px);max-width:none;left:240px}.panel-expand{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:.15rem .4rem;line-height:1;transition:color .2s,border-color .2s;flex-shrink:0}.panel-expand:hover{color:var(--accent);border-color:var(--accent)}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.panel-title-row{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.panel-title{font-size:1.1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1;flex-shrink:0;transition:color .15s}.panel-close:hover{color:var(--text)}.panel-body{flex:1;overflow-y:auto;padding:1.5rem}.panel-section{margin-bottom:1rem}.panel-section-title{font-size:.9rem;font-weight:600;color:var(--text)}.panel-section-subtitle{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.flow-container{height:450px;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.flow-container .react-flow__background{background:var(--bg)!important}.flow-container .react-flow__controls{border:1px solid var(--border);border-radius:6px;overflow:hidden}.flow-container .react-flow__controls-button{background:var(--surface);border-bottom:1px solid var(--border);fill:var(--text-muted)}.flow-container .react-flow__controls-button:hover{background:var(--surface-hover)}.flow-node{background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:220px;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;box-shadow:0 1px 4px #0000000f}.flow-node-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;border-bottom:1px solid var(--border);background:var(--bg);border-radius:8px 8px 0 0}.flow-node-icon{font-size:.9rem}.flow-node-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text)}.flow-node-body{padding:.6rem .8rem}.flow-item{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.2rem 0;font-size:.75rem}.flow-item-label{color:var(--text-muted);flex-shrink:0}.flow-item-value{color:var(--text);text-align:right;font-weight:500}.flow-item.warn .flow-item-value{color:var(--medium)}.flow-item.high .flow-item-value{color:var(--high);font-weight:600}.signal-node{border-left:3px solid var(--accent)}.decision-node.block{border-left:3px solid var(--high)}.decision-node.grant{border-left:3px solid var(--low)}.decision-node.session{border-left:3px solid var(--medium)}.enforcement-node{text-align:center}.enforcement-node.enabled{border-left:3px solid var(--enabled)}.enforcement-node.report-only{border-left:3px solid var(--report-only)}.enforcement-node.disabled{border-left:3px solid var(--disabled)}.enforcement-state{text-align:center;padding:.5rem 0}.enforcement-badge{font-size:.8rem;font-weight:700;padding:.3rem .8rem;border-radius:4px}.enforcement-badge.enabled{background:var(--low-bg);color:var(--enabled)}.enforcement-badge.report-only{background:var(--medium-bg);color:var(--report-only)}.enforcement-badge.disabled{background:var(--surface-2);color:var(--disabled)}.flow-item-wrapper{border-radius:4px}.flow-item.clickable{cursor:pointer;border-radius:4px;padding:.15rem .25rem;margin:0 -.25rem;position:relative}.flow-item.clickable:hover{background:var(--accent-light)}.flow-item-tooltip{display:none;position:absolute;left:0;top:100%;margin-top:4px;background:var(--sidebar-bg);color:#fff;font-size:.65rem;padding:.4rem .6rem;border-radius:6px;white-space:normal;max-width:280px;z-index:10;font-family:SF Mono,Fira Code,Consolas,monospace;line-height:1.4;box-shadow:0 4px 16px #00000026;pointer-events:none}.flow-item.clickable:hover .flow-item-tooltip{display:block}.flow-item-expand{font-size:.6rem;color:var(--text-muted);margin-left:.25rem}.flow-item-details{background:var(--bg);border-radius:4px;padding:.4rem .5rem;margin:.25rem 0 .35rem;border:1px solid var(--border)}.flow-detail-row{font-size:.65rem;color:var(--text-muted);padding:.15rem 0;word-break:break-all;font-family:SF Mono,Fira Code,Consolas,monospace}.flow-detail-row+.flow-detail-row{border-top:1px solid var(--border)}.react-flow__handle{width:8px;height:8px;background:var(--accent);border:2px solid var(--surface)}.compare-panel{width:85%;max-width:1400px}.compare-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;margin-bottom:1.5rem}.compare-column{min-width:0}.compare-column-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.compare-policy-name{font-size:.95rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compare-flow{height:380px}.compare-divider{display:flex;align-items:center;justify-content:center;padding:0 .5rem}.compare-vs{font-size:.8rem;font-weight:700;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.compare-diff{margin-top:1.5rem}.compare-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-top:.75rem}.compare-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;padding:.6rem .8rem;border-bottom:1px solid var(--border);background:var(--bg)}.compare-table td{padding:.6rem .8rem;font-size:.8rem;border-bottom:1px solid var(--border)}.compare-table tr:last-child td{border-bottom:none}.compare-table tr.diff-highlight td{background:var(--high-bg)}.diff-field{font-weight:600;color:var(--text)}.compare-identical{color:var(--low);font-size:.85rem;margin-top:.5rem}.btn-ai{background:linear-gradient(135deg,var(--cgi-purple),var(--cgi-purple-2));color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .15s}.btn-ai:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-ai:disabled{opacity:.5;cursor:not-allowed}.btn-ai.btn-sm{padding:.35rem .75rem;font-size:.75rem}.btn-sm{padding:.3rem .6rem;font-size:.72rem}.ai-summary-section{margin-bottom:1rem}.ai-summary-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.ai-summary-content{background:linear-gradient(135deg,#5236ab0f,#5236ab1a);border:1px solid rgba(107,63,160,.15);border-radius:8px;padding:1rem;font-size:.82rem;line-height:1.6;color:var(--text)}.ai-panel{background:var(--surface);border:1px solid rgba(107,63,160,.2);border-radius:10px;padding:1.25rem;margin-top:1.5rem}.ai-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.ai-panel-header h3{font-size:.95rem;font-weight:600;color:var(--text);background:linear-gradient(135deg,var(--cgi-purple),var(--cgi-purple-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.ai-recs-summary{font-size:.85rem;line-height:1.55;color:var(--text);padding:.75rem .9rem;background:var(--bg);border-left:3px solid var(--accent);border-radius:4px;margin-bottom:1rem}.ai-recommendation{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.ai-recommendation:last-child{border-bottom:none}.ai-rec-body{flex:1}.ai-rec-title{font-weight:600;font-size:.82rem;color:var(--text);margin-bottom:.2rem}.ai-rec-desc{font-size:.78rem;color:var(--text-muted);line-height:1.5}.ai-rec-policies{font-size:.72rem;color:var(--text-muted);font-style:italic;margin-top:.3rem}.ai-tool-card{border-color:#6b3fa033}.draft-input{width:100%;margin-top:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-family:Segoe UI,sans-serif;font-size:.8rem;color:var(--text);resize:vertical;background:var(--bg);transition:border-color .2s}.draft-input:focus{outline:none;border-color:var(--accent)}.draft-input::placeholder{color:var(--text-muted)}.ai-explanation{font-size:.82rem;color:var(--text);line-height:1.6;margin-bottom:1rem;padding:.75rem;background:linear-gradient(135deg,#5236ab0f,#5236ab1a);border-radius:6px}.ai-code-block{background:var(--ink-900);color:var(--ink-100);padding:1rem;border-radius:8px;font-family:Cascadia Code,Fira Code,monospace;font-size:.75rem;line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.ask-page{display:flex;flex-direction:column;height:100%}.page-subtitle{font-size:.82rem;color:var(--text-muted);margin-bottom:1.25rem;line-height:1.5}.ask-chat{flex:1;overflow-y:auto;padding:.5rem 0;min-height:300px}.ask-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--text-muted)}.ask-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.ask-empty p{font-size:1rem;margin-bottom:1.5rem}.ask-suggestions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;max-width:600px}.ask-suggestion{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;font-size:.78rem;color:var(--text);cursor:pointer;transition:border-color .2s,background .2s;text-align:left}.ask-suggestion:hover{border-color:var(--accent);background:var(--accent-light)}.ask-entry{margin-bottom:.75rem}.ask-entry.ask-question{display:flex;justify-content:flex-end}.ask-entry.ask-answer{display:flex;justify-content:flex-start}.ask-bubble{max-width:80%;padding:.75rem 1rem;border-radius:12px;font-size:.82rem;line-height:1.6}.ask-question-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.ask-answer-bubble{background:var(--surface);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}.ask-clarification{border-color:var(--medium);background:var(--medium-bg)}.ask-options{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.ask-option-chip{background:var(--surface);border:1px solid var(--accent);border-radius:16px;padding:.35rem .75rem;font-size:.75rem;color:var(--accent);cursor:pointer;font-weight:600;transition:background .2s,color .2s}.ask-option-chip:hover{background:var(--accent);color:#fff}.ask-partial-analysis{font-size:.75rem;color:var(--text-muted);font-style:italic;margin-top:.4rem;padding-top:.4rem;border-top:1px solid rgba(0,0,0,.08)}.ask-answer-bubble.ask-loading{color:var(--text-muted);font-style:italic;animation:askPulse 1.5s ease-in-out infinite}@keyframes askPulse{0%,to{opacity:.6}50%{opacity:1}}.ask-user-lookup{font-size:.7rem;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.ask-user-found{color:var(--low)}.ask-user-notfound{color:var(--medium)}.ask-answer-text{margin-bottom:.5rem}.ask-outcome{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:.72rem;font-weight:600;text-transform:uppercase;margin-bottom:.5rem}.ask-outcome-allowed{background:var(--low-bg);color:var(--low)}.ask-outcome-blocked{background:var(--high-bg);color:var(--high)}.ask-outcome-mfa_required{background:var(--medium-bg);color:var(--medium)}.ask-outcome-conditional{background:var(--accent-light);color:var(--accent)}.ask-policies{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.ask-policies-title{font-size:.72rem;font-weight:600;color:var(--text-muted);margin-bottom:.4rem}.ask-policy-item{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.75rem}.ask-policy-name{font-weight:600;color:var(--text)}.ask-policy-effect{color:var(--text-muted);font-size:.72rem}.ask-reasoning{margin-top:.5rem;font-size:.75rem;color:var(--text-muted)}.ask-reasoning summary{cursor:pointer;font-weight:600;color:var(--accent);font-size:.72rem}.ask-reasoning p{margin-top:.3rem;line-height:1.5}.ask-debug{margin-top:.3rem}.ask-debug-label{font-weight:600;font-size:.7rem;color:var(--accent);margin-top:.5rem;margin-bottom:.2rem}.ask-debug-pre{background:var(--ink-900);color:var(--ink-100);padding:.6rem;border-radius:6px;font-family:Cascadia Code,Fira Code,monospace;font-size:.65rem;line-height:1.4;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}.ask-input-bar{display:flex;gap:.5rem;margin-top:1rem;position:sticky;bottom:0;background:var(--bg);padding:.5rem 0}.ask-input{flex:1;padding:.65rem 1rem;border:1px solid var(--border);border-radius:8px;font-family:Segoe UI,sans-serif;font-size:.85rem;color:var(--text);background:var(--surface);transition:border-color .2s}.ask-input:focus{outline:none;border-color:var(--accent)}.ask-input::placeholder{color:var(--text-muted)}.ask-input:disabled{opacity:.6}.finding-controls{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.finding-control-item{display:flex;gap:.4rem;align-items:baseline;font-size:.72rem;line-height:1.6}.finding-control-name{color:var(--text-muted);font-weight:600}.finding-control-values{color:var(--text);font-family:Cascadia Code,Fira Code,monospace;font-size:.7rem}.version-history-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.version-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.version-hint{font-size:.72rem;color:var(--text-muted);margin-bottom:.5rem}.version-list{display:flex;flex-direction:column;gap:.35rem}.version-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:border-color .2s,background .2s}.version-item:hover{border-color:var(--accent)}.version-item.selected{border-color:var(--accent);background:var(--accent-light)}.version-item input[type=checkbox]{accent-color:var(--accent)}.version-item-info{flex:1;display:flex;flex-direction:column}.version-item-version{font-weight:600;font-size:.8rem;color:var(--text)}.version-item-run{font-size:.7rem;color:var(--text-muted)}.state-badge.sm{font-size:.62rem;padding:.12rem .4rem}.diff-summary-text{font-size:.82rem;color:var(--text);line-height:1.6;margin-bottom:.75rem}.diff-risk{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:.72rem;font-weight:600;text-transform:uppercase;margin-bottom:.75rem}.diff-risk-increased{background:var(--high-bg);color:var(--high)}.diff-risk-decreased{background:var(--low-bg);color:var(--low)}.diff-risk-neutral{background:var(--accent-light);color:var(--accent)}.diff-risk-mixed{background:var(--medium-bg);color:var(--medium)}.diff-changes{display:flex;flex-direction:column;gap:.6rem}.diff-change-item{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.6rem .75rem}.diff-change-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.diff-change-field{font-family:Cascadia Code,Fira Code,monospace;font-size:.72rem;font-weight:600;color:var(--accent)}.diff-change-values{font-size:.75rem;line-height:1.5}.diff-before{color:var(--high)}.diff-after{color:var(--low)}.diff-label{font-weight:600;font-size:.7rem}.diff-change-explanation{font-size:.72rem;color:var(--text-muted);margin-top:.3rem;font-style:italic}.version-compare-flows{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}.version-compare-col{min-height:0}.version-compare-label{font-size:.72rem;font-weight:600;color:var(--text-muted);text-align:center;margin-bottom:.35rem}.flow-container-sm{height:300px}.access-check-page .page-subtitle{color:var(--text-muted);font-size:.85rem;margin-bottom:1.5rem}.access-check-input-bar{display:flex;gap:.75rem;margin-bottom:1.5rem}.access-check-input{flex:1;padding:.6rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem;background:var(--surface);color:var(--text);outline:none;transition:border-color .15s}.access-check-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.access-check-user-banner{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.25rem}.access-user-name{font-size:1.15rem;font-weight:600;color:var(--text)}.access-user-details{display:flex;gap:1.25rem;margin-top:.3rem;font-size:.8rem;color:var(--text-muted)}.access-user-meta{background:var(--accent-light);color:var(--accent);padding:.1rem .5rem;border-radius:10px;font-size:.72rem;font-weight:500}.access-user-meta.has-tooltip{cursor:help}.access-user-admin-badge{display:inline-block;margin-left:.65rem;vertical-align:middle;padding:.15rem .55rem;border-radius:10px;font-size:.72rem;font-weight:600;letter-spacing:.02em;cursor:help}.access-user-admin-badge.admin{background:var(--accent-light);color:var(--accent);border:1px solid var(--accent)}.access-user-admin-badge.privileged{background:var(--warn-tint);color:var(--warn);border:1px solid var(--warn)}.access-check-summary{margin-bottom:1.25rem}.access-scenario-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-bottom:1.25rem}.access-scenario-panel{border-top:3px solid var(--accent)}.access-standard-toggle{margin-bottom:1rem}.access-status-badge{display:inline-block;padding:.15rem .6rem;border-radius:10px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.access-status-badge.status-allowed{background:var(--low-bg);color:var(--low)}.access-status-badge.status-conditional{background:var(--medium-bg);color:var(--medium)}.access-status-badge.status-blocked{background:var(--high-bg);color:var(--high)}.filter-chips-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;align-self:center}.access-check-table{margin-top:1rem}.access-app-row{cursor:pointer}.access-app-row:hover td{background:var(--surface-hover)}.access-expand-icon{display:inline-block;width:1.2rem;font-size:.65rem;color:var(--text-muted)}.access-category-badge{background:var(--bg);border:1px solid var(--border);padding:.1rem .5rem;border-radius:10px;font-size:.7rem;color:var(--text-muted);white-space:nowrap}.access-app-icon{display:inline-block;margin-right:.4rem;font-size:1rem;line-height:1;vertical-align:-.1em}.access-category-icon{display:inline-block;margin-right:.3rem;font-size:.85rem;line-height:1;vertical-align:-.05em}.access-scenario-icon{display:inline-block;margin-right:.4rem;font-size:1rem;line-height:1;vertical-align:-.1em}.access-scenario-row td{padding:0!important;background:var(--bg)}.access-scenario{padding:.75rem 1.25rem .75rem 2.5rem;border-left:3px solid var(--accent-light)}.access-scenario-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.access-scenario-type{font-size:.78rem;font-weight:600;color:var(--text)}.access-scenario-details{display:flex;flex-direction:column;gap:.3rem}.access-scenario-field{font-size:.8rem;color:var(--text)}.access-scenario-label{font-weight:600;color:var(--text-muted);margin-right:.4rem;font-size:.75rem;text-transform:uppercase}.access-scenario-operator{font-size:.72rem;color:var(--text-muted)}.access-block-conditions{border-left:3px solid var(--high);padding-left:.5rem;margin-top:.25rem}.access-block-note{font-size:.78rem;color:var(--high)}.access-baseline-section{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.25rem}.access-baseline-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem}.access-baseline-item.baseline-enforced{border-left:4px solid var(--low)}.access-baseline-item.baseline-not_enforced{border-left:4px solid var(--high)}.access-baseline-header{display:flex;align-items:center;gap:.5rem;font-size:.88rem}.access-baseline-desc{font-size:.78rem;color:var(--text-muted);margin-top:.25rem;margin-left:1.75rem}.access-baseline-policies{font-size:.72rem;color:var(--text-muted);margin-top:.2rem;margin-left:1.75rem;font-style:italic}.access-summaries-row{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}.access-location-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,26rem);gap:1.25rem;align-items:start}.access-location-body>.access-location-grid{min-width:0}@media(max-width:900px){.access-location-body{grid-template-columns:1fr}}.access-summary-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.access-summary-card h3{font-size:.9rem;font-weight:600;margin-bottom:.75rem;color:var(--text)}.byod-section-header{font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin:0 0 .45rem}.byod-section-header+.access-device-grid+.byod-section-header{margin-top:1rem}.access-device-grid+.byod-section-header{margin-top:1rem}.access-device-grid,.access-location-grid{display:flex;flex-direction:column;gap:.6rem}.access-device-item,.access-location-item{display:grid;grid-template-columns:minmax(10rem,auto) auto 1fr;align-items:center;gap:.75rem;font-size:.82rem}.access-device-item>strong,.access-location-item>strong{white-space:nowrap}.access-device-note,.access-location-note{color:var(--text-muted);font-size:.78rem}.access-policy-chip{display:inline-flex;align-items:center;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.05rem .55rem;margin:0 .1rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.access-policy-chip:hover,.access-policy-chip:focus-visible{background:var(--accent-light);border-color:var(--accent);color:var(--accent);outline:none}.access-policy-name{font-style:italic;color:var(--text-muted)}.access-location-requirements{padding:.7rem .85rem;background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:4px}.access-location-requirements-title{font-size:.8rem;font-weight:600;color:var(--text);margin-bottom:.45rem;text-transform:uppercase;letter-spacing:.02em}.access-location-requirements-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.access-location-requirements-list li{font-size:.82rem;color:var(--text);display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem}.access-location-requirements-list li:before{content:"●";color:var(--warn);font-size:.75rem;margin-right:.1rem}.access-location-requirement-desc{font-weight:500}.access-location-requirement-source{color:var(--text-muted);font-size:.75rem;font-style:italic}.access-report-only-section{margin-top:1.5rem;border:2px dashed var(--border);border-radius:10px;padding:1.25rem;background:var(--bg)}.access-report-only-section h3{font-size:.9rem;font-weight:600;color:var(--text-muted);margin-bottom:.25rem}.access-report-only-note{font-size:.78rem;color:var(--text-muted);margin-bottom:.75rem}.access-report-only-list{display:flex;flex-direction:column;gap:.6rem}.access-report-only-item{display:flex;flex-direction:column;gap:.2rem;padding:.6rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:.82rem}.access-report-only-controls{color:var(--medium);font-size:.78rem}.access-report-only-apps,.access-report-only-session{color:var(--text-muted);font-size:.75rem}.landing{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-sans)}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2.5rem;max-width:1200px;width:100%;margin:0 auto}.landing-brand{display:flex;align-items:center;gap:.85rem}.landing-cgi-logo{display:block;height:36px;width:auto}.landing-product{font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--cgi-purple);padding-left:.85rem;border-left:1px solid var(--border)}[data-theme=dark] .landing-product{color:var(--cgi-purple-3)}.landing-signin-link{font-family:var(--font-sans);color:var(--cgi-purple-2);text-decoration:none;font-weight:600;font-size:.95rem;padding:.5rem .9rem;border-radius:var(--r-sm);transition:background .15s ease}.landing-signin-link:hover{background:var(--info-tint)}.landing-main{flex:1;max-width:1100px;width:100%;margin:0 auto;padding:4rem 2.5rem 5rem}.landing-hero{max-width:760px;margin-bottom:4.5rem}.landing-eyebrow{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-2);margin:0 0 .6rem}.landing-rule{display:block;width:56px;height:3px;background:var(--cgi-red);margin-bottom:1.5rem}.landing-headline{font-family:var(--font-display);font-size:clamp(2.25rem,4vw + 1rem,3.5rem);line-height:1.05;font-weight:700;color:var(--cgi-purple);letter-spacing:-.02em;margin:0 0 1.5rem}[data-theme=dark] .landing-headline{color:var(--text)}.landing-lede{font-size:1.125rem;color:var(--text-2);line-height:1.6;margin:0 0 2rem;max-width:640px}.landing-cta-row{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.landing-cta-primary{display:inline-block;background:var(--ink-900);color:var(--paper);text-decoration:none;font-family:var(--font-sans);font-weight:600;font-size:1rem;padding:.95rem 1.6rem;border-radius:var(--r-sm);border:1px solid var(--ink-900);transition:background .15s ease,transform .05s ease,border-color .15s ease}.landing-cta-primary:hover{background:var(--cgi-purple);border-color:var(--cgi-purple)}.landing-cta-primary:active{transform:translateY(1px)}[data-theme=dark] .landing-cta-primary{background:var(--paper);color:var(--ink-900);border-color:var(--paper)}[data-theme=dark] .landing-cta-primary:hover{background:var(--cgi-purple-3);border-color:var(--cgi-purple-3);color:var(--ink-900)}.landing-cta-note{color:var(--text-3);font-size:.875rem}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:4rem}.landing-feature{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:1.75rem 1.5rem 1.5rem;transition:border-color .15s ease,transform .15s ease;display:flex;flex-direction:column;gap:.5rem}.landing-feature:hover{border-color:var(--border-strong);transform:translateY(-1px)}.landing-feature-number{font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.08em;color:var(--cgi-purple-2);margin-bottom:.35rem}.landing-feature h3{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--cgi-purple);margin:0 0 .35rem;letter-spacing:-.005em}[data-theme=dark] .landing-feature h3{color:var(--text)}.landing-feature p{font-size:.92rem;color:var(--text-2);line-height:1.55;margin:0}.landing-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem 2rem;padding:1.5rem 0 0;border-top:1px solid var(--border)}.landing-trust-item{display:flex;flex-direction:column;gap:.45rem}.landing-trust-item strong{font-family:var(--font-mono);color:var(--cgi-purple);font-size:.72rem;font-weight:600;letter-spacing:.1em}[data-theme=dark] .landing-trust-item strong{color:var(--cgi-purple-3)}.landing-trust-item span{color:var(--text-2);font-size:.875rem;line-height:1.55}.landing-footer{padding:1.5rem 2.5rem;max-width:1200px;width:100%;margin:0 auto;color:var(--text-3);font-size:.8rem;border-top:1px solid var(--border)}@media(max-width:820px){.landing-header{padding:1.25rem}.landing-main{padding:2.5rem 1.25rem 3rem}.landing-hero{margin-bottom:3rem}.landing-lede{font-size:1rem}.landing-features,.landing-trust{grid-template-columns:1fr}.landing-footer{padding:1rem 1.25rem}}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.75rem;max-width:720px;margin-bottom:1rem}.settings-card h3{font-size:1.05rem;font-weight:600;color:var(--text);margin-bottom:.5rem}.settings-card-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem}.settings-card-header h3{margin-bottom:0}.locations-list{display:flex;flex-direction:column;gap:.35rem;max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:.5rem;background:var(--bg)}.locations-row{display:flex;align-items:center;gap:.65rem;padding:.45rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem}.locations-row:hover{background:var(--surface-hover)}.locations-name{flex:1;color:var(--text)}.locations-badge{font-size:.7rem;color:var(--accent-hover);background:var(--accent-light);padding:.1rem .45rem;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.locations-row-stale .locations-name{color:var(--medium);font-style:italic}.locations-badge-stale{background:var(--medium-bg);color:var(--medium);font-family:SF Mono,Consolas,monospace;font-size:.68rem;text-transform:none;letter-spacing:0}.settings-help{color:var(--text-muted);font-size:.9rem;line-height:1.55;margin-bottom:1.5rem}.settings-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.25rem}.settings-field label{font-size:.9rem;font-weight:600;color:var(--text)}.settings-field input{font-family:inherit;font-size:.92rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.settings-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0078d426}.settings-field input:disabled{background:var(--bg);color:var(--text-muted)}.settings-hint{font-size:.8rem;color:var(--text-muted);line-height:1.45}.settings-hint code{font-family:SF Mono,Consolas,monospace;font-size:.78rem;background:var(--bg);padding:.1rem .35rem;border-radius:3px}.settings-actions{display:flex;gap:.75rem;margin-top:.5rem}.settings-resolved{background:var(--accent-light);border:1px solid rgba(0,120,212,.18);border-radius:6px;padding:.75rem .9rem;margin-bottom:1.25rem;font-size:.85rem}.settings-resolved strong{display:block;color:var(--accent-hover);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.4rem}.settings-resolved div{display:flex;gap:.75rem;align-items:center;padding:.15rem 0}.settings-resolved span{color:var(--text-muted);min-width:120px}.settings-resolved code{font-family:SF Mono,Consolas,monospace;font-size:.8rem;color:var(--text);word-break:break-all}.settings-message{margin-top:1rem;padding:.7rem .9rem;border-radius:6px;font-size:.88rem;line-height:1.5}.settings-message-success{background:var(--low-bg);color:var(--low);border:1px solid rgba(16,124,16,.2)}.settings-message-error{background:var(--high-bg);color:var(--high);border:1px solid rgba(209,52,56,.2)}.baseline-summary{display:grid;grid-template-columns:minmax(180px,auto) 1fr minmax(160px,auto);gap:1.5rem;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1.5rem}.baseline-score{display:flex;flex-direction:column;gap:.2rem;border-right:1px solid var(--border);padding-right:1.5rem}.baseline-score-value{font-size:2.2rem;font-weight:700;color:var(--accent);line-height:1.1}.baseline-score-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.baseline-score-note{display:block;margin-top:.25rem;font-size:.7rem;text-transform:none;letter-spacing:0;font-style:italic;color:var(--text-muted)}.baseline-tally{display:flex;gap:1.25rem;flex-wrap:wrap}.baseline-tally-item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.4rem .75rem;border-radius:6px;min-width:62px}.baseline-tally-item.pass{background:var(--low-bg);color:var(--low)}.baseline-tally-item.partial{background:var(--medium-bg);color:var(--medium)}.baseline-tally-item.fail{background:var(--high-bg);color:var(--high)}.baseline-tally-item.na{background:var(--surface-2);color:var(--text-muted)}.baseline-tally-num{font-size:1.4rem;font-weight:700;line-height:1}.baseline-tally-lbl{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;opacity:.85}.baseline-tier{display:flex;flex-direction:column;gap:.2rem;align-items:flex-end;border-left:1px solid var(--border);padding-left:1.5rem}.baseline-tier-label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.baseline-tier-value{font-size:.95rem;font-weight:600;color:var(--text)}.baseline-section{margin-bottom:1.75rem}.baseline-section-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.75rem;font-weight:700}.baseline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.baseline-tile{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;transition:border-color .15s,box-shadow .15s}.baseline-tile:hover{box-shadow:0 1px 4px #0000000a;border-color:var(--border-hover)}.baseline-tile.baseline-pass{border-left-color:var(--low)}.baseline-tile.baseline-partial{border-left-color:var(--medium)}.baseline-tile.baseline-fail{border-left-color:var(--high)}.baseline-tile.baseline-na{border-left-color:var(--disabled);opacity:.85}.baseline-tile-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.baseline-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.22rem .55rem;border-radius:999px}.baseline-badge-icon{font-size:.78rem;line-height:1}.baseline-badge.baseline-pass{background:var(--low-bg);color:var(--low)}.baseline-badge.baseline-partial{background:var(--medium-bg);color:var(--medium)}.baseline-badge.baseline-fail{background:var(--high-bg);color:var(--high)}.baseline-badge.baseline-na{background:var(--surface-2);color:var(--text-muted)}.baseline-license{font-size:.68rem;font-weight:600;color:var(--text-muted);background:var(--accent-light);padding:.15rem .45rem;border-radius:4px;letter-spacing:.03em}.baseline-tile-name{font-size:.95rem;font-weight:600;color:var(--text);line-height:1.3}.baseline-tile-rationale{font-size:.82rem;color:var(--text-muted);line-height:1.45}.baseline-tile-policies{font-size:.78rem;color:var(--text);border-top:1px dashed var(--border);padding-top:.5rem;margin-top:.25rem}.baseline-tile-policies-label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.25rem}.baseline-tile-policies ul{margin:0;padding-left:1.1rem}.baseline-tile-policies li{margin-bottom:.15rem}.baseline-tile-link{font-size:.8rem;color:var(--accent);text-decoration:none;padding-top:.25rem}.baseline-tile-link:hover{text-decoration:underline}.baseline-tile-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.5rem;flex-wrap:wrap}.baseline-generate-btn{font-size:.78rem;font-weight:600;padding:.3rem .7rem;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:4px;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.baseline-generate-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.baseline-generate-btn:disabled{opacity:.6;cursor:wait}.baseline-template-error{margin-top:.5rem;font-size:.78rem;color:var(--crit);background:var(--crit-tint);border:1px solid var(--crit-tint);border-radius:4px;padding:.4rem .55rem}.baseline-template-panel{margin-top:.6rem;border-top:1px dashed var(--border);padding-top:.6rem;display:flex;flex-direction:column;gap:.5rem}.baseline-template-banner{font-size:.78rem;line-height:1.45;color:var(--text);background:var(--info-tint);border:1px solid var(--border);border-radius:4px;padding:.5rem .65rem}.baseline-template-banner strong{font-weight:600}.baseline-template-json{margin:0;max-height:260px;overflow:auto;background:var(--ink-900);color:var(--ink-100);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;line-height:1.4;padding:.6rem .75rem;border-radius:4px;white-space:pre}.baseline-template-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.baseline-template-download,.baseline-template-copy{font-size:.78rem;font-weight:600;padding:.3rem .7rem;border-radius:4px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.baseline-template-download{background:var(--accent);color:#fff;border:1px solid var(--accent)}.baseline-template-download:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.baseline-template-copy{background:transparent;color:var(--accent);border:1px solid var(--accent)}.baseline-template-copy:hover{background:var(--accent);color:#fff}.baseline-citations{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin-top:1.5rem}.baseline-citations h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.5rem}.baseline-citations ul{margin:0;padding-left:1.1rem}.baseline-citations li{font-size:.85rem;margin-bottom:.2rem}.baseline-citations a{color:var(--accent);text-decoration:none}.baseline-citations a:hover{text-decoration:underline}@media(max-width:720px){.baseline-summary{grid-template-columns:1fr}.baseline-score,.baseline-tier{border:none;padding:0;align-items:flex-start}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b2a3d73;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:var(--surface);border-radius:10px;padding:1.5rem 1.75rem;max-width:540px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 30px #0003}.modal h3{font-size:1.1rem;font-weight:600;color:var(--text);margin-bottom:.6rem}.modal p{color:var(--text);font-size:.9rem;line-height:1.55;margin-bottom:.75rem}.modal-lede{color:var(--text-muted);font-size:.85rem;margin-bottom:.75rem}.modal-location-list{list-style:disc;padding-left:1.5rem;margin-bottom:.9rem;color:var(--text);font-size:.88rem}.modal-warning{background:var(--high-bg);color:var(--high);border:1px solid rgba(209,52,56,.2);border-radius:6px;padding:.7rem .85rem;font-size:.85rem;line-height:1.5;margin-bottom:1rem}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap;margin-top:.5rem}.modal-option{border:1px solid var(--border);border-radius:6px;padding:.75rem .9rem;margin-bottom:.75rem;background:var(--bg)}.modal-option-row{display:flex;gap:.7rem;align-items:flex-start;cursor:pointer}.modal-option-row.disabled{opacity:.6;cursor:not-allowed}.modal-option-row input[type=checkbox]{margin-top:.25rem;accent-color:var(--accent)}.modal-option-title{font-weight:600;color:var(--text);font-size:.92rem}.modal-option-tag{margin-left:.5rem;font-size:.7rem;font-weight:600;color:var(--high);background:var(--high-bg);padding:.1rem .45rem;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.modal-option-detail{color:var(--text-muted);font-size:.82rem;margin-top:.25rem;line-height:1.5}.modal-option-detail code{font-family:SF Mono,Consolas,monospace;font-size:.78rem;background:var(--surface);padding:.05rem .3rem;border-radius:3px}.scenario-planner{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1rem}.scenario-header h3{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:600;color:var(--text);margin-bottom:.4rem}.scenario-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-hover);background:var(--accent-light);padding:.1rem .45rem;border-radius:10px}.scenario-header p{color:var(--text-muted);font-size:.88rem;line-height:1.55;margin-bottom:1rem}.scenario-form{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--bg);border:1px solid var(--border);border-radius:6px}.scenario-field{display:flex;flex-direction:column;gap:.3rem}.scenario-field label{font-size:.82rem;font-weight:600;color:var(--text)}.scenario-field input,.scenario-field select,.scenario-field textarea{font-family:inherit;font-size:.9rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.scenario-field input:focus,.scenario-field select:focus,.scenario-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0078d426}.scenario-readonly{font-size:.88rem;color:var(--text-muted);padding:.45rem .7rem;background:var(--surface);border:1px dashed var(--border);border-radius:6px}.scenario-actions{display:flex;gap:.6rem;margin-top:.5rem}.scenario-result{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.scenario-banner{background:var(--medium-bg);color:var(--medium);border:1px solid rgba(202,80,16,.25);padding:.7rem .9rem;border-radius:6px;font-size:.85rem;margin-bottom:.9rem}.scenario-summary{color:var(--text);font-size:.95rem;line-height:1.55;margin-bottom:1rem}.scenario-resolved{background:var(--accent-light);border:1px solid rgba(0,120,212,.18);border-radius:6px;padding:.7rem .85rem;margin-bottom:1rem;font-size:.85rem}.scenario-resolved strong{display:block;color:var(--accent-hover);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.35rem}.scenario-resolved div{display:flex;gap:.6rem;align-items:center;padding:.1rem 0;flex-wrap:wrap}.scenario-resolved span{color:var(--text-muted);min-width:70px}.scenario-resolved code{font-family:SF Mono,Consolas,monospace;font-size:.8rem;color:var(--text)}.scenario-resolved code.muted{color:var(--text-muted);font-size:.74rem}.scenario-resolved code.placeholder,code.placeholder{color:var(--medium);background:var(--medium-bg);padding:.05rem .3rem;border-radius:3px;font-family:SF Mono,Consolas,monospace;font-size:.78rem}.scenario-section{margin-bottom:1rem}.scenario-section h4{font-size:.92rem;font-weight:600;color:var(--text);margin-bottom:.4rem}.scenario-section ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.scenario-section li{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;font-size:.9rem;color:var(--text)}.scenario-detail{color:var(--text-muted);font-size:.82rem;margin-top:.3rem;line-height:1.5}.scenario-caveat{color:var(--medium);font-size:.82rem;margin-top:.3rem;line-height:1.5}.scenario-tag{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .4rem;border-radius:10px;margin-left:.5rem}.scenario-tag-hard{background:var(--high-bg);color:var(--high)}.scenario-tag-conditional{background:var(--medium-bg);color:var(--medium)}.scenario-tag-ready{background:var(--low-bg);color:var(--low)}.scenario-tag-not-ready{background:var(--high-bg);color:var(--high)}.scenario-new-policy{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.75rem .9rem;margin-bottom:.75rem}.scenario-new-policy-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}
