.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f6f6f6;padding:20px}.login-card{background:#fff;padding:40px;border-radius:16px;box-shadow:0 10px 40px #0003;width:100%;max-width:420px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:32px}.login-logo{font-size:48px;margin-bottom:16px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-header h1{margin:0 0 8px;color:#000;font-size:32px;font-weight:700}.login-header p{margin:0;color:#7f8c8d;font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#000;font-size:14px}.form-group input{width:100%;padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:14px;transition:all .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f5f7fa;cursor:not-allowed}.btn-login{width:100%;padding:14px;font-size:16px;font-weight:600;margin-top:8px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;transition:all .3s}.btn-login:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-footer{display:flex;flex-direction:column;gap:12px;margin-top:8px;align-items:center}.link-button{background:none;border:none;color:#667eea;font-size:14px;cursor:pointer;padding:4px 8px;transition:all .2s;text-decoration:none}.link-button:hover:not(:disabled){color:#764ba2;text-decoration:underline}.link-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.login-card{padding:30px 20px}.login-header h1{font-size:28px}.login-logo{font-size:40px}}.api-tokens-container{padding:30px;max-width:1200px;margin:0 auto;width:100%}.api-tokens-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px}.api-tokens-header h2{margin:0 0 8px;color:#000;font-size:28px}.api-tokens-header p{margin:0;color:#7f8c8d;font-size:14px}.loading,.empty-state{text-align:center;padding:60px 20px;color:#95a5a6}.empty-state{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.empty-icon{font-size:64px;margin-bottom:20px}.empty-state h3{margin:0 0 10px;color:#000}.empty-state p{margin:0 0 30px;color:#95a5a6}.tokens-list{display:flex;flex-direction:column;gap:15px}.token-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center;transition:all .2s}.token-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.token-info{flex:1}.token-name{font-size:16px;font-weight:600;color:#000;margin-bottom:8px}.token-meta{display:flex;gap:20px;font-size:13px;color:#95a5a6}.btn-danger{background-color:#e74c3c;color:#fff}.btn-danger:hover{background-color:#c0392b}.btn-sm{padding:8px 16px;font-size:13px}.config-form small{display:block;margin-top:4px;color:#95a5a6;font-size:12px}.logs-container{padding:30px;max-width:1200px;margin:0 auto;width:100%}.logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.logs-header h1{font-size:2em;margin:0;color:#000}.logs-content{display:flex;flex-direction:column;gap:20px;height:auto}.jobs-panel{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;display:flex;flex-direction:column;min-height:80vh}.jobs-panel h2{font-size:1.3em;margin:0 0 20px;color:#000;border-bottom:2px solid #f0f0f0;padding-bottom:10px}.jobs-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:15px}.job-item{background:#f8f9fa;border:2px solid #e1e8ed;border-radius:8px;transition:all .2s ease;overflow:hidden}.job-item:hover{border-color:#bdc3c7}.job-item.expanded{border-color:#3498db;background:#fff;box-shadow:0 4px 12px #e61f7826}.job-summary{padding:15px;cursor:pointer;background:#f8f9fa}.job-item.expanded .job-summary{background:#f8fbfd;border-bottom:1px solid #3498db}.job-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.job-status{font-weight:600;font-size:.9em;display:flex;align-items:center;gap:6px}.job-date{font-size:.85em;color:#7f8c8d;margin-right:auto;margin-left:15px}.accordion-icon{font-size:1.2em;color:#7f8c8d;transition:transform .2s ease}.job-item.expanded .accordion-icon{transform:rotate(180deg);color:#3498db}.job-info{display:flex;flex-direction:column;gap:5px}.job-workflow{font-weight:600;color:#000;font-size:1.1em}.job-duration{font-size:.85em;color:#7f8c8d}.job-error{margin-top:10px;padding:8px;background:#fee;border-left:3px solid #e74c3c;font-size:.85em;color:#c0392b;border-radius:3px;max-width:100%}.job-details{padding:20px;background:#fff;animation:slideDown .3s ease-out}.job-details h3{margin:0 0 15px;font-size:1em;color:#2c3e50;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #eee;padding-bottom:8px}.logs-list{display:flex;flex-direction:column;gap:8px;max-height:500px;overflow-y:auto;padding-right:5px}.log-item{display:flex;flex-direction:column;gap:5px;padding:10px;background:#fbfbfb;border-left:3px solid #e1e8ed;border-radius:4px;font-size:.9em;border:1px solid #eee;border-left-width:3px}.log-item:hover{background:#f0f0f0}.log-header{display:flex;justify-content:flex-start;align-items:center;gap:15px}.log-timestamp{color:#95a5a6;font-family:Courier New,monospace;font-size:.85em}.log-level{font-weight:600;font-size:.8em}.log-message{color:#333;font-family:Courier New,monospace;padding-left:0;line-height:1.4}.job-details .loading-message,.job-details .empty-message{height:100px;font-size:.9em;background:#fafafa;border-radius:4px}@media (max-width: 768px){.logs-container{padding:15px}.job-header{flex-wrap:wrap;gap:10px}.job-date{margin-left:0;width:100%;order:3}.accordion-icon{margin-left:auto}}.dashboard-container{padding:30px;max-width:1200px;margin:0 auto;width:100%}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.dashboard-header h1{font-size:2em;margin:0;color:#2c3e50}.dashboard-actions{display:flex;gap:15px}.workflows-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.workflow-card{background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:20px;transition:all .2s ease;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 2px 4px #0000000d;cursor:pointer}.workflow-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000001a;border-color:#bdc3c7}.workflow-card-header{margin-bottom:15px}.workflow-title{font-size:1.2em;font-weight:600;margin-bottom:8px;color:#2c3e50}.workflow-description{color:#7f8c8d;font-size:.9em;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.workflow-meta{margin-top:auto;padding-top:15px;border-top:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}.workflow-steps-count{font-size:.85em;color:#95a5a6;background:#f8f9fa;padding:4px 8px;border-radius:4px}.workflow-card-actions{display:flex;gap:10px}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.1em;padding:5px;border-radius:4px;transition:background .2s}.btn-icon:hover{background:#f0f0f0}.btn-icon.delete:hover{background:#fee;color:#e74c3c}.empty-state{text-align:center;padding:50px;background:#fff;border-radius:8px;border:2px dashed #e1e8ed;color:#95a5a6;grid-column:1 / -1}.empty-state-icon{font-size:3em;margin-bottom:20px}.execution-panel{background-color:#f8f9fa;border-radius:8px;padding:16px;height:100%;display:flex;flex-direction:column}.panel-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e9ecef;padding-bottom:12px;margin-bottom:16px}.panel-header h2{font-size:1.25rem;font-weight:600;color:#2c3e50;margin:0;display:flex;align-items:center}.close-btn{background:none;border:none;cursor:pointer;color:#95a5a6;transition:color .2s;padding:4px}.close-btn:hover{color:#e74c3c}.execution-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.status-badge{padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:uppercase}.status-badge.success{background-color:#d4edda;color:#155724}.status-badge.error{background-color:#f8d7da;color:#721c24}.execution-meta{font-size:.8rem;color:#7f8c8d;display:flex;flex-direction:column;align-items:flex-end}.execution-error{background-color:#fff3cd;border:1px solid #ffeeba;border-radius:4px;padding:12px;margin-bottom:16px}.execution-error h3{margin:0 0 8px;font-size:.95rem;color:#856404}.error-message{font-size:.9rem;color:#333}.execution-section{margin-bottom:20px}.execution-section h3{font-size:.9rem;font-weight:600;color:#34495e;margin:0 0 8px;display:flex;align-items:center;gap:6px}.json-view{background-color:#2c3e50;color:#ecf0f1;padding:12px;border-radius:4px;font-size:.85rem;overflow-x:auto;max-height:200px;margin:0}.logs-view{background-color:#fff;border:1px solid #dfe6e9;border-radius:4px;max-height:300px;overflow-y:auto;padding:8px}.log-entry{font-family:monospace;font-size:.8rem;padding:4px 0;border-bottom:1px solid #f0f0f0;display:flex;gap:8px}.log-entry:last-child{border-bottom:none}.log-time{color:#95a5a6;min-width:65px}.log-message{color:#2c3e50;flex:1}.execution-running-state{text-align:center;padding:40px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.running-indicator{width:60px;height:60px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin:20px 0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sub-text{font-size:.85rem;color:#7f8c8d}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#f5f7fa;color:#000}.app{height:100vh;display:flex;flex-direction:column}.app-header{background:#000;color:#fff;padding:15px 30px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a}.app-header h1{font-size:1.8em;font-weight:600}.header-actions{display:flex;gap:10px}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:#000;color:#fff}.btn-primary:hover{background:#a7a7a6}.btn-success{background:#27ae60;color:#fff}.btn-success:hover{background:#229954}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}.app-main{display:flex;flex:1;overflow:hidden}.step-palette{width:280px;background:#fff;border-right:1px solid #dfe6e9;padding:20px;overflow-y:auto}.step-palette h2{font-size:1.2em;margin-bottom:15px;color:#000}.step-template{background:#ecf0f1;border:2px dashed #bdc3c7;border-radius:8px;padding:12px;margin-bottom:10px;cursor:grab;transition:all .2s}.step-template:hover{background:#dfe6e9;border-color:#95a5a6}.step-template:active{cursor:grabbing}.step-template-header{display:flex;align-items:center;gap:8px;font-weight:600;color:#000;margin-bottom:4px}.step-template-icon{font-size:1.3em}.step-template-desc{font-size:.85em;color:#7f8c8d}.workflow-canvas{flex:1;padding:30px;overflow-y:auto}.canvas-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.canvas-header h2{font-size:1.3em;color:#000}.canvas-info{color:#7f8c8d;font-size:.9em}.canvas-steps{min-height:400px;background:#fff;border-radius:10px;padding:20px;box-shadow:0 2px 8px #0000000d}.canvas-empty{text-align:center;padding:80px 20px;color:#95a5a6}.canvas-empty-icon{font-size:4em;margin-bottom:15px}.canvas-empty-text{font-size:1.1em}.step-card{background:#fff;border:2px solid #e1e8ed;border-radius:8px;padding:15px;margin-bottom:15px;cursor:move;transition:all .2s;position:relative}.step-card:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db1a}.step-card.selected{border-color:#3498db;background:#f8fbfd;box-shadow:0 4px 12px #3498db26}.step-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.step-card-title{display:flex;align-items:center;gap:8px;font-weight:600;color:#000}.step-card-icon{font-size:1.3em}.step-card-number{background:#a7a7a6;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8em;font-weight:700}.step-card-actions{display:flex;gap:5px}.step-card-btn{background:none;border:none;cursor:pointer;padding:5px 8px;border-radius:4px;font-size:1.1em;transition:background .2s}.step-card-btn:hover{background:#ecf0f1}.step-card-content{font-size:.9em;color:#7f8c8d;line-height:1.5}.step-card-param{margin:3px 0}.step-card-param strong{color:#000}.config-panel{width:350px;background:#fff;border-left:1px solid #dfe6e9;padding:20px;overflow-y:auto}.config-panel h2{font-size:1.2em;margin-bottom:15px;color:#000}.config-empty{text-align:center;padding:40px 20px;color:#95a5a6}.config-form{display:flex;flex-direction:column;gap:15px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:.9em;font-weight:600;color:#000}.form-group input{padding:10px;border:1px solid #dfe6e9;border-radius:6px;font-size:.95em;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#3498db}.execution-panel{background:#fff;border-radius:10px;padding:20px;margin-top:20px;box-shadow:0 2px 8px #0000000d}.execution-panel h3{margin-bottom:15px;color:#000}.execution-result{padding:15px;border-radius:6px;margin-top:15px}.execution-result.success{background:#d5f4e6;border:1px solid #27ae60}.execution-result.error{background:#fadbd8;border:1px solid #e74c3c}.execution-result-header{font-weight:600;margin-bottom:10px}.execution-result-data{background:#fff;padding:10px;border-radius:4px;font-family:Courier New,monospace;font-size:.9em;white-space:pre-wrap;word-break:break-all}.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}.modal{background:#fff;border-radius:10px;padding:30px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal h2{margin-bottom:20px;color:#000}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.loading{text-align:center;padding:40px;color:#7f8c8d}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#bdc3c7;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#95a5a6}.hamburger-menu-btn{background:none;border:none;cursor:pointer;padding:10px;z-index:1001;transition:transform .3s ease}.hamburger-menu-btn:hover{transform:scale(1.05)}.hamburger-icon{display:flex;flex-direction:column;gap:5px;width:28px;height:20px;position:relative}.hamburger-icon span{display:block;width:100%;height:3px;background:#fff;border-radius:3px;transition:all .3s ease}.hamburger-icon.open span:nth-child(1){transform:rotate(45deg) translate(7px,7px)}.hamburger-icon.open span:nth-child(2){opacity:0;transform:translate(-10px)}.hamburger-icon.open span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}.menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dropdown-menu{position:absolute;top:70px;right:20px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;min-width:250px;z-index:1000;overflow:hidden;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.menu-item{display:flex;align-items:center;gap:12px;padding:14px 20px;background:none;border:none;width:100%;text-align:left;cursor:pointer;font-size:15px;color:#000;transition:all .2s ease;text-decoration:none}.menu-item:hover:not(:disabled){background:#f8f9fa}.menu-item.active{background:#e8f4f8;color:#3498db;font-weight:600;border-left:3px solid #3498db}.menu-item:disabled{opacity:.5;cursor:not-allowed}.menu-item.menu-link{position:relative}.menu-item .menu-icon{font-size:1.2em;width:24px;text-align:center}.menu-item .external-icon{margin-left:auto;font-size:.9em;color:#7f8c8d}.menu-item.menu-logout{color:#e74c3c}.menu-item.menu-logout:hover{background:#fadbd8}.menu-divider{height:1px;background:#e1e8ed;margin:8px 0}@media (max-width: 768px){.header-actions{display:none}}
