:root{--bg-primary:#fff;--bg-secondary:#f5f4f0;--bg-tertiary:#edece8;--bg-elevated:#fff;--bg-overlay:#00000073;--text-primary:#1a1a18;--text-secondary:#5c5b57;--text-tertiary:#8c8b87;--text-disabled:#b4b2a9;--text-inverse:#fff;--border-subtle:#00000014;--border-default:#00000026;--border-strong:#00000047;--accent:#5b4fd8;--accent-hover:#4a3fc7;--accent-subtle:#eeedfe;--accent-text:#3c3489;--color-success:#1d9e75;--color-success-subtle:#e1f5ee;--color-success-text:#085041;--color-warning:#ba7517;--color-warning-subtle:#faeeda;--color-warning-text:#633806;--color-danger:#e24b4a;--color-danger-subtle:#fcebeb;--color-danger-text:#501313;--color-info:#378add;--color-info-subtle:#e6f1fb;--color-info-text:#042c53;--handle-idle:#b4b2a9;--handle-input-supplied:#1d9e75;--handle-input-deficient:#e24b4a;--handle-output-full:#378add;--handle-output-excess:#ba7517;--node-bg:#fff;--node-border:#00000026;--node-border-hover:#00000052;--node-border-selected:#5b4fd8;--node-shadow:0 1px 4px #0000001a;--node-shadow-hover:0 3px 10px #00000024;--node-radius:10px;--node-header-bg:#f5f4f0;--io-rect-bg:#f5f4f0;--io-rect-bg-hover:#edece8;--io-rect-border:#0000001f;--io-rect-radius:6px;--target-badge-bg:#eeedfe;--target-badge-border:#534ab7;--target-badge-text:#3c3489;--canvas-bg:#f0efeb;--canvas-dot:#0000002e;--canvas-dot-size:1.5px;--canvas-dot-gap:24px;--edge-stroke:#b4b2a9;--edge-stroke-hover:#5b4fd8;--edge-stroke-width:1.5px;--edge-waypoint-bg:#fff;--edge-waypoint-border:#5b4fd8;--panel-bg:#fff;--panel-border:#0000001f;--panel-radius:12px;--panel-shadow:0 8px 32px #00000024, 0 1px 4px #00000014;--tray-bg:#ffffffe6;--tray-border:#0000001f;--tray-radius:14px;--tray-shadow:0 4px 20px #0000001f;--tray-blur:12px;--btn-primary-bg:#5b4fd8;--btn-primary-bg-hover:#4a3fc7;--btn-primary-text:#fff;--btn-secondary-bg:#f5f4f0;--btn-secondary-bg-hover:#edece8;--btn-secondary-text:#1a1a18;--btn-secondary-border:#00000026;--btn-danger-bg:#fcebeb;--btn-danger-bg-hover:#f7c1c1;--btn-danger-text:#a32d2d;--btn-radius:8px;--btn-height:36px;--input-bg:#fff;--input-border:#0000002e;--input-border-focus:#5b4fd8;--input-border-error:#e24b4a;--input-text:#1a1a18;--input-placeholder:#8c8b87;--input-radius:7px;--input-height:34px;--tab-active-bg:#eeedfe;--tab-active-text:#3c3489;--tab-inactive-text:#5c5b57;--tab-hover-bg:#f5f4f0;--table-header-bg:#f5f4f0;--table-row-hover:#f5f4f0;--table-border:#00000014;--scrollbar-track:transparent;--scrollbar-thumb:#0000002e;--scrollbar-thumb-hover:#0000004d;--bottom-bar-h:60px;--tray-h:64px;--menu-w:200px;--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:13px;--font-size-md:14px;--font-size-lg:16px;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.32s ease;--z-canvas:0;--z-node:1;--z-edge:2;--z-tray:100;--z-menu:110;--z-modal:200;--z-tooltip:300}@media (prefers-color-scheme:dark){:root{--bg-primary:#1c1c1a;--bg-secondary:#242422;--bg-tertiary:#2c2c2a;--bg-elevated:#242422;--bg-overlay:#000000a6;--text-primary:#e8e6de;--text-secondary:#a8a69e;--text-tertiary:#6e6c66;--text-disabled:#4a4a46;--text-inverse:#1a1a18;--border-subtle:#ffffff0f;--border-default:#ffffff1f;--border-strong:#ffffff3d;--accent:#7c72e8;--accent-hover:#9088f0;--accent-subtle:#26215c;--accent-text:#cbc8f6;--color-success:#1d9e75;--color-success-subtle:#04342c;--color-success-text:#9fe1cb;--color-warning:#ef9f27;--color-warning-subtle:#412402;--color-warning-text:#fac775;--color-danger:#e24b4a;--color-danger-subtle:#501313;--color-danger-text:#f7c1c1;--color-info:#378add;--color-info-subtle:#042c53;--color-info-text:#b5d4f4;--handle-idle:#4a4a46;--handle-input-supplied:#1d9e75;--handle-input-deficient:#e24b4a;--handle-output-full:#378add;--handle-output-excess:#ef9f27;--node-bg:#242422;--node-border:#ffffff1a;--node-border-hover:#ffffff3d;--node-border-selected:#7c72e8;--node-shadow:0 1px 4px #0006;--node-shadow-hover:0 3px 12px #00000080;--node-header-bg:#2c2c2a;--io-rect-bg:#2c2c2a;--io-rect-bg-hover:#343430;--io-rect-border:#ffffff14;--target-badge-bg:#26215c;--target-badge-border:#7c72e8;--target-badge-text:#cbc8f6;--canvas-bg:#161614;--canvas-dot:#ffffff1a;--edge-stroke:#4a4a46;--edge-stroke-hover:#7c72e8;--edge-waypoint-bg:#242422;--edge-waypoint-border:#7c72e8;--panel-bg:#242422;--panel-border:#ffffff1a;--panel-shadow:0 8px 32px #00000080, 0 1px 4px #0000004d;--tray-bg:#242422eb;--tray-border:#ffffff1a;--btn-primary-bg:#7c72e8;--btn-primary-bg-hover:#9088f0;--btn-secondary-bg:#2c2c2a;--btn-secondary-bg-hover:#343430;--btn-secondary-text:#e8e6de;--btn-secondary-border:#ffffff1f;--btn-danger-bg:#501313;--btn-danger-bg-hover:#791f1f;--btn-danger-text:#f7c1c1;--input-bg:#1c1c1a;--input-border:#ffffff24;--input-border-focus:#7c72e8;--input-text:#e8e6de;--input-placeholder:#6e6c66;--tab-active-bg:#26215c;--tab-active-text:#cbc8f6;--tab-inactive-text:#a8a69e;--tab-hover-bg:#2c2c2a;--table-header-bg:#2c2c2a;--table-row-hover:#2c2c2a;--table-border:#ffffff0f;--scrollbar-thumb:#ffffff24;--scrollbar-thumb-hover:#ffffff42}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--text-primary);background:var(--canvas-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}@media (hover:hover){::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.react-flow{background-color:var(--canvas-bg)}.react-flow__pane{cursor:default}.react-flow__node{border-radius:var(--node-radius)}.react-flow__node.selected>.custom-node,.react-flow__node.selected:not(.dragging)>.custom-node:not(.custom-node--target){border-color:var(--node-border);box-shadow:var(--node-shadow)}.custom-node--target{border-color:var(--accent)!important;box-shadow:var(--node-shadow), 0 0 0 2px var(--accent)!important}.custom-node{background:var(--node-bg);border:1px solid var(--node-border);border-radius:var(--node-radius);box-shadow:var(--node-shadow);-webkit-user-select:none;user-select:none;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex;position:relative;overflow:visible}.node-info-area,.node-io-columns{overflow:hidden}@media (hover:hover){.custom-node:hover{border-color:var(--node-border-hover);box-shadow:var(--node-shadow-hover)}}.custom-node--error{color:var(--color-danger);font-size:var(--font-size-sm);justify-content:center;align-items:center;padding:16px}.node-info-area{border-bottom:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;padding:10px 12px;display:flex}.node-recipe-name{font-size:var(--font-size-md);text-align:center;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);margin-bottom:10px;font-weight:600;overflow:hidden}.node-stats-row{flex:1;justify-content:space-between;gap:8px;display:flex}.node-stats{font-size:var(--font-size-xs);flex-direction:column;flex:1;justify-content:space-evenly;min-width:0;display:flex}.node-stat-row{color:var(--text-secondary)}.node-stat-label{color:var(--text-primary);font-weight:600}.node-machine-info{flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-end;display:flex}.node-machine-name{font-size:var(--font-size-sm);text-align:right;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:140px;margin-bottom:4px;font-weight:600;overflow:hidden}.node-machine-count{font-size:var(--font-size-lg);color:var(--text-primary);font-weight:700;line-height:1}.node-io-area{flex-direction:column;flex:1;display:flex;position:relative}.node-io-columns{align-items:center;width:100%;height:100%}.node-io-column{flex-direction:column;gap:8px;padding:12px 0;display:flex}.node-io-left{align-items:flex-start}.node-io-right{justify-self:end;align-items:flex-end}.node-io-gap{flex-shrink:0}.node-rect{font-size:var(--font-size-sm);text-align:center;cursor:pointer;transition:opacity var(--transition-fast);border:1.5px solid;border-radius:5px;justify-content:center;align-items:center;padding:4px 8px;font-weight:600;display:flex;overflow:hidden}@media (hover:hover){.node-rect:hover{opacity:.75}}.node-rect--input{background:var(--color-info-subtle);border-color:var(--color-info);color:var(--color-info-text)}.node-rect--output{background:var(--color-success-subtle);border-color:var(--color-success);color:var(--color-success-text)}.node-rect-text{-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;word-break:break-word;-webkit-box-orient:vertical;line-height:1.2;display:-webkit-box;overflow:hidden}.node-handles-container{pointer-events:none;z-index:10;position:absolute;inset:0}.node-handles-container .react-flow__handle{pointer-events:auto}.react-flow__handle.node-handle{background:var(--node-bg);border:2.5px solid var(--handle-idle);width:14px;height:14px;box-shadow:0 0 0 1px var(--node-bg);transition:border-color var(--transition-fast), transform var(--transition-fast);z-index:10;border-radius:3px;position:absolute}.react-flow__handle.node-handle--input{left:0;transform:translate(-50%,-50%)}.react-flow__handle.node-handle--output{right:0;transform:translate(50%,-50%)}@media (hover:hover){.react-flow__handle.node-handle:hover{transform:translate(-50%,-50%)scale(1.25)}.react-flow__handle.node-handle--output:hover{transform:translate(50%,-50%)scale(1.25)}}.node-handle--idle{border-color:var(--handle-idle)}.node-handle--supplied{border-color:var(--handle-input-supplied);background:var(--color-success-subtle)}.node-handle--deficient{border-color:var(--handle-input-deficient);background:var(--color-danger-subtle)}.node-handle--full{border-color:var(--handle-output-full);background:var(--color-info-subtle)}.node-handle--excess{border-color:var(--handle-output-excess);background:var(--color-warning-subtle)}@media (pointer:coarse){.react-flow__handle.node-handle:before{content:"";position:absolute;inset:-16px}}.react-flow__edge-path{stroke:var(--edge-stroke);stroke-width:var(--edge-stroke-width);fill:none;transition:stroke var(--transition-fast)}@media (hover:hover){.react-flow__edge:hover .react-flow__edge-path{stroke:var(--edge-stroke-hover)}}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.animated .react-flow__edge-path{stroke:var(--edge-stroke)}.react-flow__attribution{display:none}.ui-modal-overlay{background:var(--bg-overlay);z-index:var(--z-modal);animation:modal-overlay-in var(--transition-base) ease;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}.ui-modal{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);width:100%;max-width:640px;height:calc(100vh - 80px);min-height:400px;max-height:680px;animation:modal-in var(--transition-base) ease;flex-direction:column;display:flex;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.ui-modal__header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:10px;padding:14px 16px 12px;display:flex}.ui-modal__title{font-size:var(--font-size-md);flex:1;font-weight:500}.ui-modal__close{width:28px;height:28px;color:var(--text-tertiary);transition:background var(--transition-fast), color var(--transition-fast);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media (hover:hover){.ui-modal__close:hover{background:var(--btn-secondary-bg-hover);color:var(--text-primary)}}@media (pointer:coarse){.ui-modal__close{min-width:44px;min-height:44px}}.ui-modal__body{flex:1;min-height:0;padding:16px;overflow-y:auto}.ui-modal__body--no-pad{flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.ui-modal__footer{border-top:1px solid var(--border-subtle);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}.ui-tabs{border-bottom:1px solid var(--border-subtle);flex-shrink:0;gap:2px;padding:0 16px;display:flex;overflow-x:auto}.ui-tab{font-size:var(--font-size-sm);color:var(--tab-inactive-text);transition:background var(--transition-fast), color var(--transition-fast);white-space:nowrap;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:8px 12px}.ui-tab--active{color:var(--tab-active-text);border-bottom-color:var(--accent);font-weight:500}@media (hover:hover){.ui-tab:not(.ui-tab--active):hover{background:var(--tab-hover-bg);color:var(--text-primary)}}@media (pointer:coarse){.ui-tab{align-items:center;min-height:44px;display:flex}}.ui-search{border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;display:flex}.ui-search__input{height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);color:var(--input-text);transition:border-color var(--transition-fast);flex:1;padding:0 10px}.ui-search__input:focus{border-color:var(--input-border-focus);outline:none}.ui-search__input::placeholder{color:var(--input-placeholder)}.ui-btn{height:var(--btn-height);border-radius:var(--btn-radius);font-size:var(--font-size-sm);transition:background var(--transition-fast);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:500;display:inline-flex}.ui-btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}@media (hover:hover){.ui-btn--primary:hover{background:var(--btn-primary-bg-hover)}}.ui-btn--secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}@media (hover:hover){.ui-btn--secondary:hover{background:var(--btn-secondary-bg-hover)}}.ui-btn--danger{background:var(--btn-danger-bg);color:var(--btn-danger-text)}@media (hover:hover){.ui-btn--danger:hover{background:var(--btn-danger-bg-hover)}}.ui-btn:disabled{opacity:.4;cursor:not-allowed}@media (pointer:coarse){.ui-btn{min-height:44px}}@media (width<=640px){.ui-modal-overlay{align-items:flex-end;padding:0}.ui-modal{border-radius:var(--panel-radius) var(--panel-radius) 0 0;max-width:100%;max-height:90vh;animation:sheet-in var(--transition-base) ease}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}}.tr-tray{z-index:var(--z-tray);background:var(--tray-bg);border:1px solid var(--tray-border);border-radius:var(--tray-radius);box-shadow:var(--tray-shadow);-webkit-backdrop-filter:blur(var(--tray-blur));align-items:center;gap:2px;padding:6px 8px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.tr-minimize{z-index:var(--z-tray);background:var(--tray-bg);border:1px solid var(--tray-border);box-shadow:var(--tray-shadow);-webkit-backdrop-filter:blur(var(--tray-blur));font-size:var(--font-size-xs);color:var(--text-tertiary);cursor:pointer;border-radius:99px;padding:6px 16px;display:none;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.tr-minimize--visible{display:block}.tr-btn{width:48px;height:48px;color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);border-radius:9px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.tr-btn__icon{font-size:16px;line-height:1}.tr-btn__label{letter-spacing:.02em;opacity:.75;font-size:9px;line-height:1}.tr-btn--active{background:var(--accent-subtle);color:var(--accent-text)}.tr-btn--active .tr-btn__label{opacity:1}@media (hover:hover){.tr-btn:hover:not(.tr-btn--active){background:var(--btn-secondary-bg-hover);color:var(--text-primary)}}@media (pointer:coarse){.tr-btn{min-width:56px;min-height:56px}.tr-tray{padding:8px 10px env(safe-area-inset-bottom,0px)}}.tr-divider{background:var(--border-default);flex-shrink:0;width:1px;height:28px;margin:0 2px}.tr-tray{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow:auto hidden}.tr-tray::-webkit-scrollbar{display:none}.tr-btn{flex-shrink:0}@media (width<=355px),(pointer:coarse) and (width<=420px){.tr-tray{border-radius:var(--tray-radius) var(--tray-radius) 0 0;width:100%;max-width:100%;padding:6px 8px env(safe-area-inset-bottom,0px);border-bottom:none;gap:0;bottom:0;left:0;right:0;transform:none}.tr-divider{display:none}.tr-minimize{border-radius:var(--tray-radius) var(--tray-radius) 0 0;text-align:center;width:100%;bottom:0;left:0;right:0;transform:none}}.mn-menu{z-index:var(--z-menu);flex-direction:column;gap:4px;display:flex;position:fixed;top:8px;right:8px}.mn-btn{background:var(--tray-bg);border:1px solid var(--tray-border);box-shadow:var(--tray-shadow);-webkit-backdrop-filter:blur(var(--tray-blur));width:54px;height:52px;color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);cursor:pointer;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:15px;display:flex}.mn-btn__icon{font-size:18px;line-height:1}.mn-btn__label{letter-spacing:.02em;opacity:.75;font-size:9px;line-height:1}.mn-btn--active .mn-btn__label{opacity:1}.mn-btn--active{background:var(--accent-subtle);color:var(--accent-text);border-color:var(--accent)}.mn-btn--collapse{width:54px;height:28px;min-height:28px;color:var(--text-primary);border-color:var(--border-strong);letter-spacing:-5px;justify-content:center;align-items:center;padding:0 4px 5px 0;font-size:20px;font-weight:900;display:flex}@media (hover:hover){.mn-btn:hover:not(.mn-btn--active){background:var(--btn-secondary-bg-hover);color:var(--text-primary)}}@media (pointer:coarse){.mn-btn{min-width:56px;min-height:56px}.mn-btn--collapse{min-width:44px;min-height:44px}}.rs-back{font-size:var(--font-size-sm);color:var(--accent);transition:background var(--transition-fast);white-space:nowrap;border-radius:6px;flex-shrink:0;padding:2px 8px 2px 4px}@media (hover:hover){.rs-back:hover{background:var(--accent-subtle)}}@media (pointer:coarse){.rs-back{min-height:44px}}.ui-modal__header-extra{align-items:center;margin-right:4px;display:flex}.rs-controls{border-bottom:1px solid var(--border-subtle);flex-shrink:0;gap:8px;padding:10px 16px;display:flex}.rs-search{height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);color:var(--input-text);font-size:var(--font-size-sm);transition:border-color var(--transition-fast);flex:1;padding:0 10px}.rs-search:focus{border-color:var(--input-border-focus);outline:none}.rs-search::placeholder{color:var(--input-placeholder)}.rs-select{height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);color:var(--input-text);font-size:var(--font-size-sm);cursor:pointer;flex-shrink:0;padding:0 8px}.rs-filters{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;gap:6px;padding:8px 16px;display:flex}.rs-filters .rs-select{flex:1;min-width:100px}.rs-table-wrap{flex:1;min-height:0;overflow-y:auto}.rs-table{border-collapse:collapse;table-layout:fixed;width:100%}.rs-table thead{background:var(--bg-secondary);z-index:1;position:sticky;top:0}.rs-th{font-size:var(--font-size-xs);color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border-default);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;padding:8px 16px;font-weight:600}.rs-th--sortable{cursor:pointer;transition:color var(--transition-fast)}.rs-th--sortable:hover,.rs-th--active{color:var(--text-primary)}.rs-sort-indicator{opacity:.7;margin-left:3px;font-size:10px}.rs-table th:first-child{width:55%}.rs-table th:nth-child(2){width:25%}.rs-table th:nth-child(3){width:20%}.rs-table--machines th:first-child{width:75%}.rs-table--machines th:nth-child(2){width:25%}.rs-row{cursor:pointer;transition:background var(--transition-fast)}@media (hover:hover){.rs-row:hover{background:var(--table-row-hover)}}@media (pointer:coarse){.rs-row{height:52px}}.rs-td{font-size:var(--font-size-sm);color:var(--text-primary);border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:10px 16px}.rs-td--num{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.rs-td-name{font-size:var(--font-size-sm);color:var(--text-primary)}.rs-td-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:1px}.rs-empty{text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm);padding:12px 16px}.rs-empty--full{padding:40px 16px}.rs-type-badge{letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border-radius:4px;margin-right:6px;padding:1px 5px;font-size:9px;font-weight:600}.rs-type-badge--item{background:var(--color-info-subtle);color:var(--color-info-text)}.rs-type-badge--fluid{background:var(--color-success-subtle);color:var(--color-success-text)}.rs-role-filters{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:6px;padding:10px 16px;display:flex}.rs-role-btn{height:28px;font-size:var(--font-size-xs);background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;border-radius:99px;padding:0 12px;font-weight:500}.rs-role-btn--active{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-text)}@media (hover:hover){.rs-role-btn:not(.rs-role-btn--active):hover{background:var(--btn-secondary-bg-hover);color:var(--text-primary)}}@media (pointer:coarse){.rs-role-btn{min-height:36px}}.rs-recipe-list{flex:1;min-height:0;padding:4px 0;overflow-y:auto}.rs-recipe-row{text-align:left;border-bottom:1px solid var(--border-subtle);cursor:pointer;width:100%;transition:background var(--transition-fast);flex-direction:column;gap:5px;padding:10px 16px;display:flex}.rs-recipe-row:last-child{border-bottom:none}@media (hover:hover){.rs-recipe-row:hover{background:var(--table-row-hover)}}@media (pointer:coarse){.rs-recipe-row{min-height:64px;padding:12px 16px}}.rs-recipe-header{align-items:baseline;gap:8px;display:flex}.rs-recipe-name{font-size:var(--font-size-base);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.rs-recipe-machine{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap}.rs-recipe-time{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;font-variant-numeric:tabular-nums}.rs-recipe-io{align-items:flex-start;gap:8px;display:flex}.rs-recipe-col{flex-wrap:wrap;flex:1;gap:3px;min-width:0;display:flex}.rs-recipe-arrow{font-size:var(--font-size-sm);color:var(--text-tertiary);flex-shrink:0;padding-top:1px}.rs-io-pill{font-size:var(--font-size-xs);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:4px;padding:1px 7px}.rs-io-pill--in{background:var(--color-info-subtle);color:var(--color-info-text)}.rs-io-pill--out{background:var(--color-success-subtle);color:var(--color-success-text)}.rs-io-pill--none{background:var(--bg-tertiary);color:var(--text-tertiary)}.dm-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.dm-tab-row{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;gap:2px;padding:6px 12px;display:flex}.dm-tab-btn{font-size:var(--font-size-sm);color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);border-radius:6px;padding:5px 12px}.dm-tab-btn--active{background:var(--accent-subtle);color:var(--accent-text);font-weight:500}@media (hover:hover){.dm-tab-btn:not(.dm-tab-btn--active):hover{background:var(--btn-secondary-bg-hover);color:var(--text-primary)}}.dm-content{flex:1;min-height:0;display:flex;overflow:hidden}.dm-list{border-right:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;width:220px;min-height:0;display:flex}.dm-list-actions{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;gap:4px;padding:8px;display:flex}.dm-new-btn{flex:1}.dm-export-btn,.dm-restore-btn{flex-shrink:0;padding:0 8px}.dm-recipe-nav{border-bottom:1px solid var(--border-subtle);flex-shrink:0;gap:4px;padding:6px 8px;display:flex}.dm-nav-btn{font-size:var(--font-size-xs);color:var(--text-secondary);border:1px solid var(--border-default);transition:background var(--transition-fast), color var(--transition-fast);border-radius:5px;flex:1;padding:4px 8px;font-weight:500}.dm-nav-btn--active{background:var(--accent-subtle);color:var(--accent-text);border-color:var(--accent)}.dm-search{height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);font-size:var(--font-size-sm);color:var(--input-text);flex-shrink:0;margin:6px 8px;padding:0 8px}.dm-search:focus{border-color:var(--input-border-focus);outline:none}.dm-search::placeholder{color:var(--input-placeholder)}.dm-list-scroll{flex:1;min-height:0;overflow-y:auto}.dm-list-empty,.dm-form-empty{text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm);padding:24px 12px}.dm-list-item{cursor:pointer;border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast);padding:7px 28px 7px 10px;position:relative}.dm-list-item--active{background:var(--accent-subtle);border-left:2px solid var(--accent);padding-left:8px}@media (hover:hover){.dm-list-item:not(.dm-list-item--active):hover{background:var(--table-row-hover)}}.dm-picker-item{cursor:pointer;border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast);padding:8px 10px}@media (hover:hover){.dm-picker-item:hover{background:var(--table-row-hover)}}.dm-item-name{font-size:var(--font-size-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.dm-item-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;overflow:hidden}.dm-delete-btn{width:20px;height:20px;color:var(--text-tertiary);opacity:0;transition:opacity var(--transition-fast), background var(--transition-fast);border-radius:4px;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.dm-list-item:hover .dm-delete-btn{opacity:1}@media (hover:hover){.dm-delete-btn:hover{background:var(--color-danger-subtle);color:var(--color-danger)}}@media (pointer:coarse){.dm-delete-btn{opacity:1}}.dm-back-btn{font-size:var(--font-size-xs);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);text-align:left;width:100%;transition:color var(--transition-fast);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;padding:7px 10px;font-weight:600;overflow:hidden}@media (hover:hover){.dm-back-btn:hover{color:var(--accent)}}.dm-role-row{border-bottom:1px solid var(--border-subtle);flex-shrink:0;gap:4px;padding:5px 8px;display:flex}.dm-role-btn{font-size:var(--font-size-xs);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:4px;flex:1;padding:3px 0;font-weight:500}.dm-role-btn--active{background:var(--accent-subtle);color:var(--accent-text);border-color:var(--accent)}.dm-form{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.dm-form-id{font-size:var(--font-size-xs);color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle);flex-shrink:0;padding:6px 14px}.dm-form-id-value{font-family:var(--font-mono);color:var(--text-secondary)}.dm-form-scroll{flex-direction:column;flex:1;gap:8px;min-height:0;padding:12px 14px;display:flex;overflow-y:auto}.dm-form-footer{border-top:1px solid var(--border-subtle);flex-shrink:0;gap:8px;padding:10px 14px;display:flex}.dm-field{flex-direction:column;gap:3px;min-width:0;display:flex}.dm-field--wide{grid-column:1/-1}.dm-field-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.dm-inp{height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);font-size:var(--font-size-sm);color:var(--input-text);transition:border-color var(--transition-fast);width:100%;padding:0 8px}.dm-inp:focus{border-color:var(--input-border-focus);outline:none}.dm-inp--wide{width:100%}.dm-sel{width:100%;position:relative}.dm-sel-input{height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);width:100%;font-size:var(--font-size-sm);color:var(--input-text);cursor:pointer;transition:border-color var(--transition-fast);padding:0 8px}.dm-sel-input:focus{border-color:var(--input-border-focus);outline:none}.dm-sel-dropdown{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);max-height:220px;overflow-y:auto}.dm-sel-opt{font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast);padding:7px 10px}.dm-sel-opt--active{background:var(--accent-subtle);color:var(--accent-text)}.dm-sel-opt--placeholder{color:var(--text-tertiary)}@media (hover:hover){.dm-sel-opt:not(.dm-sel-opt--active):hover{background:var(--table-row-hover)}}.dm-sel-empty{font-size:var(--font-size-sm);color:var(--text-tertiary);text-align:center;padding:8px 10px}.dm-remove-btn{width:26px;height:26px;color:var(--text-tertiary);transition:background var(--transition-fast), color var(--transition-fast);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:flex}@media (hover:hover){.dm-remove-btn:hover{background:var(--color-danger-subtle);color:var(--color-danger)}}.dm-checkbox{font-size:var(--font-size-sm);cursor:pointer;height:var(--input-height);align-items:center;gap:6px;display:flex}.dm-row{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));align-items:end;gap:8px;display:grid}.dm-array-section{border:1px solid var(--border-subtle);border-radius:7px;overflow:hidden}.dm-array-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.dm-array-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.dm-array-add{font-size:var(--font-size-xs);color:var(--accent);font-weight:500}@media (hover:hover){.dm-array-add:hover{text-decoration:underline}}.dm-array-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:6px;padding:6px 8px;display:flex}.dm-array-row:last-child{border-bottom:none}.dm-array-row--io .dm-sel{flex:2;min-width:0}.dm-array-row--io .dm-inp{flex:1;min-width:0}.dm-compare{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.dm-compare-source{border-bottom:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;gap:8px;padding:12px 14px;display:flex}.dm-compare-url-row{gap:8px;display:flex}.dm-compare-url{flex:1;margin:0}.dm-compare-textarea{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);width:100%;font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--input-text);resize:vertical;min-height:80px;padding:8px}.dm-compare-textarea:focus{border-color:var(--input-border-focus);outline:none}.dm-compare-error{font-size:var(--font-size-sm);color:var(--color-danger);padding:4px 0}.dm-compare-results{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.dm-compare-summary{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;display:flex}.dm-diff-badge{font-size:var(--font-size-xs);border-radius:99px;padding:2px 8px;font-weight:600}.dm-diff-badge--added{background:var(--color-success-subtle);color:var(--color-success-text)}.dm-diff-badge--modified{background:var(--color-warning-subtle);color:var(--color-warning-text)}.dm-diff-badge--removed{background:var(--color-danger-subtle);color:var(--color-danger-text)}.dm-diff-selected{font-size:var(--font-size-xs);color:var(--text-secondary);margin-left:auto}.dm-select-all-btn{padding:0 10px}.dm-compare-list{flex:1;padding:8px 14px;overflow-y:auto}.dm-diff-section-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:4px;font-weight:700}.dm-diff-row{border:1px solid var(--border-subtle);cursor:pointer;transition:background var(--transition-fast);border-radius:6px;align-items:center;gap:8px;margin-bottom:3px;padding:6px 8px;display:flex}.dm-diff-check{cursor:pointer;flex-shrink:0}.dm-diff-row--added{border-left:3px solid var(--color-success)}.dm-diff-row--modified{border-left:3px solid var(--color-warning)}.dm-diff-row--removed{border-left:3px solid var(--color-danger);opacity:.6}.dm-diff-row--disabled{cursor:default}@media (hover:hover){.dm-diff-row:not(.dm-diff-row--disabled):hover{background:var(--table-row-hover)}}@media (width<=640px){.dm-content{flex-direction:column}.dm-list{border-right:none;border-bottom:1px solid var(--border-subtle);width:100%;max-height:40%}.dm-form{max-height:60%}}.dm-compare-wrapper{flex-direction:column;flex:1;height:100%;min-height:0;display:flex;overflow:hidden}.dm-source-slots{border-bottom:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;gap:8px;padding:10px 14px;display:flex}.dm-source-slot{border:1px solid var(--border-subtle);border-radius:7px;overflow:hidden}.dm-source-slot--loaded{border-color:var(--color-success)}.dm-source-slot-header{background:var(--bg-secondary);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex}.dm-source-slot-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;flex:1;font-weight:700}.dm-source-loaded-badge{font-size:var(--font-size-xs);color:var(--color-success-text);background:var(--color-success-subtle);border-radius:99px;padding:2px 6px;font-weight:600}.dm-source-mode-btns{gap:2px;display:flex}.dm-source-mode-btn{font-size:var(--font-size-xs);color:var(--text-secondary);border:1px solid var(--border-default);transition:background var(--transition-fast), color var(--transition-fast);border-radius:4px;padding:3px 8px}.dm-source-mode-btn--active{background:var(--accent-subtle);color:var(--accent-text);border-color:var(--accent)}.dm-source-url-row{gap:6px;padding:6px 8px;display:flex}.dm-source-url-input{flex:1;margin:0}.dm-source-paste-row{flex-direction:column;gap:6px;padding:6px 8px;display:flex}.dm-source-file-row{padding:6px 8px}.dm-compare-actions{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;gap:8px;padding:8px 14px;display:flex}.dm-diff-filters{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;display:flex}.dm-diff-filter-btn{font-size:var(--font-size-xs);opacity:.4;transition:opacity var(--transition-fast);border:2px solid #0000;border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:flex}.dm-diff-filter-btn--on{opacity:1}.dm-diff-filter-btn--added{background:var(--color-success-subtle);color:var(--color-success-text);border-color:var(--color-success)}.dm-diff-filter-btn--removed{background:var(--color-danger-subtle);color:var(--color-danger-text);border-color:var(--color-danger)}.dm-diff-filter-btn--modified{background:var(--color-warning-subtle);color:var(--color-warning-text);border-color:var(--color-warning)}.dm-diff-filter-btn--unchanged{background:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-default)}.dm-diff-filter-count{background:#0000001f;border-radius:99px;padding:0 5px;font-size:10px}.dm-compare-list{flex:1;height:0;min-height:0;padding:8px 14px;overflow-y:auto}.dm-diff-section{margin-bottom:8px}.dm-diff-section-toggle{background:var(--bg-secondary);width:100%;font-size:var(--font-size-xs);text-align:left;transition:background var(--transition-fast);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:6px;padding:5px 8px;display:flex}@media (hover:hover){.dm-diff-section-toggle:hover{background:var(--table-row-hover)}}.dm-diff-section-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);flex:1;font-weight:700}.dm-diff-section-count{background:var(--border-default);color:var(--text-secondary);border-radius:99px;padding:1px 6px;font-size:10px;font-weight:700}.dm-diff-section-selall{color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 5px;font-size:10px}.dm-diff-section-body{padding:3px 0 3px 8px}.dm-diff-section-scroll{max-height:320px;overflow-y:auto}.dm-diff-entry{border-left:3px solid var(--border-default);border-radius:0 5px 5px 0;margin-bottom:3px;overflow:hidden}.dm-diff-entry--added{border-left-color:var(--color-success)}.dm-diff-entry--removed{border-left-color:var(--color-danger);opacity:.7}.dm-diff-entry--changed{border-left-color:var(--color-warning)}.dm-diff-entry--unchanged{border-left-color:var(--border-subtle)}.dm-diff-entry-row{background:var(--panel-bg);min-height:40px;transition:background var(--transition-fast);align-items:center;gap:10px;padding:8px 10px;display:flex}.dm-diff-check{cursor:pointer;width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.dm-diff-id{flex-shrink:0;margin-left:auto}@media (hover:hover){.dm-diff-entry-row:hover{background:var(--table-row-hover)}}.dm-diff-expand{color:var(--text-tertiary);flex-shrink:0;width:16px;font-size:10px}.dm-diff-changed-count{color:var(--color-warning-text);background:var(--color-warning-subtle);white-space:nowrap;border-radius:99px;padding:1px 5px;font-size:10px}.dm-diff-fields{background:var(--bg-secondary);flex-direction:column;gap:2px;padding:4px 8px;display:flex}.dm-diff-field{font-size:var(--font-size-xs);border-radius:3px;grid-template-columns:120px 1fr 16px 1fr;align-items:center;gap:6px;padding:2px 0;display:grid}.dm-diff-field--changed{background:var(--color-warning-subtle);border-radius:3px;padding:2px 4px}.dm-diff-field-key{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.dm-diff-field-local{color:var(--color-danger-text);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dm-diff-field-arrow{color:var(--text-tertiary);text-align:center}.dm-diff-field-source{color:var(--color-success-text);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (pointer:coarse){.dm-diff-entry-row{min-height:44px}.dm-diff-check{width:20px;height:20px}}
