@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(/assets/material-icons-kAwBdRge.woff2) format("woff2"),url(/assets/material-icons-Dr0goTwe.woff) format("woff")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Outlined;font-style:normal;font-weight:400;font-display:block;src:url(/assets/material-icons-outlined-DZhiGvEA.woff2) format("woff2"),url(/assets/material-icons-outlined-BpWbwl2n.woff) format("woff")}.material-icons-outlined{font-family:Material Icons Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Round;font-style:normal;font-weight:400;font-display:block;src:url(/assets/material-icons-round-DrirKXBx.woff2) format("woff2"),url(/assets/material-icons-round-BDlwx-sv.woff) format("woff")}.material-icons-round{font-family:Material Icons Round;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Sharp;font-style:normal;font-weight:400;font-display:block;src:url(/assets/material-icons-sharp-gidztirS.woff2) format("woff2"),url(/assets/material-icons-sharp-CH1KkVu7.woff) format("woff")}.material-icons-sharp{font-family:Material Icons Sharp;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Two Tone;font-style:normal;font-weight:400;font-display:block;src:url(/assets/material-icons-two-tone-DuNIpaEj.woff2) format("woff2"),url(/assets/material-icons-two-tone-B7wz7mED.woff) format("woff")}.material-icons-two-tone{font-family:Material Icons Two Tone;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}.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{--bg-primary: #1a1a1a;--bg-secondary: #222222;--bg-card: #2a2a2a;--bg-input: #333333;--bg-hover: #3a3a3a;--border: #1e1e3a;--border-light: #2a2a50;--text-primary: #e0e0ff;--text-secondary: #ccccee;--text-muted: #555588;--accent: #00e5ff;--accent-hover: #33eeff;--accent-dim: rgba(0, 229, 255, .12);--accent-glow: 0 0 8px rgba(0, 229, 255, .4), 0 0 20px rgba(0, 229, 255, .15);--neon-pink: #ff2d95;--neon-pink-dim: rgba(255, 45, 149, .12);--neon-pink-glow: 0 0 8px rgba(255, 45, 149, .4), 0 0 20px rgba(255, 45, 149, .15);--success: #39ff14;--success-dim: rgba(57, 255, 20, .1);--success-glow: 0 0 8px rgba(57, 255, 20, .4);--warning: #ffe600;--warning-dim: rgba(255, 230, 0, .1);--warning-glow: 0 0 8px rgba(255, 230, 0, .4);--danger: #ff3355;--danger-dim: rgba(255, 51, 85, .1);--danger-glow: 0 0 8px rgba(255, 51, 85, .4);--radius: 8px;--radius-sm: 5px;--shadow: 0 4px 20px rgba(0, 0, 0, .6);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font);font-size:15px;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{color:var(--text-primary);font-weight:600}h1{font-size:1.3rem;text-shadow:0 0 12px rgba(0,229,255,.3)}h2{font-size:1.1rem;margin-bottom:.85rem}h3{font-size:.95rem;margin-bottom:.6rem;color:var(--text-secondary)}p{color:var(--text-secondary)}hr{border:none;border-top:1px solid var(--border);margin:1.5rem 0}a{color:var(--accent);text-decoration:none;text-shadow:0 0 6px rgba(0,229,255,.3)}a:hover{color:var(--accent-hover);text-shadow:var(--accent-glow)}label{display:block;font-size:.85em;font-weight:500;color:var(--text-secondary);margin-bottom:3px}input,select,textarea{color-scheme:dark;width:100%;padding:.45rem .65rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.92em;font-family:var(--font);transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--accent-glow)}input::placeholder,textarea::placeholder{color:var(--text-muted)}textarea{resize:vertical;min-height:60px}button{font-family:var(--font);font-size:.85em;font-weight:500;padding:.4rem .85rem;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s,box-shadow .2s,opacity .15s}button:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#0a0a0f;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--accent-glow)}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-light)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 6px #00e5ff33}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){box-shadow:var(--danger-glow)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){color:var(--accent);text-shadow:0 0 6px rgba(0,229,255,.3);background:var(--bg-hover)}.btn-sm{padding:.3rem .65rem;font-size:.78rem}table{width:100%;border-collapse:separate;border-spacing:0}th{text-align:left;padding:.5rem .65rem;font-size:.78em;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);box-shadow:inset 0 1px 0 var(--accent),inset 0 -1px 0 var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color .15s,text-shadow .15s;text-shadow:0 0 4px rgba(0,229,255,.2);position:sticky;top:0;background:var(--bg-primary);z-index:10}th:hover{text-shadow:var(--accent-glow)}td{padding:.45rem .65rem;box-shadow:inset 0 -1px 0 var(--border-light);font-size:.92em;overflow:visible}tr:hover{background:var(--bg-hover)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;transition:border-color .2s,box-shadow .2s}.card:hover{border-color:var(--border-light)}.card.kanban-card{cursor:default;transition:border-color .2s,box-shadow .2s,transform .15s}.card.kanban-card:hover{border-color:var(--accent);box-shadow:0 0 10px #00e5ff59,0 0 20px #00e5ff26;transform:translateY(-1px)}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}.badge-success{background:var(--success-dim);color:var(--success);text-shadow:var(--success-glow)}.badge-warning{background:var(--warning-dim);color:var(--warning);text-shadow:var(--warning-glow)}.badge-danger{background:var(--danger-dim);color:var(--danger);text-shadow:var(--danger-glow)}.alert{padding:.6rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:1rem}.alert-success{background:var(--success-dim);color:var(--success);border:1px solid rgba(57,255,20,.25);box-shadow:inset 0 0 12px #39ff140d}.alert-danger{background:var(--danger-dim);color:var(--danger);border:1px solid rgba(255,51,85,.25);box-shadow:inset 0 0 12px #ff33550d}.alert-warning{background:var(--warning-dim);color:var(--warning);border:1px solid rgba(255,230,0,.25);box-shadow:inset 0 0 12px #ffe6000d}.nav{display:flex;align-items:center;gap:.25rem;padding:0 1.5rem;height:52px;background:var(--bg-secondary);border-bottom:1px solid var(--border);box-shadow:0 1px 12px #00e5ff0d;position:sticky;top:0;z-index:100}.nav-brand{font-weight:700;font-size:.95em;color:var(--accent);margin-right:1.5rem;text-shadow:var(--accent-glow);letter-spacing:.02em}.nav a{padding:.35rem .65rem;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.85em;font-weight:500;transition:background .2s,color .2s,text-shadow .2s}.nav a:hover{color:var(--accent);text-shadow:0 0 6px rgba(0,229,255,.3);background:var(--bg-hover)}.nav a.active{color:var(--accent);text-shadow:var(--accent-glow);background:var(--bg-hover)}.page{flex:1;display:flex;flex-direction:column;overflow:hidden;width:100%}.page.page-narrow{max-width:900px;overflow:auto;margin:0 auto}.td-title{position:relative;max-width:0}.td-title-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-title .tooltip-popup{position:fixed;z-index:9999;background:#2a2a3d;color:var(--text-primary);border:1px solid var(--accent);padding:8px 12px;font-size:.95em;white-space:normal;max-width:400px;border-radius:4px;pointer-events:none;box-shadow:0 0 12px #00e5ff40,0 4px 12px #0009}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000}.modal{background:var(--bg-card);border:1px solid var(--accent);border-radius:var(--radius);padding:1.5rem;width:460px;max-height:80vh;overflow-y:auto;box-shadow:var(--accent-glow),var(--shadow)}.side-panel{position:fixed;top:0;right:0;width:440px;height:100vh;background:var(--bg-card);border-left:1px solid var(--accent);z-index:2001;display:flex;flex-direction:column;box-shadow:-4px 0 30px #00e5ff1a,var(--shadow)}.stat-cards{display:flex;gap:1rem;margin-bottom:1.5rem}.dashboard-page table td,.dashboard-page table th{padding:.25rem .5rem}.dashboard-page table input,.dashboard-page table select{padding:1px 3px;font-size:.82em}.stat-card{flex:1;text-align:center;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s,box-shadow .2s}.stat-card:hover{border-color:var(--accent);box-shadow:var(--accent-glow)}.stat-card .value{font-size:1.5rem;font-weight:700;color:var(--accent);text-shadow:0 0 10px rgba(0,229,255,.3)}.stat-card .label{font-size:.78em;color:var(--text-muted);margin-top:2px}.filter-bar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:.85rem;font-size:.85em}.filter-bar select{width:auto;min-width:120px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:.85rem}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent);box-shadow:var(--accent-glow)}.sidebar{width:200px;min-height:calc(100vh - 52px);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .2s ease;overflow:hidden}.sidebar.collapsed{width:52px}.sidebar a{display:flex;align-items:center;gap:.65rem;padding:.55rem .85rem;color:var(--text-secondary);font-size:.85em;font-weight:500;white-space:nowrap;transition:background .2s,color .2s}.sidebar a:hover{color:var(--accent);background:var(--bg-hover)}.sidebar a.active{color:var(--accent);background:var(--bg-hover);text-shadow:var(--accent-glow)}.sidebar-toggle{padding:.55rem;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--border);width:100%;cursor:pointer}.sidebar .material-icons{font-size:20px;width:20px;height:20px;line-height:20px;text-align:center;flex-shrink:0;overflow:hidden}.app-body{display:flex;flex:1;overflow:hidden}.app-content{flex:1;padding:1.5rem;display:flex;flex-direction:column;overflow:hidden}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.release-content{display:flex;gap:1rem;flex:1;overflow:hidden}.release-content .statistics-panel{width:320px;min-width:320px;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.release-content .release-table{flex:1;overflow:auto}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1rem}.kpi-card .kpi-value{text-shadow:0 0 8px rgba(0,229,255,.5)}.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}@media(max-width:1200px){.release-content{flex-direction:column}.release-content .statistics-panel{width:100%;min-width:unset;flex-direction:row;flex-wrap:wrap;overflow-y:visible}.release-content .statistics-panel .kpi-card{flex:1 1 200px}}.epic-row-deleted{opacity:.6}.epic-row-deleted td{color:#888!important}.status-deleted{color:#999;font-style:italic;cursor:help}
