:root{--bg-primary: #0f1115;--bg-secondary: #1a1d24;--bg-tertiary: #2a2e38;--bg-input: #232730;--text-primary: #ffffff;--text-secondary: #a1a1aa;--text-muted: #52525b;--accent-primary: #6366f1;--accent-hover: #4f46e5;--accent-glow: rgba(99, 102, 241, .4);--border-color: #27272a;--border-hover: #3f3f46;--danger: #ef4444;--success: #22c55e;--warning: #f59e0b;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-glow: 0 0 20px var(--accent-glow)}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f4f4f5;--bg-tertiary: #e4e4e7;--bg-input: #ffffff;--text-primary: #18181b;--text-secondary: #52525b;--text-muted: #71717a;--border-color: #e4e4e7;--border-hover: #d4d4d8;--shadow-glow: 0 0 20px rgba(99, 102, 241, .2)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;font-family:inherit}input,select,textarea{background-color:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem .75rem;font-family:inherit;font-size:.95rem;transition:all .2s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#3f3f46}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.h-screen{height:100vh}.w-full{width:100%}h1,h2,h3,h4,h5,h6{color:var(--text-primary);margin-bottom:.5rem}p{color:var(--text-secondary)}.p-4{padding:1rem}.p-8{padding:2rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.bg-primary{background-color:var(--bg-primary)}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.flex-1{flex:1}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top right,#1e2025,#0f1115)}.login-card{width:100%;max-width:400px;padding:3rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--shadow-glow);text-align:center}.login-header h1{font-size:1.75rem;font-weight:600;margin-bottom:.5rem}.login-header p{font-size:.95rem;margin-bottom:2.5rem}.google-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.8rem;background:#fff;color:#3c4043;border-radius:var(--radius-md);font-weight:500;font-size:1rem;transition:transform .1s ease,box-shadow .2s ease}.google-btn:hover{background:#f8f9fa;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.google-btn:active{transform:translateY(0)}.google-btn:disabled{opacity:.7;cursor:not-allowed}.spinner{width:18px;height:18px;border:2px solid rgba(0,0,0,.1);border-left-color:#3c4043;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sidebar{width:260px;height:100vh;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{padding:1.5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);margin-bottom:1rem}.theme-toggle{background:transparent;color:var(--text-secondary);padding:.5rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.theme-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary)}.logo-icon{color:var(--accent-primary);display:flex;align-items:center;justify-content:center}.logo-text{font-weight:700;font-size:1.1rem;letter-spacing:-.025em}.sidebar-nav{flex:1;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.5rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:.95rem;font-weight:500;transition:all .2s ease}.nav-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.nav-item.active{background-color:#6366f11a;color:var(--accent-primary);font-weight:600}.sidebar-footer{padding:1rem;border-top:1px solid var(--border-color)}.logout-btn{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);font-size:.9rem;transition:all .2s}.logout-btn:hover{background-color:#ef44441a;color:var(--danger)}.error-popup-container{position:fixed;top:24px;right:24px;z-index:9999;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.error-card{display:flex;align-items:flex-start;gap:1rem;background:var(--bg-secondary);border:1px solid var(--danger);border-left:4px solid var(--danger);padding:1.5rem;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);min-width:400px;max-width:900px;max-height:500px;overflow-y:auto}.error-icon{color:var(--danger);padding-top:2px}.error-content{flex:1}.error-content h4{color:var(--danger);margin:0 0 .25rem;font-size:.95rem;font-weight:600}.error-content p{margin:0;color:var(--text-primary);font-size:.9rem;line-height:1.4}.error-close{background:transparent;color:var(--text-secondary);padding:.25rem;transition:color .2s;position:absolute;top:1rem;right:1rem}.error-close:hover{color:var(--text-primary)}.filter-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.filter-row{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.5rem;min-width:180px}.filter-group label{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.filter-actions{display:flex;justify-content:flex-end;gap:1rem}.custom-select-container{position:relative;min-width:200px}.custom-select-trigger{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem .75rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:.95rem;-webkit-user-select:none;user-select:none}.custom-select-trigger:hover{border-color:var(--border-hover)}.custom-select-dropdown{position:absolute;top:100%;left:0;width:100%;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-top:4px;max-height:250px;overflow-y:auto;z-index:50;box-shadow:var(--shadow-lg)}.custom-option{padding:.6rem .8rem;display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--text-secondary)}.custom-option:hover{background:var(--bg-tertiary);color:var(--text-primary)}.custom-option.selected{background:#6366f11a;color:var(--text-primary)}.checkbox{width:16px;display:inline-block;color:var(--accent-primary);font-weight:700}.btn-primary,.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:var(--radius-sm);font-weight:500;font-size:.95rem;transition:all .2s}.btn-primary{background:var(--accent-primary);color:#fff;box-shadow:var(--shadow-glow)}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{border-color:var(--text-secondary);color:var(--text-primary)}.table-container{display:flex;flex-direction:column;flex:1;overflow:hidden;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.table-header-controls{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:flex-end}.column-selector{position:relative}.column-dropdown{position:absolute;top:100%;right:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem;width:200px;box-shadow:var(--shadow-lg);z-index:50;margin-top:4px}.column-option{display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer;font-size:.9rem;color:var(--text-secondary)}.column-option:hover{background:var(--bg-tertiary);color:var(--text-primary)}.table-scroll{flex:1;overflow-y:auto;padding:0 1.5rem}.tasks-table{width:100%;border-collapse:collapse;margin-top:1rem}.tasks-table th,.tasks-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border-color);font-size:.9rem}.tasks-table th{color:var(--text-muted);font-weight:500;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;background:var(--bg-secondary);z-index:10}.task-row{cursor:pointer;transition:background .1s}.task-row:hover{background:var(--bg-tertiary)}.highlighted-row{background-color:#ffe60013!important;border-left:2px solid var(--primary)}.status-badge{padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-completed{background:#22c55e26;color:#4ade80}.status-inprogress{background:#f59e0b26;color:#fbbf24}.status-failed{background:#ef444426;color:#f87171}.status-pending{background:#f59e0b26;color:#fbbf24}.status-inqueue{background:#f59e0b1a;color:#fcd34d}.type-badge{padding:.2rem .6rem;border-radius:4px;font-size:.75rem;font-weight:500;white-space:nowrap}.type-swap{background:#3b82f626;color:#60a5fa}.type-contentanalyse{background:#8b5cf626;color:#a78bfa}.type-workflow{background:#ec489926;color:#f472b6}.type-videogen{background:#10b98126;color:#34d399}.type-language{background:#f59e0b26;color:#fbbf24}.type-languagevision{background:#ef444426;color:#f87171}.type-texttoimage{background:#0ea5e926;color:#38bdf8}.type-faceextract{background:#14b8a626;color:#2dd4bf}.type-imageedit{background:#f9731626;color:#fb923c}.type-videoconcat{background:#6366f126;color:#818cf8}.type-pixverse{background:#a855f726;color:#c084fc}.provider-badge{padding:.2rem .6rem;border-radius:4px;font-size:.75rem;font-weight:500;white-space:nowrap}.provider-mobi{background:#0ea5e926;color:#38bdf8}.provider-runpod{background:#8b5cf626;color:#a78bfa}.provider-hailuo{background:#ec489926;color:#f472b6}.provider-piapi{background:#f59e0b26;color:#fbbf24}.provider-fal{background:#ef444426;color:#f87171}.provider-replicate{background:#10b98126;color:#34d399}.provider-pixverse,.provider-pixverse2,.provider-pixverse3,.provider-pixverse4{background:#a855f726;color:#c084fc}.provider-kling{background:#6366f126;color:#818cf8}.provider-openai{background:#14b8a626;color:#2dd4bf}.provider-fake,.provider-none{background:#9ca3af26;color:#9ca3af}.btn-details{padding:.3rem .6rem;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8rem;transition:all .2s}.btn-details:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.loading-trigger{height:40px;display:flex;justify-content:center;align-items:center;margin:1rem 0}.spinner-sm{width:20px;height:20px;border:2px solid rgba(255,255,255,.1);border-left-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.end-message{text-align:center;color:var(--text-muted);padding:2rem;font-size:.9rem}.text-danger{color:var(--danger)}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:2rem}.modal-content{background:var(--bg-secondary);width:100%;max-width:1000px;max-height:90vh;border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:var(--bg-secondary)}.modal-title h2{margin:0;font-size:1.25rem}.task-id{font-family:monospace;color:var(--text-secondary);font-size:.9rem}.btn-close{background:transparent;color:var(--text-secondary);padding:.5rem;border-radius:var(--radius-sm);transition:all .2s}.btn-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{display:grid;grid-template-columns:1fr 1fr;flex:1;overflow-y:auto;background:var(--bg-primary)}.modal-column{padding:1.5rem;display:flex;flex-direction:column;gap:2rem}.modal-column:first-child{border-right:1px solid var(--border-color)}.detail-section h3{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:var(--accent-primary);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.detail-item{display:flex;flex-direction:column;gap:.2rem}.detail-item.full-width{grid-column:span 2}.detail-item label{font-size:.8rem;color:var(--text-muted);font-weight:500}.detail-item p{font-size:.95rem;color:var(--text-primary);word-break:break-word}.code-block{background:var(--bg-input);padding:1rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);overflow-x:auto}.code-block pre{font-family:monospace;font-size:.85rem;color:var(--text-secondary);margin:0}.media-list{display:flex;flex-wrap:wrap;gap:.5rem}.media-chip{background:var(--bg-tertiary);padding:.3rem .6rem;border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-secondary);font-family:monospace;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.steps-list{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.steps-list h4{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.step-item-wrapper{display:flex;flex-direction:column;gap:.25rem;background:var(--bg-input);border-radius:var(--radius-sm);padding:.5rem}.step-item{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.step-id-link{font-family:monospace;font-size:.8rem;color:var(--primary);text-decoration:underline;cursor:pointer;margin-left:.5rem}.step-id-link:hover{color:var(--accent-primary)}.step-error{font-size:.8rem;color:var(--danger);background:#ef44441a;padding:.4rem;border-radius:4px;margin-left:1.5rem;word-break:break-word}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.completed{background:var(--success)}.status-dot.inprogress{background:var(--accent-primary)}.status-dot.failed{background:var(--danger)}.status-dot.pending{background:var(--warning)}.step-type{font-weight:500;color:var(--text-primary)}.step-status{margin-left:auto;color:var(--text-secondary);font-size:.8rem}.modal-media-section{display:flex;gap:1.5rem;padding:1.5rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);overflow-x:auto}.media-preview-item{display:flex;flex-direction:column;gap:.5rem;flex:1;min-width:200px;max-width:400px}.media-label{font-size:.8rem;color:var(--text-muted);font-weight:500;text-transform:uppercase}.media-content{border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-color);background:#000;display:flex;align-items:center;justify-content:center;min-height:200px;max-height:300px}.media-element{width:100%;height:100%;object-fit:contain;max-height:300px}.media-link{font-size:.8rem;color:var(--primary);text-decoration:none;align-self:flex-start}.media-link:hover{text-decoration:underline}.flex-row-center{display:flex;align-items:center;gap:.5rem}.btn-icon-sm{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon-sm:hover{color:var(--text-primary);background:var(--bg-hover)}.btn-refresh{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all .2s;margin-right:.5rem}.btn-refresh:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-refresh.refreshing{color:var(--accent-primary)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
