:root{--background:#0a0a0a;--foreground:#ededed;--secondary:#10b981;--accent:#f59e0b;--surface:#171717;--surface-hover:#262626;--border:#404040;--card:#171717;--glass:hsla(0,0%,9%,.7);--muted:#a1a1aa;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;background:var(--background);color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.container{width:100%;max-width:100%;margin:0 auto;padding:2rem}.btn{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem}.btn-primary{background:var(--primary);box-shadow:0 4px 14px 0 rgba(109,40,217,.39)}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 20px rgba(109,40,217,.23)}.card{background:var(--surface);border-radius:12px;padding:1.5rem;transition:transform .2s ease,border-color .2s ease}.card:hover{border-color:var(--primary)}.input{width:100%;padding:.75rem;border-radius:8px;background:var(--background);border:1px solid var(--border);color:var(--foreground);font-size:1rem;transition:border-color .2s}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(109,40,217,.2)}.glass-panel{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.1);border-radius:16px}.heading-gradient{background:linear-gradient(90deg,#c084fc,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}select{color-scheme:dark;border:1px solid #4b5563!important}select,select option,select:focus option{background-color:#1f2937!important;color:#fff!important}select option:checked,select option:hover{background-color:#374151!important;color:#fff!important}[data-theme=light]{--background:#fff;--foreground:#1a1a1a;--surface:#f5f5f5;--surface-hover:#e5e5e5;--border:#d4d4d8;--card:#f5f5f5;--glass:hsla(0,0%,96%,.7);--muted:#636369;color-scheme:light}[data-theme=light] select{color-scheme:light;border:1px solid #d4d4d8!important}[data-theme=light] select,[data-theme=light] select option{background-color:#f5f5f5!important;color:#1a1a1a!important}[data-theme=light] select option:checked,[data-theme=light] select option:hover{background-color:#e5e5e5!important;color:#1a1a1a!important}[data-theme=light] .glass-panel{border-color:rgba(0,0,0,.1)}[data-theme=light] .heading-gradient{background:linear-gradient(90deg,#7c3aed,#4f46e5);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=midnight]{--background:#0b1120;--foreground:#e2e8f0;--surface:#131c31;--surface-hover:#1a2744;--border:#1e3050;--card:#131c31;--glass:rgba(19,28,49,.8);--muted:#8896b3;color-scheme:dark}[data-theme=midnight] select{color-scheme:dark;border:1px solid #1e3050!important}[data-theme=midnight] select,[data-theme=midnight] select option{background-color:#131c31!important;color:#e2e8f0!important}[data-theme=midnight] select option:checked,[data-theme=midnight] select option:hover{background-color:#1a2744!important}[data-theme=midnight] .glass-panel{border-color:rgba(99,128,180,.12)}[data-theme=midnight] .heading-gradient{background:linear-gradient(90deg,#60a5fa,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=nord]{--background:#2e3440;--foreground:#eceff4;--surface:#3b4252;--surface-hover:#434c5e;--border:#4c566a;--card:#3b4252;--glass:rgba(59,66,82,.8);--muted:#a0aec0;color-scheme:dark}[data-theme=nord] select{color-scheme:dark;border:1px solid #4c566a!important}[data-theme=nord] select,[data-theme=nord] select option{background-color:#3b4252!important;color:#eceff4!important}[data-theme=nord] select option:checked,[data-theme=nord] select option:hover{background-color:#434c5e!important}[data-theme=nord] .glass-panel{border-color:rgba(136,192,208,.12)}[data-theme=nord] .heading-gradient{background:linear-gradient(90deg,#88c0d0,#81a1c1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=copper]{--background:#12100e;--foreground:#ede8e3;--surface:#1c1916;--surface-hover:#2a2520;--border:#3d352d;--card:#1c1916;--glass:rgba(28,25,22,.8);--muted:#a89e93;color-scheme:dark}[data-theme=copper] select{color-scheme:dark;border:1px solid #3d352d!important}[data-theme=copper] select,[data-theme=copper] select option{background-color:#1c1916!important;color:#ede8e3!important}[data-theme=copper] select option:checked,[data-theme=copper] select option:hover{background-color:#2a2520!important}[data-theme=copper] .glass-panel{border-color:hsla(34,51%,60%,.12)}[data-theme=copper] .heading-gradient{background:linear-gradient(90deg,#f59e0b,#d97706);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=emerald]{--background:#0a100e;--foreground:#e6ede9;--surface:#121d18;--surface-hover:#1a2d24;--border:#243d31;--card:#121d18;--glass:rgba(18,29,24,.8);--muted:#87a696;color-scheme:dark}[data-theme=emerald] select{color-scheme:dark;border:1px solid #243d31!important}[data-theme=emerald] select,[data-theme=emerald] select option{background-color:#121d18!important;color:#e6ede9!important}[data-theme=emerald] select option:checked,[data-theme=emerald] select option:hover{background-color:#1a2d24!important}[data-theme=emerald] .glass-panel{border-color:rgba(16,185,129,.12)}[data-theme=emerald] .heading-gradient{background:linear-gradient(90deg,#34d399,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=sandstone]{--background:#faf8f5;--foreground:#2c2825;--surface:#f0ece7;--surface-hover:#e6e0d9;--border:#d5cec5;--card:#f0ece7;--glass:hsla(33,23%,92%,.8);--muted:#6b6359;color-scheme:light}[data-theme=sandstone] select{color-scheme:light;border:1px solid #d5cec5!important}[data-theme=sandstone] select,[data-theme=sandstone] select option{background-color:#f0ece7!important;color:#2c2825!important}[data-theme=sandstone] select option:checked,[data-theme=sandstone] select option:hover{background-color:#e6e0d9!important}[data-theme=sandstone] .glass-panel{border-color:rgba(0,0,0,.08)}[data-theme=sandstone] .heading-gradient{background:linear-gradient(90deg,#92400e,#b45309);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=arctic]{--background:#f5f8fc;--foreground:#1e293b;--surface:#e8eef6;--surface-hover:#dce4f0;--border:#c7d2e0;--card:#e8eef6;--glass:rgba(232,238,246,.8);--muted:#536179;color-scheme:light}[data-theme=arctic] select{color-scheme:light;border:1px solid #c7d2e0!important}[data-theme=arctic] select,[data-theme=arctic] select option{background-color:#e8eef6!important;color:#1e293b!important}[data-theme=arctic] select option:checked,[data-theme=arctic] select option:hover{background-color:#dce4f0!important}[data-theme=arctic] .glass-panel{border-color:rgba(30,64,120,.08)}[data-theme=arctic] .heading-gradient{background:linear-gradient(90deg,#2563eb,#4f46e5);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-compact=true] .btn{padding:.5rem 1rem;font-size:.85rem}[data-compact=true] .card,[data-compact=true] .container{padding:1rem}[data-compact=true] .input{padding:.5rem;font-size:.9rem}[data-density=compact] td,[data-density=compact] th{padding:.25rem .5rem!important;font-size:.85rem}[data-density=comfortable] td,[data-density=comfortable] th{padding:1rem 1.25rem!important}[data-animations=false] *,[data-animations=false] :after,[data-animations=false] :before{transition-duration:0s!important;animation-duration:0s!important}.xterm{padding:0;margin:0}.xterm .xterm-viewport{overflow-y:auto!important}.xterm .xterm-rows{color:#fff}@media (max-width:767px){.container{padding:1rem}.modal{width:100%!important;max-width:100%!important;max-height:85vh;border-bottom-left-radius:0;border-bottom-right-radius:0}}@supports (padding-bottom:env(safe-area-inset-bottom)){@media (display-mode:standalone){body{padding-bottom:env(safe-area-inset-bottom)}}}:root{--primary:#6d28d9;--primary-hover:#5b21b6;--primary-light:#8b5cf6;--primary-dark:#4c1d95;--secondary:#3b82f6;--secondary-hover:#2563eb;--secondary-light:#60a5fa;--success:#10b981;--success-hover:#059669;--success-light:#34d399;--success-bg:rgba(16,185,129,.1);--success-border:rgba(16,185,129,.3);--warning:#f59e0b;--warning-hover:#d97706;--warning-light:#fbbf24;--warning-bg:rgba(245,158,11,.1);--warning-border:rgba(245,158,11,.3);--error:#ef4444;--error-hover:#dc2626;--error-light:#f87171;--error-bg:rgba(239,68,68,.1);--error-border:rgba(239,68,68,.3);--info:#3b82f6;--info-hover:#2563eb;--info-light:#60a5fa;--info-bg:rgba(59,130,246,.1);--info-border:rgba(59,130,246,.3);--gray-50:#fafafa;--gray-100:#f4f4f5;--gray-200:#e4e4e7;--gray-300:#d4d4d8;--gray-400:#a1a1aa;--gray-500:#71717a;--gray-600:#52525b;--gray-700:#3f3f46;--gray-800:#27272a;--gray-900:#18181b;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1)}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.p-0{padding:0}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-3{padding:.75rem}.p-4{padding:var(--spacing-md)}.p-6{padding:var(--spacing-lg)}.p-8{padding:var(--spacing-xl)}.px-2{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-6{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.py-1{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.py-2{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.m-0{margin:0}.m-1{margin:var(--spacing-xs)}.m-2{margin:var(--spacing-sm)}.m-4{margin:var(--spacing-md)}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-4{margin-top:var(--spacing-md)}.mt-6{margin-top:var(--spacing-lg)}.mt-8{margin-top:var(--spacing-xl)}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-4{margin-bottom:var(--spacing-md)}.mb-6{margin-bottom:var(--spacing-lg)}.mb-8{margin-bottom:var(--spacing-xl)}.gap-1{gap:var(--spacing-xs)}.gap-2{gap:var(--spacing-sm)}.gap-3{gap:.75rem}.gap-4{gap:var(--spacing-md)}.gap-6{gap:var(--spacing-lg)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.flex-1{flex:1 1}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.w-full{width:100%}.h-full{height:100%}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:600;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .2s ease;text-decoration:none;gap:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary);color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--secondary-hover)}.btn-success{background-color:var(--success);color:#fff}.btn-success:hover:not(:disabled){background-color:var(--success-hover)}.btn-warning{background-color:var(--warning);color:#fff}.btn-warning:hover:not(:disabled){background-color:var(--warning-hover)}.btn-danger{background-color:var(--error);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--error-hover)}.btn-ghost{background-color:transparent;color:var(--foreground);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background-color:var(--surface)}.btn-sm{padding:.25rem .75rem;font-size:.75rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.card{background-color:var(--card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.card-header{border-bottom:1px solid var(--border);background-color:var(--surface)}.card-body,.card-footer,.card-header{padding:var(--spacing-lg)}.card-footer{border-top:1px solid var(--border);background-color:var(--surface)}.table{width:100%;border-collapse:collapse;background-color:var(--card);border-radius:var(--radius-lg);overflow:hidden}.table thead{background-color:var(--border)}.table th{padding:.75rem;text-align:left;font-weight:600;font-size:.875rem}.table td,.table th{border-bottom:1px solid var(--border)}.table td{padding:1rem}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background-color:var(--surface)}.table-scroll-container{max-height:calc(100vh - 250px);overflow:auto;border-radius:var(--radius-lg)}.table-scroll-container thead th{position:-webkit-sticky;position:sticky;top:0;z-index:10;background-color:var(--surface);border-bottom:1px solid var(--border)}.table-scroll-container .table thead th{background-color:var(--border)}.form-group{margin-bottom:var(--spacing-md)}.label{display:block;margin-bottom:var(--spacing-sm);font-weight:600}.input,.label,.select,.textarea{font-size:.875rem;color:var(--foreground)}.input,.select,.textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--card);transition:border-color .2s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary)}.input:disabled,.select:disabled,.textarea:disabled{opacity:.5;cursor:not-allowed}.textarea{resize:vertical;min-height:80px}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background-color:var(--primary);color:#fff}.badge-secondary{background-color:var(--secondary);color:#fff}.badge-success{background-color:var(--success);color:#fff}.badge-warning{background-color:var(--warning);color:#fff}.badge-error{background-color:var(--error);color:#fff}.badge-info{background-color:var(--info);color:#fff}.badge-gray{background-color:var(--gray-500);color:#fff}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);border:1px solid}.alert-success{background-color:var(--success-bg);border-color:var(--success-border);color:var(--success)}.alert-warning{background-color:var(--warning-bg);border-color:var(--warning-border);color:var(--warning)}.alert-error{background-color:var(--error-bg);border-color:var(--error-border);color:var(--error)}.alert-info{background-color:var(--info-bg);border-color:var(--info-border);color:var(--info)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background-color:var(--card);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{margin-bottom:var(--spacing-lg)}.modal-title{font-size:1.5rem;font-weight:700;margin:0}.modal-body{margin-bottom:var(--spacing-lg)}.modal-footer{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.text-primary{color:var(--primary)}.text-secondary{color:var(--secondary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}.text-gray-400{color:var(--gray-400)}.text-gray-500{color:var(--gray-500)}.text-gray-600{color:var(--gray-600)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-success{background-color:var(--success)}.bg-warning{background-color:var(--warning)}.bg-error{background-color:var(--error)}@media (max-width:768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(1,minmax(0,1fr))}.modal{width:95%;padding:var(--spacing-md)}}.validated-input-wrapper{display:flex;flex-direction:column;width:100%}.input-validation-error{border-color:var(--error)!important;box-shadow:0 0 0 2px rgba(239,68,68,.2)!important}.input-validation-error:focus{border-color:var(--error)!important;box-shadow:0 0 0 2px rgba(239,68,68,.35)!important}.validation-error-text{font-size:.75rem;color:var(--error);margin-top:.25rem;margin-bottom:0;padding-left:.125rem;animation:validationFadeIn .2s ease}@keyframes validationFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s ease}.animate-slide-in{animation:slideIn .3s ease}.transition{transition:all .2s ease}.pipeline-canvas-wrapper{width:100%;height:100%;background:#0f172a}.react-flow,.react-flow__background{background:#0f172a!important}.react-flow__minimap{background:#1e293b!important;border:1px solid #334155;border-radius:8px}.react-flow__controls{background:#1e293b;border:1px solid #334155;border-radius:8px;overflow:hidden}.react-flow__controls-button{background:#1e293b;border-bottom:1px solid #334155;color:#94a3b8;fill:#94a3b8}.react-flow__controls-button:hover{background:#334155}.canvas-status-panel{background:rgba(30,41,59,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 12px;border-radius:8px;border:1px solid #334155;display:flex;gap:16px}.status-item{display:flex;align-items:center;gap:6px;font-size:13px}.status-label{color:#64748b}.status-value{color:#f8fafc;font-weight:600}.status-item.status-error .status-value{color:#ef4444}.pipeline-node{min-width:180px;background:#1e293b;border:2px solid #334155;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.3);overflow:hidden;transition:all .2s;position:relative}.pipeline-node:hover{box-shadow:0 6px 20px rgba(0,0,0,.4);transform:translateY(-1px)}.pipeline-node.selected{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.3)}.pipeline-node.invalid{border-color:#ef4444}.node-header{padding:8px 12px;display:flex;align-items:center;gap:8px;color:#fff}.node-icon{font-size:16px}.node-type-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.9}.node-body{padding:12px;background:#1e293b}.node-name{font-size:14px;font-weight:600;color:#f8fafc;margin-bottom:4px}.node-component{font-size:12px;color:#64748b}.gpu-badge{margin-top:8px;padding:4px 8px;background:rgba(139,92,246,.2);color:#a78bfa;font-size:11px;border-radius:4px;display:inline-block}.node-errors{margin-top:8px;padding:8px;background:rgba(239,68,68,.1);border-radius:6px}.node-error-item{font-size:11px;color:#fca5a5}.node-handle{width:14px!important;height:14px!important;background:#475569!important;border:2px solid #64748b!important;transition:all .2s}.node-handle:hover{background:#3b82f6!important;border-color:#60a5fa!important;transform:scale(1.2)}.collaborator-indicator{position:absolute;top:-4px;right:-4px;width:12px;height:12px;border-radius:50%;border:2px solid #1e293b;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}}.remote-update-flash{position:absolute;inset:0;background:rgba(59,130,246,.3);animation:flash .5s ease-out;pointer-events:none}@keyframes flash{0%{opacity:1}to{opacity:0}}.remote-cursor{position:absolute;pointer-events:none;z-index:1000}.remote-cursor:before{content:"";display:block;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:12px solid;transform:rotate(-45deg)}.cursor-label{display:block;padding:2px 6px;background:inherit;color:#fff;font-size:11px;border-radius:4px;margin-left:12px;margin-top:-8px;white-space:nowrap}.component-catalog{display:flex;flex-direction:column;height:100%;color:#e2e8f0}.catalog-header{padding:16px;border-bottom:1px solid #334155}.catalog-header h3{margin:0 0 12px;font-size:14px;font-weight:600;color:#f8fafc}.catalog-search{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f8fafc;font-size:13px}.catalog-search:focus{outline:none;border-color:#3b82f6}.category-filters{padding:8px;display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid #334155}.category-btn{padding:4px 8px;background:transparent;border:1px solid #334155;border-radius:4px;color:#94a3b8;font-size:11px;cursor:pointer;transition:all .2s}.category-btn.active,.category-btn:hover{background:rgba(59,130,246,.1);border-color:#3b82f6;color:#f8fafc}.catalog-list{flex:1 1;overflow-y:auto;padding:8px}.catalog-category{margin-bottom:8px}.category-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:hsla(0,0%,100%,.02);border-left:3px solid;border-radius:4px;cursor:pointer;transition:background .2s}.category-header:hover{background:hsla(0,0%,100%,.05)}.category-name{flex:1 1;font-size:13px;font-weight:500}.category-count{font-size:11px;color:#64748b;background:#334155;padding:2px 6px;border-radius:10px}.category-toggle{color:#64748b;font-size:10px}.category-components{padding:4px 0 4px 12px}.component-item{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:4px 0;background:hsla(0,0%,100%,.02);border:1px solid transparent;border-radius:8px;cursor:-webkit-grab;cursor:grab;transition:all .2s}.component-item:hover{background:rgba(59,130,246,.1);border-color:#3b82f6}.component-item:active{cursor:-webkit-grabbing;cursor:grabbing}.component-item.disabled{opacity:.5;cursor:not-allowed}.component-icon{font-size:20px}.component-info{flex:1 1;min-width:0}.component-name{font-size:13px;font-weight:500;color:#f8fafc}.component-desc{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.component-badge{padding:2px 6px;font-size:10px;border-radius:4px;font-weight:600}.component-badge.gpu{background:rgba(139,92,246,.2);color:#a78bfa}.catalog-help{padding:12px 16px;font-size:12px;color:#64748b;border-top:1px solid #334155;text-align:center}.catalog-empty,.catalog-loading{padding:32px;text-align:center;color:#64748b}.config-panel{display:flex;flex-direction:column;height:100%;background:#1e293b;color:#e2e8f0}.config-panel.empty{justify-content:center;align-items:center}.empty-state{text-align:center;color:#64748b}.empty-icon{font-size:48px;display:block;margin-bottom:12px}.config-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #334155}.config-header h3{margin:0;font-size:14px;font-weight:600}.close-btn{background:transparent;border:none;color:#64748b;cursor:pointer;font-size:16px}.close-btn:hover{color:#f8fafc}.config-tabs{display:flex;border-bottom:1px solid #334155}.config-tabs .tab{flex:1 1;padding:10px;background:transparent;color:#64748b;cursor:pointer;font-size:12px;border:none;border-bottom:2px solid transparent}.config-tabs .tab.active{color:#f8fafc;border-bottom-color:#3b82f6}.config-tabs .tab:hover:not(.active){color:#94a3b8}.config-errors{padding:12px;background:rgba(239,68,68,.1);border-bottom:1px solid #334155}.error-item{display:flex;gap:8px;padding:8px;margin-bottom:8px;background:rgba(0,0,0,.2);border-radius:6px}.error-item:last-child{margin-bottom:0}.error-icon{flex-shrink:0}.error-content{flex:1 1;min-width:0}.error-message{font-size:12px;color:#fca5a5}.error-suggestion{font-size:11px;color:#94a3b8;margin-top:4px}.config-body{flex:1 1;overflow-y:auto;padding:16px}.config-section{gap:16px}.config-section,.form-field{display:flex;flex-direction:column}.form-field{gap:6px}.form-field label{font-size:12px;font-weight:500;color:#94a3b8}.required-mark{color:#ef4444;margin-left:4px}.form-field input,.form-field select{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f8fafc;font-size:13px}.form-field input:focus,.form-field select:focus{outline:none;border-color:#3b82f6}.form-field input:disabled,.form-field select:disabled{opacity:.5;cursor:not-allowed}.field-help{font-size:11px;color:#64748b}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#f8fafc;cursor:pointer}.checkbox-label input{width:16px;height:16px}.config-footer{padding:16px;border-top:1px solid #334155}.delete-btn{width:100%;padding:10px;background:rgba(239,68,68,.1);border:1px solid #ef4444;border-radius:6px;color:#ef4444;cursor:pointer;font-size:13px;transition:all .2s}.delete-btn:hover:not(:disabled){background:#ef4444;color:#fff}.delete-btn:disabled{opacity:.5;cursor:not-allowed}.collaboration-bar{display:flex;align-items:center;gap:16px}.collab-section{display:flex;align-items:center;gap:8px}.collab-label{font-size:12px;color:#64748b}.avatar-stack{display:flex}.collab-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;border:2px solid #1e293b;margin-left:-8px}.collab-avatar:first-child{margin-left:0}.collab-avatar.more{background:#475569;font-size:10px}.collab-avatar.self{border-color:#3b82f6}.lock-btn{padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.lock-btn.available{background:rgba(16,185,129,.1);border:1px solid #10b981;color:#10b981}.lock-btn.available:hover{background:#10b981;color:#fff}.lock-btn.holding{background:rgba(59,130,246,.1);border:1px solid #3b82f6;color:#3b82f6}.lock-info{padding:6px 12px;background:rgba(251,191,36,.1);border:1px solid #fbbf24;border-radius:6px;color:#fbbf24;font-size:12px}.status-badge{padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600}.status-badge.valid{background:rgba(16,185,129,.1);color:#10b981}.status-badge.invalid{background:rgba(239,68,68,.1);color:#ef4444}.status-badge.editing{background:rgba(59,130,246,.1);color:#3b82f6}.last-saved{font-size:11px;color:#64748b}.username{font-size:12px;color:#94a3b8}.validation-panel{display:flex;flex-direction:column;height:100%;color:#e2e8f0}.validation-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #334155}.validation-header h3{margin:0;font-size:14px;font-weight:600}.validate-btn{padding:6px 12px;background:#3b82f6;border:none;border-radius:6px;color:#fff;font-size:12px;cursor:pointer;transition:background .2s}.validate-btn:hover:not(:disabled){background:#2563eb}.validate-btn:disabled{opacity:.5;cursor:not-allowed}.validation-summary{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid #334155}.summary-item{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px}.summary-item.error{background:rgba(239,68,68,.1);color:#ef4444}.summary-item.warning{background:rgba(251,191,36,.1);color:#fbbf24}.summary-item.success{background:rgba(16,185,129,.1);color:#10b981}.summary-item.info{background:rgba(59,130,246,.1);color:#93c5fd}.summary-item .icon{font-weight:700;font-size:14px}.summary-item .count{font-size:18px;font-weight:700}.summary-item .label{font-size:12px}.error-list{flex:1 1;overflow-y:auto;padding:12px}.error-item .error-location{font-size:11px;color:#64748b;font-family:monospace}.resource-estimate{padding:16px;border-top:1px solid #334155}.resource-estimate h4{margin:0 0 12px;font-size:13px;font-weight:600;color:#94a3b8}.estimate-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}.estimate-item{padding:8px;background:rgba(0,0,0,.2);border-radius:6px}.estimate-item .label{display:block;font-size:10px;color:#64748b;text-transform:uppercase;margin-bottom:2px}.estimate-item .value{font-size:14px;font-weight:600;color:#f8fafc}.estimate-item.cost{grid-column:span 2;background:rgba(16,185,129,.1)}.estimate-item.cost .value{color:#10b981}.validation-actions{display:flex;gap:8px;padding:16px;border-top:1px solid #334155}.deploy-btn,.promote-btn{flex:1 1;padding:10px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.promote-btn{background:transparent;border:1px solid #64748b;color:#94a3b8}.promote-btn:hover:not(:disabled){border-color:#3b82f6;color:#3b82f6}.deploy-btn{background:#10b981;border:none;color:#fff}.deploy-btn:hover:not(:disabled){background:#059669}.deploy-btn:disabled,.promote-btn:disabled{opacity:.5;cursor:not-allowed}.history-controls{gap:4px;position:relative}.history-btn,.history-controls{display:flex;align-items:center}.history-btn{width:32px;height:32px;justify-content:center;background:transparent;border:1px solid #334155;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:14px;transition:all .2s}.history-btn:hover:not(:disabled){background:#334155;color:#f8fafc}.history-btn:disabled{opacity:.3;cursor:not-allowed}.history-dropdown{position:absolute;top:100%;left:0;margin-top:8px;width:280px;background:#1e293b;border:1px solid #334155;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:100}.history-header{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid #334155}.history-header span{font-size:13px;font-weight:600;color:#f8fafc}.history-header button{background:transparent;border:none;color:#64748b;cursor:pointer}.history-list{max-height:300px;overflow-y:auto;padding:8px}.history-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;font-size:12px;color:#94a3b8}.history-item.current{background:rgba(59,130,246,.1);color:#f8fafc}.history-item.future{opacity:.5}.history-icon{font-size:14px}.history-desc{flex:1 1}.current-marker{color:#3b82f6}.history-empty{padding:24px;text-align:center;color:#64748b;font-size:13px}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid #fff;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{font-size:10px;background:hsla(0,0%,100%,.5);padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border:1px solid #1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px rgba(0,0,0,.08)}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:hsla(0,0%,94%,.25)}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px rgba(0,0,0,.08)}.react-flow__controls-button{background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}