:root{--pipe-cat-text:var(--accent);--pipe-cat-encode:var(--good);--pipe-cat-hash:var(--bad);--pipe-cat-format:color-mix(in srgb, var(--accent) 55%, var(--warn) 45%);--pipe-cat-convert:var(--warn)}.pipeline-container{background:var(--bg);padding:0;overflow:hidden}.pipeline-header-bar{padding:var(--sp-sm) var(--sp-lg);border-bottom:1px solid var(--rule);background:var(--bg-card);justify-content:space-between;align-items:center;display:flex}.pipeline-controls{align-items:center;display:flex}.pipeline-layout{grid-template-columns:320px 1fr;min-height:calc(100vh - 200px);display:grid}.pipeline-sidebar{background:var(--bg-card);border-right:1px solid var(--rule);flex-direction:column;display:flex;overflow:hidden}.pipeline-search-box{padding:var(--sp-md);border-bottom:1px solid var(--rule);position:relative}.pipeline-search-icon{left:var(--sp-lg);color:var(--ink-3);position:absolute;top:50%;transform:translateY(-50%)}.pipeline-search-box input{width:100%;padding-left:var(--sp-2xl);background:var(--bg);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink)}.pipeline-ops-list{padding:var(--sp-xs) 0;flex:1;overflow-y:auto}.pipeline-category-header{padding:var(--sp-xs) var(--sp-md);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-top:var(--sp-sm);font-weight:700}.pipeline-op-item{padding:var(--sp-sm) var(--sp-md);cursor:grab;-webkit-user-select:none;user-select:none;border-left:3px solid #0000;align-items:center;transition:background .15s;display:flex}.pipeline-op-item:hover{background:var(--bg-2)}.pipeline-op-name{font-size:var(--fs-sm);font-weight:500}.pipeline-op-desc{font-size:var(--fs-xs);color:var(--ink-3)}.pipeline-op-add-btn{opacity:0;color:var(--ink-2);cursor:pointer;padding:var(--sp-xs);border-radius:var(--radius);background:0 0;border:none;margin-left:auto}.pipeline-op-item:hover .pipeline-op-add-btn{opacity:1}.pipeline-op-add-btn:hover{background:var(--rule);color:var(--ink)}.pipeline-op-item[data-cat=text]{border-left-color:var(--pipe-cat-text)}.pipeline-op-item[data-cat=encode]{border-left-color:var(--pipe-cat-encode)}.pipeline-op-item[data-cat=hash]{border-left-color:var(--pipe-cat-hash)}.pipeline-op-item[data-cat=format]{border-left-color:var(--pipe-cat-format)}.pipeline-op-item[data-cat=convert]{border-left-color:var(--pipe-cat-convert)}.pipeline-main{flex-direction:column;display:flex;overflow:hidden}.pipeline-panel-title{font-size:var(--fs-sm);color:var(--ink-2);margin:0;font-weight:600}.pipeline-recipe-panel{border-bottom:1px solid var(--rule);background:var(--bg);flex-direction:column;flex:1;display:flex}.pipeline-recipe-panel>.pipeline-panel-title{padding:var(--sp-sm) var(--sp-lg);background:var(--bg-card);border-bottom:1px solid var(--rule)}.pipeline-sequence{padding:var(--sp-lg);gap:var(--sp-sm);flex-direction:column;flex:1;align-items:stretch;display:flex;overflow-y:auto}.pipeline-empty-state{color:var(--ink-3);font-size:var(--fs-sm);text-align:center;padding:var(--sp-2xl);border:2px dashed var(--rule);border-radius:var(--radius);margin:auto 0}.pipeline-step{background:var(--bg-card);border:1px solid var(--rule);border-radius:var(--radius);cursor:grab;flex-direction:column;transition:transform .2s cubic-bezier(.2,0,0,1),box-shadow .2s;display:flex;box-shadow:0 2px 4px #0000001a}.pipeline-step.dragging{opacity:.5;box-shadow:0 8px 16px #0003}.pipeline-step-header{padding:var(--sp-sm) var(--sp-md);border-bottom:1px solid #0000;align-items:center;display:flex}.pipeline-step-drag{color:var(--ink-3);cursor:grab;margin-right:var(--sp-sm);display:flex}.pipeline-step-title{font-size:var(--fs-sm);flex:1;font-weight:600}.pipeline-step-actions{gap:4px;display:flex}.pipeline-step-btn{color:var(--ink-3);cursor:pointer;border-radius:var(--radius);padding:var(--sp-xs);background:0 0;border:none}.pipeline-step-btn:hover{color:var(--bad);background:var(--rule)}.pipeline-step-btn.disabled:hover{color:var(--ink-2)}.pipeline-step-config{padding:var(--sp-sm) var(--sp-md);border-top:1px solid var(--rule);background:var(--bg);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);gap:var(--sp-md);flex-wrap:wrap;display:flex}.pipeline-config-group{align-items:center;gap:var(--sp-xs);display:flex}.pipeline-config-label{font-size:var(--fs-xs);color:var(--ink-2)}.pipeline-io-panel{background:var(--bg-card);flex-direction:column;height:300px;display:flex}.pipeline-io-split{grid-template-columns:1fr 1fr;height:100%;display:grid}.pipeline-io-col{border-right:1px solid var(--rule);flex-direction:column;display:flex}.pipeline-io-col:last-child{border-right:none}.pipeline-io-header{padding:var(--sp-sm) var(--sp-md);border-bottom:1px solid var(--rule);background:var(--bg-card);justify-content:space-between;align-items:center;display:flex}.pipeline-io-actions{align-items:center;gap:var(--sp-sm);display:flex}.pipeline-io-stats{font-size:var(--fs-xs);color:var(--ink-3);font-family:var(--mono)}.pipeline-textarea{background:var(--bg);resize:none;padding:var(--sp-md);font-size:var(--fs-sm);border:none;border-radius:0;flex:1}.pipeline-textarea:focus{box-shadow:inset 0 0 0 1px var(--accent);outline:none}@media (width<=900px){.pipeline-layout{grid-template-columns:1fr}.pipeline-sidebar{border-right:none;border-bottom:1px solid var(--rule);max-height:250px}.pipeline-io-split{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.pipeline-io-panel{height:400px}.pipeline-io-col:first-child{border-right:none;border-bottom:1px solid var(--rule)}}
