@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.sidebar-header[data-v-0803e740]{display:flex;align-items:center;justify-content:space-between;padding:0 16px;margin-bottom:24px;min-height:40px}.sidebar-logo[data-v-0803e740]{flex:1}.sidebar-logo h1[data-v-0803e740]{font-size:20px;font-weight:700}.sidebar-toggle[data-v-0803e740]{width:32px;height:32px;border:none;background:#ffffff1a;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .2s}.sidebar-toggle[data-v-0803e740]:hover{background:#fff3}.sidebar.collapsed .sidebar-header[data-v-0803e740]{justify-content:center;padding:0}.sidebar.collapsed .sidebar-toggle[data-v-0803e740]{margin:0 auto}.nav-text[data-v-0803e740]{white-space:nowrap}.custom-select-wrapper[data-v-21421385]{position:relative;width:100%}.custom-select[data-v-21421385]{position:relative;cursor:pointer}.custom-select-trigger[data-v-21421385]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fff;border:2px solid #e2e8f0;border-radius:10px;transition:all .2s ease}.custom-select-wrapper.is-focused .custom-select-trigger[data-v-21421385]{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.custom-select-value[data-v-21421385]{font-size:14px;color:#1e293b;flex:1;text-align:left}.custom-select-value.is-placeholder[data-v-21421385]{color:#94a3b8}.custom-select-arrow[data-v-21421385]{display:flex;align-items:center;justify-content:center;color:#94a3b8;transition:all .2s ease;margin-left:8px}.custom-select-wrapper.is-focused .custom-select-arrow[data-v-21421385]{color:#4f46e5;transform:rotate(180deg)}.custom-select-dropdown[data-v-21421385]{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 40px #0000001f,0 0 0 1px #00000005;z-index:1000;overflow:hidden;max-height:280px;overflow-y:auto}.custom-select-dropdown[data-v-21421385]::-webkit-scrollbar{width:6px}.custom-select-dropdown[data-v-21421385]::-webkit-scrollbar-track{background:#f1f5f9}.custom-select-dropdown[data-v-21421385]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.custom-select-dropdown[data-v-21421385]::-webkit-scrollbar-thumb:hover{background:#94a3b8}.custom-select-option[data-v-21421385]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;transition:all .15s ease;border-left:3px solid transparent}.custom-select-option[data-v-21421385]:first-child{border-top-left-radius:12px;border-top-right-radius:12px}.custom-select-option[data-v-21421385]:last-child{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.custom-select-option[data-v-21421385]:hover{background:#f8fafc}.custom-select-option.is-selected[data-v-21421385]{background:#4f46e50f;border-left-color:#4f46e5}.option-content[data-v-21421385]{display:flex;flex-direction:column;gap:2px;flex:1}.option-label[data-v-21421385]{font-size:14px;color:#1e293b;font-weight:500}.option-sublabel[data-v-21421385]{font-size:12px;color:#64748b}.check-icon[data-v-21421385]{color:#4f46e5;flex-shrink:0;margin-left:8px}.custom-select-empty[data-v-21421385]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:#94a3b8;font-size:14px}.custom-select-empty svg[data-v-21421385]{opacity:.5}.custom-select-backdrop[data-v-21421385]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999}.dropdown-enter-active[data-v-21421385],.dropdown-leave-active[data-v-21421385]{transition:all .2s cubic-bezier(.4,0,.2,1)}.dropdown-enter-from[data-v-21421385],.dropdown-leave-to[data-v-21421385]{opacity:0;transform:translateY(-8px) scale(.98)}.category-tabs[data-v-c58e5734]{display:flex;gap:8px;flex:1;justify-content:center}.tab-btn[data-v-c58e5734]{padding:8px 16px;border:1px solid #30363d;background:transparent;color:#8b949e;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.tab-btn[data-v-c58e5734]:hover{background:#21262d;color:#c9d1d9}.tab-btn.active[data-v-c58e5734]{background:#238636;color:#fff;border-color:#238636}.category-badge[data-v-c58e5734]{display:inline-block;padding:3px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-build[data-v-c58e5734]{background:#3fb95026;color:#3fb950}.badge-container[data-v-c58e5734]{background:#8b5cf626;color:#a371f7}.help-tip[data-v-c58e5734]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;cursor:pointer;color:#6e7681;transition:color .2s}.help-tip[data-v-c58e5734]:hover{color:#4f46e5}.help-panel[data-v-c58e5734]{margin-bottom:12px;padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b}.help-panel-header[data-v-c58e5734]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.help-panel-header h4[data-v-c58e5734]{font-size:14px;font-weight:600;color:#0f172a;margin:0}.help-close[data-v-c58e5734]{width:24px;height:24px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:14px;color:#64748b;display:flex;align-items:center;justify-content:center}.help-close[data-v-c58e5734]:hover{background:#e2e8f0;color:#0f172a}.help-note[data-v-c58e5734]{font-size:13px;color:#64748b;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.help-note code[data-v-c58e5734]{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;color:#4f46e5}.help-section[data-v-c58e5734]{margin-bottom:14px}.help-section[data-v-c58e5734]:last-of-type{margin-bottom:12px}.help-section h5[data-v-c58e5734]{font-size:13px;font-weight:600;color:#475569;margin-bottom:8px}.help-vars[data-v-c58e5734]{display:flex;flex-wrap:wrap;gap:6px}.help-var[data-v-c58e5734]{display:flex;align-items:center;gap:6px;padding:4px 8px;background:#f8fafc;border-radius:6px;font-size:12px}.help-var code[data-v-c58e5734]{font-family:SF Mono,Monaco,Consolas,monospace;color:#4f46e5;font-weight:500}.help-var span[data-v-c58e5734]{color:#64748b}.help-config-note[data-v-c58e5734]{font-size:11px;color:#64748b;margin:8px 0 0;font-style:italic}.help-tip-text[data-v-c58e5734]{font-size:12px;color:#64748b;padding-top:10px;border-top:1px solid #e2e8f0;margin:0}.help-tip-text code[data-v-c58e5734]{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;color:#4f46e5}.fade-enter-active[data-v-c58e5734],.fade-leave-active[data-v-c58e5734]{transition:opacity .2s ease}.fade-enter-from[data-v-c58e5734],.fade-leave-to[data-v-c58e5734]{opacity:0}.script-preview pre[data-v-f6be6dbe]{margin:0;white-space:pre-wrap;word-break:break-all;font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.6}.service-link[data-v-a07a406e]{color:var(--primary);text-decoration:none}.service-link[data-v-a07a406e]:hover{text-decoration:underline}.git-cell[data-v-a07a406e]{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-btn.build[data-v-a07a406e]{background:#10b981;color:#fff}.action-btn.terminal[data-v-a07a406e]{background:#8b5cf6;color:#fff;display:inline-flex;align-items:center;gap:4px}.action-btn.terminal[data-v-a07a406e]:hover{background:#7c3aed}.badge-default[data-v-a07a406e]{background:#f1f5f9;color:#64748b}.build-tip[data-v-a07a406e]{color:#888;font-size:13px;margin-bottom:8px}.version-tip[data-v-a07a406e]{color:#f59e0b;font-size:12px;margin-top:4px}.required[data-v-a07a406e]{color:#ef4444}.version-badge[data-v-a07a406e]{font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;font-weight:500;color:#3b82f6;background:#eff6ff;padding:2px 8px;border-radius:4px}.config-help[data-v-a07a406e]{font-size:12px;color:#64748b;margin-bottom:8px;padding:8px;background:#f1f5f9;border-radius:4px}.config-help code[data-v-a07a406e]{background:#e2e8f0;padding:2px 4px;border-radius:3px;font-family:monospace;color:#4f46e5}.config-list[data-v-a07a406e]{display:flex;flex-direction:column;gap:8px}.config-item[data-v-a07a406e]{display:flex;gap:8px;align-items:center}.config-key[data-v-a07a406e]{flex:1;min-width:120px}.config-value[data-v-a07a406e]{flex:2;min-width:180px}.btn-icon[data-v-a07a406e]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:#64748b;transition:all .2s}.btn-icon[data-v-a07a406e]:hover{background:#fee2e2;color:#dc2626}.btn-sm[data-v-a07a406e]{padding:6px 12px;font-size:13px;width:fit-content}.help-tip[data-v-a07a406e]{display:inline-flex;align-items:center;margin-left:4px;cursor:pointer;color:#6b7280;transition:color .2s}.help-tip[data-v-a07a406e]:hover{color:#4f46e5}.header-actions[data-v-a07a406e]{display:flex;align-items:center;gap:12px}.filter-dropdown[data-v-a07a406e]{width:180px}.filter-dropdown[data-v-a07a406e] .custom-select{height:32px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:14px}.filter-dropdown[data-v-a07a406e] .custom-select:hover{border-color:#4f46e5}.filter-dropdown[data-v-a07a406e] .select-trigger{padding:0 12px;height:100%;display:flex;align-items:center;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px}.filter-dropdown[data-v-a07a406e] .custom-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-execution[data-v-b25948aa]{margin-top:24px}.execution-header[data-v-b25948aa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.execution-header h3[data-v-b25948aa]{font-size:16px;font-weight:600;color:var(--text-primary)}.execution-summary[data-v-b25948aa]{display:flex;align-items:center;gap:12px}.summary-badge[data-v-b25948aa]{padding:4px 12px;border-radius:12px;font-size:13px;font-weight:500}.summary-badge.SUCCESS[data-v-b25948aa]{background:#dcfce7;color:#166534}.summary-badge.FAILED[data-v-b25948aa]{background:#fee2e2;color:#991b1b}.summary-badge.RUNNING[data-v-b25948aa]{background:#fef3c7;color:#92400e}.summary-badge.PENDING[data-v-b25948aa]{background:#f1f5f9;color:#64748b}.loading-state[data-v-b25948aa]{display:flex;flex-direction:column;align-items:center;padding:40px 20px;color:var(--text-secondary)}.spinner[data-v-b25948aa]{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin-b25948aa .8s linear infinite;margin-bottom:12px}@keyframes spin-b25948aa{to{transform:rotate(360deg)}}.empty-state[data-v-b25948aa]{display:flex;flex-direction:column;align-items:center;padding:40px 20px;text-align:center}.empty-icon[data-v-b25948aa]{width:64px;height:64px;background:var(--bg);border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:var(--text-tertiary)}.empty-state p[data-v-b25948aa]{color:var(--text-secondary);font-size:14px}.stages-timeline[data-v-b25948aa]{display:flex;flex-direction:column}.stage-node[data-v-b25948aa]{display:flex;gap:16px;position:relative}.stage-node.current .node-indicator[data-v-b25948aa]{transform:scale(1.1)}.node-connector[data-v-b25948aa]{display:flex;flex-direction:column;align-items:center;width:24px;flex-shrink:0}.node-line[data-v-b25948aa]{width:2px;flex:1;min-height:20px;background:var(--border)}.stage-node.SUCCESS .node-line[data-v-b25948aa]{background:#22c55e}.stage-node.FAILED .node-line[data-v-b25948aa]{background:#ef4444}.node-indicator[data-v-b25948aa]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1;transition:transform .2s ease}.status-ring[data-v-b25948aa]{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid var(--border);background:var(--card-bg);color:var(--text-tertiary)}.status-ring.SUCCESS[data-v-b25948aa]{border-color:#22c55e;background:#dcfce7;color:#166534}.status-ring.FAILED[data-v-b25948aa]{border-color:#ef4444;background:#fee2e2;color:#991b1b}.status-ring.RUNNING[data-v-b25948aa]{border-color:#f59e0b;background:#fef3c7;color:#92400e}.status-ring.SKIPPED[data-v-b25948aa]{border-color:#94a3b8;background:#f1f5f9;color:#64748b}.pending-dot[data-v-b25948aa]{width:8px;height:8px;background:currentColor;border-radius:50%}.node-content[data-v-b25948aa]{flex:1;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .15s ease}.node-content[data-v-b25948aa]:hover{border-color:var(--primary)}.node-header[data-v-b25948aa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.node-title[data-v-b25948aa]{display:flex;align-items:center;gap:12px}.stage-index[data-v-b25948aa]{width:24px;height:24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.stage-name[data-v-b25948aa]{font-size:14px;font-weight:500;color:var(--text-primary)}.node-meta[data-v-b25948aa]{display:flex;align-items:center;gap:12px}.status-badge[data-v-b25948aa]{padding:3px 10px;border-radius:10px;font-size:12px;font-weight:500}.status-badge.SUCCESS[data-v-b25948aa]{background:#dcfce7;color:#166534}.status-badge.FAILED[data-v-b25948aa]{background:#fee2e2;color:#991b1b}.status-badge.RUNNING[data-v-b25948aa]{background:#fef3c7;color:#92400e}.status-badge.PENDING[data-v-b25948aa]{background:#f1f5f9;color:#64748b}.duration[data-v-b25948aa]{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.running-indicator[data-v-b25948aa]{margin-top:12px}.progress-bar[data-v-b25948aa]{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-bottom:8px}.progress-fill[data-v-b25948aa]{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;animation:progress-b25948aa 2s ease-in-out infinite}@keyframes progress-b25948aa{0%{width:0%}50%{width:70%}to{width:100%}}.running-indicator span[data-v-b25948aa]{font-size:12px;color:var(--text-secondary)}.node-output[data-v-b25948aa]{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.output-header[data-v-b25948aa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.output-header span[data-v-b25948aa]{font-size:12px;font-weight:500;color:var(--text-secondary)}.copy-btn[data-v-b25948aa]{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--border);background:transparent;border-radius:6px;font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.copy-btn[data-v-b25948aa]:hover{background:var(--bg);color:var(--text-primary)}.output-content[data-v-b25948aa]{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;font-family:Monaco,Menlo,monospace;font-size:12px;line-height:1.6;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;color:var(--text-primary);margin:0}.error-message[data-v-b25948aa]{display:flex;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 12px;background:#fee2e2;border-radius:8px;font-size:13px;color:#991b1b}.error-message svg[data-v-b25948aa]{flex-shrink:0;margin-top:2px}.btn[data-v-b25948aa]{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none}.btn-outline[data-v-b25948aa]{background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline[data-v-b25948aa]:hover:not(:disabled){background:var(--bg)}.btn[data-v-b25948aa]:disabled{opacity:.6;cursor:not-allowed}.spin[data-v-b25948aa],.refresh-icon.spin[data-v-b25948aa]{animation:spin-b25948aa 1s linear infinite}.modal-overlay[data-v-b25948aa]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-b25948aa]{background:var(--card-bg);border-radius:16px;width:100%;max-width:800px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.modal-header[data-v-b25948aa]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0}.modal-header h3[data-v-b25948aa]{font-size:18px;font-weight:600;margin:0}.modal-close[data-v-b25948aa]{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:18px;color:var(--text-secondary)}.modal-close[data-v-b25948aa]:hover{background:var(--bg)}.modal-body[data-v-b25948aa]{padding:24px;overflow-y:auto;flex:1}.modal-footer[data-v-b25948aa]{display:flex;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0}.output-box[data-v-b25948aa]{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:16px;font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.6;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.output-box pre[data-v-b25948aa]{margin:0;color:var(--text-primary)}.output-success[data-v-b25948aa]{border-color:#22c55e}.output-error[data-v-b25948aa]{border-color:#ef4444}.page-header[data-v-0b27766e]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.header-left[data-v-0b27766e]{display:flex;align-items:center;gap:16px}.back-btn[data-v-0b27766e]{width:40px;height:40px;border:1px solid var(--border);background:var(--card-bg);border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s ease}.back-btn[data-v-0b27766e]:hover{border-color:var(--primary);color:var(--primary)}.header-left h2[data-v-0b27766e]{font-size:24px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.header-left p[data-v-0b27766e]{color:var(--text-secondary);font-size:14px}.header-actions[data-v-0b27766e]{display:flex;gap:12px}.info-grid[data-v-0b27766e]{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card[data-v-0b27766e]{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;overflow:hidden}.card-header[data-v-0b27766e]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.card-header h3[data-v-0b27766e]{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.card-body[data-v-0b27766e]{padding:20px}.info-item[data-v-0b27766e]{margin-bottom:12px}.info-item[data-v-0b27766e]:last-child{margin-bottom:0}.info-item .label[data-v-0b27766e]{color:var(--text-secondary);font-size:13px}.info-item .value[data-v-0b27766e]{font-weight:500;color:var(--text-primary);margin-left:8px}.status-display[data-v-0b27766e]{text-align:center;padding:16px 0}.status-badge[data-v-0b27766e]{display:inline-block;padding:10px 28px;border-radius:12px;font-size:16px;font-weight:600}.status-badge.success[data-v-0b27766e]{background:#dcfce7;color:#166534}.status-badge.failed[data-v-0b27766e]{background:#fee2e2;color:#991b1b}.status-badge.building[data-v-0b27766e]{background:#fef3c7;color:#92400e}.status-badge.idle[data-v-0b27766e]{background:#f1f5f9;color:#64748b}.flow-card .card-body[data-v-0b27766e]{min-height:120px}.flow-info[data-v-0b27766e]{display:flex;flex-direction:column;gap:12px}.flow-name[data-v-0b27766e]{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:var(--text-primary)}.flow-name svg[data-v-0b27766e]{color:var(--primary)}.flow-stages[data-v-0b27766e]{display:flex;flex-wrap:wrap;gap:8px}.stage-badge[data-v-0b27766e]{padding:4px 10px;background:var(--bg);border-radius:6px;font-size:12px;color:var(--text-secondary)}.no-flow[data-v-0b27766e]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;color:var(--text-tertiary);text-align:center}.no-flow svg[data-v-0b27766e]{opacity:.5}.btn[data-v-0b27766e]{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none}.btn-sm[data-v-0b27766e]{padding:6px 12px;font-size:12px}.btn-success[data-v-0b27766e]{background:#22c55e;color:#fff}.btn-success[data-v-0b27766e]:hover:not(:disabled){background:#16a34a}.btn-primary[data-v-0b27766e]{background:var(--primary);color:#fff}.btn-primary[data-v-0b27766e]:hover:not(:disabled){background:var(--primary-dark)}.btn-outline[data-v-0b27766e]{background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline[data-v-0b27766e]:hover{background:var(--bg)}.btn[data-v-0b27766e]:disabled{opacity:.6;cursor:not-allowed}.table-container[data-v-0b27766e]{overflow-x:auto}table[data-v-0b27766e]{width:100%;border-collapse:collapse}th[data-v-0b27766e],td[data-v-0b27766e]{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}th[data-v-0b27766e]{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}td[data-v-0b27766e]{font-size:14px;color:var(--text-primary)}tr:hover td[data-v-0b27766e]{background:var(--bg)}.badge[data-v-0b27766e]{padding:4px 10px;border-radius:8px;font-size:12px;font-weight:500}.badge-success[data-v-0b27766e]{background:#dcfce7;color:#166534}.badge-danger[data-v-0b27766e]{background:#fee2e2;color:#991b1b}.badge-warning[data-v-0b27766e]{background:#fef3c7;color:#92400e}.action-btn[data-v-0b27766e]{padding:6px 12px;border:1px solid var(--border);background:transparent;border-radius:6px;font-size:12px;cursor:pointer;transition:all .15s ease}.action-btn.edit[data-v-0b27766e]:hover{background:var(--primary);border-color:var(--primary);color:#fff}.modal-overlay[data-v-0b27766e]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-0b27766e]{background:var(--card-bg);border-radius:16px;width:100%;max-width:900px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.modal-header[data-v-0b27766e]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h3[data-v-0b27766e]{font-size:18px;font-weight:600;margin:0}.modal-actions[data-v-0b27766e]{display:flex;align-items:center;gap:12px}.modal-close[data-v-0b27766e]{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:18px;color:var(--text-secondary)}.modal-close[data-v-0b27766e]:hover{background:var(--bg)}.modal-body[data-v-0b27766e]{padding:24px;overflow-y:auto;flex:1}.modal-footer[data-v-0b27766e]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border)}.status-tag[data-v-0b27766e]{padding:4px 12px;border-radius:8px;font-size:13px;font-weight:500}.status-tag.success[data-v-0b27766e]{background:#dcfce7;color:#166534}.status-tag.failed[data-v-0b27766e]{background:#fee2e2;color:#991b1b}.status-tag.building[data-v-0b27766e]{background:#fef3c7;color:#92400e}.build-meta[data-v-0b27766e]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.meta-item[data-v-0b27766e]{display:flex;flex-direction:column;gap:4px}.meta-label[data-v-0b27766e]{font-size:12px;color:var(--text-secondary)}.meta-value[data-v-0b27766e]{font-size:14px;font-weight:500;color:var(--text-primary)}.log-section[data-v-0b27766e]{margin-top:24px}.log-header[data-v-0b27766e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.log-header h4[data-v-0b27766e]{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.output-box[data-v-0b27766e]{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:16px;max-height:300px;overflow-y:auto}.output-box pre[data-v-0b27766e]{margin:0;font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-all;color:var(--text-primary)}.output-success[data-v-0b27766e]{border-color:#22c55e}.output-error[data-v-0b27766e]{border-color:#ef4444}.form-group[data-v-0b27766e]{margin-bottom:16px}.form-group label[data-v-0b27766e]{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.form-group input[data-v-0b27766e],.form-group textarea[data-v-0b27766e],.form-group select[data-v-0b27766e]{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:var(--bg);color:var(--text-primary)}.form-group input[data-v-0b27766e]:focus,.form-group textarea[data-v-0b27766e]:focus,.form-group select[data-v-0b27766e]:focus{outline:none;border-color:var(--primary)}.hint[data-v-0b27766e]{display:block;font-size:12px;color:var(--text-tertiary);margin-top:6px}.flow-select-list[data-v-0b27766e]{display:flex;flex-direction:column;gap:8px}.flow-select-item[data-v-0b27766e]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s ease}.flow-select-item[data-v-0b27766e]:hover{border-color:var(--primary)}.flow-select-item.selected[data-v-0b27766e]{border-color:var(--primary);background:#667eea0d}.flow-select-info[data-v-0b27766e]{display:flex;flex-direction:column;gap:4px}.flow-select-name[data-v-0b27766e]{font-size:14px;font-weight:500;color:var(--text-primary)}.flow-select-stages[data-v-0b27766e]{font-size:12px;color:var(--text-secondary)}.flow-select-check[data-v-0b27766e]{color:var(--primary)}.empty-state[data-v-0b27766e]{text-align:center;padding:32px;color:var(--text-secondary)}.required[data-v-0b27766e]{color:#ef4444}.version-tip[data-v-0b27766e]{color:#f59e0b;font-size:12px;margin-top:4px}.build-tip[data-v-0b27766e]{color:#888;font-size:13px;margin-bottom:8px}.build-progress-section[data-v-0b27766e]{margin-top:24px;background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:24px}.progress-header[data-v-0b27766e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.progress-title[data-v-0b27766e]{display:flex;align-items:center;gap:12px}.progress-title h3[data-v-0b27766e]{font-size:18px;font-weight:600;margin:0;color:var(--text-primary)}.building-icon[data-v-0b27766e]{width:24px;height:24px;border:3px solid var(--border);border-top-color:#f59e0b;border-radius:50%;animation:spin-0b27766e 1s linear infinite}.success-icon[data-v-0b27766e]{width:24px;height:24px;background:#22c55e;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.failed-icon[data-v-0b27766e]{width:24px;height:24px;background:#ef4444;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}@keyframes spin-0b27766e{to{transform:rotate(360deg)}}.version-tag[data-v-0b27766e]{padding:4px 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;font-size:13px;font-weight:500}.progress-stages[data-v-0b27766e]{margin-bottom:16px}.no-stages[data-v-0b27766e]{text-align:center;padding:24px;color:var(--text-secondary)}.no-stages p[data-v-0b27766e]{margin:0}.stages-pipeline[data-v-0b27766e]{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:8px 0}.pipeline-stage[data-v-0b27766e]{display:flex;align-items:center;flex-shrink:0}.stage-connector[data-v-0b27766e]{display:flex;align-items:center;margin:0 4px}.connector-line[data-v-0b27766e]{width:20px;height:3px;background:var(--border);margin-right:4px}.connector-line.SUCCESS[data-v-0b27766e]{background:#22c55e}.connector-line.FAILED[data-v-0b27766e]{background:#ef4444}.connector-line.RUNNING[data-v-0b27766e]{background:#f59e0b}.stage-connector svg[data-v-0b27766e]{color:var(--text-tertiary);flex-shrink:0}.stage-box[data-v-0b27766e]{display:flex;flex-direction:column;align-items:center;padding:16px 20px;background:var(--bg);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s ease;min-width:100px}.stage-box[data-v-0b27766e]:hover{border-color:var(--primary);transform:translateY(-2px)}.pipeline-stage.SUCCESS .stage-box[data-v-0b27766e]{border-color:#22c55e;background:#f0fdf4}.pipeline-stage.FAILED .stage-box[data-v-0b27766e]{border-color:#ef4444;background:#fef2f2}.pipeline-stage.RUNNING .stage-box[data-v-0b27766e],.pipeline-stage.active .stage-box[data-v-0b27766e]{border-color:#f59e0b;background:#fffbeb;box-shadow:0 0 0 3px #f59e0b33}.stage-icon[data-v-0b27766e]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:8px;background:var(--card-bg);border:2px solid var(--border)}.pipeline-stage.SUCCESS .stage-icon[data-v-0b27766e]{background:#22c55e;border-color:#22c55e;color:#fff}.pipeline-stage.FAILED .stage-icon[data-v-0b27766e]{background:#ef4444;border-color:#ef4444;color:#fff}.pipeline-stage.RUNNING .stage-icon[data-v-0b27766e],.pipeline-stage.active .stage-icon[data-v-0b27766e]{background:#f59e0b;border-color:#f59e0b;color:#fff}.spinner-small[data-v-0b27766e]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-0b27766e .8s linear infinite}.stage-number[data-v-0b27766e]{font-size:14px;font-weight:600;color:var(--text-secondary)}.pipeline-stage.SUCCESS .stage-number[data-v-0b27766e],.pipeline-stage.FAILED .stage-number[data-v-0b27766e],.pipeline-stage.RUNNING .stage-number[data-v-0b27766e]{color:#fff}.stage-info[data-v-0b27766e]{display:flex;flex-direction:column;align-items:center;gap:4px}.stage-name[data-v-0b27766e]{font-size:13px;font-weight:500;color:var(--text-primary);text-align:center}.stage-duration[data-v-0b27766e]{font-size:11px;color:var(--text-secondary)}.stage-log-panel[data-v-0b27766e]{margin-top:16px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.log-panel-header[data-v-0b27766e]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--border)}.log-stage-name[data-v-0b27766e]{font-size:14px;font-weight:500;color:var(--text-primary)}.log-panel-actions[data-v-0b27766e]{display:flex;gap:12px}.btn-text[data-v-0b27766e]{background:none;border:none;color:var(--primary);font-size:13px;cursor:pointer;padding:0}.btn-text[data-v-0b27766e]:hover{text-decoration:underline}.log-content[data-v-0b27766e]{background:#1e1e1e;padding:16px;max-height:300px;overflow-y:auto}.log-content pre[data-v-0b27766e]{margin:0;font-family:Monaco,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;color:#d4d4d4;white-space:pre-wrap;word-break:break-all}@media (max-width: 1024px){.info-grid[data-v-0b27766e]{grid-template-columns:1fr}.build-meta[data-v-0b27766e]{grid-template-columns:repeat(2,1fr)}}.modal{background:var(--card-bg)!important;border-radius:16px!important;width:100%!important;max-width:900px!important;max-height:85vh!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;box-shadow:0 25px 50px -12px #00000040!important}.service-link[data-v-15b51af1]{color:var(--primary);text-decoration:none}.service-link[data-v-15b51af1]:hover{text-decoration:underline}.commit-cell[data-v-15b51af1]{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:monospace}.version-tag[data-v-15b51af1]{font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;color:#3b82f6;background:#eff6ff;padding:2px 6px;border-radius:4px}.log-header-info[data-v-15b51af1]{display:flex;align-items:center;gap:12px}.log-header-info h3[data-v-15b51af1]{margin:0}.loading-dots[data-v-15b51af1]{color:#f59e0b;animation:blink-15b51af1 1s infinite}.refresh-tip[data-v-15b51af1]{color:#888;font-size:13px}@keyframes blink-15b51af1{0%,to{opacity:1}50%{opacity:.3}}.log-output[data-v-15b51af1]{background:#0d1117;color:#c9d1d9;padding:16px;max-height:500px;overflow-y:auto;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.5;border-radius:0 0 8px 8px}.log-output pre[data-v-15b51af1]{margin:0;white-space:pre-wrap;word-break:break-all}.action-btn.stop[data-v-15b51af1]{background:#ef4444;color:#fff;margin-left:4px}.action-btn.stop[data-v-15b51af1]:hover{background:#dc2626}.connection-controls[data-v-a4ec7a2d]{display:flex;gap:10px;align-items:center}.server-select-wrapper[data-v-a4ec7a2d]{min-width:220px}.service-badge[data-v-a4ec7a2d]{background:#10b981;color:#fff;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500}.terminal-wrapper[data-v-a4ec7a2d]{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;margin:16px}.terminal-header[data-v-a4ec7a2d]{background:#2d2d2d;padding:10px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #1e1e1e}.terminal-dots[data-v-a4ec7a2d]{display:flex;gap:6px}.terminal-dots .dot[data-v-a4ec7a2d]{width:12px;height:12px;border-radius:50%}.terminal-dots .red[data-v-a4ec7a2d]{background:#ff5f56}.terminal-dots .yellow[data-v-a4ec7a2d]{background:#ffbd2e}.terminal-dots .green[data-v-a4ec7a2d]{background:#27ca40}.terminal-title[data-v-a4ec7a2d]{color:#888;font-size:12px}.terminal-shortcuts[data-v-a4ec7a2d]{margin-left:auto;display:flex;gap:16px}.shortcut-tip[data-v-a4ec7a2d]{color:#666;font-size:11px;background:#333;padding:2px 8px;border-radius:4px}.terminal-container[data-v-a4ec7a2d]{background:#1a1a1a;min-height:450px;padding:16px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;display:flex;flex-direction:column;position:relative}.terminal-resize-handle[data-v-a4ec7a2d]{position:absolute;top:0;left:0;right:0;height:6px;cursor:ns-resize;background:transparent;transition:background .2s}.terminal-resize-handle[data-v-a4ec7a2d]:hover{background:#4ec9b04d}.terminal-output[data-v-a4ec7a2d]{flex:1;color:#d4d4d4;line-height:1.7;overflow-y:auto;max-height:380px;scrollbar-width:thin;scrollbar-color:#555 #1a1a1a}.terminal-output[data-v-a4ec7a2d]::-webkit-scrollbar{width:8px}.terminal-output[data-v-a4ec7a2d]::-webkit-scrollbar-track{background:#1a1a1a;border-radius:4px}.terminal-output[data-v-a4ec7a2d]::-webkit-scrollbar-thumb{background:#555;border-radius:4px}.terminal-output[data-v-a4ec7a2d]::-webkit-scrollbar-thumb:hover{background:#777}.terminal-empty[data-v-a4ec7a2d]{color:#666;font-style:italic}.terminal-line[data-v-a4ec7a2d]{display:flex;align-items:flex-start;margin-bottom:4px}.terminal-line.command[data-v-a4ec7a2d]{color:#4ec9b0;margin-top:8px}.terminal-line.output[data-v-a4ec7a2d]{color:#d4d4d4;padding-left:20px;white-space:pre-wrap;word-break:break-all}.terminal-line.error[data-v-a4ec7a2d]{color:#f48771;padding-left:20px;white-space:pre-wrap}.terminal-line.info[data-v-a4ec7a2d]{color:#9cdcfe}.terminal-line.success[data-v-a4ec7a2d]{color:#6a9955}.prompt-user[data-v-a4ec7a2d]{color:#4ec9b0;margin-right:8px;font-weight:700}.prompt[data-v-a4ec7a2d]{color:#4ec9b0;margin-right:8px;font-weight:700;flex-shrink:0}.prompt-user-host[data-v-a4ec7a2d]{color:#4ec9b0;font-weight:700;flex-shrink:0;margin-right:8px}.line-content[data-v-a4ec7a2d]{white-space:pre-wrap;word-break:break-all}.terminal-input-area[data-v-a4ec7a2d]{display:flex;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #333}.terminal-input[data-v-a4ec7a2d]{flex:1;background:transparent;border:none;color:#d4d4d4;font-family:inherit;font-size:inherit;outline:none;caret-color:#4ec9b0}.terminal-input[data-v-a4ec7a2d]::placeholder{color:#666}.terminal-disconnected[data-v-a4ec7a2d]{color:#666;text-align:center;padding:60px 20px}.terminal-disconnected .tip[data-v-a4ec7a2d]{font-size:12px;color:#888;margin-top:8px}.quick-commands[data-v-a4ec7a2d]{margin:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quick-commands .label[data-v-a4ec7a2d]{color:#64748b;font-size:14px}.quick-cmd-btn[data-v-a4ec7a2d]{padding:6px 14px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;font-family:Monaco,Menlo,monospace;cursor:pointer;transition:all .2s}.quick-cmd-btn[data-v-a4ec7a2d]:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e1}.quick-cmd-btn[data-v-a4ec7a2d]:disabled{opacity:.5;cursor:not-allowed}.btn-danger[data-v-a4ec7a2d]{background:#ef4444;color:#fff}.btn-danger[data-v-a4ec7a2d]:hover:not(:disabled){background:#dc2626}.action-btns[data-v-cda4737a]{display:flex;gap:8px}.action-btn[data-v-cda4737a]{padding:6px 12px;border:none;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:4px}.action-btn.terminal[data-v-cda4737a]{background:#10b981;color:#fff}.action-btn.terminal[data-v-cda4737a]:hover{background:#059669}.action-btn.edit[data-v-cda4737a]{background:#e0e7ff;color:#4338ca}.action-btn.delete[data-v-cda4737a]{background:#fee2e2;color:#dc2626}code[data-v-cda4737a]{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:13px}.page-header[data-v-9355b404]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.page-header h2[data-v-9355b404]{font-size:28px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.page-header p[data-v-9355b404]{color:var(--text-secondary);font-size:14px}.header-actions[data-v-9355b404]{display:flex;gap:12px}.loading-state[data-v-9355b404]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary)}.spinner[data-v-9355b404]{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin-9355b404 .8s linear infinite;margin-bottom:16px}@keyframes spin-9355b404{to{transform:rotate(360deg)}}.empty-state[data-v-9355b404]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.empty-icon[data-v-9355b404]{width:120px;height:120px;background:linear-gradient(135deg,#667eea20,#764ba220);border-radius:24px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;color:var(--primary)}.empty-state h3[data-v-9355b404]{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.empty-state p[data-v-9355b404]{color:var(--text-secondary);margin-bottom:24px}.flow-grid[data-v-9355b404]{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:24px}.flow-card[data-v-9355b404]{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;overflow:hidden;cursor:pointer;transition:all .2s ease}.flow-card[data-v-9355b404]:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001f;border-color:var(--primary)}.flow-card-header[data-v-9355b404]{display:flex;align-items:center;gap:16px;padding:20px;border-bottom:1px solid var(--border)}.flow-icon[data-v-9355b404]{width:48px;height:48px;background:linear-gradient(135deg,#667eea20,#764ba220);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--primary)}.flow-info[data-v-9355b404]{flex:1;display:flex;flex-direction:column;gap:6px}.flow-info h3[data-v-9355b404]{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.status-pill[data-v-9355b404]{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;width:fit-content}.status-pill.active[data-v-9355b404]{background:#dcfce7;color:#166534}.status-pill.disabled[data-v-9355b404]{background:#f1f5f9;color:#64748b}.flow-actions[data-v-9355b404]{display:flex;gap:8px}.icon-btn[data-v-9355b404]{width:36px;height:36px;border:none;background:transparent;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s ease}.icon-btn[data-v-9355b404]:hover{background:var(--bg);color:var(--text-primary)}.icon-btn.danger[data-v-9355b404]:hover{background:#fee2e2;color:#dc2626}.flow-card-body[data-v-9355b404]{padding:20px}.flow-description[data-v-9355b404]{color:var(--text-secondary);font-size:14px;margin-bottom:16px;line-height:1.5}.stage-preview[data-v-9355b404]{margin-top:12px}.stage-tags[data-v-9355b404]{display:flex;flex-wrap:wrap;gap:8px}.stage-tag[data-v-9355b404]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg);border-radius:8px;font-size:13px;color:var(--text-primary)}.stage-number[data-v-9355b404]{width:20px;height:20px;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}.no-stages[data-v-9355b404]{color:var(--text-secondary);font-size:13px;font-style:italic}.flow-card-footer[data-v-9355b404]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--bg);border-top:1px solid var(--border)}.stage-count[data-v-9355b404]{font-size:13px;color:var(--text-secondary);font-weight:500}.flow-date[data-v-9355b404]{font-size:12px;color:var(--text-tertiary)}.btn[data-v-9355b404]{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none}.btn-primary[data-v-9355b404]{background:var(--primary);color:#fff}.btn-primary[data-v-9355b404]:hover{background:var(--primary-dark)}.btn-outline[data-v-9355b404]{background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline[data-v-9355b404]:hover{background:var(--bg)}.btn-danger[data-v-9355b404]{background:#dc2626;color:#fff}.btn-danger[data-v-9355b404]:hover{background:#b91c1c}.modal-overlay[data-v-9355b404]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-9355b404]{background:var(--card-bg);border-radius:16px;width:100%;max-width:400px;overflow:hidden}.modal-header[data-v-9355b404]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h3[data-v-9355b404]{font-size:18px;font-weight:600;margin:0}.modal-close[data-v-9355b404]{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:18px;color:var(--text-secondary)}.modal-close[data-v-9355b404]:hover{background:var(--bg)}.modal-body[data-v-9355b404]{padding:24px}.modal-body p[data-v-9355b404]{color:var(--text-secondary);line-height:1.6}.modal-footer[data-v-9355b404]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border)}.page-header[data-v-77875cc6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.header-left[data-v-77875cc6]{display:flex;align-items:center;gap:16px}.back-btn[data-v-77875cc6]{width:40px;height:40px;border:1px solid var(--border);background:var(--card-bg);border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s ease}.back-btn[data-v-77875cc6]:hover{border-color:var(--primary);color:var(--primary)}.header-left h2[data-v-77875cc6]{font-size:24px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.header-left p[data-v-77875cc6]{color:var(--text-secondary);font-size:14px}.header-actions[data-v-77875cc6]{display:flex;gap:12px}.edit-layout[data-v-77875cc6]{display:grid;grid-template-columns:360px 1fr;gap:24px}.section-card[data-v-77875cc6]{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:24px}.section-card h3[data-v-77875cc6]{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:20px}.section-header[data-v-77875cc6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h3[data-v-77875cc6]{margin-bottom:0}.form-group[data-v-77875cc6]{margin-bottom:20px}.form-group label[data-v-77875cc6]{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.required[data-v-77875cc6]{color:#dc2626}.form-group input[data-v-77875cc6],.form-group textarea[data-v-77875cc6],.form-group select[data-v-77875cc6]{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:var(--bg);color:var(--text-primary);transition:all .15s ease}.form-group input[data-v-77875cc6]:focus,.form-group textarea[data-v-77875cc6]:focus,.form-group select[data-v-77875cc6]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea1a}.form-group textarea[data-v-77875cc6]{resize:vertical;min-height:80px}.form-group select[data-v-77875cc6]{cursor:pointer}.hint[data-v-77875cc6]{display:block;font-size:12px;color:var(--text-tertiary);margin-top:6px}.form-row[data-v-77875cc6]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.toggle-group[data-v-77875cc6]{display:flex;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden}.toggle-btn[data-v-77875cc6]{flex:1;padding:10px 16px;border:none;background:transparent;font-size:14px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.toggle-btn.active[data-v-77875cc6]{background:var(--primary);color:#fff}.empty-stages[data-v-77875cc6]{text-align:center;padding:48px 20px;color:var(--text-secondary)}.empty-icon[data-v-77875cc6]{width:80px;height:80px;margin:0 auto 16px;background:var(--bg);border-radius:16px;display:flex;align-items:center;justify-content:center}.empty-stages p[data-v-77875cc6]{font-size:16px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.empty-stages span[data-v-77875cc6]{font-size:13px}.stages-list[data-v-77875cc6]{display:flex;flex-direction:column;gap:12px}.stage-item[data-v-77875cc6]{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg);border:1px solid var(--border);border-radius:12px;transition:all .15s ease;cursor:move}.stage-item[data-v-77875cc6]:hover{border-color:var(--primary)}.stage-item.dragging[data-v-77875cc6]{opacity:.5;border-color:var(--primary);box-shadow:0 4px 12px #667eea33}.stage-item.drag-over[data-v-77875cc6]{border-top:2px solid var(--primary)}.stage-drag-handle[data-v-77875cc6]{color:var(--text-tertiary);cursor:grab}.stage-number[data-v-77875cc6]{width:28px;height:28px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.stage-content[data-v-77875cc6]{flex:1;cursor:pointer;min-width:0}.stage-header[data-v-77875cc6]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.stage-name[data-v-77875cc6]{font-size:14px;font-weight:500;color:var(--text-primary)}.allow-failure-badge[data-v-77875cc6]{font-size:11px;padding:2px 8px;background:#fef3c7;color:#92400e;border-radius:10px}.stage-meta[data-v-77875cc6]{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--text-secondary)}.script-name[data-v-77875cc6]{display:flex;align-items:center;gap:4px}.no-script[data-v-77875cc6]{font-style:italic;color:var(--text-tertiary)}.timeout-info[data-v-77875cc6]{display:flex;align-items:center;gap:4px}.stage-actions[data-v-77875cc6]{display:flex;gap:4px}.icon-btn[data-v-77875cc6]{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s ease}.icon-btn[data-v-77875cc6]:hover{background:var(--card-bg);color:var(--text-primary)}.icon-btn.danger[data-v-77875cc6]:hover{background:#fee2e2;color:#dc2626}.btn[data-v-77875cc6]{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none}.btn-sm[data-v-77875cc6]{padding:8px 14px;font-size:13px}.btn-primary[data-v-77875cc6]{background:var(--primary);color:#fff}.btn-primary[data-v-77875cc6]:hover:not(:disabled){background:var(--primary-dark)}.btn-primary[data-v-77875cc6]:disabled{opacity:.6;cursor:not-allowed}.btn-outline[data-v-77875cc6]{background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline[data-v-77875cc6]:hover{background:var(--bg)}.spin[data-v-77875cc6]{animation:spin-77875cc6 1s linear infinite}@keyframes spin-77875cc6{to{transform:rotate(360deg)}}.modal-overlay[data-v-77875cc6]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-77875cc6]{background:var(--card-bg);border-radius:16px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto}.modal-header[data-v-77875cc6]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h3[data-v-77875cc6]{font-size:18px;font-weight:600;margin:0}.modal-close[data-v-77875cc6]{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:18px;color:var(--text-secondary)}.modal-close[data-v-77875cc6]:hover{background:var(--bg)}.modal-body[data-v-77875cc6]{padding:24px}.modal-footer[data-v-77875cc6]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border)}.checkbox-group[data-v-77875cc6]{padding-top:8px}.checkbox-label[data-v-77875cc6]{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-primary);cursor:pointer}.checkbox-label input[type=checkbox][data-v-77875cc6]{width:18px;height:18px;cursor:pointer}@media (max-width: 900px){.edit-layout[data-v-77875cc6],.form-row[data-v-77875cc6]{grid-template-columns:1fr}}.page-container[data-v-cfd273d8]{padding:24px}.page-header[data-v-cfd273d8]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.header-left h2[data-v-cfd273d8]{font-size:24px;font-weight:600;margin:0 0 4px}.header-left p[data-v-cfd273d8]{color:var(--text-secondary);margin:0}.card[data-v-cfd273d8]{background:var(--card-bg);border:1px solid var(--border);border-radius:16px}.card-body[data-v-cfd273d8]{padding:20px}.loading-state[data-v-cfd273d8],.empty-state[data-v-cfd273d8]{text-align:center;padding:48px;color:var(--text-secondary)}.spinner[data-v-cfd273d8]{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin-cfd273d8 1s linear infinite;margin:0 auto 16px}@keyframes spin-cfd273d8{to{transform:rotate(360deg)}}table[data-v-cfd273d8]{width:100%;border-collapse:collapse}th[data-v-cfd273d8],td[data-v-cfd273d8]{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}th[data-v-cfd273d8]{font-weight:500;color:var(--text-secondary);font-size:13px}td[data-v-cfd273d8]{font-size:14px}.user-info[data-v-cfd273d8]{display:flex;align-items:center;gap:10px}.user-avatar[data-v-cfd273d8]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.role-tags[data-v-cfd273d8]{display:flex;flex-wrap:wrap;gap:4px}.role-tag[data-v-cfd273d8]{padding:2px 8px;background:#e0e7ff;color:#4f46e5;border-radius:4px;font-size:12px}.no-role[data-v-cfd273d8]{color:var(--text-tertiary);font-size:12px}.status-badge[data-v-cfd273d8]{display:inline-flex;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.active[data-v-cfd273d8]{background:#dcfce7;color:#16a34a}.status-badge.disabled[data-v-cfd273d8]{background:#fee2e2;color:#dc2626}.action-btns[data-v-cfd273d8]{display:flex;flex-wrap:wrap;gap:8px}.action-btn[data-v-cfd273d8]{padding:6px 12px;border:none;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .15s;font-size:13px;font-weight:500}.action-btn svg[data-v-cfd273d8]{flex-shrink:0}.action-btn.edit[data-v-cfd273d8]{background:#e0e7ff;color:#4f46e5}.action-btn.edit[data-v-cfd273d8]:hover{background:#c7d2fe}.action-btn.role[data-v-cfd273d8]{background:#fef3c7;color:#d97706}.action-btn.role[data-v-cfd273d8]:hover{background:#fde68a}.action-btn.password[data-v-cfd273d8]{background:#e0f2fe;color:#0284c7}.action-btn.password[data-v-cfd273d8]:hover{background:#bae6fd}.action-btn.disable[data-v-cfd273d8]{background:#fee2e2;color:#dc2626}.action-btn.disable[data-v-cfd273d8]:hover{background:#fecaca}.action-btn.enable[data-v-cfd273d8]{background:#dcfce7;color:#16a34a}.action-btn.enable[data-v-cfd273d8]:hover{background:#bbf7d0}.action-btn.delete[data-v-cfd273d8]{background:#fee2e2;color:#dc2626}.action-btn.delete[data-v-cfd273d8]:hover{background:#fecaca}.role-list[data-v-cfd273d8]{display:flex;flex-direction:column;gap:8px}.role-item[data-v-cfd273d8]{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s}.role-item[data-v-cfd273d8]:hover{border-color:var(--primary);background:#4f46e50d}.role-item input[type=checkbox][data-v-cfd273d8]{width:18px;height:18px}.role-info[data-v-cfd273d8]{display:flex;flex-direction:column}.role-name[data-v-cfd273d8]{font-weight:500}.role-desc[data-v-cfd273d8]{font-size:12px;color:var(--text-secondary)}.modal-overlay{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;background:#00000080!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:9999!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--card-bg)!important;border-radius:16px!important;width:100%!important;max-width:600px!important;max-height:85vh!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;box-shadow:0 25px 50px -12px #00000040!important}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:18px;font-weight:600;margin:0}.modal-close{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:18px;color:var(--text-secondary)}.modal-close:hover{background:var(--bg)}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border)}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--bg);color:var(--text-primary)}.form-group input:focus{outline:none;border-color:var(--primary)}.required{color:#ef4444}.fade-in{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.page-container[data-v-6b8c27cb]{padding:24px}.page-header[data-v-6b8c27cb]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.header-left h2[data-v-6b8c27cb]{font-size:24px;font-weight:600;margin:0 0 4px}.header-left p[data-v-6b8c27cb]{color:var(--text-secondary);margin:0}.card[data-v-6b8c27cb]{background:var(--card-bg);border:1px solid var(--border);border-radius:16px}.card-body[data-v-6b8c27cb]{padding:20px}.loading-state[data-v-6b8c27cb],.empty-state[data-v-6b8c27cb]{text-align:center;padding:48px;color:var(--text-secondary)}.spinner[data-v-6b8c27cb]{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin-6b8c27cb 1s linear infinite;margin:0 auto 16px}@keyframes spin-6b8c27cb{to{transform:rotate(360deg)}}table[data-v-6b8c27cb]{width:100%;border-collapse:collapse}th[data-v-6b8c27cb],td[data-v-6b8c27cb]{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}th[data-v-6b8c27cb]{font-weight:500;color:var(--text-secondary);font-size:13px}td[data-v-6b8c27cb]{font-size:14px}.code-tag[data-v-6b8c27cb]{background:var(--bg);padding:2px 8px;border-radius:4px;font-family:monospace;font-size:13px}.permission-count[data-v-6b8c27cb]{color:var(--primary);font-weight:500}.status-badge[data-v-6b8c27cb]{display:inline-flex;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.active[data-v-6b8c27cb]{background:#dcfce7;color:#16a34a}.status-badge.disabled[data-v-6b8c27cb]{background:#fee2e2;color:#dc2626}.system-tag[data-v-6b8c27cb]{display:inline-flex;padding:2px 6px;background:#e0e7ff;color:#4f46e5;border-radius:4px;font-size:11px;margin-left:6px}.action-btns[data-v-6b8c27cb]{display:flex;flex-wrap:wrap;gap:8px}.action-btn[data-v-6b8c27cb]{padding:6px 12px;border:none;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .15s;font-size:13px;font-weight:500}.action-btn svg[data-v-6b8c27cb]{flex-shrink:0}.action-btn[data-v-6b8c27cb]:disabled{opacity:.5;cursor:not-allowed}.action-btn.edit[data-v-6b8c27cb]{background:#e0e7ff;color:#4f46e5}.action-btn.edit[data-v-6b8c27cb]:hover{background:#c7d2fe}.action-btn.permission[data-v-6b8c27cb]{background:#fef3c7;color:#d97706}.action-btn.permission[data-v-6b8c27cb]:hover{background:#fde68a}.action-btn.disable[data-v-6b8c27cb]{background:#fee2e2;color:#dc2626}.action-btn.disable[data-v-6b8c27cb]:hover{background:#fecaca}.action-btn.enable[data-v-6b8c27cb]{background:#dcfce7;color:#16a34a}.action-btn.enable[data-v-6b8c27cb]:hover{background:#bbf7d0}.action-btn.delete[data-v-6b8c27cb]{background:#fee2e2;color:#dc2626}.action-btn.delete[data-v-6b8c27cb]:hover{background:#fecaca}.permission-section[data-v-6b8c27cb]{margin-bottom:20px}.section-header[data-v-6b8c27cb]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header h4[data-v-6b8c27cb]{font-size:14px;font-weight:500;margin:0}.btn-text[data-v-6b8c27cb]{background:none;border:none;color:var(--primary);font-size:13px;cursor:pointer}.btn-text[data-v-6b8c27cb]:hover{text-decoration:underline}.permission-list[data-v-6b8c27cb]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.permission-item[data-v-6b8c27cb]{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s}.permission-item[data-v-6b8c27cb]:hover{border-color:var(--primary);background:#4f46e50d}.permission-item input[type=checkbox][data-v-6b8c27cb]{width:16px;height:16px}.perm-info[data-v-6b8c27cb]{display:flex;flex-direction:column}.perm-name[data-v-6b8c27cb]{font-size:13px;font-weight:500}.perm-code[data-v-6b8c27cb]{font-size:11px;color:var(--text-secondary);font-family:monospace}.permission-tree[data-v-6b8c27cb]{max-height:60vh;overflow-y:auto}.menu-permission-item[data-v-6b8c27cb]{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden}.menu-checkbox-label[data-v-6b8c27cb]{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg);cursor:pointer;transition:all .15s}.menu-checkbox-label[data-v-6b8c27cb]:hover{background:#4f46e50d}.menu-checkbox-label input[type=checkbox][data-v-6b8c27cb]{width:18px;height:18px;cursor:pointer}.menu-name[data-v-6b8c27cb]{font-size:14px;font-weight:600;color:var(--text-primary)}.menu-code[data-v-6b8c27cb]{font-size:12px;color:var(--text-secondary);font-family:monospace;margin-left:auto}.button-permissions[data-v-6b8c27cb]{padding:12px 16px 16px 44px;background:var(--card-bg);border-top:1px solid var(--border)}.button-permissions-header[data-v-6b8c27cb]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sub-title[data-v-6b8c27cb]{font-size:13px;color:var(--text-secondary);font-weight:500}.btn-text-small[data-v-6b8c27cb]{background:none;border:none;color:var(--primary);font-size:12px;cursor:pointer;padding:2px 6px}.btn-text-small[data-v-6b8c27cb]:hover{text-decoration:underline}.button-list[data-v-6b8c27cb]{display:flex;flex-wrap:wrap;gap:8px}.button-checkbox-label[data-v-6b8c27cb]{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s}.button-checkbox-label[data-v-6b8c27cb]:hover{border-color:var(--primary);background:#4f46e50d}.button-checkbox-label input[type=checkbox][data-v-6b8c27cb]{width:14px;height:14px;cursor:pointer}.btn-name[data-v-6b8c27cb]{font-size:12px;color:var(--text-primary)}.no-buttons[data-v-6b8c27cb]{font-size:12px;color:var(--text-tertiary);font-style:italic}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #4f46e5;--primary-dark: #4338ca;--primary-light: #818cf8;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--bg: #f8fafc;--card-bg: #ffffff;--text: #1e293b;--text-secondary: #64748b;--border: #e2e8f0;--sidebar-bg: #1e293b;--sidebar-text: #94a3b8;--sidebar-active: #4f46e5}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}#app{min-height:100vh}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-box{background:var(--card-bg);padding:48px;border-radius:24px;box-shadow:0 25px 50px -12px #00000040;width:100%;max-width:420px}.login-box h1{font-size:28px;font-weight:700;text-align:center;margin-bottom:8px;color:var(--text)}.login-box .subtitle{text-align:center;color:var(--text-secondary);margin-bottom:32px;font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;color:var(--text);margin-bottom:8px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;border:2px solid var(--border);border-radius:12px;font-size:14px;font-family:inherit;transition:all .2s;background:var(--bg)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #4f46e51a}.form-group textarea{resize:vertical;min-height:120px;font-family:Monaco,Menlo,monospace}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;gap:8px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #4f46e566}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.btn-outline{background:transparent;border:2px solid var(--border);color:var(--text)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.main-layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--sidebar-bg);color:#fff;padding:24px 0;display:flex;flex-direction:column;position:fixed;height:100vh;transition:width .3s ease}.sidebar.collapsed{width:72px}.sidebar.collapsed .nav-item{justify-content:center;padding:14px}.main-layout.sidebar-collapsed .content{margin-left:72px;max-width:calc(100vw - 72px)}.sidebar-logo{padding:0 24px;margin-bottom:32px}.sidebar-logo h1{font-size:20px;font-weight:700}.sidebar-nav{flex:1}.nav-item{display:flex;align-items:center;padding:14px 24px;color:var(--sidebar-text);text-decoration:none;transition:all .2s;gap:12px;font-size:14px;font-weight:500}.nav-item:hover{color:#fff;background:#ffffff0d}.nav-item.active{color:#fff;background:var(--sidebar-active);border-right:4px solid var(--primary-light)}.nav-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.sidebar-footer{padding:24px;border-top:1px solid rgba(255,255,255,.1)}.user-info{display:flex;align-items:center;gap:12px}.user-avatar{width:40px;height:40px;border-radius:12px;background:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:600}.user-name{flex:1}.user-name .name{font-size:14px;font-weight:600}.user-name .role{font-size:12px;color:var(--sidebar-text)}.logout-btn{background:#ffffff1a;border:none;color:#fff;padding:8px;border-radius:8px;cursor:pointer;transition:all .2s}.logout-btn:hover{background:#fff3}.content{flex:1;margin-left:260px;padding:32px;max-width:calc(100vw - 260px)}.page-header{margin-bottom:32px}.page-header h2{font-size:28px;font-weight:700;margin-bottom:8px}.page-header p{color:var(--text-secondary)}.card{background:var(--card-bg);border-radius:16px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.card-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-header h3{font-size:16px;font-weight:600}.card-body{padding:24px}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:16px;text-align:left;border-bottom:1px solid var(--border)}th{font-size:12px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);background:var(--bg)}tr:hover{background:var(--bg)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--card-bg);border-radius:20px;width:100%;max-width:500px;max-height:90vh;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-header h3{font-size:18px;font-weight:600}.modal-close{width:32px;height:32px;border-radius:8px;border:none;background:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background:var(--border)}.modal-body{padding:24px;overflow-y:auto;max-height:calc(90vh - 140px)}.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px}.output-box{background:#1e293b;color:#e2e8f0;padding:20px;border-radius:12px;font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.6;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.output-success{border-left:4px solid var(--success)}.output-error{border-left:4px solid var(--danger)}.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.badge-success{background:#dcfce7;color:#166534}.badge-danger{background:#fee2e2;color:#991b1b}.badge-warning{background:#fef3c7;color:#92400e}.message{padding:16px 20px;border-radius:12px;margin-bottom:20px;font-size:14px}.message-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.message-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state svg{width:80px;height:80px;margin-bottom:16px;opacity:.5}.empty-state h3{font-size:18px;margin-bottom:8px;color:var(--text)}.action-btns{display:flex;gap:8px}.action-btn{padding:6px 12px;border:none;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.action-btn.edit{background:#e0e7ff;color:#4338ca}.action-btn.terminal{background:#10b981;color:#fff}.action-btn.delete{background:#fee2e2;color:#dc2626}.execute-form{display:grid;grid-template-columns:1fr 1fr;gap:24px}.execute-form .full-width{grid-column:1 / -1}.script-preview{background:var(--bg);padding:16px;border-radius:12px;border:1px solid var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}@media (max-width: 768px){.sidebar{transform:translate(-100%);z-index:100}.content{margin-left:0;max-width:100vw}.execute-form{grid-template-columns:1fr}}
