@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap);*,:after,:before{box-sizing:border-box}html{scrollbar-color:#484f58 #0d1117;scrollbar-width:thin}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0d1117;color:#e6edf3;margin:0;padding:0}body,code{font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace}:root{--bg-base:#0d1117;--bg-surface:#161b22;--bg-elevated:#1c2128;--bg-overlay:#21262d;--bg-canvas:#090d12;--border-subtle:#21262d;--border-default:#30363d;--border-emphasis:#484f58;--green:#0f8;--green-dim:#00b86a;--green-glow:#00ff882e;--cyan:#79c0ff;--cyan-dim:#58a6ff;--cyan-glow:#79c0ff24;--amber:#e3b341;--amber-glow:#e3b34124;--red:#f85149;--red-glow:#f8514924;--purple:#d2a8ff;--text-1:#e6edf3;--text-2:#8b949e;--text-3:#484f58;--font:"JetBrains Mono","Fira Code","Cascadia Code","SF Mono",monospace;--r-sm:2px;--r:4px;--r-lg:6px;--shadow-sm:0 1px 4px #0009;--shadow-md:0 4px 20px #000000b3;--shadow-green:0 0 0 1px #00ff8859,0 0 24px #00ff881f;--shadow-cyan:0 0 0 1px #79c0ff4d,0 0 20px #79c0ff1a;--shadow-red:0 0 0 1px #f851494d,0 0 20px #f851491a;--shadow-amber:0 0 0 1px #e3b3414d,0 0 20px #e3b3411a;--t:0.15s ease;--t-slow:0.3s ease}.App{background-color:#0d1117;background-color:var(--bg-base);color:#e6edf3;color:var(--text-1);font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:13px;line-height:1.6;min-height:100vh;position:relative}.App:before{background-image:radial-gradient(#00ff880a 1px,#0000 0);background-size:28px 28px;z-index:0}.App:after,.App:before{content:"";inset:0;pointer-events:none;position:fixed}.App:after{background:repeating-linear-gradient(0deg,#0000,#0000 3px,rgba(0,0,0,.025) 0,rgba(0,0,0,.025) 4px);z-index:1}.App>*{position:relative;z-index:2}.app-header{background:#161b22;background:var(--bg-surface);border-bottom:1px solid #30363d;border-bottom:1px solid var(--border-default);height:50px;justify-content:space-between;padding:0 28px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.app-header,.app-header h1{align-items:center;display:flex}.app-header h1{color:#8b949e;color:var(--text-2);font-size:12px;font-weight:500;gap:0;letter-spacing:.03em;margin:0}.app-header h1:before{color:#0f8;color:var(--green);content:"~/actions";font-weight:700;margin-right:6px}.app-header h1:after{color:#00b86a;color:var(--green-dim);content:" $";margin-left:6px}.header-actions{align-items:center;display:flex;gap:8px}.btn{align-items:center;border-radius:2px;border-radius:var(--r-sm);cursor:pointer;display:inline-flex;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:.14em;min-height:30px;padding:5px 12px;text-transform:uppercase;transition:all .15s ease;transition:all var(--t)}.btn-primary{background:#0000;border:1px solid #00b86a;border:1px solid var(--green-dim);color:#0f8;color:var(--green)}.btn-primary:hover:not(:disabled){background:#00ff882e;background:var(--green-glow);border-color:#0f8;border-color:var(--green);box-shadow:0 0 0 1px #00ff8859,0 0 24px #00ff881f;box-shadow:var(--shadow-green)}.btn-secondary{background:#0000;border:1px solid #f8514966;color:#f85149;color:var(--red)}.btn-secondary:hover:not(:disabled){background:#f8514924;background:var(--red-glow);border-color:#f85149;border-color:var(--red);box-shadow:0 0 0 1px #f851494d,0 0 20px #f851491a;box-shadow:var(--shadow-red)}.btn:disabled{background:#0000;border-color:#30363d;border-color:var(--border-default);color:#484f58;color:var(--text-3);cursor:not-allowed;opacity:.4}.toast{animation:toastIn .25s cubic-bezier(.34,1.56,.64,1);border-left:3px solid;border-radius:2px;border-radius:var(--r-sm);bottom:24px;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:11px;letter-spacing:.03em;max-width:340px;padding:9px 14px 9px 12px;position:fixed;right:24px;z-index:10000}.toast-success{border-color:#0f8;border-color:var(--green);box-shadow:0 0 0 1px #00ff8859,0 0 24px #00ff881f,0 4px 20px #000000b3;box-shadow:var(--shadow-green),var(--shadow-md);color:#0f8;color:var(--green)}.toast-error,.toast-success{background:#1c2128;background:var(--bg-elevated)}.toast-error{border-color:#f85149;border-color:var(--red);box-shadow:0 0 0 1px #f851494d,0 0 20px #f851491a,0 4px 20px #000000b3;box-shadow:var(--shadow-red),var(--shadow-md);color:#f85149;color:var(--red)}.toast-info{background:#1c2128;background:var(--bg-elevated);border-color:#79c0ff;border-color:var(--cyan);box-shadow:0 0 0 1px #79c0ff4d,0 0 20px #79c0ff1a,0 4px 20px #000000b3;box-shadow:var(--shadow-cyan),var(--shadow-md);color:#79c0ff;color:var(--cyan)}@keyframes toastIn{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.empty-state{background:#161b22;background:var(--bg-surface);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:6px;border-radius:var(--r-lg);margin:36px 28px;overflow:hidden;padding:60px 40px 48px;position:relative;text-align:center}.empty-state:before{background:#1c2128;background:var(--bg-elevated);border-bottom:1px solid #30363d;border-bottom:1px solid var(--border-default);content:"";height:38px;left:0;position:absolute;right:0;top:0}.empty-state:after{background:#484f58;background:var(--border-emphasis);border-radius:50%;box-shadow:18px 0 0 #484f58,36px 0 0 #484f58;box-shadow:18px 0 0 var(--border-emphasis),36px 0 0 var(--border-emphasis);content:"";height:12px;left:16px;position:absolute;top:13px;width:12px}.empty-state h2{color:#0f8;color:var(--green);font-size:14px;font-weight:700;letter-spacing:.06em;margin:4px 0 12px}.empty-state h2:before{color:#8b949e;color:var(--text-2);content:"$ ";font-weight:400}.empty-state>p{color:#8b949e;color:var(--text-2);font-size:12px;margin-bottom:32px;margin-left:auto;margin-right:auto;max-width:480px}.example-templates{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 28px}.example-btn{background:#1c2128;background:var(--bg-elevated);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);color:#79c0ff;color:var(--cyan);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:10px;font-weight:600;letter-spacing:.1em;padding:6px 14px;text-transform:uppercase;transition:all .15s ease;transition:all var(--t)}.example-btn:hover{background:#79c0ff24;background:var(--cyan-glow);border-color:#58a6ff;border-color:var(--cyan-dim);box-shadow:0 0 0 1px #79c0ff4d,0 0 20px #79c0ff1a;box-shadow:var(--shadow-cyan)}.drag-drop-zone{background:#1c2128;background:var(--bg-elevated);border:1px dashed #484f58;border:1px dashed var(--border-emphasis);border-radius:4px;border-radius:var(--r);margin-top:4px;padding:24px 36px;transition:border-color .15s ease,background .15s ease;transition:border-color var(--t),background var(--t)}.drag-drop-zone:hover{background:#00ff8808;border-color:#00b86a;border-color:var(--green-dim)}.drag-drop-zone p{color:#8b949e;color:var(--text-2);font-size:12px;margin-bottom:14px}.drag-overlay{align-items:center;animation:fadeIn .1s ease;background:#00ff8808;border:2px solid #0f8;border:2px solid var(--green);display:flex;inset:0;justify-content:center;position:fixed;z-index:9998}.drag-overlay-content{background:#1c2128;background:var(--bg-elevated);border:1px solid #0f8;border:1px solid var(--green);border-radius:6px;border-radius:var(--r-lg);box-shadow:0 0 0 1px #00ff8859,0 0 24px #00ff881f,0 4px 20px #000000b3;box-shadow:var(--shadow-green),var(--shadow-md);color:#0f8;color:var(--green);font-size:16px;font-weight:700;letter-spacing:.14em;padding:36px 60px;text-transform:uppercase}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-overlay{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d1117e0;display:flex;flex-direction:column;inset:0;justify-content:center;position:fixed;z-index:9999}.spinner{animation:spin .75s linear infinite;border:1.5px solid #30363d;border-top-color:#0f8;border:1.5px solid var(--border-default);border-radius:50%;border-top-color:var(--green);box-shadow:0 0 14px #00ff882e;box-shadow:0 0 14px var(--green-glow);height:32px;width:32px}@keyframes spin{to{transform:rotate(1turn)}}.loading-overlay p{color:#8b949e;color:var(--text-2);font-size:11px;letter-spacing:.12em;margin-top:16px;text-transform:uppercase}.mode-switcher{align-items:center;background:#161b22;background:var(--bg-surface);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);display:flex;gap:2px;margin:16px 28px;padding:3px;width:-webkit-fit-content;width:fit-content}.mode-btn{background:#0000;border:none;border-radius:1px;color:#8b949e;color:var(--text-2);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:.12em;min-height:auto;padding:5px 18px;text-transform:uppercase;transition:all .15s ease;transition:all var(--t)}.mode-btn:hover:not(:disabled):not(.active){background:#1c2128;background:var(--bg-elevated);color:#e6edf3;color:var(--text-1)}.mode-btn.active{background:#0f8;background:var(--green);box-shadow:0 0 10px #00ff882e;box-shadow:0 0 10px var(--green-glow);color:#0d1117;font-weight:800}.mode-btn:disabled{cursor:not-allowed;opacity:.3}.mode-switch-message{color:#e3b341;color:var(--amber);font-size:11px;letter-spacing:.03em;margin-left:12px}.validation-panel{border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);font-size:12px;margin:0 28px 12px;overflow:hidden}.validation-panel-success{background:rgba(0,255,136,.025);border-left:3px solid #0f8;border-left:3px solid var(--green)}.validation-panel-error{background:rgba(248,81,73,.025);border-left:3px solid #f85149;border-left:3px solid var(--red)}.validation-panel-warning{background:rgba(227,179,65,.025);border-left:3px solid #e3b341;border-left:3px solid var(--amber)}.validation-panel-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:8px 14px;transition:background .15s ease;transition:background var(--t);-webkit-user-select:none;user-select:none}.validation-panel-header:hover{background:#21262d;background:var(--bg-overlay)}.validation-status{align-items:center;display:flex;gap:8px}.status-icon{font-size:13px;font-weight:800}.validation-panel-success .status-icon{color:#0f8;color:var(--green)}.validation-panel-error .status-icon{color:#f85149;color:var(--red)}.validation-panel-warning .status-icon{color:#e3b341;color:var(--amber)}.validation-panel-success .validation-status{color:#0f8;color:var(--green)}.validation-panel-error .validation-status{color:#f85149;color:var(--red)}.validation-panel-warning .validation-status{color:#e3b341;color:var(--amber)}.validation-panel-content{border-top:1px solid #21262d;border-top:1px solid var(--border-subtle);padding:10px 14px}.validation-errors h4,.validation-warnings h4{color:#8b949e;color:var(--text-2);font-size:10px;letter-spacing:.1em;margin:0 0 6px;text-transform:uppercase}.validation-errors ul,.validation-warnings ul{color:#e6edf3;color:var(--text-1);margin:0;padding-left:16px}.validation-errors li,.validation-warnings li{font-size:12px;margin:5px 0}.error-line-link{background:none;border:none;color:#79c0ff;color:var(--cyan);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:10px;margin-left:8px;opacity:.7;padding:0;text-decoration:none;transition:opacity .15s ease;transition:opacity var(--t)}.error-line-link:hover{opacity:1;text-decoration:underline}.workflow-viewer{padding:0 28px 48px}.workflow-viewer-empty{color:#8b949e;color:var(--text-2);font-size:12px;padding:60px;text-align:center}.viewer-warnings{background:#e3b3410d;border:1px solid #e3b34140;border-left:3px solid #e3b341;border-left:3px solid var(--amber);border-radius:2px;border-radius:var(--r-sm);margin-bottom:14px;padding:10px 14px}.viewer-warnings h3{color:#e3b341;color:var(--amber);font-size:10px;font-weight:700;letter-spacing:.12em;margin:0 0 6px;text-transform:uppercase}.viewer-warnings ul{color:#e6edf3;color:var(--text-1);font-size:12px;margin:0;padding-left:18px}.workflow-overview{background:#161b22;background:var(--bg-surface);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:4px;border-radius:var(--r);margin:14px 0;overflow:hidden}.workflow-overview-header{align-items:center;background:#1c2128;background:var(--bg-elevated);cursor:pointer;display:flex;justify-content:space-between;padding:10px 16px;transition:background .15s ease;transition:background var(--t);-webkit-user-select:none;user-select:none}.workflow-overview-header:hover{background:#21262d;background:var(--bg-overlay)}.workflow-overview-header h2{color:#0f8;color:var(--green);font-size:10px;font-weight:700;letter-spacing:.14em;margin:0;text-transform:uppercase}.workflow-overview-header h2:before{color:#484f58;color:var(--text-3);content:"// ";font-weight:400}.expand-icon{color:#8b949e;color:var(--text-2);font-size:13px;font-weight:700}.workflow-overview-content{padding:14px 16px}.workflow-field{font-size:12px;margin:8px 0}.workflow-field label{color:#8b949e;color:var(--text-2);font-size:10px;font-weight:700;letter-spacing:.06em;margin-right:8px;text-transform:uppercase}.triggers-list{margin-top:6px}.trigger-item{background:#1c2128;background:var(--bg-elevated);border-left:2px solid #58a6ff;border-left:2px solid var(--cyan-dim);border-radius:2px;border-radius:var(--r-sm);font-size:12px;margin:5px 0;padding:7px 12px}.trigger-item strong{color:#79c0ff;color:var(--cyan)}.trigger-detail{color:#8b949e;color:var(--text-2);display:block;font-size:11px;margin-top:3px}.dependency-graph{background:#161b22;background:var(--bg-surface);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:4px;border-radius:var(--r);margin:14px 0;padding:16px}.dependency-graph h3{color:#8b949e;color:var(--text-2);font-size:10px;font-weight:700;letter-spacing:.14em;margin:0 0 14px;text-transform:uppercase}.dependency-graph-empty{color:#8b949e;color:var(--text-2);font-size:12px;padding:40px;text-align:center}.dependency-graph-container{display:flex;flex-direction:column;gap:14px}.dependency-level{display:flex;flex-direction:column;gap:6px}.level-label{color:#484f58;color:var(--text-3);font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.level-jobs{border-left:1px solid #30363d;border-left:1px solid var(--border-default);display:flex;flex-wrap:wrap;gap:8px;padding-left:14px}.dependency-job-node{background:#1c2128;background:var(--bg-elevated);border:1px solid #30363d;border-top:2px solid #00b86a;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);border-top:2px solid var(--green-dim);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);min-width:170px;padding:10px 14px;transition:all .15s ease;transition:all var(--t)}.dependency-job-node:hover{background:#00ff880a;border-color:#0f8;border-color:var(--green);border-top-color:#0f8;border-top-color:var(--green)}.dependency-job-node:focus,.dependency-job-node:hover{box-shadow:0 0 0 1px #00ff8859,0 0 24px #00ff881f;box-shadow:var(--shadow-green)}.dependency-job-node:focus{outline:none}.job-node-content{display:flex;flex-direction:column;gap:3px}.job-node-id{color:#e6edf3;color:var(--text-1);font-size:12px;font-weight:700}.job-node-runs-on{color:#8b949e;color:var(--text-2);font-size:10px}.job-node-deps{color:#79c0ff;color:var(--cyan);font-size:10px;margin-top:2px}.dependency-view-section{margin:14px 0}.dependency-view-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.dependency-view-header h3{color:#8b949e;color:var(--text-2);font-size:10px;font-weight:700;letter-spacing:.14em;margin:0;text-transform:uppercase}.dependency-view-toggle{background:#1c2128;background:var(--bg-elevated);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);display:flex;gap:2px;padding:3px}.view-toggle-btn{background:#0000;border:none;border-radius:1px;color:#8b949e;color:var(--text-2);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:9px;font-weight:700;letter-spacing:.1em;padding:4px 12px;text-transform:uppercase;transition:all .15s ease;transition:all var(--t)}.view-toggle-btn:hover:not(.active){background:#21262d;background:var(--bg-overlay);color:#e6edf3;color:var(--text-1)}.view-toggle-btn.active{background:#0f8;background:var(--green);color:#0d1117;font-weight:800}.flow-graph{background:#161b22;background:var(--bg-surface);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:4px;border-radius:var(--r);margin:14px 0;padding:14px}.flow-graph-empty{color:#8b949e;color:var(--text-2);font-size:12px;padding:60px;text-align:center}.flow-graph-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.flow-graph-header h3{color:#8b949e;color:var(--text-2);font-size:10px;font-weight:700;letter-spacing:.14em;margin:0;text-transform:uppercase}.flow-graph-options{display:flex;gap:6px}.graph-toggle-btn{background:#0000;border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);color:#8b949e;color:var(--text-2);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:10px;font-weight:600;letter-spacing:.06em;padding:4px 10px;text-transform:uppercase;transition:all .15s ease;transition:all var(--t)}.graph-toggle-btn:hover{background:#79c0ff24;background:var(--cyan-glow);border-color:#58a6ff;border-color:var(--cyan-dim);color:#79c0ff;color:var(--cyan)}.flow-graph-cycle-warning{background:#e3b3410d;border:1px solid #e3b34140;border-left:3px solid #e3b341;border-left:3px solid var(--amber);border-radius:2px;border-radius:var(--r-sm);color:#e3b341;color:var(--amber);font-size:12px;margin-bottom:10px;padding:8px 12px}.flow-graph-container{background:#090d12;background:var(--bg-canvas);border:1px solid #21262d;border:1px solid var(--border-subtle);border-radius:2px;border-radius:var(--r-sm);height:580px;overflow:hidden;position:relative;touch-action:none;width:100%}.flow-graph-container:before{background-image:radial-gradient(#00ff880f 1px,#0000 0);background-size:20px 20px;content:"";inset:0;pointer-events:none;position:absolute;z-index:0}.flow-graph-svg{display:block;height:100%;position:relative;width:100%;z-index:1}.graph-controls{align-items:center;background:#1c2128;background:var(--bg-elevated);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;padding:7px 12px}.graph-controls-group{align-items:center;display:flex;gap:3px}.graph-control-btn{background:#0000;border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);color:#8b949e;color:var(--text-2);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:12px;font-weight:700;min-width:30px;padding:3px 9px;text-align:center;transition:all .15s ease;transition:all var(--t)}.graph-control-btn:hover:not(:disabled){background:#00ff882e;background:var(--green-glow);border-color:#00b86a;border-color:var(--green-dim);color:#0f8;color:var(--green)}.graph-control-btn:disabled{cursor:not-allowed;opacity:.3}.graph-zoom-level{font-weight:700;min-width:40px;text-align:center}.graph-layout-label,.graph-zoom-level{color:#8b949e;color:var(--text-2);font-size:10px;letter-spacing:.04em}.graph-layout-label{align-items:center;display:flex;gap:6px}.graph-layout-select{background:#161b22;background:var(--bg-surface);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);color:#e6edf3;color:var(--text-1);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:10px;padding:3px 7px}.graph-node{cursor:pointer}.graph-node-rect{fill:#0f1419;stroke:#484f58;stroke:var(--border-emphasis);stroke-width:1;transition:fill .15s,stroke .15s,stroke-width .15s}.graph-node:hover .graph-node-rect{fill:#131c26;stroke:#0f8;stroke:var(--green);stroke-width:1.5;filter:drop-shadow(0 0 6px rgba(0,255,136,.3))}.graph-node-root .graph-node-rect{stroke:#00b86a;stroke:var(--green-dim);stroke-width:1.5}.graph-node-terminal .graph-node-rect{stroke:#58a6ff;stroke:var(--cyan-dim);stroke-width:1.5}.graph-node-highlighted .graph-node-rect{fill:#0f1e2e;stroke:#0f8;stroke:var(--green);stroke-width:2;filter:drop-shadow(0 0 8px rgba(0,255,136,.45))}.graph-node-cycle .graph-node-rect{stroke:#f85149;stroke:var(--red);stroke-dasharray:4,3}.graph-node-title{fill:#e6edf3;fill:var(--text-1);font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-weight:700}.graph-node-runs-on,.graph-node-subtitle{fill:#8b949e;fill:var(--text-2);font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font)}.graph-node-indicator{opacity:.9}.graph-edge{pointer-events:stroke}.graph-edge-path{stroke:#484f58;stroke:var(--border-emphasis);stroke-width:1.5;opacity:.45;transition:stroke .15s,stroke-width .15s,opacity .15s}.graph-edge-highlighted .graph-edge-path{stroke:#0f8;stroke:var(--green);stroke-width:2.5;filter:drop-shadow(0 0 4px rgba(0,255,136,.5));opacity:1}.graph-edge-highlighted marker polygon{fill:#0f8;fill:var(--green)}.graph-edge-cycle .graph-edge-path{stroke:#f85149;stroke:var(--red);stroke-width:2;stroke-dasharray:4,3;opacity:1}.graph-textual-fallback{background:#161b22;background:var(--bg-surface);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:4px;border-radius:var(--r);margin:14px 0;padding:14px}.graph-textual-fallback-empty{color:#8b949e;color:var(--text-2);font-size:12px;padding:40px;text-align:center}.graph-textual-fallback h3{color:#8b949e;color:var(--text-2);font-size:10px;font-weight:700;letter-spacing:.14em;margin:0 0 12px;text-transform:uppercase}.graph-textual-table{border-collapse:collapse;font-size:12px;width:100%}.graph-textual-table th{background:#1c2128;background:var(--bg-elevated);border-bottom:1px solid #30363d;border-bottom:1px solid var(--border-default);color:#8b949e;color:var(--text-2);font-size:9px;font-weight:700;letter-spacing:.12em;padding:7px 12px;text-align:left;text-transform:uppercase}.graph-textual-table td{border-bottom:1px solid #21262d;border-bottom:1px solid var(--border-subtle);color:#e6edf3;color:var(--text-1);padding:7px 12px}.graph-textual-table tr:hover td{background:#1c2128;background:var(--bg-elevated)}.badge{border-radius:2px;display:inline-block;font-size:9px;font-weight:800;letter-spacing:.08em;margin-left:6px;padding:1px 5px;text-transform:uppercase}.badge-root{background:#00ff881f;border:1px solid #00ff8840;color:#0f8;color:var(--green)}.badge-terminal{background:#79c0ff1f;border:1px solid #79c0ff40;color:#79c0ff;color:var(--cyan)}.jobs-list{margin:16px 0}.jobs-list h2{font-size:10px;font-weight:700;letter-spacing:.14em;margin:0 0 12px;text-transform:uppercase}.jobs-list h2,.jobs-list-empty{color:#8b949e;color:var(--text-2)}.jobs-list-empty{font-size:12px;padding:40px;text-align:center}.job-card{background:#161b22;background:var(--bg-surface);border:1px solid #30363d;border:1px solid var(--border-default);border-radius:4px;border-radius:var(--r);margin:6px 0;overflow:hidden;transition:border-color .15s ease;transition:border-color var(--t)}.job-card:hover{border-color:#484f58;border-color:var(--border-emphasis)}.job-card-header{align-items:center;background:#1c2128;background:var(--bg-elevated);cursor:pointer;display:flex;justify-content:space-between;padding:10px 14px;transition:background .15s ease;transition:background var(--t);-webkit-user-select:none;user-select:none}.job-card-header:hover{background:#21262d;background:var(--bg-overlay)}.job-title{align-items:center;display:flex;gap:10px}.job-title h3{color:#0f8;color:var(--green);font-size:12px;font-weight:700;margin:0}.job-name{color:#8b949e;color:var(--text-2);font-size:11px}.matrix-badge{background:#d2a8ff1a;border:1px solid #d2a8ff38;border-radius:2px;color:#d2a8ff;color:var(--purple);font-size:9px;font-weight:800;letter-spacing:.06em;padding:1px 6px;text-transform:uppercase}.job-card-summary{background:#161b22;background:var(--bg-surface);border-top:1px solid #21262d;border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:16px;padding:8px 14px}.job-info-item{display:flex;font-size:11px;gap:6px}.job-info-item label{color:#8b949e;color:var(--text-2);font-size:10px;font-weight:700;letter-spacing:.04em}.job-info-item span{color:#79c0ff;color:var(--cyan)}.job-card-details{background:#090d1299;border-top:1px solid #21262d;border-top:1px solid var(--border-subtle);padding:14px}.job-steps-section h4{color:#8b949e;color:var(--text-2);font-size:9px;font-weight:700;letter-spacing:.14em;margin:0 0 8px;text-transform:uppercase}.steps-list{display:flex;flex-direction:column;gap:5px}.steps-list-empty{color:#8b949e;color:var(--text-2);font-size:12px;padding:20px;text-align:center}.step-card{background:#1c2128;background:var(--bg-elevated);border:1px solid #21262d;border:1px solid var(--border-subtle);border-radius:2px;border-radius:var(--r-sm);overflow:hidden}.step-card-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:7px 12px;transition:background .15s ease;transition:background var(--t);-webkit-user-select:none;user-select:none}.step-card-header:hover{background:#21262d;background:var(--bg-overlay)}.step-title{gap:10px}.step-number,.step-title{align-items:center;display:flex}.step-number{background:#00ff8814;border:1px solid #00ff882e;border-radius:2px;color:#0f8;color:var(--green);flex-shrink:0;font-size:9px;font-weight:800;height:20px;justify-content:center;width:20px}.step-name{color:#e6edf3;color:var(--text-1);font-size:12px}.step-condition-badge{background:#e3b3411a;border:1px solid #e3b34138;border-radius:2px;color:#e3b341;color:var(--amber);font-size:9px;font-weight:800;letter-spacing:.06em;padding:1px 5px;text-transform:uppercase}.step-card-details{border-top:1px solid #21262d;border-top:1px solid var(--border-subtle);padding:9px 12px}.step-detail{font-size:12px;margin:6px 0}.step-detail label{color:#8b949e;color:var(--text-2);display:block;font-size:9px;font-weight:700;letter-spacing:.1em;margin-bottom:4px;text-transform:uppercase}.step-detail code,.step-detail pre{background:#090d12;background:var(--bg-canvas);border:1px solid #21262d;border:1px solid var(--border-subtle);border-radius:2px;border-radius:var(--r-sm);color:#79c0ff;color:var(--cyan);display:block;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:11px;margin:0;overflow-x:auto;padding:6px 10px}.step-detail pre{word-wrap:break-word;white-space:pre-wrap}.workflow-editor{padding:0 28px 48px}.editor-controls{display:flex;justify-content:flex-end;margin-bottom:8px}.editor-options{display:flex;gap:4px}.option-btn{background:#0000;border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);color:#8b949e;color:var(--text-2);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:9px;font-weight:700;letter-spacing:.1em;padding:4px 10px;text-transform:uppercase;transition:all .15s ease;transition:all var(--t)}.option-btn:hover{background:#79c0ff24;background:var(--cyan-glow);border-color:#58a6ff;border-color:var(--cyan-dim);color:#79c0ff;color:var(--cyan)}.workflow-editor>div:last-child{border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);overflow:hidden}.modal-overlay{align-items:center;animation:fadeIn .15s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000bf;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.modal-content{animation:modalIn .2s cubic-bezier(.34,1.56,.64,1);background:#161b22;background:var(--bg-surface);border:1px solid #484f58;border:1px solid var(--border-emphasis);border-radius:6px;border-radius:var(--r-lg);box-shadow:0 4px 20px #000000b3;box-shadow:var(--shadow-md);margin:20px;max-height:90vh;max-width:760px;overflow-y:auto;position:relative;width:90%}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{background:#1c2128;background:var(--bg-elevated);border-bottom:1px solid #30363d;border-bottom:1px solid var(--border-default);padding:12px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-close{background:#0000;border:1px solid #30363d;border:1px solid var(--border-default);border-radius:2px;border-radius:var(--r-sm);color:#8b949e;color:var(--text-2);cursor:pointer;font-family:JetBrains Mono,Fira Code,Cascadia Code,SF Mono,monospace;font-family:var(--font);font-size:14px;padding:2px 8px;position:absolute;right:14px;top:12px;transition:all .15s ease;transition:all var(--t)}.modal-close:hover{background:#f8514924;background:var(--red-glow);border-color:#f85149;border-color:var(--red);color:#f85149;color:var(--red)}.modal-body{padding:18px 20px}.job-info{margin-bottom:18px}.info-group{font-size:12px;margin:8px 0}.info-group label{color:#8b949e;color:var(--text-2);font-size:10px;font-weight:700;letter-spacing:.06em;margin-right:8px}.step-item{background:#1c2128;background:var(--bg-elevated);border:1px solid #21262d;border:1px solid var(--border-subtle);border-radius:2px;border-radius:var(--r-sm);font-size:12px;margin:5px 0;padding:9px 12px}[role=button]:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #0f8;outline:2px solid var(--green);outline-offset:2px}button:focus:not(:focus-visible),input:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{height:5px;width:5px}::-webkit-scrollbar-track{background:#0d1117;background:var(--bg-base)}::-webkit-scrollbar-thumb{background:#484f58;background:var(--border-emphasis);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#484f58;background:var(--text-3)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app-header{animation:fadeInUp .35s ease both}.mode-switcher{animation:fadeInUp .35s ease .05s both}.validation-panel{animation:fadeInUp .35s ease .08s both}.empty-state{animation:fadeInUp .4s ease .1s both}.workflow-editor,.workflow-viewer{animation:fadeInUp .35s ease .08s both}@media (max-width:768px){.app-header{padding:0 16px}.app-header h1{font-size:10px}.workflow-editor,.workflow-viewer{padding-left:16px;padding-right:16px}.empty-state,.mode-switcher,.validation-panel{margin-left:16px;margin-right:16px}.mode-switcher{width:auto}.level-jobs{flex-direction:column}.dependency-job-node{min-width:auto;width:100%}.example-templates{flex-direction:column}.example-btn{width:100%}.toast{bottom:16px;left:16px;max-width:none;right:16px}.flow-graph-container{height:380px}.graph-controls{align-items:stretch;flex-direction:column}.dependency-view-header{align-items:flex-start;flex-direction:column;gap:8px}.graph-textual-table{font-size:11px}.graph-textual-table td,.graph-textual-table th{padding:6px 8px}.empty-state{padding:50px 20px 36px}}
/*# sourceMappingURL=main.85a82472.css.map*/