@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--bg-hover: #22222e;--text-primary: #f0f0f5;--text-secondary: #a0a0b0;--text-muted: #606070;--accent: #6366f1;--accent-hover: #818cf8;--accent-muted: rgba(99, 102, 241, .15);--success: #22c55e;--success-muted: rgba(34, 197, 94, .15);--warning: #f59e0b;--warning-muted: rgba(245, 158, 11, .15);--error: #ef4444;--error-muted: rgba(239, 68, 68, .15);--border: #2a2a3a;--border-light: #3a3a4a;--header-height: 64px;--progress-height: 48px;--input-height: 120px;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", monospace;--transition-fast: .15s ease;--transition-normal: .25s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;flex-direction:column;height:100vh;max-width:900px;margin:0 auto;background:var(--bg-primary)}.header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:var(--header-height);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.header-left{display:flex;align-items:center;gap:16px}.logo{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent-muted);border-radius:10px}.logo-icon{font-size:20px;color:var(--accent)}.header-title h1{font-size:18px;font-weight:600;color:var(--text-primary)}.subtitle{font-size:11px;font-weight:500;color:var(--text-muted);letter-spacing:.5px}.reset-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast)}.reset-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.progress-container{padding:12px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.progress-stages{display:flex;align-items:center;justify-content:space-between}.stage-item{display:flex;align-items:center;gap:8px;position:relative}.stage-dot{width:24px;height:24px;border-radius:50%;background:var(--bg-tertiary);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:var(--transition-normal);flex-shrink:0}.stage-dot.active{border-color:var(--accent);background:var(--accent-muted);box-shadow:0 0 0 4px var(--accent-muted)}.stage-dot.completed{border-color:var(--success);background:var(--success)}.stage-dot.completed svg{color:#fff}.stage-label{font-size:12px;font-weight:500;color:var(--text-muted);transition:var(--transition-fast);white-space:nowrap}.stage-label.active{color:var(--accent)}.stage-label.completed{color:var(--success)}.stage-connector{width:24px;height:2px;background:var(--border);margin:0 4px;transition:var(--transition-normal)}.stage-connector.completed{background:var(--success)}.streaming-status{display:flex;align-items:center;gap:10px;margin-top:12px;padding:8px 16px;background:var(--accent-muted);border:1px solid var(--accent);border-radius:8px;animation:pulse-border 2s ease-in-out infinite}@keyframes pulse-border{0%,to{border-color:var(--accent)}50%{border-color:var(--accent-hover)}}.streaming-spinner{width:16px;height:16px;border:2px solid var(--accent-muted);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.streaming-step{font-size:12px;font-weight:600;color:var(--accent);font-family:var(--font-mono)}.streaming-message{font-size:13px;color:var(--text-primary);font-weight:500}.debug-controls{display:flex;align-items:center;gap:16px;margin-top:8px;padding:8px 12px;background:var(--background-secondary);border-radius:6px;border:1px dashed var(--border-subtle)}.debug-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--text-secondary)}.debug-toggle input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.debug-toggle span{-webkit-user-select:none;user-select:none}.continue-button{padding:6px 14px;background:var(--accent);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s,opacity .2s}.continue-button:hover:not(:disabled){background:var(--accent-hover)}.continue-button:disabled{opacity:.5;cursor:not-allowed}.debug-status{font-size:11px;color:var(--text-muted);font-style:italic}@media(max-width:640px){.stage-label{display:none}.stage-connector{width:16px}}.messages-container{flex:1;overflow-y:auto;padding:24px;scroll-behavior:smooth}.messages{display:flex;flex-direction:column;gap:24px}.message{display:flex;gap:16px;animation:messageIn .3s ease}@keyframes messageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-avatar{flex-shrink:0}.avatar-bot,.avatar-user{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center}.avatar-bot{background:var(--accent-muted);color:var(--accent);font-size:16px}.avatar-user{background:var(--bg-tertiary);color:var(--text-secondary)}.message-content{flex:1;min-width:0}.message.user .message-content{background:var(--accent);color:#fff;padding:12px 16px;border-radius:16px 16px 4px;max-width:fit-content;margin-left:auto}.message.user .message-content p{margin:0}.message.bot .message-content{background:var(--bg-tertiary);padding:16px 20px;border-radius:4px 16px 16px;border:1px solid var(--border)}.message-h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:16px 0 8px}.message-h2:first-child{margin-top:0}.message-h3{font-size:15px;font-weight:600;color:var(--text-primary);margin:12px 0 6px}.message-p{margin:8px 0;color:var(--text-secondary)}.message-p:first-child{margin-top:0}.message-p:last-child{margin-bottom:0}.message-hr{border:none;border-top:1px solid var(--border);margin:16px 0}.message-spacer{height:8px}.message-list{margin:8px 0;padding-left:20px}.message-list li{margin:6px 0;color:var(--text-secondary)}.message-list li::marker{color:var(--accent)}.inline-code{font-family:var(--font-mono);font-size:13px;background:var(--bg-hover);padding:2px 6px;border-radius:4px;color:var(--accent-hover)}.typing-indicator{display:flex;gap:4px;padding:8px 0}.typing-indicator span{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:typing 1.4s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-8px);opacity:1}}.srd-card{margin:0 24px 16px;background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border:1px solid var(--border);border-radius:16px;padding:20px;animation:cardIn .4s ease}@keyframes cardIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.srd-header{margin-bottom:16px}.srd-header h3{font-size:16px;font-weight:600;color:var(--text-primary)}.srd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.srd-stat{text-align:center;padding:12px 8px;background:var(--bg-primary);border-radius:10px;border:1px solid var(--border)}.stat-value{display:block;font-size:24px;font-weight:700;color:var(--accent)}.stat-label{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.srd-actions{display:flex;gap:12px;flex-wrap:wrap}.download-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-fast);border:none}.download-btn.primary{background:var(--accent);color:#fff}.download-btn.primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.download-btn.secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border)}.download-btn.secondary:hover{background:var(--bg-tertiary);border-color:var(--border-light);transform:translateY(-1px)}.schema-badge{font-size:10px;font-weight:600;padding:2px 6px;background:var(--success-muted);color:var(--success);border-radius:4px;margin-left:4px;text-transform:uppercase;letter-spacing:.3px}.schema-note{margin-top:12px;font-size:13px;color:var(--text-muted);font-style:italic}@media(max-width:500px){.srd-stats{grid-template-columns:repeat(2,1fr)}.srd-actions{flex-direction:column}.download-btn{justify-content:center}}.input-container{padding:16px 24px 20px;background:var(--bg-secondary);border-top:1px solid var(--border)}.input-wrapper{display:flex;gap:12px;align-items:flex-start}.upload-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);font-size:11px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-fast)}.upload-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-light);color:var(--text-primary)}.upload-btn:disabled{opacity:.5;cursor:not-allowed}.text-input-area{flex:1;display:flex;align-items:center;gap:12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:4px 4px 4px 16px;transition:var(--transition-fast)}.text-input-area:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.message-input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:15px;font-family:var(--font-sans);padding:12px 0;outline:none}.message-input::placeholder{color:var(--text-muted)}.message-input:disabled{cursor:not-allowed}.send-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:var(--transition-fast);flex-shrink:0}.send-btn:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.05)}.send-btn:disabled{background:var(--bg-hover);color:var(--text-muted);cursor:not-allowed}.input-hint{margin-top:8px;text-align:center;font-size:12px;color:var(--text-muted)}.input-hint kbd{display:inline-block;padding:2px 6px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;font-family:var(--font-mono);font-size:11px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}@media(max-width:640px){.header{padding:0 16px}.messages-container{padding:16px}.srd-card{margin:0 16px 12px}.input-container{padding:12px 16px 16px}.upload-btn span{display:none}.upload-btn{padding:12px}}.dry-run-toggle{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--warning-muted);border:1px solid var(--warning);border-radius:6px;cursor:pointer;transition:var(--transition-fast)}.dry-run-toggle:hover{background:#f59e0b40}.dry-run-toggle input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--warning)}.dry-run-label{font-size:12px;font-weight:500;color:var(--warning);white-space:nowrap}.auth-user{display:flex;align-items:center;gap:12px}.auth-username{font-size:13px;color:var(--text-secondary)}.auth-login-btn{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:var(--transition-fast);font-family:var(--font-sans)}.auth-login-btn:hover{background:var(--accent-hover)}.auth-logout-btn{padding:6px 12px;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:6px;font-size:12px;cursor:pointer;transition:var(--transition-fast);font-family:var(--font-sans)}.auth-logout-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.login-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:32px;width:100%;max-width:380px;position:relative;box-shadow:0 20px 60px #00000080}.login-modal h2{font-size:22px;font-weight:600;color:var(--text-primary);margin-bottom:24px;text-align:center}.login-modal form{display:flex;flex-direction:column;gap:14px}.login-modal input{width:100%;padding:12px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;font-family:var(--font-sans);transition:var(--transition-fast)}.login-modal input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.login-modal input::placeholder{color:var(--text-muted)}.login-modal button[type=submit]{width:100%;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:var(--transition-fast);font-family:var(--font-sans);margin-top:8px}.login-modal button[type=submit]:hover:not(:disabled){background:var(--accent-hover)}.login-modal button[type=submit]:disabled{background:var(--bg-hover);color:var(--text-muted);cursor:not-allowed}.login-modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;border-radius:6px;transition:var(--transition-fast)}.login-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.login-error{background:var(--error-muted);border:1px solid var(--error);color:var(--error);padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:12px}.login-toggle{text-align:center;margin-top:20px;font-size:13px;color:var(--text-secondary)}.login-toggle button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;font-weight:500;padding:0;margin-left:4px}.login-toggle button:hover{color:var(--accent-hover);text-decoration:underline}.project-saved-note{margin-top:12px;padding:10px 14px;background:var(--success-muted);border:1px solid var(--success);border-radius:8px;color:var(--success);font-size:13px}.project-saved-note strong{font-weight:600}.login-prompt-note{margin-top:12px;padding:10px 14px;background:var(--warning-muted);border:1px solid var(--warning);border-radius:8px;color:var(--warning);font-size:13px}.login-prompt-note button{background:none;border:none;color:var(--warning);cursor:pointer;font-weight:600;padding:0;text-decoration:underline;font-size:13px}.login-prompt-note button:hover{opacity:.8}@media(max-width:640px){.login-modal{margin:16px;padding:24px}.auth-username{display:none}.auth-login-btn{padding:6px 12px;font-size:12px}}.confirm-action-bar{margin:0 24px 16px;padding:16px 20px;background:linear-gradient(135deg,var(--success-muted) 0%,rgba(34,197,94,.05) 100%);border:1px solid var(--success);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.confirm-hint{font-size:13px;color:var(--text-secondary);margin:0;flex:1}.confirm-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--success);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-fast);white-space:nowrap}.confirm-btn:hover:not(:disabled){background:#16a34a;transform:translateY(-1px);box-shadow:0 4px 12px #22c55e4d}.confirm-btn:disabled{opacity:.6;cursor:not-allowed}.confirm-btn svg{flex-shrink:0}@media(max-width:640px){.confirm-action-bar{margin:0 16px 12px;flex-direction:column;text-align:center}.confirm-hint{margin-bottom:8px}.confirm-btn{width:100%;justify-content:center}}.generate-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.generate-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;background:linear-gradient(135deg,var(--accent) 0%,#4f46e5 100%);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-fast);box-shadow:0 4px 14px #6366f14d}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.generate-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.generate-btn svg{flex-shrink:0}.generation-status{padding:16px 20px;border-radius:10px;display:flex;align-items:center;gap:12px;font-size:14px}.generation-status.running{background:var(--accent-muted);border:1px solid var(--accent);color:var(--accent)}.generation-status.success{background:var(--success-muted);border:1px solid var(--success);color:var(--success);flex-direction:column;align-items:flex-start}.generation-status.error{background:var(--error-muted);border:1px solid var(--error);color:var(--error);flex-wrap:wrap}.generation-path{margin:8px 0 0;font-size:12px;color:var(--text-secondary)}.generation-path code{font-family:var(--font-mono);background:var(--bg-primary);padding:2px 8px;border-radius:4px;color:var(--text-primary)}.retry-btn{margin-left:auto;padding:8px 16px;background:var(--error);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:var(--transition-fast);font-family:var(--font-sans)}.retry-btn:hover{background:#dc2626}.spinner{width:20px;height:20px;border:2px solid var(--accent-muted);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.feature-checkbox-panel{margin:0 24px 16px;padding:20px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;animation:slideIn .3s ease}.feature-checkbox-header{margin-bottom:16px}.feature-checkbox-header h4{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.feature-checkbox-header p{font-size:13px;color:var(--text-secondary);margin:0}.feature-checkbox-list{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto;padding-right:8px;margin-bottom:16px}.feature-checkbox-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:var(--transition-fast)}.feature-checkbox-item:hover{border-color:var(--accent);background:var(--accent-muted)}.feature-checkbox-item input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.checkbox-custom{width:20px;height:20px;min-width:20px;border:2px solid var(--border-active);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);margin-top:2px}.feature-checkbox-item input[type=checkbox]:checked+.checkbox-custom{background:var(--accent);border-color:var(--accent)}.feature-checkbox-item input[type=checkbox]:checked+.checkbox-custom:after{content:"";width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.feature-info{display:flex;flex-direction:column;gap:2px;flex:1}.feature-name{font-size:14px;font-weight:500;color:var(--text-primary)}.feature-description{font-size:12px;color:var(--text-secondary);line-height:1.4}.feature-checkbox-actions{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border)}.selection-count{font-size:13px;color:var(--text-secondary)}.feature-continue-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-fast)}.feature-continue-btn:hover:not(:disabled){background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.feature-continue-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:640px){.feature-checkbox-panel{margin:0 16px 12px;padding:16px}.feature-checkbox-list{max-height:200px}.feature-checkbox-actions{flex-direction:column;gap:12px}.feature-continue-btn{width:100%;justify-content:center}}.clarification-panel{margin:0 24px 16px;padding:20px;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:12px;animation:slideIn .3s ease}.clarification-header{margin-bottom:16px}.clarification-header .question-progress{display:inline-block;font-size:12px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.clarification-header h4{font-size:16px;font-weight:500;color:var(--text-primary);margin:0;line-height:1.5}.clarification-header .multi-select-hint{font-size:12px;color:var(--text-secondary);margin-top:6px}.clarification-options{display:flex;flex-direction:column;gap:10px}.option-btn{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:var(--transition-fast);text-align:left;width:100%;font-family:var(--font-sans)}.option-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-muted);transform:translate(4px)}.option-btn:active:not(:disabled){transform:translate(2px)}.option-btn:disabled{opacity:.6;cursor:not-allowed}.option-btn .option-letter{display:flex;align-items:center;justify-content:center;min-width:28px;height:28px;background:var(--accent-muted);color:var(--accent);border-radius:6px;font-size:14px;font-weight:600;font-family:var(--font-mono)}.option-btn:hover:not(:disabled) .option-letter{background:var(--accent);color:#fff}.option-btn .option-text{font-size:14px;font-weight:500;color:var(--text-primary);line-height:1.4;flex:1}.option-btn.selected{border-color:var(--accent);background:var(--accent-muted)}.option-btn.selected .option-letter{background:var(--accent);color:#fff}.option-btn .option-check{display:flex;align-items:center;justify-content:center;color:var(--accent);margin-left:auto}.clarification-actions{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.clarification-actions .selection-count{font-size:13px;color:var(--text-secondary)}.submit-options-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-fast)}.submit-options-btn:hover:not(:disabled){background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.submit-options-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.clarification-panel{margin:0 16px 12px;padding:16px}.clarification-header h4{font-size:15px}.option-btn{padding:12px 14px;gap:12px}.option-btn .option-letter{min-width:26px;height:26px;font-size:13px}.option-btn .option-text{font-size:13px}.clarification-actions{flex-direction:column;gap:12px}.submit-options-btn{width:100%;justify-content:center}}.config-form-panel{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;margin:0 24px 16px;padding:24px;animation:slideIn .3s ease-out}.config-form-header{margin-bottom:24px;text-align:center}.config-form-header h3{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.config-form-header p{font-size:14px;color:var(--text-secondary);margin:0}.config-form{display:flex;flex-direction:column;gap:20px}.config-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:14px}.config-field{display:flex;flex-direction:column;gap:8px}.config-field label{font-size:14px;font-weight:600;color:var(--text-primary)}.config-field input[type=text],.config-field input[type=password]{padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:var(--font-mono);color:var(--text-primary);transition:var(--transition-fast)}.config-field input[type=text]:focus,.config-field input[type=password]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #6366f126}.config-field input::placeholder{color:var(--text-muted)}.field-hint{font-size:12px;color:var(--text-secondary)}.field-hint a{color:var(--accent);text-decoration:none}.field-hint a:hover{text-decoration:underline}.language-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.language-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px 12px;background:var(--bg-secondary);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:var(--transition-fast)}.language-option:hover{border-color:var(--border-light);background:var(--bg-hover)}.language-option.selected{border-color:var(--accent);background:var(--accent-muted)}.language-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}.lang-icon{font-size:24px;line-height:1}.lang-label{font-size:13px;font-weight:600;color:var(--text-primary)}.language-option.selected .lang-label{color:var(--accent)}.config-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;padding-top:20px;border-top:1px solid var(--border)}.config-cancel-btn{padding:12px 24px;background:transparent;border:1px solid var(--border);border-radius:8px;font-size:14px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast)}.config-cancel-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.config-save-btn{padding:12px 24px;background:#10b981;border:none;border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:var(--transition-fast)}.config-save-btn:hover:not(:disabled){background:#059669;transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.config-save-btn:disabled{opacity:.6;cursor:not-allowed}.config-submit-btn{padding:12px 28px;background:var(--accent);border:none;border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:var(--transition-fast)}.config-submit-btn:hover:not(:disabled){background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.config-submit-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:640px){.config-form-panel{margin:0 12px 12px;padding:20px 16px}.language-options{grid-template-columns:repeat(2,1fr)}.config-actions{flex-direction:column-reverse}.config-cancel-btn,.config-save-btn,.config-submit-btn{width:100%;justify-content:center}}.pipeline-viewer-container{margin:16px 24px;animation:slide-in .3s ease-out}@keyframes slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.pipeline-viewer-container{margin:12px}}.pipeline-viewer{background:#1a1a2e;border-radius:12px;padding:24px;color:#e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.pipeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #2a2a4a}.header-left{display:flex;flex-direction:column;gap:4px}.pipeline-title{margin:0;font-size:1.5rem;font-weight:600;color:#fff}.pipeline-progress-text{font-size:.875rem;color:#888}.header-right{display:flex;align-items:center;gap:12px}.refresh-btn{background:transparent;border:1px solid #3a3a5a;border-radius:6px;padding:8px 12px;color:#888;cursor:pointer;font-size:1rem;transition:all .2s}.refresh-btn:hover{background:#2a2a4a;color:#fff}.connection-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:uppercase}.connection-badge.connected{background:#4caf501a;color:#4caf50}.connection-badge.running{background:#2196f31a;color:#2196f3}.connection-badge.complete{background:#4caf501a;color:#4caf50}.connection-badge.failed{background:#f443361a;color:#f44336}.connection-badge.disconnected{background:#9e9e9e1a;color:#9e9e9e}.badge-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse-dot 2s infinite}.connection-badge.running .badge-dot{animation:pulse-dot 1s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.error-banner{display:flex;align-items:center;gap:8px;background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:8px;padding:12px 16px;margin-bottom:16px;color:#f44336}.error-icon{font-size:1.25rem}.artifacts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}@media(max-width:768px){.artifacts-grid{grid-template-columns:1fr}}.artifact-card{background:#22223a;border-radius:10px;padding:16px;border:1px solid #3a3a5a}.artifact-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.artifact-icon{font-size:1.5rem}.artifact-title-group{display:flex;flex-direction:column}.artifact-title{margin:0;font-size:1rem;font-weight:600;color:#fff}.artifact-subtitle{font-size:.75rem;color:#888}.artifact-sections{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;min-height:140px}.section-item{display:flex;align-items:center;gap:8px;font-size:.85rem;padding:4px 0}.section-status{width:16px;text-align:center;font-weight:700}.section-name{flex:1;color:#aaa}.section-item.status-complete .section-status{color:#4caf50}.section-item.status-running .section-status,.section-item.status-in_progress .section-status{color:#2196f3;animation:pulse 1.5s infinite}.section-item.status-failed .section-status{color:#f44336}.section-item.more{color:#666;font-style:italic}.artifact-footer{display:flex;align-items:center;gap:12px}.artifact-count{font-size:.75rem;color:#888;white-space:nowrap}.progress-bar{flex:1;height:8px;background:#1a1a2e;border-radius:4px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:4px;transition:width .5s ease-out}.progress-bar-text{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.6rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.agent-timeline{background:#22223a;border-radius:10px;padding:16px;border:1px solid #3a3a5a;margin-bottom:24px}.timeline-title{margin:0 0 16px;font-size:.875rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}.timeline-phase{margin-bottom:16px}.timeline-phase:last-child{margin-bottom:12px}.phase-header{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding:2px 8px;border-left:3px solid #3a3a5a;color:#888}.timeline-phase:nth-child(1) .phase-header{border-left-color:#2196f3;color:#5c9fd4}.timeline-phase:nth-child(2) .phase-header{border-left-color:#ff9800;color:#d4a05c}.timeline-phase:nth-child(3) .phase-header{border-left-color:#9c27b0;color:#b05cc0}.timeline-agents{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.agent-node{display:flex;flex-direction:column;align-items:center;justify-content:center;width:50px;height:50px;background:#2a2a4a;border-radius:8px;border:2px solid transparent;transition:all .3s;cursor:default;position:relative}.agent-node.status-complete{border-color:#4caf50;background:#4caf501a}.agent-node.status-running{border-color:#2196f3;background:#2196f31a;animation:pulse-border 1.5s infinite}.agent-node.status-failed{border-color:#f44336;background:#f443361a}@keyframes pulse-border{0%,to{box-shadow:0 0 #2196f366}50%{box-shadow:0 0 0 4px #2196f300}}.agent-id{font-size:.7rem;font-weight:600;color:#fff}.agent-status-icon{font-size:.85rem;margin-top:2px}.agent-node.status-complete .agent-status-icon{color:#4caf50}.agent-node.status-running .agent-status-icon{color:#2196f3;animation:pulse 1s infinite}.agent-node.status-failed .agent-status-icon{color:#f44336}.parallel-indicator{position:absolute;top:-4px;right:-4px;width:14px;height:14px;background:#ff9800;border-radius:50%;font-size:.5rem;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;line-height:1}.running-agents{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#2196f31a;border-radius:6px;font-size:.85rem;color:#2196f3}.running-icon{animation:flash 1s infinite}@keyframes flash{0%,to{opacity:1}50%{opacity:.3}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.activity-log{background:#22223a;border-radius:10px;padding:16px;border:1px solid #3a3a5a}.log-title{margin:0 0 12px;font-size:.875rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}.log-entries{max-height:400px;overflow-y:auto;font-family:SF Mono,Consolas,monospace;font-size:.8rem}.log-entry{display:flex;align-items:flex-start;gap:8px;padding:4px 0;border-bottom:1px solid #2a2a4a}.log-entry:last-child{border-bottom:none}.log-timestamp{color:#666;flex-shrink:0;font-size:.7rem}.log-icon{flex-shrink:0;width:16px;text-align:center}.log-message{flex:1;color:#bbb}.log-type-start .log-message{color:#2196f3}.log-type-complete .log-message{color:#4caf50}.log-type-success .log-message{color:#4caf50;font-weight:600}.log-type-error .log-message{color:#f44336}.log-type-system .log-message{color:#888;font-style:italic}.completion-celebration{text-align:center;padding:32px;margin-top:24px;background:linear-gradient(135deg,#4caf501a,#8bc34a1a);border-radius:12px;border:1px solid rgba(76,175,80,.3);animation:celebrate .5s ease-out}.celebration-emoji{font-size:3rem;display:block;margin-bottom:16px;animation:bounce 1s infinite}.completion-celebration h3{margin:0 0 8px;font-size:1.5rem;color:#4caf50}.completion-celebration p{margin:0;color:#888}@keyframes celebrate{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.log-entries::-webkit-scrollbar{width:6px}.log-entries::-webkit-scrollbar-track{background:#1a1a2e;border-radius:3px}.log-entries::-webkit-scrollbar-thumb{background:#3a3a5a;border-radius:3px}.log-entries::-webkit-scrollbar-thumb:hover{background:#4a4a6a}.pipeline-page{min-height:100vh;background:linear-gradient(135deg,#0f0f1a,#1a1a2e);color:#e0e0e0;display:flex;flex-direction:column}.pipeline-page-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#1a1a2ecc;border-bottom:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pipeline-page-header .header-left{display:flex;align-items:center;gap:1.5rem}.pipeline-page-header .back-link{display:flex;align-items:center;gap:.5rem;color:#888;text-decoration:none;padding:.5rem 1rem;border-radius:8px;transition:all .2s}.pipeline-page-header .back-link:hover{color:#fff;background:#ffffff1a}.pipeline-page-header .header-title h1{margin:0;font-size:1.5rem;font-weight:600;color:#fff}.pipeline-page-header .project-id{font-size:.875rem;color:#888}.pipeline-page-header .header-right{display:flex;align-items:center;gap:1rem}.start-pipeline-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.start-pipeline-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6366f166}.start-pipeline-btn:disabled{opacity:.7;cursor:not-allowed}.start-pipeline-btn.starting{background:linear-gradient(135deg,#4b5563,#6b7280)}.start-pipeline-btn.error{background:linear-gradient(135deg,#ef4444,#f87171)}.status-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:500}.status-badge.running{background:#eab30833;color:#fbbf24;border:1px solid rgba(234,179,8,.3)}.status-badge.complete{background:#22c55e33;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 2rem;background:#ef444426;border-bottom:1px solid rgba(239,68,68,.3);color:#f87171}.pipeline-viewer-wrapper{flex:1;padding:2rem;overflow-y:auto}.pipeline-viewer-wrapper .pipeline-viewer{max-width:1400px;margin:0 auto}@media(max-width:768px){.pipeline-page-header{flex-direction:column;gap:1rem;padding:1rem}.pipeline-page-header .header-left,.pipeline-page-header .header-right{width:100%;justify-content:space-between}.pipeline-viewer-wrapper{padding:1rem}}
