.cfg-canvas{background:var(--bs-tertiary-bg,var(--bs-body-bg));width:100%;height:100%;min-height:480px;position:relative}.cfg-canvas:focus{outline:none}.cfg-canvas:focus-visible{outline:2px solid rgba(var(--bs-primary-rgb), .35);outline-offset:-2px}.cfg-canvas .react-flow__background{color:var(--bs-border-color)}.cfg-node{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);width:220px;box-shadow:var(--bs-box-shadow-sm);color:var(--bs-body-color);border-radius:10px;font-size:.8125rem;transition:box-shadow .15s,opacity .15s,outline-color .15s;position:relative}.cfg-node--choice{width:240px}.react-flow__node:hover .cfg-node{box-shadow:var(--bs-box-shadow)}.cfg-node--selected{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), .25), var(--bs-box-shadow)}.cfg-node--on-path{outline:3px solid var(--bs-primary);outline-offset:0}.cfg-node--off-path{opacity:.35}.cfg-node__start{background:var(--bs-primary);color:var(--bs-white);letter-spacing:.02em;border-radius:6px 6px 0 0;padding:1px 8px;font-size:.6875rem;font-weight:600;position:absolute;top:-22px;left:10px}.cfg-node__header{padding:10px 12px 8px}.cfg-node__label{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600;line-height:1.25;overflow:hidden}.cfg-badge{letter-spacing:.06em;border-radius:4px;padding:1px 6px;font-size:.625rem;font-weight:700;line-height:1.5;display:inline-block}.cfg-badge--outline{border:1px solid var(--bs-primary);color:var(--bs-primary);background:0 0}.cfg-row{border-top:1px solid var(--bs-border-color);justify-content:space-between;align-items:center;gap:8px;min-height:28px;padding:4px 14px 4px 12px;display:flex;position:relative}.cfg-row--option{cursor:pointer}.cfg-row--option:hover{background:var(--bs-tertiary-bg,var(--bs-light))}.cfg-row--option:focus-visible{box-shadow:inset 0 0 0 2px rgba(var(--bs-primary-rgb), .35);outline:none}.cfg-row--active{background:rgba(var(--bs-primary-rgb), .1);box-shadow:inset 3px 0 0 var(--bs-primary)}.cfg-row__label{min-width:0}.cfg-row__price{text-overflow:ellipsis;white-space:nowrap;max-width:45%;color:var(--bs-secondary-color,var(--bs-secondary));font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.75rem;overflow:hidden}.cfg-row__value{text-align:right;min-width:0}.cfg-row--common{background:var(--bs-tertiary-bg,var(--bs-light));min-height:24px;color:var(--bs-secondary-color,var(--bs-secondary));justify-content:flex-end;font-size:.6875rem;font-style:italic}.cfg-node>.cfg-row:last-child{border-radius:0 0 10px 10px}.cfg-dot{background:var(--bs-primary);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.cfg-add-option{border-top:1px solid var(--bs-border-color);text-align:left;border-radius:0 0 10px 10px;width:100%;padding:4px 12px;font-size:.75rem;text-decoration:none;display:block}.cfg-add-option:hover{background:var(--bs-tertiary-bg,var(--bs-light))}.cfg-open-step{padding:1px 8px;font-size:.75rem}.react-flow__handle.cfg-port{border:2px solid var(--bs-primary);background:var(--bs-body-bg);border-radius:50%;width:10px;height:10px;transition:transform .1s}.react-flow__handle.cfg-port.react-flow__handle-right{right:-6px}.react-flow__handle.cfg-port.react-flow__handle-left{left:-6px}.react-flow__handle.cfg-port--target{border-color:var(--bs-secondary);top:22px}.react-flow__handle.cfg-port--own{background:var(--bs-warning);border-color:var(--bs-warning)}.react-flow__handle.cfg-port--common{background:var(--bs-primary)}.cfg-canvas:not(.cfg-canvas--readonly) .react-flow__handle.cfg-port:hover{cursor:crosshair;transform:translateY(-50%)scale(1.35)}.react-flow__handle.cfg-port.connectingto,.react-flow__handle.cfg-port.valid{background:var(--bs-success);border-color:var(--bs-success)}.cfg-edge .react-flow__edge-textbg{fill:var(--bs-body-bg)}.cfg-edge .react-flow__edge-text{fill:var(--bs-body-color);font-size:11px;font-style:italic}.react-flow__connection-path{stroke:var(--bs-primary);stroke-width:2px}.cfg-canvas .react-flow__minimap{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:8px}.react-flow__minimap-node.cfg-mini--choice{fill:var(--bs-primary)}.react-flow__minimap-node.cfg-mini--input{fill:var(--bs-info)}.react-flow__minimap-node.cfg-mini--computed{fill:var(--bs-secondary)}.react-flow__minimap-node.cfg-mini--step{fill:var(--bs-dark)}.react-flow__minimap-node.cfg-mini--end{fill:var(--bs-success)}.cfg-canvas__empty{color:var(--bs-secondary-color,var(--bs-secondary));text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;font-size:.9375rem;display:flex;position:absolute;inset:0}.cfg-canvas__empty-icon{opacity:.25;font-size:3.5rem}.cfg-palette{border-right:1px solid var(--bs-border-color);background:var(--bs-body-bg);flex-direction:column;flex-shrink:0;gap:6px;width:150px;padding:10px 8px;display:flex;overflow-y:auto}.cfg-palette__title{color:var(--bs-secondary-color,var(--bs-secondary));letter-spacing:.06em;text-transform:uppercase;padding:0 4px 2px;font-size:.6875rem;font-weight:700}.cfg-palette__item{border:1px solid var(--bs-border-color);background:var(--bs-body-bg);width:100%;color:var(--bs-body-color);text-align:left;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;padding:7px 8px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.cfg-palette__item:hover{border-color:var(--bs-primary);box-shadow:var(--bs-box-shadow-sm)}.cfg-palette__item:focus-visible{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), .35);outline:none}.cfg-palette__item:active{cursor:grabbing;transform:scale(.98)}.cfg-palette__icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;display:inline-flex}.cfg-palette__text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.cfg-palette__name{font-size:.8125rem;font-weight:600}.cfg-palette__hint{color:var(--bs-secondary-color,var(--bs-secondary));font-size:.6875rem}.cfg-palette__tip{color:var(--bs-secondary-color,var(--bs-secondary));margin-top:auto;padding:6px 4px 0;font-size:.6875rem;line-height:1.3}.cfg-row--active:focus-visible{box-shadow:inset 3px 0 0 var(--bs-primary), inset 0 0 0 2px rgba(var(--bs-primary-rgb), .35)}
