@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-primary:#0a0a12;--bg-secondary:#12121f;--bg-card:#141423d9;--bg-card-hover:#1e1e32f2;--bg-glass:#14142899;--bg-elevated:#1a1a2e;--text-primary:#f0f0f8;--text-secondary:#9898b8;--text-muted:#5a5a78;--accent-purple:#8b5cf6;--accent-blue:#3b82f6;--accent-cyan:#06b6d4;--accent-pink:#ec4899;--accent-green:#10b981;--accent-amber:#f59e0b;--accent-red:#ef4444;--gradient-aurora:linear-gradient(135deg, #8b5cf6 0%, #3b82f6 50%, #06b6d4 100%);--gradient-sunset:linear-gradient(135deg, #ec4899 0%, #f59e0b 100%);--gradient-card:linear-gradient(145deg, #8b5cf614 0%, #3b82f60a 100%);--border-subtle:#8b5cf626;--border-glass:#ffffff0f;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 24px #0006;--shadow-lg:0 16px 48px #00000080;--shadow-glow:0 0 20px #8b5cf626;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-display:"Outfit", var(--font-sans);--font-mono:"JetBrains Mono", "Fira Code", monospace;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--sidebar-width:260px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600;line-height:1.2}h1{font-size:2.5rem;font-weight:800}h2{font-size:1.75rem;font-weight:700}h3{font-size:1.25rem}h4{font-size:1rem}a{color:var(--accent-purple);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-cyan)}.app-layout{background:var(--bg-primary);height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-glass);padding:var(--space-lg) 0;z-index:20;flex-direction:column;flex-shrink:0;display:flex;position:relative}.sidebar-logo{align-items:center;gap:var(--space-md);padding:0 var(--space-lg);margin-bottom:var(--space-2xl);display:flex}.sidebar-logo .logo-icon{background:var(--gradient-aurora);border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;font-size:1.4rem;display:flex}.sidebar-logo .logo-text{font-family:var(--font-display);background:var(--gradient-aurora);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:700}.sidebar-logo .logo-version{color:var(--text-muted);font-size:.65rem;font-weight:500}.sidebar-nav{gap:var(--space-xs);padding:0 var(--space-sm);flex-direction:column;flex:1;display:flex}.nav-item{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);text-align:left;background:0 0;border:none;width:100%;font-size:.875rem;font-weight:500;display:flex}.nav-item:hover{color:var(--text-primary);background:#8b5cf614}.nav-item.active{color:var(--accent-purple);background:#8b5cf61f;font-weight:600}.nav-item .nav-icon{text-align:center;width:24px;font-size:1.2rem}.main-content{padding:var(--space-xl);background:var(--bg-primary);flex:1;position:relative;overflow:hidden auto}.main-content:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#8b5cf60a 0%,#0000 60%);width:60vw;height:60vw;position:fixed;top:-50%;right:-30%}.page-header{margin-bottom:var(--space-xl);z-index:1;position:relative}.page-header h1{background:var(--gradient-aurora);-webkit-text-fill-color:transparent;margin-bottom:var(--space-xs);-webkit-background-clip:text;background-clip:text}.page-header p{color:var(--text-secondary);font-size:.95rem}.card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:var(--space-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all var(--transition-base);z-index:1;position:relative}.card:hover{background:var(--bg-card-hover);border-color:var(--border-subtle);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.card-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.btn{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);border:none;outline:none;font-size:.875rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--gradient-aurora);color:#fff;box-shadow:0 4px 12px #8b5cf64d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #8b5cf680}.btn-secondary{color:var(--accent-purple);border:1px solid var(--border-subtle);background:#8b5cf61a}.btn-secondary:hover{background:#8b5cf633}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{color:var(--text-primary);background:#ffffff0d}.btn-danger{color:var(--accent-red);background:#ef44441a;border:1px solid #ef444433}.btn-danger:hover{background:#ef444433}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:1rem}.form-group{margin-bottom:var(--space-lg)}.form-label{color:var(--text-secondary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:600;display:block}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-glass);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);transition:all var(--transition-fast);background:#0a0a1299;font-size:.9rem}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent-purple);outline:none;box-shadow:0 0 0 3px #8b5cf61a}.form-textarea{resize:vertical;min-height:100px}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239898b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:100px;align-items:center;padding:2px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.badge.queued{color:var(--accent-amber);background:#f59e0b26}.badge.running{color:var(--accent-blue);background:#3b82f626}.badge.done{color:var(--accent-green);background:#10b98126}.badge.error{color:var(--accent-red);background:#ef444426}.progress-bar{background:#ffffff0f;border-radius:100px;width:100%;height:6px;position:relative;overflow:hidden}.progress-fill{background:var(--gradient-aurora);height:100%;transition:width var(--transition-slow);border-radius:100px;position:relative}.progress-fill.animated:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d);width:30px;height:100%;animation:1.5s infinite shimmer;position:absolute;top:0;right:0}@keyframes shimmer{0%{opacity:0;transform:translate(-30px)}50%{opacity:1}to{opacity:0;transform:translate(30px)}}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.8)}to{opacity:1;transform:scale(1)}}.stat-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center}.stat-value{font-family:var(--font-display);background:var(--gradient-aurora);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:800}.stat-label{color:var(--text-muted);margin-top:var(--space-xs);font-size:.8rem}.actor-card{gap:var(--space-md);align-items:center;display:flex}.actor-avatar{background:var(--gradient-aurora);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:1.5rem;font-weight:700;display:flex;overflow:hidden}.actor-avatar img{object-fit:cover;width:100%;height:100%}.actor-info h3{margin-bottom:2px;font-size:1rem}.actor-info p{color:var(--text-secondary);font-size:.8rem}.actor-tags{gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.tag{color:var(--accent-purple);background:#8b5cf61a;border:1px solid #8b5cf633;border-radius:100px;padding:2px 8px;font-size:.65rem}.storyboard-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.storyboard-frame{border-radius:var(--radius-md);border:1px solid var(--border-glass);background:var(--bg-card);overflow:hidden}.storyboard-frame img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.storyboard-frame .frame-label{padding:var(--space-sm) var(--space-md);color:var(--text-secondary);font-size:.8rem}.tabs{gap:var(--space-xs);margin-bottom:var(--space-xl);border-bottom:1px solid var(--border-glass);padding-bottom:var(--space-xs);display:flex}.tab{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;font-size:.85rem;font-weight:500;position:relative}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent-purple)}.tab.active:after{content:"";background:var(--gradient-aurora);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.upload-zone{border:2px dashed var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-2xl);text-align:center;cursor:pointer;transition:all var(--transition-base)}.upload-zone:hover{border-color:var(--accent-purple);background:#8b5cf60a}.upload-zone .upload-icon{margin-bottom:var(--space-md);font-size:2.5rem}.upload-zone p{color:var(--text-secondary);font-size:.9rem}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#8b5cf633;border-radius:100px}::-webkit-scrollbar-thumb:hover{background:#8b5cf666}@media (width<=768px){.sidebar{display:none}.main-content{padding:var(--space-md)}.card-grid{grid-template-columns:1fr}h1{font-size:1.75rem}}
