.knime-console{color:#e7edf5;min-height:100vh;font-family:var(--font-geist-sans,"Segoe UI",Arial,sans-serif);background:radial-gradient(circle at top,#51d1a626,#0000),radial-gradient(circle at bottom,#5aa0ff1a,#0000),#0b0f14}.knime-console .console-shell{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem}.knime-console .console-nav{background:#0b0f14e6;border:1px solid #51d1a640;border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem;display:flex;box-shadow:0 20px 40px #00000059}.knime-console .nav-left{align-items:center;gap:1rem;display:flex}.knime-console .nav-left h1{font-size:1.5rem;font-weight:700}.knime-console .nav-back{color:#9fb1c6;font-size:.9rem;text-decoration:none}.knime-console .nav-right{align-items:center;gap:.5rem;display:flex}.knime-console select{color:#e7edf5;background:#ffffff0d;border:1px solid #51d1a64d;border-radius:12px;padding:.5rem 1rem}.knime-console .workflow-add{background:#0b0f14d9;border:1px solid #51d1a633;border-radius:16px;align-items:center;gap:1rem;margin-bottom:2rem;padding:1.5rem;display:flex}.knime-console .workflow-add label{white-space:nowrap;font-weight:600}.knime-console .workflow-add select{flex:1}.knime-console .workflow-add button{background:var(--gradient-primary);color:#fff;border:none;border-radius:12px;padding:.75rem 1.5rem;font-weight:600}.knime-console .workflow-grid{grid-template-columns:repeat(2,1fr);align-items:start;gap:1.5rem;display:grid}@media (max-width:768px){.knime-console .workflow-grid{grid-template-columns:1fr}}.knime-console .workflow-card{background:#0b0f14d9;border:1px solid #51d1a633;border-radius:18px;flex-direction:column;gap:1rem;padding:1.5rem;display:flex;box-shadow:0 20px 40px #00000059}.knime-console .workflow-card header{justify-content:space-between;align-items:center;display:flex}.knime-console .workflow-card h3{margin:0;font-size:1.25rem}.auth-loading{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:60vh;display:flex}.auth-loading .spinner{border:3px solid var(--border,#e5e7eb);border-top-color:var(--brand,#3b82f6);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.unauthorized{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:2rem;display:flex}.unauthorized-icon{margin-bottom:1rem;font-size:4rem}.unauthorized h1{color:var(--error,#ef4444);margin-bottom:1rem;font-size:1.5rem}.unauthorized p{color:var(--text,#374151);max-width:400px;margin-bottom:.5rem}.unauthorized-hint{color:var(--muted,#6b7280);font-size:.875rem}.knime-console .badge{border-radius:999px;padding:.25rem .75rem;font-size:.75rem}.knime-console .badge-completed{color:var(--bs-primary);background:#51d1a633;border:1px solid #51d1a666}.knime-console .badge-idle{color:#9fb1c6;background:#9fb1c633;border:1px solid #9fb1c666}.knime-console .workflow-card footer{gap:.75rem;display:flex}.knime-console .btn-outline,.knime-console .btn-primary{color:#e7edf5;background:0 0;border:1px solid #51d1a666;border-radius:12px;flex:1;padding:.75rem;font-weight:600}.knime-console .btn-primary{background:var(--gradient-primary);border:none}.knime-console .btn-primary:disabled,.knime-console .btn-outline:disabled{opacity:.5;cursor:not-allowed}.knime-console .workflow-empty,.knime-console .workflow-modals{text-align:center;color:#9fb1c6;background:#0b0f14b3;border:1px dashed #51d1a64d;border-radius:16px;margin-top:2rem;padding:2rem}.knime-console .workflow-modals{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.knime-console .modal-shell{border:1px solid #51d1a633;border-radius:12px;padding:1.5rem}.knime-console .badge-running{color:#f7c948;background:#f7c94833;border:1px solid #f7c94880}.knime-console .alert-banner{color:#f7c948;background:#f7c9481f;border:1px solid #f7c94859;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.knime-console .alert-banner button{color:inherit;cursor:pointer;background:0 0;border:none;font-size:1rem}.knime-console .workflow-meta{color:#9fb1c6;margin:0;font-size:.85rem}.knime-console .input-block{background:#ffffff05;border:1px solid #51d1a626;border-radius:12px;margin-bottom:1.25rem;padding:1rem}.knime-console .block-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;font-weight:600;display:flex}.knime-console textarea{color:#e7edf5;resize:vertical;background:#0b0f14cc;border:1px solid #9fb1c666;border-radius:12px;width:100%;min-height:150px;padding:.75rem 1rem;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.9rem}.knime-console .text-link{color:var(--bs-primary);font-size:.85rem;text-decoration:none}.knime-console .text-link:hover{text-decoration:underline}.knime-console .hint-text{color:#9fb1c6;margin-top:.35rem;font-size:.8rem}.knime-console .file-input-actions{align-items:center;gap:.75rem;display:flex}.knime-console .progress-track{margin-top:.75rem}.knime-console .progress-value{margin-bottom:.25rem;font-size:.85rem}.knime-console .progress-bar{background:#ffffff14;border-radius:999px;width:100%;height:6px;overflow:hidden}.knime-console .progress-fill{background:var(--gradient-primary);border-radius:999px;height:100%;transition:width .3s}.knime-console .upload-summary{color:#b3f5d0;background:#51d1a61f;border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:.75rem;padding:.75rem;font-size:.85rem;display:flex}.knime-console .progress-wrapper{border:1px solid #51d1a633;border-radius:12px;padding:.75rem}.knime-console .progress-stats{justify-content:space-between;margin-bottom:.35rem;font-size:.85rem;display:flex}.knime-console .workflow-output{background:#ffffff05;border:1px solid #51d1a626;border-radius:12px;padding:1rem}.knime-console .workflow-output h4{margin:0 0 .75rem}.knime-console .workflow-output pre{background:#0006;border-radius:8px;max-height:200px;padding:.75rem;font-size:.85rem;overflow:auto}.knime-console .file-output-list{flex-direction:column;gap:.75rem;margin-bottom:.75rem;display:flex}.knime-console .file-card{border:1px solid #51d1a61f;border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.knime-console .file-card a{color:#e7edf5;background:#51d1a633;border-radius:999px;padding:.5rem 1rem;text-decoration:none}.knime-console .error-block{color:#f9a;background:#ff638414;border:1px solid #ff63844d;border-radius:12px;padding:.75rem 1rem;font-size:.85rem}.knime-console .modal-overlay{z-index:50;background:#04070bd9;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.knime-console .modal-dialog{background:#101721;border:1px solid #51d1a626;border-radius:20px;flex-direction:column;width:min(560px,100%);max-height:90vh;display:flex;box-shadow:0 30px 60px #00000073}.knime-console .modal-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.knime-console .modal-header button{color:#9fb1c6;cursor:pointer;background:0 0;border:none;font-size:1.4rem}.knime-console .modal-body{color:#e7edf5;padding:1.5rem;font-size:.95rem;overflow-y:auto}.knime-console .modal-body pre{background:#00000059;border-radius:12px;max-height:220px;padding:.75rem;overflow:auto}.knime-console .modal-actions{border-top:1px solid #ffffff14;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.knime-console .file-dropzone{text-align:center;cursor:pointer;color:#9fb1c6;border:2px dashed #51d1a666;border-radius:16px;margin-top:1rem;padding:1.5rem}.knime-console .file-dropzone:hover{color:#e7edf5;border-color:#51d1a6b3}.knime-console .file-dropzone:focus-visible{outline:2px solid var(--bs-primary);outline-offset:4px}.knime-console .output-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.knime-console .output-list li{border-bottom:1px solid #ffffff0d;justify-content:space-between;padding:.5rem 0;display:flex}.knime-console .output-list li span{color:#9fb1c6}.knime-console .output-list li strong{color:#e7edf5}.knime-console .modal-hint{color:#9fb1c6;margin:0 0 .5rem;font-size:.85rem}.knime-console .json-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:.5rem;display:grid}.knime-console .json-field-card{background:#0b0f14bf;border:1px solid #51d1a633;border-radius:14px;flex-direction:column;gap:.35rem;padding:.9rem;display:flex}.knime-console .json-field-key{color:#9fb1c6;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.75rem}.knime-console .json-field-label{font-weight:600}.knime-console .json-field-meta{color:#e7edf5b3;font-size:.75rem}.knime-console .json-field-input{align-items:center;gap:.5rem;margin-top:.2rem;display:flex}.knime-console .json-field-input select,.knime-console .json-field-input input{color:#e7edf5;background:#00000059;border:1px solid #9fb1c666;border-radius:10px;flex:1;padding:.4rem .75rem;font-size:.9rem}.knime-console .json-field-unit{color:#9fb1c6;font-size:.8rem}.knime-console .json-field-hint{color:#6fb3ff;margin:.25rem 0 0;font-size:.75rem}.knime-console .error-text{color:#f9a;margin-top:.75rem;font-size:.85rem}@media (max-width:768px){.knime-console .console-nav{text-align:center;flex-direction:column;gap:1rem}.knime-console .workflow-add{flex-direction:column;align-items:stretch}.knime-console .workflow-card footer{flex-direction:column}}
