:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.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))}.flow-editor{display:flex;flex-direction:column;height:100vh;width:100%;min-width:0;background:#f8fafc}.flow-editor-body{display:flex;flex:1;width:100%;min-width:0;overflow:hidden}.flow-canvas-wrapper{flex:1;height:100%;min-width:0;position:relative;display:flex;flex-direction:column}.flow-canvas-inner{flex:1;width:100%;min-height:0}.flow-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d;z-index:100}.toolbar-left,.toolbar-center,.toolbar-right{display:flex;align-items:center;gap:8px}.toolbar-group{display:flex;align-items:center;gap:4px}.toolbar-divider{width:1px;height:24px;background:#e2e8f0;margin:0 8px}.toolbar-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;color:#475569;cursor:pointer;transition:all .15s ease}.toolbar-btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.toolbar-btn-back{padding:6px}.toolbar-btn-save{background:#2563eb;border-color:#2563eb;color:#fff}.toolbar-btn-save:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.toolbar-btn-publish{background:#16a34a;border-color:#16a34a;color:#fff}.toolbar-btn-publish:hover:not(:disabled){background:#15803d;border-color:#15803d}.toolbar-btn-simulate{background:#7c3aed;border-color:#7c3aed;color:#fff}.toolbar-btn-simulate:hover{background:#6d28d9;border-color:#6d28d9}.toolbar-btn-stop{background:#dc2626;border-color:#dc2626;color:#fff}.toolbar-flow-info{display:flex;flex-direction:column;margin-left:12px}.flow-name{font-weight:600;font-size:15px;color:#1e293b}.flow-meta{display:flex;gap:6px;margin-top:2px}.badge{font-size:10px;padding:2px 6px;border-radius:4px;text-transform:uppercase;font-weight:600}.badge-draft{background:#fef3c7;color:#92400e}.badge-version{background:#e0e7ff;color:#3730a3}.badge-unsaved{background:#fee2e2;color:#991b1b}.validation-summary{display:flex;gap:4px;margin-left:8px}.validation-count{display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:10px;font-size:11px;font-weight:600}.validation-errors{background:#fee2e2;color:#dc2626}.validation-warnings{background:#fef3c7;color:#d97706}.validation-valid{background:#dcfce7;color:#16a34a}.node-palette{width:260px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.node-palette-collapsed{width:40px}.palette-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0}.palette-header h3{font-size:14px;font-weight:600;color:#1e293b;margin:0}.palette-toggle{background:none;border:none;padding:4px;cursor:pointer;color:#64748b;display:flex;align-items:center;justify-content:center}.palette-toggle:hover{color:#1e293b}.palette-search{padding:8px 12px;position:relative}.palette-search input{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px}.palette-search input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.palette-search-clear{position:absolute;right:20px;top:50%;transform:translateY(-50%);background:none;border:none;color:#94a3b8;cursor:pointer;font-size:16px}.palette-content{flex:1;overflow-y:auto;padding:8px 0}.palette-category{margin-bottom:4px}.palette-category-header{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;text-align:left;cursor:pointer;font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.palette-category-header:hover{background:#f8fafc}.category-chevron{transition:transform .2s ease}.category-chevron.expanded{transform:rotate(180deg)}.palette-category-count{margin-left:auto;background:#f1f5f9;padding:2px 6px;border-radius:4px;font-size:11px}.palette-category-items{padding:4px 8px}.palette-item{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:2px 0;border-radius:6px;cursor:grab;transition:all .15s ease;border:1px solid transparent}.palette-item:hover{background:#f8fafc;border-color:#e2e8f0}.palette-item:active{cursor:grabbing}.palette-item-disabled{opacity:.5;cursor:not-allowed}.palette-item-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;color:#fff}.palette-item-icon svg{width:18px;height:18px}.palette-item-info{display:flex;flex-direction:column;gap:2px}.palette-item-label{font-size:13px;font-weight:500;color:#1e293b}.palette-item-desc{font-size:11px;color:#64748b}.palette-footer{padding:12px;border-top:1px solid #e2e8f0}.palette-hint{font-size:11px;color:#94a3b8;text-align:center;margin:0}.flow-node{position:relative;background:#fff;border:2px solid #e2e8f0;border-radius:8px;min-width:180px;max-width:240px;box-shadow:0 1px 3px #0000001a;transition:all .15s ease}.flow-node:hover{box-shadow:0 4px 6px #0000001a}.flow-node-selected{border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.flow-node-delete{position:absolute;top:-6px;right:-6px;width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:50%;color:#64748b;cursor:pointer;z-index:10;transition:all .15s ease}.flow-node-delete:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.flow-node-delete svg{width:11px;height:11px}.flow-node-error{border-color:#ef4444}.flow-node-simulating{border-color:#22c55e;box-shadow:0 0 0 3px #22c55e4d;animation:pulse-glow 1s infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 3px #22c55e4d}50%{box-shadow:0 0 0 6px #22c55e1a}}.flow-node-visited{opacity:.7}.flow-node-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px 6px 0 0;color:#fff;font-size:12px;font-weight:600}.flow-node-icon{display:flex;align-items:center;justify-content:center}.flow-node-icon svg{width:16px;height:16px}.flow-node-type{flex:1}.flow-node-body{padding:10px 12px}.flow-node-label{font-size:13px;font-weight:500;color:#1e293b;margin-bottom:4px}.flow-node-preview{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-node-badge{display:inline-block;margin-top:6px;padding:2px 6px;background:#f1f5f9;border-radius:4px;font-size:10px;color:#475569}.flow-node-ports,.flow-node-outputs{display:flex;flex-direction:column;gap:4px;padding:8px 12px;background:#f8fafc;border-radius:0 0 6px 6px}.flow-node-outputs-many{padding:6px 12px}.flow-node-output-row{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:4px 0;position:relative}.flow-node-port-label{font-size:11px;color:#64748b;white-space:nowrap}.edge-delete-button{width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:50%;color:#64748b;cursor:pointer;transition:all .15s ease}.edge-delete-button:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.flow-node-port{display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:11px;color:#64748b;position:relative}.flow-handle{width:12px;height:12px;background:#fff;border:2px solid #94a3b8;border-radius:50%}.flow-handle:hover{border-color:#6366f1;background:#eef2ff}.flow-handle-input{left:-6px}.flow-handle-output{right:-6px}.inspector-panel{width:320px;background:#fff;border-left:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.inspector-panel-collapsed{width:40px}.inspector-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;border-left:4px solid transparent}.inspector-title{display:flex;flex-direction:column;gap:2px}.inspector-node-type{font-weight:600;font-size:14px;color:#1e293b}.inspector-node-id{font-size:11px;color:#94a3b8;font-family:monospace}.inspector-toggle{background:none;border:none;padding:4px;cursor:pointer;color:#64748b;display:flex;align-items:center;justify-content:center}.inspector-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:32px;text-align:center;color:#64748b}.inspector-empty-icon{color:#cbd5e1;margin-bottom:16px}.inspector-empty p{margin:0 0 8px}.inspector-hint{font-size:12px;color:#94a3b8}.inspector-errors{padding:8px 12px;background:#fef2f2;border-bottom:1px solid #fecaca}.inspector-error{display:flex;align-items:flex-start;gap:8px;padding:6px 0;font-size:12px}.inspector-error.error .error-icon{color:#dc2626}.inspector-error.warning .error-icon{color:#d97706}.inspector-tabs{display:flex;border-bottom:1px solid #e2e8f0}.inspector-tab{flex:1;padding:10px;background:none;border:none;font-size:13px;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s ease}.inspector-tab:hover{color:#1e293b;background:#f8fafc}.inspector-tab.active{color:#6366f1;border-bottom-color:#6366f1}.inspector-content{flex:1;overflow-y:auto;padding:16px}.inspector-form{display:flex;flex-direction:column;gap:16px}.inspector-section{margin-bottom:8px}.inspector-section h4{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:4px}.form-group input[type=text],.form-group input[type=number],.form-group input[type=time],.form-group select,.form-group textarea{width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;color:#1e293b}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.form-group input[type=checkbox]{margin-right:8px}.form-hint{font-size:11px;color:#94a3b8;margin-top:4px}.form-warning{font-size:12px;color:#d97706;background:#fef3c7;padding:8px 10px;border-radius:4px;margin-top:8px}.form-info{font-size:12px;color:#0284c7;background:#e0f2fe;padding:8px 10px;border-radius:4px}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.form-value{margin-left:8px;font-size:12px;color:#64748b}.btn-link{background:none;border:none;padding:0;color:#6366f1;font-size:13px;cursor:pointer}.btn-link:hover{text-decoration:underline}.btn-add-condition,.btn-add-schedule,.btn-add-option{width:100%;padding:8px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:6px;color:#64748b;font-size:13px;cursor:pointer;margin-top:8px}.btn-add-condition:hover,.btn-add-schedule:hover,.btn-add-option:hover{background:#f1f5f9;border-color:#94a3b8}.day-selector{display:flex;gap:4px}.day-btn{flex:1;padding:6px;background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-size:11px;cursor:pointer}.day-btn.selected{background:#6366f1;border-color:#6366f1;color:#fff}.condition-list,.schedule-list,.options-list{display:flex;flex-direction:column;gap:8px}.condition-item,.schedule-item,.option-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:10px}.condition-header,.schedule-header,.option-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.condition-index{width:20px;height:20px;background:#e2e8f0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}.condition-label-input{flex:1;padding:4px 8px!important;font-size:12px!important}.condition-actions,.option-actions{display:flex;gap:4px}.condition-actions button,.option-actions button{padding:4px 8px;background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-size:12px;cursor:pointer}.condition-actions button:hover,.option-actions button:hover{background:#f1f5f9}.condition-actions .btn-danger,.option-actions .btn-danger{color:#dc2626}.condition-body{display:flex;flex-direction:column;gap:6px}.condition-body select,.condition-body input{padding:6px 8px!important;font-size:12px!important}.option-digit-wrapper select{width:50px;padding:6px 8px!important}.option-label-input{flex:1;padding:6px 8px!important}.exit-paths-list{margin:0;padding-left:20px;font-size:12px;color:#64748b}.exit-paths-list li{margin:4px 0}.inspector-actions{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #e2e8f0;background:#f8fafc}.inspector-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;color:#475569;cursor:pointer}.inspector-action-btn:hover{background:#f1f5f9}.inspector-action-delete{color:#dc2626;border-color:#fecaca}.inspector-action-delete:hover{background:#fef2f2}.inspector-ports{display:flex;flex-direction:column;gap:16px}.port-list{display:flex;flex-direction:column;gap:4px}.port-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:#f8fafc;border-radius:4px;font-size:12px}.port-name{font-weight:500;color:#1e293b}.port-type{color:#94a3b8;font-size:11px}.validation-panel{background:#fff;border-top:1px solid #e2e8f0;max-height:250px;display:flex;flex-direction:column}.validation-panel-collapsed{max-height:40px}.validation-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid #e2e8f0}.validation-title{display:flex;align-items:center;gap:12px}.validation-title h3{font-size:13px;font-weight:600;margin:0}.validation-summary{display:flex;gap:6px}.validation-badge{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:500}.validation-badge.error{background:#fee2e2;color:#dc2626}.validation-badge.warning{background:#fef3c7;color:#d97706}.validation-badge.valid{background:#dcfce7;color:#16a34a}.validation-actions{display:flex;gap:8px}.validation-toggle,.validation-close{background:none;border:none;padding:4px;cursor:pointer;color:#64748b;font-size:16px}.validation-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.validation-filters{display:flex;gap:4px}.filter-btn{padding:4px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-size:12px;cursor:pointer}.filter-btn.active{background:#6366f1;border-color:#6366f1;color:#fff}.validation-search{position:relative}.validation-search input{padding:6px 28px 6px 10px;border:1px solid #e2e8f0;border-radius:4px;font-size:12px;width:180px}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:#94a3b8;cursor:pointer}.validation-content{flex:1;overflow-y:auto}.validation-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;color:#64748b;text-align:center}.validation-empty-icon{color:#22c55e;margin-bottom:8px}.validation-list{padding:8px}.validation-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:6px;margin-bottom:4px;cursor:pointer;transition:background .15s ease}.validation-item:hover{background:#f8fafc}.validation-item.error{border-left:3px solid #dc2626}.validation-item.warning{border-left:3px solid #d97706}.validation-item-icon{flex-shrink:0;margin-top:2px}.validation-item.error .validation-item-icon{color:#dc2626}.validation-item.warning .validation-item-icon{color:#d97706}.validation-item-content{flex:1;min-width:0}.validation-item-message{font-size:13px;color:#1e293b;margin-bottom:4px}.validation-item-description{font-size:11px;color:#64748b;margin-bottom:6px}.validation-item-location{display:flex;align-items:center;gap:6px}.validation-node-type{font-size:10px;padding:2px 6px;border-radius:4px;color:#fff}.validation-node-id{font-size:10px;color:#94a3b8;font-family:monospace}.validation-node-label{font-size:10px;color:#64748b}.validation-item-action{flex-shrink:0;color:#94a3b8}.validation-footer{padding:8px 16px;background:#fef2f2;border-top:1px solid #fecaca}.validation-warning-text{font-size:12px;color:#dc2626;margin:0}.validation-summary-mini{display:flex;gap:4px}.simulation-overlay{position:absolute;top:0;right:0;bottom:0;width:400px;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-4px 0 12px #0000001a;z-index:200;display:flex;flex-direction:column}.simulation-panel{display:flex;flex-direction:column;height:100%}.simulation-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e2e8f0;background:#7c3aed;color:#fff}.simulation-header h3{margin:0;font-size:16px}.simulation-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0;line-height:1}.simulation-controls{padding:16px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:12px}.sim-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.sim-btn-start{background:#7c3aed;color:#fff}.sim-btn-start:hover{background:#6d28d9}.sim-btn-reset{background:#f1f5f9;color:#475569}.sim-status{display:flex;align-items:center;gap:8px}.sim-status-indicator{width:8px;height:8px;border-radius:50%}.sim-status-indicator.running{background:#22c55e;animation:pulse 1s infinite}.sim-status-indicator.paused{background:#eab308}.sim-status-indicator.waiting_input{background:#3b82f6;animation:pulse 1s infinite}.sim-status-indicator.completed{background:#22c55e}.sim-status-indicator.error{background:#ef4444}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sim-status-text{font-size:13px;color:#64748b}.simulation-current-node{padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:8px}.current-node-label{font-size:12px;color:#64748b}.current-node-type{font-size:11px;padding:2px 8px;border-radius:4px;color:#fff}.current-node-name{font-size:13px;font-weight:500;color:#1e293b}.simulation-input{padding:16px;border-bottom:1px solid #e2e8f0}.sim-input-section h4{font-size:13px;font-weight:600;margin:0 0 12px;color:#1e293b}.sim-input-buttons{display:flex;flex-wrap:wrap;gap:8px}.sim-input-buttons button{padding:8px 16px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;cursor:pointer}.sim-input-buttons button:hover{background:#e2e8f0}.dtmf-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:200px;margin-bottom:12px}.dtmf-key{padding:12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer}.dtmf-key:hover{background:#e2e8f0}.sim-timeout-buttons{display:flex;gap:8px;margin-top:8px}.sim-timeout-buttons button{padding:6px 12px;background:#fef3c7;border:1px solid #fcd34d;border-radius:4px;font-size:12px;color:#92400e;cursor:pointer}.simulation-error{padding:12px 16px;background:#fef2f2;border-bottom:1px solid #fecaca;color:#dc2626;font-size:13px}.simulation-history{flex:1;display:flex;flex-direction:column;overflow:hidden}.simulation-history h4{font-size:13px;font-weight:600;padding:12px 16px;margin:0;border-bottom:1px solid #e2e8f0}.history-list{flex:1;overflow-y:auto;padding:8px 16px}.history-empty{text-align:center;color:#94a3b8;font-size:13px;padding:16px}.history-entry{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:12px}.history-time{color:#94a3b8;flex-shrink:0}.history-message{color:#1e293b}.history-entry-enter .history-message{font-weight:500}.history-entry-action .history-message{color:#0284c7}.history-entry-input .history-message{color:#7c3aed}.history-entry-invalid .history-message{color:#d97706}.history-entry-error .history-message{color:#dc2626}.history-entry-dead_end .history-message{color:#dc2626;font-style:italic}.react-flow__node{cursor:pointer}.react-flow__edge-path{stroke-width:2}.react-flow__edge.selected .react-flow__edge-path{stroke:#6366f1}.react-flow__controls{box-shadow:0 2px 8px #0000001a;border-radius:8px;overflow:hidden}.react-flow__controls-button{border-bottom:1px solid #e2e8f0}.react-flow__minimap{border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}@media(max-width:1200px){.node-palette{width:220px}.inspector-panel{width:280px}}@media(max-width:900px){.node-palette{position:absolute;left:0;top:0;bottom:0;z-index:150;box-shadow:2px 0 8px #0000001a}.inspector-panel{position:absolute;right:0;top:0;bottom:0;z-index:150;box-shadow:-2px 0 8px #0000001a}}:root{--primary: #1a73e8;--primary-dark: #1557b0;--secondary: #5f6368;--success: #34a853;--warning: #fbbc04;--danger: #ea4335;--bg-light: #f8f9fa;--bg-dark: #202124;--text-primary: #202124;--text-secondary: #5f6368;--border-color: #dadce0;--shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-lg: 0 4px 6px rgba(0, 0, 0, .15), 0 2px 4px rgba(0, 0, 0, .12)}*{box-sizing:border-box}input,select,textarea{background-color:#fff;color:#202124;border:2px solid #5f6368}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #1a73e833}input::placeholder,textarea::placeholder{color:#9aa0a6}select option{background-color:#fff;color:#202124}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-light);color:var(--text-primary)}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.2rem;color:var(--text-secondary)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-box{background:#fff;border-radius:8px;padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.login-box h1{margin:0;font-size:2rem;color:var(--primary);text-align:center}.login-box h2{margin:5px 0 30px;font-size:1rem;color:var(--text-secondary);text-align:center;font-weight:400}.error-message{background:#fce8e6;color:var(--danger);padding:12px 16px;border-radius:4px;margin-bottom:20px;font-size:.9rem}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--text-primary)}.form-group input{width:100%;padding:12px 14px;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #1a73e833}.btn-primary{width:100%;padding:12px;background:var(--primary);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{background:var(--secondary);cursor:not-allowed}.divider{display:flex;align-items:center;margin:24px 0;color:var(--text-secondary);font-size:.85rem}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.divider span{padding:0 12px}.sso-buttons{display:flex;flex-direction:column;gap:10px}.btn-sso{padding:12px;background:#fff;color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;font-size:1rem;cursor:pointer;transition:background .2s,border-color .2s}.btn-sso:hover{background:var(--bg-light);border-color:var(--secondary)}.dashboard{min-height:100vh}.dashboard-header{background:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);position:sticky;top:0;z-index:100}.header-left h1{margin:0;font-size:1.5rem;color:var(--primary)}.header-left .subtitle{font-size:.85rem;color:var(--text-secondary)}.header-right{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:12px}.user-name{font-weight:500}.role-badge{display:inline-block;padding:4px 12px;border-radius:16px;font-size:.85rem;font-weight:500}.badge-vendor{background:#e8f0fe;color:#1967d2}.badge-admin{background:#fef7e0;color:#ea8600}.badge-manager{background:#e6f4ea;color:#137333}.badge-agent{background:#f3e8fd;color:#8430ce}.btn-logout{padding:8px 16px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .2s}.btn-logout:hover{background:var(--bg-light);color:var(--text-primary)}.dashboard-main{padding:24px;max-width:1200px;margin:0 auto}.welcome-section{margin-bottom:24px}.welcome-section h2{margin:0 0 8px;font-size:1.5rem}.welcome-section p{margin:0;color:var(--text-secondary)}.user-details-card,.permissions-card,.quick-actions{background:#fff;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.user-details-card h3,.permissions-card h3,.quick-actions h3{margin:0 0 16px;font-size:1.1rem;color:var(--text-primary)}.user-details-card dl{display:grid;grid-template-columns:150px 1fr;gap:12px 16px;margin:0}.user-details-card dt{color:var(--text-secondary);font-weight:500}.user-details-card dd{margin:0}.permissions-list{display:flex;flex-wrap:wrap;gap:8px}.permission-badge{background:var(--bg-light);color:var(--text-primary);padding:4px 10px;border-radius:4px;font-size:.85rem;font-family:monospace}.action-buttons{display:flex;flex-wrap:wrap;gap:12px}.action-btn{padding:12px 20px;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.action-btn:hover{background:var(--primary-dark)}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:16px;text-align:center}.header-right{flex-direction:column}.user-details-card dl{grid-template-columns:1fr}.user-details-card dt{margin-top:8px}}.success-message{background:#e6f4ea;color:var(--success);padding:12px 16px;border-radius:4px;margin-bottom:20px;font-size:.9rem}.sso-config-page{min-height:100vh;background:var(--bg-light)}.sso-config-main{padding:24px;max-width:1200px;margin:0 auto}.sso-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.sso-header h2{margin:0}.btn-back{padding:8px 16px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .2s}.btn-back:hover{background:var(--bg-light);color:var(--text-primary)}.btn-add{padding:10px 20px}.providers-list{display:flex;flex-direction:column;gap:16px}.empty-state{background:#fff;border-radius:8px;padding:48px;text-align:center;color:var(--text-secondary);box-shadow:var(--shadow)}.provider-card{background:#fff;border-radius:8px;padding:20px;box-shadow:var(--shadow)}.provider-card.inactive{opacity:.7;border-left:4px solid var(--secondary)}.provider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.provider-info{display:flex;align-items:center;gap:12px}.provider-info h3{margin:0}.provider-type{padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.provider-type.oidc{background:#e3f2fd;color:#1565c0}.provider-type.saml{background:#fff3e0;color:#e65100}.status-badge{padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:500}.status-badge.active{background:#e6f4ea;color:var(--success)}.status-badge.inactive{background:#f5f5f5;color:var(--secondary)}.status-badge.hidden-badge{background:#e3f2fd;color:#1565c0}.status-badge.warning-badge{background:#fff3e0;color:#e65100}.queue-id-value{font-family:monospace;font-size:.75rem;color:var(--text-secondary);word-break:break-all}.provider-actions{display:flex;gap:8px}.provider-actions button{padding:6px 12px;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-toggle{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.btn-toggle:hover{background:var(--bg-light)}.btn-edit{background:var(--primary);border:none;color:#fff}.btn-edit:hover{background:var(--primary-dark)}.btn-duplicate{background:transparent;border:1px solid var(--primary);color:var(--primary)}.btn-duplicate:hover{background:var(--primary);color:#fff}.btn-members{background:transparent;border:1px solid var(--success);color:var(--success)}.btn-members:hover{background:var(--success);color:#fff}.btn-delete{background:transparent;border:1px solid var(--danger);color:var(--danger)}.btn-delete:hover{background:var(--danger);color:#fff}.provider-details dl{display:grid;grid-template-columns:120px 1fr;gap:8px 16px;margin:0;font-size:.9rem}.provider-details dt{color:var(--text-secondary)}.provider-details dd{margin:0;word-break:break-all}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:40px;z-index:1000;overflow-y:auto}.modal-content{background:#fff;border-radius:8px;width:100%;max-width:800px;max-height:calc(100vh - 80px);overflow-y:auto;box-shadow:var(--shadow-lg);margin:auto}.modal-large,.sso-modal{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 32px;border-bottom:1px solid var(--border-color);position:sticky;top:0;background:#fff;z-index:10}.modal-header h2,.modal-header h3{margin:0}.modal-body{padding:24px 32px 40px}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:24px 32px 28px;border-top:1px solid var(--border-color);position:sticky;bottom:0;background:#fff}.btn-cancel{padding:10px 20px;background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-secondary)}.btn-cancel:hover{background:var(--bg-light);color:var(--text-primary)}.sso-form{padding:24px}.sso-form .error-message,.sso-form .success-message{margin-bottom:20px}.form-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border-color)}.form-section:last-of-type{border-bottom:none}.form-section h3{margin:0 0 16px;color:var(--text-primary);font-size:1.1rem}.section-description{color:var(--text-secondary);font-size:.9rem;margin:0 0 16px}.subsection{margin-top:20px;padding:16px;background:var(--bg-light);border-radius:8px}.subsection h4{margin:0 0 16px;font-size:1rem}.subsection h5{margin:0 0 12px;font-size:.9rem;color:var(--text-secondary)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--text-primary);font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:2px solid #5f6368;border-radius:4px;font-size:.95rem;transition:border-color .2s,box-shadow .2s;font-family:inherit;background-color:#fff;color:#202124}.form-group textarea{resize:vertical;font-family:monospace;font-size:.85rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #1a73e833}.form-group small{display:block;margin-top:4px;font-size:.8rem;color:var(--text-secondary)}.checkbox-group{margin-top:8px}.checkbox-group label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;margin:0}.input-with-button{display:flex;gap:8px}.input-with-button input{flex:1}.btn-discover,.btn-generate,.btn-test,.btn-metadata,.btn-copy{padding:10px 16px;border-radius:4px;font-size:.9rem;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-discover{background:var(--primary);color:#fff;border:none}.btn-discover:hover:not(:disabled){background:var(--primary-dark)}.btn-discover:disabled{background:var(--secondary);cursor:not-allowed}.btn-generate{background:var(--success);color:#fff;border:none;margin-top:8px}.btn-generate:hover:not(:disabled){background:#2e7d32}.btn-generate:disabled{background:var(--secondary);cursor:not-allowed}.btn-test{background:#ff9800;color:#fff;border:none}.btn-test:hover:not(:disabled){background:#f57c00}.btn-test:disabled{background:var(--secondary);cursor:not-allowed}.btn-metadata{background:transparent;border:1px solid var(--primary);color:var(--primary)}.btn-metadata:hover{background:var(--primary);color:#fff}.btn-copy{background:var(--secondary);color:#fff;border:none;margin-top:8px}.btn-copy:hover{background:#424242}.cert-generation{background:#fff8e1;padding:16px;border-radius:8px;margin-bottom:16px}.metadata-display{margin-top:12px}.metadata-display textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:4px;font-family:monospace;font-size:.8rem;background:var(--bg-light)}.test-result{margin-top:16px;padding:16px;border-radius:4px}.test-result.success{background:#e6f4ea;color:var(--success)}.test-result.error{background:#fce8e6;color:var(--danger)}.test-result pre{margin:12px 0 0;padding:12px;background:#0000000d;border-radius:4px;overflow-x:auto;font-size:.85rem}.group-mapping-table{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;margin-bottom:12px}.group-mapping-header{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:12px 16px;background:var(--bg-light);font-weight:600;font-size:.9rem;border-bottom:1px solid var(--border-color)}.group-mapping-row{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:12px 16px;align-items:center;border-bottom:1px solid var(--border-color)}.group-mapping-row:last-child{border-bottom:none}.group-mapping-row:hover{background:var(--bg-light)}.local-group-label{display:flex;flex-direction:column;gap:4px}.local-group-label small{color:var(--text-secondary);font-size:.75rem}.group-mapping-row input{padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem}.group-mapping-row input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #1a73e833}.mapping-help{display:block;color:var(--text-secondary);font-size:.85rem;margin-top:8px}.mapping-badge{display:inline-block;background:var(--bg-light);padding:2px 8px;border-radius:4px;font-size:.8rem;margin-right:8px;margin-bottom:4px;font-family:monospace}.sso-edit-page{min-height:100vh;background:var(--bg-light)}.sso-edit-main{padding:24px;max-width:900px;margin:0 auto}.sso-edit-form .card{background:#fff;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.sso-edit-form h3{margin:0 0 16px;font-size:1.1rem;color:var(--text-primary)}.sso-edit-form h4{margin:16px 0 12px;font-size:1rem;color:var(--text-primary)}.sso-edit-form h5{margin:0 0 12px;font-size:.9rem;color:var(--text-secondary)}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding:24px 0}.form-actions .btn-primary{width:auto;padding:12px 32px}.form-actions .btn-cancel{padding:12px 24px;background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-secondary)}.form-actions .btn-cancel:hover{background:var(--bg-light);color:var(--text-primary)}.test-details{list-style:none;padding:12px 0 0;margin:0}.test-details li{padding:4px 0;font-size:.9rem}.test-details li.pass:before{content:"✓ ";color:var(--success)}.test-details li.fail:before{content:"✗ ";color:var(--danger)}@media(max-width:768px){.sso-header{flex-direction:column;gap:16px;align-items:flex-start}.provider-header{flex-direction:column;gap:12px;align-items:flex-start}.provider-info{flex-wrap:wrap}.modal-content{margin:20px;max-height:calc(100vh - 40px)}.modal-overlay{padding:20px}.form-row{grid-template-columns:1fr}.input-with-button{flex-direction:column}.group-mapping-header,.group-mapping-row{grid-template-columns:1fr;gap:8px}.group-mapping-header span:first-child{display:none}}.queues-page,.queue-edit-page,.queue-members-page,.skills-page{min-height:100vh;background:var(--bg-light)}.queues-main,.queue-edit-main,.queue-members-main,.skills-main{padding:24px;max-width:1200px;margin:0 auto}.queues-header,.skills-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.queues-header h2,.skills-header h2{margin:0}.header-actions{display:flex;align-items:center;gap:16px}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:.9rem;color:var(--text-secondary)}.filter-group select{padding:8px 12px;border:2px solid #5f6368;border-radius:4px;font-size:.9rem;background-color:#fff;color:#202124}.queues-list,.skills-list{display:flex;flex-direction:column;gap:16px}.queue-card,.skill-card{background:#fff;border-radius:8px;padding:20px;box-shadow:var(--shadow)}.queue-card.inactive,.skill-card.inactive{opacity:.7;border-left:4px solid var(--secondary)}.queue-header,.skill-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.queue-info,.skill-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.queue-info h3,.skill-info h3{margin:0}.strategy-badge{background:#e3f2fd;color:#1565c0;padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:500}.queue-actions,.skill-actions{display:flex;gap:8px;flex-wrap:wrap}.queue-actions button,.skill-actions button{padding:6px 12px;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-members{background:#9c27b0;border:none;color:#fff}.btn-members:hover{background:#7b1fa2}.queue-details dl,.skill-details dl{display:grid;grid-template-columns:120px 1fr 120px 1fr;gap:8px 16px;margin:0;font-size:.9rem}.queue-details dt,.skill-details dt{color:var(--text-secondary)}.queue-details dd,.skill-details dd{margin:0}.queue-details code,.skill-details code{background:var(--bg-light);padding:2px 6px;border-radius:3px;font-size:.85rem}.queue-exits{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.queue-exits strong{font-size:.85rem;color:var(--text-secondary);margin-right:12px}.exit-badges{display:inline-flex;flex-wrap:wrap;gap:8px;margin-top:8px}.exit-badge{padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:500}.exit-badge.configured{background:#e6f4ea;color:var(--success)}.exit-badge.unconfigured{background:#f5f5f5;color:var(--secondary)}.quick-links-card{background:#fff;border-radius:8px;padding:24px;margin-top:24px;box-shadow:var(--shadow)}.quick-links-card h3{margin:0 0 16px}.queue-edit-form .card{background:#fff;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.queue-edit-form h3{margin:0 0 16px;font-size:1.1rem;color:var(--text-primary);border-bottom:1px solid var(--border-color);padding-bottom:12px}.queue-edit-form h4{margin:16px 0 12px;font-size:1rem}.skills-checkboxes{display:flex;flex-wrap:wrap;gap:12px}.skill-checkbox{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-light);border-radius:4px;cursor:pointer;transition:background .2s}.skill-checkbox:hover{background:#e8e8e8}.skill-checkbox input{margin:0}.no-skills{color:var(--text-secondary);font-style:italic}.no-skills a{color:var(--primary)}.queue-info-card{background:#fff;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.queue-info-card h2{margin:0 0 8px}.queue-id{color:var(--text-secondary);margin:0 0 12px}.queue-stats{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.queue-stats .stat{color:var(--text-secondary);font-size:.9rem}.members-section{background:#fff;border-radius:8px;padding:24px;box-shadow:var(--shadow)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h3{margin:0}.add-member-form{background:var(--bg-light);border-radius:8px;padding:20px;margin-bottom:24px}.add-member-form .form-row{display:flex;gap:16px;align-items:flex-end}.add-member-form .form-group{flex:1;margin-bottom:0}.add-member-form .form-actions{display:flex;gap:12px;margin-top:16px;justify-content:flex-end}.members-table{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.table-header{display:grid;grid-template-columns:2fr 2fr 80px 100px 140px;gap:16px;padding:12px 16px;background:var(--bg-light);font-weight:600;font-size:.85rem;border-bottom:1px solid var(--border-color)}.table-row{display:grid;grid-template-columns:2fr 2fr 80px 100px 140px;gap:16px;padding:12px 16px;align-items:center;border-bottom:1px solid var(--border-color)}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--bg-light)}.table-row.paused{background:#fff8e1}.table-row .agent-info{display:flex;flex-direction:column;gap:2px}.table-row .agent-info small{color:var(--text-secondary);font-size:.8rem}.penalty-badge{background:var(--bg-light);padding:4px 8px;border-radius:4px;font-size:.85rem;text-align:center}.status-badge.paused{background:#fff3e0;color:#e65100}.member-actions{display:flex;gap:8px}.member-actions button{padding:4px 8px;font-size:.8rem}.skill-form,.agent-skills-form{margin-bottom:24px}.assign-form{background:var(--bg-light);padding:16px;border-radius:8px;margin-bottom:20px}.assign-form .form-row{display:flex;gap:16px;align-items:flex-end}.assign-form .form-group{flex:1;margin-bottom:0}.assign-form button{height:40px}.agent-skills-list h4{margin:0 0 16px;font-size:1rem}.empty-text{color:var(--text-secondary);font-style:italic}.agent-skills-table{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.agent-skill-row{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border-color)}.agent-skill-row:last-child{border-bottom:none}.agent-skill-row:hover{background:var(--bg-light)}.agent-skill-row .agent-info{flex:1;display:flex;flex-direction:column;gap:2px}.agent-skill-row .agent-info small{color:var(--text-secondary);font-size:.8rem}.proficiency-badge{padding:4px 12px;border-radius:4px;font-size:.8rem;font-weight:500}.proficiency-badge.level-1{background:#f5f5f5;color:var(--secondary)}.proficiency-badge.level-2{background:#e3f2fd;color:#1565c0}.proficiency-badge.level-3{background:#e8f5e9;color:#2e7d32}.proficiency-badge.level-4{background:#fff3e0;color:#e65100}.btn-small{padding:4px 8px!important;font-size:.8rem!important}@media(max-width:768px){.queues-header,.skills-header{flex-direction:column;align-items:flex-start}.header-actions{flex-direction:column;width:100%}.queue-header,.skill-header{flex-direction:column;align-items:flex-start}.queue-details dl,.skill-details dl{grid-template-columns:1fr 1fr}.table-header,.table-row{grid-template-columns:1fr;gap:8px}.table-header span:nth-child(n+2){display:none}.table-row .member-actions{justify-content:flex-start}.add-member-form .form-row,.assign-form .form-row{flex-direction:column}}.audio-assets-page{min-height:100vh;background:var(--bg-light)}.audio-assets-main{padding:24px;max-width:1200px;margin:0 auto}.assets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.assets-header h2{margin:0}.assets-list .data-table{width:100%;background:#fff;border-radius:8px;box-shadow:var(--shadow);border-collapse:collapse;overflow:hidden}.assets-list .data-table th,.assets-list .data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color)}.assets-list .data-table th{background:var(--bg-light);font-weight:600;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase}.assets-list .data-table tr:last-child td{border-bottom:none}.assets-list .data-table tr:hover{background:var(--bg-light)}.assets-list .data-table tr.inactive-row{opacity:.6}.asset-name{display:flex;flex-direction:column;gap:2px}.asset-name strong{color:var(--text-primary)}.asset-description{color:var(--text-secondary);font-size:.85rem}.asset-filename{color:var(--text-secondary);font-size:.75rem;font-family:monospace}.format-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.format-badge.wav{background:#e8f5e9;color:#2e7d32}.format-badge.mp3{background:#e3f2fd;color:#1565c0}.usage-count{font-size:.85rem;color:var(--text-secondary)}.usage-count.unused{color:#9e9e9e;font-style:italic}.actions-cell{display:flex;gap:8px;align-items:center}.btn-icon{width:32px;height:32px;padding:0;border:1px solid var(--border-color);background:#fff;color:#374151;border-radius:4px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--bg-light)}.btn-icon.playing{background:var(--primary);color:#fff;border-color:var(--primary)}.file-info{display:block;margin-top:8px;color:var(--text-secondary);font-size:.85rem}.message-nodes-page{min-height:100vh;background:var(--bg-light)}.message-nodes-main{padding:24px;max-width:1200px;margin:0 auto}.nodes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.nodes-header h2{margin:0}.nodes-list{display:flex;flex-direction:column;gap:16px}.node-card{background:#fff;border-radius:8px;box-shadow:var(--shadow);padding:20px}.node-card.inactive{opacity:.7;border:1px dashed var(--border-color)}.node-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.node-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.node-info h3{margin:0;font-size:1.1rem}.node-actions{display:flex;gap:8px;flex-wrap:wrap}.node-description{margin:0 0 12px;color:var(--text-secondary);font-size:.9rem}.node-details dl{display:grid;grid-template-columns:120px 1fr;gap:8px 16px;margin:0;font-size:.9rem}.node-details dt{color:var(--text-secondary);font-weight:500}.node-details dd{margin:0}.node-details .duration{color:var(--text-secondary);font-size:.85rem}.node-details .exit-target{color:var(--primary);font-size:.85rem}.node-exits{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.node-exits strong{font-size:.85rem;color:var(--text-secondary);margin-right:12px}.exit-badge{display:inline-block;padding:4px 8px;margin:4px 4px 4px 0;border-radius:4px;font-size:.8rem}.exit-badge.configured{background:#e8f5e9;color:#2e7d32}.exit-badge.unconfigured,.status-badge.warning{background:#fff3e0;color:#e65100}.help-text{display:block;margin-top:4px;color:var(--text-secondary);font-size:.8rem}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-group input[type=checkbox]{width:18px;height:18px}@media(max-width:768px){.assets-list .data-table{display:block;overflow-x:auto}.node-header{flex-direction:column;gap:12px}.node-details dl{grid-template-columns:1fr}.node-details dt{margin-top:8px}}.app-layout{display:flex;min-height:100vh;background:var(--bg-light)}.sidebar{width:260px;background:#1e293b;color:#e2e8f0;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:200;transition:width .2s ease}.sidebar-collapsed{width:64px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #334155;min-height:64px}.sidebar-logo{display:flex;align-items:center;gap:12px}.logo-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#60a5fa}.logo-icon svg{width:28px;height:28px}.logo-text{font-size:1.25rem;font-weight:700;color:#f8fafc;letter-spacing:-.5px}.sidebar-collapsed .logo-text{display:none}.sidebar-toggle{width:28px;height:28px;padding:0;background:transparent;border:none;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.sidebar-toggle:hover{background:#334155;color:#f8fafc}.sidebar-toggle svg{width:18px;height:18px}.sidebar-collapsed .sidebar-toggle{margin:0 auto}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 8px}.sidebar-item{display:flex;align-items:center;gap:12px;padding:10px 12px;color:#cbd5e1;text-decoration:none;border-radius:6px;cursor:pointer;transition:all .15s;border:none;background:transparent;width:100%;font-size:.9rem;text-align:left}.sidebar-item:hover{background:#334155;color:#f8fafc}.sidebar-item-active{background:#3b82f6!important;color:#fff!important}.sidebar-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-icon svg{width:20px;height:20px}.sidebar-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-collapsed .sidebar-label{display:none}.sidebar-collapsed .sidebar-item{justify-content:center;padding:10px}.sidebar-category{margin-bottom:4px}.sidebar-category-header{position:relative}.sidebar-chevron{width:16px;height:16px;display:flex;align-items:center;justify-content:center;transition:transform .2s;margin-left:auto}.sidebar-chevron svg{width:16px;height:16px}.sidebar-chevron.expanded{transform:rotate(90deg)}.sidebar-collapsed .sidebar-chevron{display:none}.sidebar-children{margin-left:20px;border-left:1px solid #334155;padding-left:12px;margin-top:4px}.sidebar-child-item{display:block;padding:8px 12px;color:#94a3b8;text-decoration:none;font-size:.85rem;border-radius:4px;transition:all .15s}.sidebar-child-item:hover{background:#334155;color:#f8fafc}.sidebar-child-item.sidebar-item-active{background:#1e40af;color:#fff}.main-wrapper{flex:1;margin-left:260px;display:flex;flex-direction:column;min-height:100vh;transition:margin-left .2s ease}.sidebar-is-collapsed .main-wrapper{margin-left:64px}.main-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#fff;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100}.main-header .header-left{display:flex;align-items:center;gap:12px}.main-header h1{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.main-header .subtitle{color:var(--text-secondary);font-size:.9rem}.main-header .header-right{display:flex;align-items:center;gap:16px}.main-header .user-info{display:flex;align-items:center;gap:8px}.main-header .user-name{font-weight:500;color:var(--text-primary)}.btn-logout{padding:8px 16px;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:.9rem;transition:all .15s}.btn-logout:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.main-content{flex:1;padding:24px}.app-layout .dashboard-header{display:none}.app-layout .dashboard-main,.app-layout .queues-main,.app-layout .queue-edit-main,.app-layout .queue-members-main,.app-layout .sso-config-main,.app-layout .audio-assets-main,.app-layout .message-nodes-main,.app-layout .users-main,.app-layout .permission-groups-main{padding:0;max-width:none}@media(max-width:1024px){.sidebar{width:64px}.sidebar .sidebar-label,.sidebar .sidebar-chevron,.sidebar .sidebar-children,.sidebar .logo-text{display:none}.sidebar .sidebar-item{justify-content:center;padding:10px}.sidebar .sidebar-toggle{margin:0 auto}.main-wrapper{margin-left:64px}}@media(max-width:768px){.sidebar{width:0;overflow:hidden}.main-wrapper{margin-left:0}.main-header{padding:12px 16px}.main-header h1{font-size:1.1rem}.main-content{padding:16px}}.users-page{min-height:100vh;background:var(--bg-light)}.users-main{padding:24px;max-width:1400px;margin:0 auto}.users-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.users-header .header-title h2{margin:0 0 8px;color:var(--text-primary)}.users-header .header-actions{display:flex;align-items:center;gap:16px}.toggle-deleted{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary);cursor:pointer}.toggle-deleted input{cursor:pointer}.users-table-container{background:#fff;border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table th{background:var(--bg-light);padding:12px 16px;text-align:left;font-weight:600;color:var(--text-secondary);font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border-color)}.users-table td{padding:12px 16px;border-bottom:1px solid var(--border-color);vertical-align:middle}.users-table tr:last-child td{border-bottom:none}.users-table tr:hover{background:#f8f9fa}.users-table tr.row-deleted{background:#fef2f2}.users-table tr.row-deleted:hover{background:#fee2e2}.users-table tr.row-deleted td{color:#9ca3af}.users-table tr.row-deleted .username{text-decoration:line-through}.username-cell{display:flex;align-items:center;gap:8px}.username{font-weight:500}.you-badge{background:var(--primary);color:#fff;padding:2px 6px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.date-cell{font-size:.85rem;color:var(--text-secondary);white-space:nowrap}.actions-cell{white-space:nowrap}.actions-cell button{padding:6px 12px;margin-right:8px;border-radius:4px;border:none;font-size:.85rem;cursor:pointer;transition:all .15s}.actions-cell button:last-child{margin-right:0}.btn-restore{background:#d1fae5;color:#065f46}.btn-restore:hover{background:#a7f3d0}.btn-suspend{background:#fef3c7;color:#92400e}.btn-suspend:hover{background:#fde68a}.btn-activate{background:#d1fae5;color:#065f46}.btn-activate:hover{background:#a7f3d0}.status-badge.deleted{background:#fee2e2;color:#991b1b}.status-badge.suspended{background:#fef3c7;color:#92400e}.user-form{margin-bottom:24px}.user-form h3{margin:0 0 20px;color:var(--text-primary)}.user-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.user-form .form-group{margin-bottom:0}.user-form .checkbox-group{margin-top:8px}.groups-checkbox-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;padding:12px;background:#f8f9fa;border-radius:8px;border:1px solid var(--border-color);max-height:200px;overflow-y:auto}.group-checkbox-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-radius:6px;cursor:pointer;transition:all .15s;border:1px solid transparent}.group-checkbox-item:hover{border-color:var(--primary)}.group-checkbox-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;flex-shrink:0}.group-checkbox-label{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.group-checkbox-label .group-name{font-weight:500;color:var(--text-primary)}.group-checkbox-label .system-tag{background:var(--primary);color:#fff;padding:1px 6px;border-radius:4px;font-size:.65rem;font-weight:600;text-transform:uppercase}.group-checkbox-label .group-perm-count{margin-left:auto;font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.field-hint{margin:8px 0 0;font-size:.85rem;color:var(--text-secondary)}.field-hint.error{color:var(--danger)}.groups-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deleted-info-panel{margin-top:24px;padding:16px;background:#fef3c7;border-radius:8px;border:1px solid #fde68a}.deleted-info-panel p{margin:0;color:#92400e;font-size:.9rem}@media(max-width:1024px){.users-table th:nth-child(6),.users-table td:nth-child(6){display:none}}@media(max-width:768px){.users-header,.users-header .header-actions{flex-direction:column;align-items:stretch}.user-form .form-row{grid-template-columns:1fr}.users-table th:nth-child(3),.users-table td:nth-child(3),.users-table th:nth-child(4),.users-table td:nth-child(4){display:none}.actions-cell{display:flex;flex-wrap:wrap;gap:4px}.actions-cell button{margin-right:0;padding:4px 8px;font-size:.8rem}}.permission-groups-page{min-height:100vh;background:var(--bg-light)}.permission-groups-main{padding:24px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.page-header .header-title h2{margin:0 0 8px;color:var(--text-primary)}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.group-card{background:#fff;border-radius:8px;padding:20px;box-shadow:var(--shadow);border:2px solid transparent;transition:border-color .15s}.group-card:hover{border-color:var(--primary)}.group-card.system-group{border-left:4px solid var(--primary)}.group-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.group-info{display:flex;align-items:center;gap:8px}.group-info h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.system-badge{background:var(--primary);color:#fff;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.group-stats{display:flex;gap:12px}.group-stats .stat{display:flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:.9rem}.group-stats .stat svg{width:16px;height:16px}.group-description{color:var(--text-secondary);font-size:.9rem;margin:0 0 12px;line-height:1.4}.group-permissions-preview{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.perm-tag{background:#e3f2fd;color:#1565c0;padding:2px 8px;border-radius:4px;font-size:.75rem;font-family:monospace}.perm-tag.more{background:#f5f5f5;color:var(--text-secondary)}.group-actions{display:flex;gap:8px;padding-top:12px;border-top:1px solid var(--border-color)}.group-actions button{padding:6px 12px;border-radius:4px;border:none;font-size:.85rem;cursor:pointer;transition:all .15s}.group-actions button:disabled{opacity:.5;cursor:not-allowed}.group-form{margin-bottom:24px}.group-form h3{margin:0 0 20px;color:var(--text-primary)}.group-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.permissions-section{margin:24px 0}.permissions-section h4{margin:0 0 16px;color:var(--text-primary)}.permissions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.permission-category{background:#f8f9fa;border-radius:8px;overflow:hidden}.category-header{display:flex;align-items:center;padding:12px 16px;cursor:pointer;font-weight:500;color:var(--text-primary);transition:background .15s}.category-header:hover{background:#e9ecef}.category-chevron{width:20px;height:20px;margin-right:8px;transition:transform .2s}.category-chevron svg{width:100%;height:100%}.category-header.expanded .category-chevron{transform:rotate(90deg)}.category-label{flex:1}.category-count{font-size:.85rem;color:var(--text-secondary);background:#fff;padding:2px 8px;border-radius:10px}.category-permissions{padding:8px 16px 16px;background:#fff;border-top:1px solid var(--border-color)}.permission-item{display:flex;align-items:center;gap:8px;padding:6px 0;cursor:pointer;font-size:.9rem}.permission-item:hover{color:var(--primary)}.permission-item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.permission-item.select-all{font-weight:600;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--border-color)}.permission-item .perm-name{flex:1}.permission-item .perm-code{font-family:monospace;font-size:.8rem;color:var(--text-secondary)}@media(max-width:768px){.page-header{flex-direction:column;align-items:stretch}.groups-grid,.group-form .form-row,.permissions-grid{grid-template-columns:1fr}}
