body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}.App{margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.app-header{align-items:center;border-bottom:2px solid #e1e4e8;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.app-header h1{color:#24292e;font-size:24px;margin:0}.header-actions{display:flex;gap:10px}.btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;min-height:36px;padding:8px 16px;transition:all .2s ease}.btn-primary{background:#0366d6;color:#fff}.btn-primary:hover:not(:disabled){background:#0256b4;transform:translateY(-1px)}.btn-secondary{background:#dc3545;color:#fff}.btn-secondary:hover:not(:disabled){background:#c82333}.btn:disabled{background:#ccc;cursor:not-allowed;transform:none}.toast{animation:slideIn .3s ease-out;border-radius:4px;box-shadow:0 2px 8px #00000026;max-width:300px;padding:12px 20px;position:fixed;right:20px;top:20px;z-index:10000}.toast-success{background:#2e7d32;color:#fff}.toast-error{background:#d32f2f;color:#fff}.toast-info{background:#0366d6;color:#fff}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.empty-state{background:#f8f9fa;border-radius:8px;margin:30px 0;padding:60px 20px;text-align:center}.empty-state h2{color:#24292e;margin-bottom:10px}.empty-state p{color:#586069;margin-bottom:30px}.example-templates{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:20px 0}.example-btn{background:#fff;border:2px solid #0366d6;border-radius:4px;color:#0366d6;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s ease}.example-btn:hover{background:#0366d6;box-shadow:0 2px 4px #0000001a;color:#fff;transform:translateY(-2px)}.drag-drop-zone{background:#fff;border:2px dashed #0366d6;border-radius:8px;margin-top:30px;padding:40px}.drag-drop-zone p{color:#586069;margin-bottom:15px}.drag-overlay{align-items:center;background:#0366d61a;border:3px dashed #0366d6;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9998}.drag-overlay-content{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;color:#0366d6;font-size:24px;font-weight:600;padding:40px}.loading-overlay{align-items:center;background:#ffffffe6;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#0366d6;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-overlay p{color:#586069;margin-top:10px}.mode-switcher{align-items:center;background:#f6f8fa;border-radius:4px;display:flex;gap:10px;margin:20px 0;padding:10px}.mode-btn{background:#fff;border:2px solid #e1e4e8;border-radius:4px;color:#24292e;cursor:pointer;font-size:14px;font-weight:500;padding:8px 20px;transition:all .2s ease}.mode-btn:hover:not(:disabled){border-color:#0366d6;color:#0366d6}.mode-btn.active{background:#0366d6;border-color:#0366d6;color:#fff}.mode-btn:disabled{cursor:not-allowed;opacity:.5}.mode-switch-message{color:#d32f2f;font-size:12px;margin-left:10px}.validation-panel{border-radius:4px;margin:20px 0;overflow:hidden}.validation-panel-success{background:#e8f5e9;border:1px solid #2e7d32;color:#2e7d32}.validation-panel-error{background:#ffebee;border:1px solid #d32f2f;color:#d32f2f}.validation-panel-warning{background:#fff3cd;border:1px solid #856404;color:#856404}.validation-panel-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;-webkit-user-select:none;user-select:none}.validation-status{align-items:center;display:flex;gap:8px}.status-icon{font-size:18px;font-weight:700}.validation-panel-content{border-top:1px solid #0000001a;padding:16px}.validation-errors h4,.validation-warnings h4{font-size:14px;margin:0 0 10px}.validation-errors ul,.validation-warnings ul{margin:0;padding-left:20px}.validation-errors li,.validation-warnings li{margin:8px 0}.error-line-link{background:none;border:none;color:#0366d6;cursor:pointer;font-size:inherit;margin-left:8px;padding:0;text-decoration:underline}.error-line-link:hover{color:#0256b4}.workflow-viewer{margin:20px 0}.workflow-viewer-empty{color:#586069;padding:40px;text-align:center}.viewer-warnings{background:#fff3cd;border:1px solid #856404;border-radius:4px;margin-bottom:20px;padding:15px}.viewer-warnings h3{color:#856404;margin:0 0 10px}.viewer-warnings ul{margin:0;padding-left:20px}.workflow-overview{background:#fff;border:1px solid #e1e4e8;border-radius:4px;margin:20px 0;overflow:hidden}.workflow-overview-header{align-items:center;background:#f6f8fa;cursor:pointer;display:flex;justify-content:space-between;padding:16px;-webkit-user-select:none;user-select:none}.workflow-overview-header h2{color:#24292e;font-size:18px;margin:0}.expand-icon{color:#586069;font-size:20px;font-weight:700}.workflow-overview-content{padding:16px}.workflow-field{margin:12px 0}.workflow-field label{color:#24292e;font-weight:600;margin-right:8px}.triggers-list{margin-top:8px}.trigger-item{background:#f6f8fa;border-radius:4px;margin:8px 0;padding:8px}.trigger-item strong{color:#0366d6}.trigger-detail{color:#586069;display:block;font-size:12px;margin-top:4px}.dependency-graph{background:#fff;border:1px solid #e1e4e8;border-radius:4px;margin:20px 0;padding:20px}.dependency-graph h3{color:#24292e;margin:0 0 20px}.dependency-graph-empty{color:#586069;padding:40px;text-align:center}.dependency-graph-container{display:flex;flex-direction:column;gap:20px}.dependency-level{display:flex;flex-direction:column;gap:10px}.level-label{color:#586069;font-size:12px;font-weight:600;text-transform:uppercase}.level-jobs{display:flex;flex-wrap:wrap;gap:15px}.dependency-job-node{background:#fff;border:2px solid #0366d6;border-radius:6px;cursor:pointer;min-width:200px;padding:12px 16px;transition:all .2s ease}.dependency-job-node:hover{background:#f0f7ff;box-shadow:0 2px 8px #0000001a;transform:translateY(-2px)}.dependency-job-node:focus{outline:3px solid #0366d6;outline-offset:2px}.job-node-content{display:flex;flex-direction:column;gap:4px}.job-node-id{color:#24292e;font-size:14px;font-weight:600}.job-node-runs-on{color:#586069;font-size:12px}.job-node-deps{color:#0366d6;font-size:11px;margin-top:4px}.jobs-list{margin:20px 0}.jobs-list h2{color:#24292e;margin:0 0 20px}.jobs-list-empty{color:#586069;padding:40px;text-align:center}.job-card{background:#fff;border:1px solid #e1e4e8;border-radius:4px;margin:15px 0;overflow:hidden;transition:box-shadow .2s ease}.job-card:hover{box-shadow:0 2px 8px #0000001a}.job-card-header{background:#f6f8fa;cursor:pointer;justify-content:space-between;padding:16px;-webkit-user-select:none;user-select:none}.job-card-header,.job-title{align-items:center;display:flex}.job-title{gap:10px}.job-title h3{color:#24292e;font-size:16px;margin:0}.job-name{color:#586069;font-size:14px}.matrix-badge{background:#28a745;border-radius:12px;color:#fff;font-size:11px;font-weight:600;padding:2px 8px}.job-card-summary{border-top:1px solid #e1e4e8;display:flex;flex-wrap:wrap;gap:20px;padding:12px 16px}.job-info-item{display:flex;gap:8px}.job-info-item label{color:#586069;font-size:13px;font-weight:600}.job-info-item span{color:#24292e;font-size:13px}.job-card-details{background:#fafbfc;border-top:1px solid #e1e4e8;padding:16px}.job-steps-section h4{color:#24292e;font-size:14px;margin:0 0 12px}.steps-list{display:flex;flex-direction:column;gap:10px}.steps-list-empty{color:#586069;padding:20px;text-align:center}.step-card{background:#fff;border:1px solid #e1e4e8;border-radius:4px;overflow:hidden}.step-card-header{background:#f6f8fa;cursor:pointer;justify-content:space-between;padding:12px 16px;-webkit-user-select:none;user-select:none}.step-card-header,.step-title{align-items:center;display:flex}.step-title{gap:10px}.step-number{align-items:center;background:#0366d6;border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:600;height:24px;justify-content:center;width:24px}.step-name{color:#24292e;font-size:14px}.step-condition-badge{background:#ffc107;border-radius:3px;color:#000;font-size:10px;font-weight:600;padding:2px 6px}.step-card-details{border-top:1px solid #e1e4e8;padding:12px 16px}.step-detail{margin:8px 0}.step-detail label{color:#24292e;display:block;font-size:12px;font-weight:600;margin-bottom:4px}.step-detail code,.step-detail pre{background:#f6f8fa;border-radius:4px;display:block;font-size:12px;margin:0;overflow-x:auto;padding:8px}.step-detail pre{word-wrap:break-word;white-space:pre-wrap}.workflow-editor{margin:20px 0}.editor-controls{display:flex;justify-content:flex-end;margin-bottom:10px}.editor-options{display:flex;gap:5px}.option-btn{background:#fff;border:1px solid #e1e4e8;border-radius:4px;color:#24292e;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s ease}.option-btn:hover{background:#f6f8fa;border-color:#0366d6}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;margin:20px;max-height:90vh;max-width:800px;overflow-y:auto;position:relative;width:90%}.modal-header{background:#fff;border-bottom:1px solid #e1e4e8;padding:16px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-close{background:none;border:none;color:#666;cursor:pointer;font-size:24px;padding:4px 8px;position:absolute;right:16px;top:16px;z-index:2}.modal-body{padding:24px}.job-info{margin-bottom:24px}.info-group{margin:12px 0}.info-group label{color:#24292e;font-weight:600;margin-right:8px}.step-item{border:1px solid #e1e4e8;border-radius:6px;margin:8px 0;padding:12px}.flow-graph{background:#fff;border:1px solid #e1e4e8;border-radius:4px;margin:20px 0;padding:20px}.flow-graph-empty{color:#586069;padding:40px;text-align:center}.flow-graph-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.flow-graph-header h3{color:#24292e;margin:0}.flow-graph-options{display:flex;gap:10px}.graph-toggle-btn{background:#fff;border:1px solid #e1e4e8;border-radius:4px;color:#24292e;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s ease}.graph-toggle-btn:hover{background:#f6f8fa;border-color:#0366d6}.flow-graph-cycle-warning{background:#fff3cd;border:1px solid #856404;border-radius:4px;color:#856404;margin-bottom:15px;padding:12px}.flow-graph-container{background:#fafbfc;border:1px solid #e1e4e8;border-radius:4px;height:600px;overflow:hidden;position:relative;touch-action:none;width:100%}.flow-graph-svg{display:block;height:100%;width:100%}.graph-controls{align-items:center;background:#f6f8fa;border-radius:4px;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:15px;padding:10px}.graph-controls-group{align-items:center;display:flex;gap:5px}.graph-control-btn{background:#fff;border:1px solid #e1e4e8;border-radius:4px;color:#24292e;cursor:pointer;font-size:14px;font-weight:600;min-width:36px;padding:6px 12px;transition:all .2s ease}.graph-control-btn:hover:not(:disabled){background:#f6f8fa;border-color:#0366d6}.graph-control-btn:disabled{cursor:not-allowed;opacity:.5}.graph-zoom-level{color:#586069;font-size:12px;font-weight:600;min-width:50px;text-align:center}.graph-layout-label{align-items:center;color:#586069;display:flex;font-size:12px;gap:8px}.graph-layout-select{background:#fff;border:1px solid #e1e4e8;border-radius:4px;font-size:12px;padding:4px 8px}.graph-node{cursor:pointer}.graph-node-rect{fill:#fff;stroke:#0366d6;stroke-width:2;transition:fill .2s ease,stroke-width .2s ease}.graph-node:hover .graph-node-rect{fill:#f0f7ff;stroke-width:3}.graph-node-root .graph-node-rect{stroke:#28a745}.graph-node-terminal .graph-node-rect{stroke:#dc3545}.graph-node-highlighted .graph-node-rect{fill:#e3f2fd;stroke:#1976d2;stroke-width:3;filter:drop-shadow(0 0 4px rgba(25,118,210,.5))}.graph-node-cycle .graph-node-rect{stroke:#ff5722;stroke-dasharray:5,5}.graph-node-title{fill:#24292e;font-weight:600}.graph-node-runs-on,.graph-node-subtitle{fill:#586069}.graph-node-indicator{opacity:.8}.graph-edge{pointer-events:stroke}.graph-edge-path{stroke:#0366d6;stroke-width:2;opacity:.6;transition:stroke-width .2s ease,opacity .2s ease}.graph-edge-highlighted .graph-edge-path{stroke:#28a745;stroke-width:4;filter:drop-shadow(0 0 2px rgba(40,167,69,.6));opacity:1}.graph-edge-highlighted marker polygon{fill:#28a745}.graph-edge-cycle .graph-edge-path{stroke:#ff5722;stroke-width:3;stroke-dasharray:5,5;opacity:1}.dependency-view-section{margin:20px 0}.dependency-view-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.dependency-view-header h3{color:#24292e;margin:0}.dependency-view-toggle{display:flex;gap:5px}.view-toggle-btn{background:#fff;border:1px solid #e1e4e8;border-radius:4px;color:#24292e;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s ease}.view-toggle-btn:hover{background:#f6f8fa;border-color:#0366d6}.view-toggle-btn.active{background:#0366d6;border-color:#0366d6;color:#fff}.graph-textual-fallback{background:#fff;border:1px solid #e1e4e8;border-radius:4px;margin:20px 0;padding:20px}.graph-textual-fallback-empty{color:#586069;padding:40px;text-align:center}.graph-textual-fallback h3{color:#24292e;margin:0 0 15px}.graph-textual-table{border-collapse:collapse;font-size:13px;width:100%}.graph-textual-table th{background:#f6f8fa;border-bottom:2px solid #e1e4e8;color:#24292e;font-weight:600;padding:10px;text-align:left}.graph-textual-table td{border-bottom:1px solid #e1e4e8;padding:10px}.graph-textual-table tr:hover{background:#f6f8fa}.badge{border-radius:3px;display:inline-block;font-size:10px;font-weight:600;margin-left:8px;padding:2px 6px}.badge-root{background:#28a745;color:#fff}.badge-terminal{background:#dc3545;color:#fff}@media (max-width:768px){.App{padding:10px}.app-header{align-items:flex-start;flex-direction:column;gap:15px}.header-actions{flex-wrap:wrap;width:100%}.mode-switcher{flex-wrap:wrap}.dependency-graph-container{gap:15px}.level-jobs{flex-direction:column}.dependency-job-node{width:100%}.example-templates{flex-direction:column}.example-btn{width:100%}.toast{left:10px;max-width:none;right:10px}.flow-graph-container{height:400px}.graph-controls{align-items:stretch;flex-direction:column}.dependency-view-header{align-items:flex-start;flex-direction:column;gap:10px}.graph-textual-table{font-size:11px}.graph-textual-table td,.graph-textual-table th{padding:6px}}[role=button]:focus,button:focus,input:focus{outline:2px solid #0366d6;outline-offset:2px}.dependency-job-node,.job-card,.step-card{transition:transform .2s ease,box-shadow .2s ease}
/*# sourceMappingURL=main.9323110a.css.map*/