@import"https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&display=swap";:root{font-family:Lexend,Segoe UI,Tahoma,sans-serif;--color-primary: #056f82;--color-primary-hover: #034955;--color-primary-dark: #034955;--color-primary-darker: #032e36;--color-primary-light: #69a9b4;--color-primary-lighter: #b4d4da;--color-primary-bg: #e6f1f2;--color-primary-bg-light: #eff5f5;--color-accent: #ffbc42;--color-accent-dark: #dc8e00;--color-accent-light: #ffd78e;--color-accent-bg: #fff8ec;--color-bg-page: #f4f7fb;--color-bg-card: #ffffff;--color-bg-muted: #f9fafb;--color-bg-highlight: #e6f1f2;--color-bg-success: #d1e7dd;--color-bg-error: #fee2e2;--color-bg-warning: #fff8ec;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--color-border-focus: #056f82;--color-text-primary: #373737;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-text-success: #198754;--color-text-error: #dc3545;--color-text-warning: #92400e;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1);--shadow-focus: 0 0 0 3px rgba(5, 111, 130, .15);--transition-fast: .15s ease;--transition-normal: .2s ease;background:var(--color-bg-page);color:var(--color-text-primary)}*{box-sizing:border-box}body{margin:0}*:focus,*:focus-visible{outline:none!important}.toggle-group{display:flex;gap:var(--spacing-sm)}.toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:14px 20px;border-width:2px;border-style:solid;border-color:var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-bg-card);cursor:pointer;font-size:14px;font-weight:500;color:var(--color-text-secondary);transition:all var(--transition-fast)}.toggle-btn:hover:not(.active):not(:disabled){border-color:#d1d5db;background-color:var(--color-bg-muted)}.toggle-btn.active{border-width:2px;border-style:solid;border-color:var(--color-primary);background-color:var(--color-primary-bg);color:var(--color-primary)}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.pill-group{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.pill-btn{padding:10px 16px;border-width:2px;border-style:solid;border-color:var(--color-border);border-radius:var(--radius-full);background-color:var(--color-bg-card);font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.pill-btn:hover:not(.active):not(:disabled){border-color:#d1d5db}.pill-btn.active{border-width:2px;border-style:solid;border-color:var(--color-primary);background-color:var(--color-primary-bg);color:var(--color-primary)}.tab-card{flex:1;display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) 20px;border-width:2px;border-style:solid;border-color:var(--color-border);border-radius:var(--radius-xl);background-color:var(--color-bg-card);cursor:pointer;text-align:left;transition:all var(--transition-fast)}.tab-card:hover:not(.active){border-color:#d1d5db}.tab-card.active{border-width:2px;border-style:solid;border-color:var(--color-primary);background-color:#f0f9ff}.selectable-card{padding:14px 16px;border-width:2px;border-style:solid;border-color:var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-card);cursor:pointer;transition:all var(--transition-fast)}.selectable-card:hover:not(.selected){border-color:#d1d5db;background-color:var(--color-bg-muted)}.selectable-card.selected{border-width:2px;border-style:solid;border-color:var(--color-primary);background-color:var(--color-primary-bg)}.info-box{padding:var(--spacing-md) 20px;border-radius:var(--radius-xl);margin-bottom:var(--spacing-lg)}.info-box.info{background-color:#f0f9ff;border:1px solid #bae6fd}.info-box.success{background-color:var(--color-bg-success);border:1px solid #86efac}.info-box.warning{background-color:var(--color-bg-warning);border:1px solid #fcd34d}.info-box.error{background-color:var(--color-bg-error);border:1px solid #fca5a5}.form-label{display:block;font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.form-input{width:100%;padding:12px 14px;border-width:2px;border-style:solid;border-color:var(--color-border);border-radius:var(--radius-lg);font-size:14px;background-color:var(--color-bg-card);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.form-input:disabled{background-color:var(--color-bg-muted);cursor:not-allowed;color:var(--color-text-muted)}.form-hint{font-size:12px;color:var(--color-text-muted);margin-top:4px}.checkbox-label{display:flex;align-items:center;gap:10px;padding:12px 16px;background-color:var(--color-bg-muted);border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast)}.checkbox-label:hover{background-color:#f3f4f6}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary-light);cursor:pointer}.checkbox-label span{font-size:14px;color:var(--color-text-primary);font-weight:500}.status-badge{display:inline-block;padding:4px 10px;border-radius:var(--radius-xl);font-size:12px;font-weight:600}.status-badge.pending{background-color:#e9ecef;color:var(--color-text-secondary)}.status-badge.running{background-color:var(--color-primary-bg);color:var(--color-primary)}.status-badge.success{background-color:var(--color-bg-success);color:var(--color-text-success)}.status-badge.error{background-color:var(--color-bg-error);color:var(--color-text-error)}.expiry-badge{font-size:11px;padding:2px 8px;background-color:var(--color-bg-warning);color:var(--color-text-warning);border-radius:4px}.empty-state{text-align:center;padding:var(--spacing-lg);color:var(--color-text-secondary);background-color:var(--color-bg-muted);border-radius:var(--radius-md)}.loading-state{text-align:center;padding:var(--spacing-lg);color:var(--color-text-secondary)}.login-prompt{text-align:center;padding:var(--spacing-xl);background-color:var(--color-bg-muted);border-radius:var(--radius-md)}.login-prompt p{margin:0 0 var(--spacing-sm)}.login-prompt .login-btn{margin-top:var(--spacing-md);padding:10px 24px;background-color:#fc6d26;color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer}.app-shell{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;background:#f4f7fb;padding-top:24px}.content-container{max-width:1100px;margin:0 auto;padding:0 24px 48px}.wizard-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:8px}.role-toggle{display:flex;gap:4px;background:#e3e8ef;padding:4px;border-radius:10px;box-shadow:inset 0 1px 3px #00000014}.role-btn{padding:8px 20px;border-radius:8px;font-size:14px;font-weight:600;background:transparent;color:#6b7280;border:none;cursor:pointer;transition:all .15s ease}.role-btn.active{background:#fff;color:#032e36;box-shadow:0 1px 3px #0000001a}.role-btn:hover:not(.active){color:#374151}.container{max-width:960px;margin:0 auto;padding:0 1rem 2rem}@media (max-width: 768px){.wizard-header{flex-direction:column;align-items:stretch}.role-toggle{justify-content:center}.content-container{padding:0 16px 32px}}.panel{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 20px 40px #032e361a;min-height:60vh;display:flex;flex-direction:column}.panel-header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.panel h2{margin-top:0;margin-bottom:0}.panel-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:2rem}.panel label{display:flex;flex-direction:column;font-weight:600;margin-bottom:1rem;font-size:.9rem;width:100%}.panel input,.panel textarea,.panel select{margin-top:.5rem;padding:.75rem 1rem;border-radius:var(--radius-md);border-width:2px;border-style:solid;border-color:var(--color-border);font-size:.95rem;font-family:Consolas,Monaco,monospace;width:100%;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;background-color:var(--color-bg-card)}.panel input:focus,.panel textarea:focus,.panel select:focus{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.panel textarea{min-height:120px;resize:vertical}.panel-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem}button{border:none;border-radius:var(--radius-full);padding:.75rem 1.5rem;font-weight:600;cursor:pointer;background:#e3e8ef;color:var(--color-text-primary);transition:background-color var(--transition-normal),transform var(--transition-normal)}button:hover:not(:disabled){background:#d1d5db}button.primary{background:var(--color-primary);color:#fff}button.primary:hover:not(:disabled){background:var(--color-primary-hover);color:#fff}button:disabled{opacity:.4;cursor:not-allowed}.stepper{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:0 1rem}.step{display:flex;flex-direction:column;align-items:center;font-size:.75rem;color:#9aa5b1;text-transform:uppercase;letter-spacing:.08em}.step .circle{width:32px;height:32px;border-radius:50%;border:2px solid #cbd2d9;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.step.active{color:#056f82}.step.active .circle{border-color:#056f82}.step.done{color:#2bb0ed}.step.done .circle{border-color:#2bb0ed;background:#2bb0ed;color:#fff}.connector{flex:1;height:4px;border-radius:999px;background:#cbd2d9}.connector.done{background:#2bb0ed}.package-list{display:flex;flex-direction:column;gap:1rem}.package-row{border:1px solid #e4e7eb;border-radius:12px;background:#fff;overflow:hidden}.package-row.selected{border-color:#056f82;box-shadow:0 12px 18px #056f821a}.package-main{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem}.chevron{background:transparent;border:none;font-size:1rem;transform:rotate(0);transition:transform .2s ease;color:#8795a1}.chevron.open{transform:rotate(90deg)}.package-info{flex:1;cursor:pointer}.package-info .title{font-weight:700;color:#102a43}.package-info .meta{font-size:.75rem;color:#9aa5b1}.select-chip{border-radius:999px;padding:.35rem 1rem;background:#e0f2fe;color:#0369a1;font-size:.8rem}.select-chip.active{background:#056f82;color:#fff}.package-details{padding:0 1.5rem 1.25rem 3.5rem}.component-tree{display:flex;flex-direction:column;gap:1rem}.component-card{border:1px solid #e4e7eb;border-radius:10px;padding:1rem;background:#f8fafc}.component-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.badge{text-transform:uppercase;font-size:.7rem;letter-spacing:.1em;background:#c7f9ff;color:#056f82;padding:.2rem .5rem;border-radius:6px}.component-name{font-weight:600;flex:1}.chip{font-size:.7rem;padding:.2rem .6rem;border-radius:999px;text-transform:uppercase;letter-spacing:.08em;background:#e4e7eb;color:#52606d}.chip.required{background:#f87272;color:#fff}.chip.success{background:#31c48d;color:#fff}.chip.warning{background:#ffbc42}.chip.running{background:#facc15}.chip.completed{background:#22c55e;color:#fff}.chip.failed{background:#f87171;color:#fff}.chip.idle{background:#cbd2d9}.options-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.options-list li{display:flex;justify-content:space-between;padding:.5rem .75rem;border-radius:8px;background:#fff;font-size:.85rem;color:#243b53;border:1px solid #e4e7eb}.option-meta{color:#9aa5b1;font-size:.75rem}.placeholder{padding:1rem;text-align:center;color:#9aa5b1;background:#f1f5f9;border-radius:8px}.placeholder.error{color:#c81e1e;background:#fee2e2}.placeholder.tight{padding:.5rem}.summary-list{list-style:none;margin:0;padding:0}.summary-list li{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #e4e7eb}.conflict{border-radius:10px;padding:1rem 1.25rem;margin-bottom:1rem}.conflict.warning{background:#fff7ed;border:1px solid #f97316}.conflict.success{background:#ecfdf5;border:1px solid #10b981}.logs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:1.5rem}.log-panel{border:1px solid #e4e7eb;border-radius:12px;background:#0b1120;color:#d1d5db;display:flex;flex-direction:column}.log-header{padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.log-body{padding:1rem;margin:0;min-height:160px;max-height:250px;overflow:auto;font-size:.8rem;white-space:pre-wrap}.download-btn{display:inline-block;background-color:#10b981;color:#fff;padding:1rem 2rem;border-radius:8px;text-decoration:none;font-weight:700;box-shadow:0 4px 6px #0000001a;margin-top:2rem}.error-banner{background:#fee2e2;color:#b91c1c;padding:.75rem 1rem;border-radius:10px;margin-bottom:1rem}.text-btn{background:none;color:#056f82;padding:0}.feature-tabs{display:flex;gap:6px;padding:6px;background:var(--color-bg-muted);border-radius:12px;margin-bottom:24px;flex-wrap:wrap;border:1px solid var(--color-border)}.feature-tab{display:flex;align-items:center;gap:6px;padding:10px 16px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-family:inherit}.feature-tab:hover{background:#056f8214;color:var(--color-text-primary)}.feature-tab.active{background:var(--color-bg-card);color:var(--color-primary);font-weight:600;box-shadow:0 1px 3px #00000014}.data-flow{display:flex;flex-direction:column;gap:24px}.flow-section{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:24px}.flow-title{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:8px}.connected-badge{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--color-bg-success);border-radius:8px;font-size:14px;font-weight:500;color:var(--color-text-success)}.connected-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-text-success);color:#fff;border-radius:50%;font-size:12px;font-weight:700}.reconnect-btn{margin-left:auto;padding:4px 12px;background:transparent;border:1px solid var(--color-text-success);border-radius:6px;color:var(--color-text-success);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s ease}.reconnect-btn:hover{background:#1987541a}.config-manager{display:flex;flex-direction:column;gap:16px}.config-layout{display:grid;grid-template-columns:320px 1fr;gap:20px;min-height:600px}.config-sidebar{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.config-sidebar-header{padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.config-sidebar-header h3{margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.config-sidebar-actions{display:flex;gap:6px}.config-btn-small{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-muted);color:var(--color-text-secondary);font-size:16px;cursor:pointer;transition:all .15s ease;font-family:inherit}.config-btn-small:hover{background:var(--color-bg-highlight);color:var(--color-primary);border-color:var(--color-primary)}.config-sidebar-loading,.config-sidebar-empty{padding:24px 20px;text-align:center;color:var(--color-text-secondary);font-size:14px}.config-file-list{flex:1;overflow-y:auto}.config-file-item{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;cursor:pointer;transition:background .1s ease;border-bottom:1px solid var(--color-border-light)}.config-file-item:hover{background:var(--color-bg-muted)}.config-file-item.active{background:var(--color-primary-bg);border-left:3px solid var(--color-primary)}.config-file-info{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0}.config-file-icon{font-size:18px;flex-shrink:0;margin-top:1px}.config-file-name{font-size:13px;font-weight:600;color:var(--color-text-primary);word-break:break-all}.config-file-desc{font-size:11px;color:var(--color-text-muted);margin-top:2px}.config-file-delete{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);font-size:16px;cursor:pointer;border-radius:4px;opacity:0;transition:all .15s ease;flex-shrink:0}.config-file-item:hover .config-file-delete{opacity:1}.config-file-delete:hover{color:var(--color-text-error);background:var(--color-bg-error)}.config-editor{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.config-editor-header{padding:12px 20px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;background:var(--color-bg-muted)}.config-editor-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--color-text-primary)}.config-unsaved-badge{font-size:11px;font-weight:500;padding:2px 8px;background:var(--color-accent-bg);color:var(--color-text-warning);border-radius:10px}.config-editor-actions{display:flex;gap:8px}.config-btn-primary{padding:8px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s ease}.config-btn-primary:hover{background:var(--color-primary-hover)}.config-btn-primary:disabled{opacity:.5;cursor:not-allowed}.config-btn-secondary{padding:8px 18px;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s ease}.config-btn-secondary:hover{background:var(--color-bg-muted);color:var(--color-text-primary)}.config-save-message{padding:8px 20px;background:var(--color-bg-success);color:var(--color-text-success);font-size:13px;font-weight:500}.config-textarea{flex:1;min-height:500px;padding:20px;border:none;outline:none;resize:none;font-family:SF Mono,Fira Code,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;color:var(--color-text-primary);background:#fafbfc;-moz-tab-size:2;tab-size:2}.config-textarea:focus{background:#fff}.config-editor-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:var(--color-text-secondary)}.config-editor-empty-icon{font-size:48px;margin-bottom:16px}.config-editor-empty h3{margin:0 0 8px;color:var(--color-text-primary)}.config-editor-empty p{margin:0 0 24px;font-size:14px}.config-editor-help{text-align:left;background:var(--color-bg-muted);padding:20px 24px;border-radius:10px;max-width:500px}.config-editor-help h4{margin:0 0 12px;font-size:14px;color:var(--color-text-primary)}.config-editor-help ul{margin:0;padding:0 0 0 20px;list-style-type:disc}.config-editor-help li{font-size:13px;margin-bottom:8px;line-height:1.5}.config-error{padding:12px 16px;background:var(--color-bg-error);color:var(--color-text-error);border-radius:8px;display:flex;justify-content:space-between;align-items:center;font-size:14px}.config-error-dismiss{background:none;border:none;color:var(--color-text-error);font-size:18px;cursor:pointer;padding:0 4px}.config-login{display:flex;justify-content:center;padding-top:48px}.config-login-card{text-align:center;padding:48px;background:var(--color-bg-card);border-radius:16px;box-shadow:0 4px 6px -1px #0000001a;max-width:400px}.config-login-card h3{margin:0 0 12px;font-size:20px;font-weight:600}.config-login-card p{color:var(--color-text-secondary);margin-bottom:20px}.login-btn-gitlab{padding:12px 28px;background:#fc6d26;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}.config-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.config-modal{background:var(--color-bg-card);border-radius:16px;padding:28px;width:480px;max-width:90vw;box-shadow:0 20px 60px #0003}.config-modal h3{margin:0 0 20px;font-size:18px;font-weight:600}.config-label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:16px}.config-input{padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;font-family:inherit;outline:none;transition:border-color .15s ease}.config-input:focus{border-color:var(--color-primary)}.config-hint{font-size:12px;color:var(--color-text-muted);font-weight:400}.config-textarea-small{padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;font-family:SF Mono,Fira Code,monospace;font-size:13px;resize:vertical;outline:none}.config-textarea-small:focus{border-color:var(--color-primary)}.config-form-error{padding:10px 14px;background:var(--color-bg-error);color:var(--color-text-error);border-radius:6px;font-size:13px;margin-bottom:16px}.config-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.pipeline-container{max-width:900px;margin:0 auto}.pipeline-login{display:flex;justify-content:center;padding:60px 0}.pipeline-login-card{text-align:center;padding:40px;background:var(--color-bg-secondary);border-radius:12px;border:1px solid var(--color-border)}.pipeline-login-card h3{margin-bottom:12px}.pipeline-login-card p{color:var(--color-text-muted);margin-bottom:20px}.pipeline-form{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:28px}.pipeline-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.pipeline-form-header h3{margin:0}.pipeline-history-btn{padding:8px 16px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;font-size:13px;color:var(--color-text-primary);transition:background .15s}.pipeline-history-btn:hover{background:var(--color-border)}.pipeline-error{padding:12px 16px;background:var(--color-bg-error);color:var(--color-text-error);border-radius:8px;margin-bottom:16px;font-size:14px}.pipeline-toggle-group{display:flex;gap:0;margin-bottom:20px;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.pipeline-toggle{flex:1;padding:10px 16px;border:none;background:var(--color-bg-tertiary);cursor:pointer;font-size:14px;font-weight:500;color:var(--color-text-secondary);transition:all .15s}.pipeline-toggle.active{background:var(--color-primary);color:#fff}.pipeline-toggle:not(.active):hover{background:var(--color-border)}.pipeline-field{margin-bottom:18px}.pipeline-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--color-text-secondary)}.pipeline-field input,.pipeline-field select{width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;font-family:inherit;background:var(--color-bg-primary);color:var(--color-text-primary);outline:none;box-sizing:border-box}.pipeline-field input:focus,.pipeline-field select:focus{border-color:var(--color-primary)}.pipeline-duration-bar{display:flex;gap:0;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.pipeline-duration-btn{flex:1;padding:8px;border:none;background:var(--color-bg-tertiary);cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text-secondary);transition:all .15s}.pipeline-duration-btn.active{background:var(--color-primary);color:#fff}.pipeline-duration-btn:not(.active):hover{background:var(--color-border)}.pipeline-start-btn{width:100%;padding:14px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .15s;margin-top:8px}.pipeline-start-btn:hover{opacity:.9}.pipeline-execution{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:24px}.pipeline-exec-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.pipeline-exec-info h3{margin:0 0 6px}.pipeline-exec-info{display:flex;flex-direction:column;gap:4px}.pipeline-meta{font-size:13px;color:var(--color-text-muted)}.pipeline-exec-actions{display:flex;gap:8px}.pipeline-back-btn{padding:8px 16px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;font-size:13px;color:var(--color-text-primary);transition:background .15s}.pipeline-back-btn:hover{background:var(--color-border)}.pipeline-status-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.pipeline-status-pending{background:var(--color-bg-tertiary);color:var(--color-text-muted)}.pipeline-status-running{background:#dbeafe;color:#1e40af}.pipeline-status-completed{background:#dcfce7;color:#166534}.pipeline-status-failed{background:#fee2e2;color:#991b1b}.pipeline-progress{position:relative;height:28px;background:var(--color-bg-tertiary);border-radius:14px;overflow:hidden;margin-bottom:24px}.pipeline-progress-bar{height:100%;background:linear-gradient(90deg,var(--color-primary),#34d399);transition:width .5s ease;border-radius:14px}.pipeline-progress-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--color-text-primary)}.pipeline-phase{margin-bottom:20px}.pipeline-phase-header{display:flex;align-items:center;gap:8px;padding:8px 0;margin-bottom:4px}.pipeline-phase-icon{font-size:16px}.pipeline-phase-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted)}.pipeline-step{border:1px solid var(--color-border);border-radius:8px;margin-bottom:4px;overflow:hidden;transition:border-color .15s}.pipeline-step.step-running{border-color:#3b82f6}.pipeline-step.step-success{border-color:#22c55e}.pipeline-step.step-failed{border-color:#ef4444}.pipeline-step-header{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .1s}.pipeline-step-header:hover{background:var(--color-bg-tertiary)}.pipeline-step-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.pipeline-step-icon.step-pending{background:var(--color-bg-tertiary);color:var(--color-text-muted)}.pipeline-step-icon.step-running{background:#dbeafe;color:#1e40af;animation:pulse 1.5s infinite}.pipeline-step-icon.step-success{background:#dcfce7;color:#166534}.pipeline-step-icon.step-failed{background:#fee2e2;color:#991b1b}.pipeline-step-icon.step-skipped{background:var(--color-bg-tertiary);color:var(--color-text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pipeline-step-info{flex:1;min-width:0}.pipeline-step-name{display:block;font-size:14px;font-weight:600;color:var(--color-text-primary)}.pipeline-step-desc{display:block;font-size:12px;color:var(--color-text-muted);margin-top:2px}.pipeline-step-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.pipeline-step-config{font-size:14px;color:var(--color-text-muted);cursor:help}.pipeline-step-duration{font-size:12px;color:var(--color-text-muted);font-family:SF Mono,monospace;background:var(--color-bg-tertiary);padding:2px 8px;border-radius:4px}.pipeline-retry-btn,.pipeline-skip-btn{padding:4px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.pipeline-retry-btn{background:var(--color-primary);color:#fff}.pipeline-skip-btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.pipeline-retry-btn:hover,.pipeline-skip-btn:hover{opacity:.8}.pipeline-step-output{border-top:1px solid var(--color-border);background:#1a1a2e;max-height:400px;overflow-y:auto}.pipeline-step-output pre{margin:0;padding:16px;font-family:SF Mono,Fira Code,monospace;font-size:12px;line-height:1.6;color:#e0e0e0;white-space:pre-wrap;word-break:break-word}.pipeline-step-error{color:#ef4444;font-weight:600}.pipeline-result{margin-top:20px;padding:20px;background:#dcfce7;border-radius:10px;border:1px solid #86efac}.pipeline-result h4{margin:0 0 14px;color:#166534}.pipeline-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pipeline-result-grid>div{display:flex;flex-direction:column;gap:2px}.pipeline-result-grid strong{font-size:12px;color:#166534;text-transform:uppercase}.pipeline-result-grid span,.pipeline-result-grid a{font-size:14px;color:#15803d;word-break:break-all}.pipeline-history{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:24px}.pipeline-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.pipeline-history-header h3{margin:0}.pipeline-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.pipeline-stat-card{text-align:center;padding:16px;background:var(--color-bg-tertiary);border-radius:10px;border:1px solid var(--color-border)}.pipeline-stat-card.stat-success{background:#f0fdf4;border-color:#86efac}.pipeline-stat-card.stat-failed{background:#fef2f2;border-color:#fca5a5}.pipeline-stat-number{display:block;font-size:28px;font-weight:700;color:var(--color-text-primary)}.pipeline-stat-label{display:block;font-size:12px;color:var(--color-text-muted);text-transform:uppercase;margin-top:4px}.pipeline-history-table{border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.pipeline-history-row{display:grid;grid-template-columns:2fr 1fr 1fr 2fr 1fr 2fr;gap:8px;padding:12px 16px;align-items:center;font-size:13px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .1s}.pipeline-history-row:last-child{border-bottom:none}.pipeline-history-row:not(.pipeline-history-header-row):hover{background:var(--color-bg-tertiary)}.pipeline-history-header-row{background:var(--color-bg-tertiary);font-weight:700;text-transform:uppercase;font-size:11px;color:var(--color-text-muted);letter-spacing:.5px;cursor:default}.pipeline-history-org{font-weight:600;color:var(--color-text-primary)}.pipeline-loading,.pipeline-empty{text-align:center;padding:40px;color:var(--color-text-muted);font-size:14px}.e2e-runner{max-width:1200px}.e2e-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px}.e2e-header h2{font-size:20px;font-weight:700;margin:0 0 4px}.e2e-subtitle{color:var(--color-text-muted);font-size:14px;margin:0}.e2e-header-actions{display:flex;gap:8px}.e2e-mono{font-family:SF Mono,Monaco,Menlo,monospace;font-size:.9em}.e2e-loading,.e2e-empty{text-align:center;padding:48px 24px;color:var(--color-text-muted);font-size:14px}.e2e-slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}@media (max-width: 900px){.e2e-slots-grid{grid-template-columns:1fr}}.e2e-slot-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:20px}.e2e-slot-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.e2e-slot-number{width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.e2e-slot-title{font-weight:600;font-size:15px}.e2e-field{display:block;margin-bottom:12px}.e2e-field-label{display:block;font-size:13px;font-weight:600;color:var(--color-text-secondary);margin-bottom:4px}.e2e-select{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:13px;background:var(--color-bg-primary);color:var(--color-text-primary)}.e2e-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926}.e2e-actions{display:flex;justify-content:center;padding:8px 0 16px}.e2e-run-btn{padding:12px 36px!important;font-size:15px!important;font-weight:700!important}.e2e-progress{margin-bottom:24px}.e2e-progress-bar{height:8px;background:var(--color-bg-tertiary);border-radius:4px;overflow:hidden;margin-bottom:8px}.e2e-progress-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .4s ease}.e2e-progress-fill.e2e-progress-success{background:#22c55e}.e2e-progress-fill.e2e-progress-mixed{background:#f59e0b}.e2e-progress-text{font-size:13px;color:var(--color-text-muted)}.e2e-summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.e2e-summary-card{display:flex;align-items:center;gap:12px;padding:16px;border-radius:var(--radius-xl);border:1px solid}.e2e-summary-pass{background:#ecfdf5;border-color:#86efac}.e2e-summary-fail{background:#fef2f2;border-color:#fca5a5}.e2e-summary-icon{font-size:24px;font-weight:700;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%}.e2e-summary-pass .e2e-summary-icon{color:#16a34a;background:#dcfce7}.e2e-summary-fail .e2e-summary-icon{color:#dc2626;background:#fee2e2}.e2e-summary-details strong{display:block;font-size:14px}.e2e-summary-meta{font-size:12px;color:var(--color-text-muted);margin-top:2px}.e2e-grid{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;margin-bottom:24px}.e2e-grid-header{display:grid;grid-template-columns:180px repeat(3,1fr);border-bottom:2px solid var(--color-border);background:var(--color-bg-tertiary)}.e2e-grid-col-header{padding:12px 16px;text-align:center;font-size:13px}.e2e-grid-col-meta{font-size:11px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;margin:2px auto 0}.e2e-grid-row{display:grid;grid-template-columns:180px repeat(3,1fr);border-bottom:1px solid var(--color-border)}.e2e-grid-row:last-child{border-bottom:none}.e2e-grid-label{padding:14px 16px;font-weight:600;font-size:13px;display:flex;align-items:center;gap:8px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border)}.e2e-phase-icon{font-size:15px}.e2e-grid-cell{padding:14px 16px;text-align:center;font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-right:1px solid var(--color-border);transition:background .15s}.e2e-grid-cell:last-child{border-right:none}.e2e-cell-clickable{cursor:pointer}.e2e-cell-clickable:hover{background:var(--color-bg-tertiary)}.e2e-cell-running{background:#eff6ff}.e2e-cell-success{background:#f0fdf4}.e2e-cell-failed{background:#fef2f2}.e2e-cell-status{display:flex;align-items:center;gap:6px;font-weight:600}.e2e-cell-duration{font-size:11px;color:var(--color-text-muted)}@keyframes e2e-spin{to{transform:rotate(360deg)}}.e2e-spinner{display:inline-block;width:14px;height:14px;border:2px solid #93c5fd;border-top-color:#3b82f6;border-radius:50%;animation:e2e-spin .8s linear infinite}.e2e-log-panel{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);margin-bottom:24px;overflow:hidden}.e2e-log-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:14px}.e2e-log-close{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:4px 12px;font-size:12px;cursor:pointer;color:var(--color-text-secondary)}.e2e-log-close:hover{background:var(--color-bg-secondary)}.e2e-log-error{padding:8px 16px;background:#fef2f2;color:#dc2626;font-size:13px;border-bottom:1px solid #fca5a5}.e2e-log-output{margin:0;padding:16px;font-family:SF Mono,Monaco,Menlo,monospace;font-size:12px;line-height:1.6;white-space:pre-wrap;max-height:400px;overflow-y:auto;background:#1e293b;color:#e2e8f0}.e2e-org-details{margin-bottom:24px}.e2e-org-details h3{font-size:16px;font-weight:600;margin:0 0 12px}.e2e-org-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.e2e-org-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;font-size:13px}.e2e-org-card h4{margin:0 0 8px;font-size:13px;font-weight:600}.e2e-org-card div{margin-bottom:4px;word-break:break-all}.e2e-org-card a{color:var(--color-primary);text-decoration:none}.e2e-org-card a:hover{text-decoration:underline}.e2e-history-table{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.e2e-history-table table{width:100%;border-collapse:collapse;font-size:13px}.e2e-history-table th{text-align:left;padding:12px 16px;background:var(--color-bg-tertiary);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.e2e-history-table td{padding:12px 16px;border-bottom:1px solid var(--color-border)}.e2e-history-table tr:last-child td{border-bottom:none}.e2e-history-table tbody tr:hover{background:var(--color-bg-tertiary)}.e2e-status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600;text-transform:capitalize}.e2e-status-running{background:#dbeafe;color:#2563eb}.e2e-status-completed{background:#dcfce7;color:#16a34a}.e2e-status-failed{background:#fee2e2;color:#dc2626}.e2e-status-pending{background:#f1f5f9;color:#64748b}
