/* asset diagram */
.asset-canvas .anode .conn-handle { fill: var(--dg-ok); stroke: var(--dg-paper); stroke-width: 2; opacity: 0; cursor: crosshair; transition: opacity .12s; }
.asset-canvas .anode:hover .conn-handle, .asset-canvas .anode.selected .conn-handle { opacity: 1; }
.asset-canvas .anode.drop .anode-box { stroke: var(--dg-ok); stroke-width: 3; fill: var(--dg-ok-bg); }
.asset-canvas .anode.external text { fill-opacity: .85; }
.asset-canvas .resize-handle { fill: var(--dg-sel); cursor: nwse-resize; }
.asset-canvas .conn-temp { stroke: var(--dg-ok); stroke-width: 2; stroke-dasharray: 5 4; pointer-events: none; }
.asset-canvas .conduit:hover .conduit-line { stroke-width: 3; }
.asset-side { padding: 12px 14px; display: grid; gap: 8px; }
.asset-canvas .anode.nested .anode-box { stroke-width: 1.2; }
.asset-canvas .anode.container > .anode-box { fill-opacity: .6; }
.asset-canvas .anode.drop-target .anode-box, .asset-canvas .anode.drop-ok .anode-box { stroke: var(--dg-ok); stroke-width: 3; fill: var(--dg-ok-bg); }
.asset-canvas .anode.drop-bad .anode-box { stroke: var(--dg-bad); stroke-width: 2.5; fill: var(--dg-bad-bg); }
.asset-canvas .conduit.selected .conduit-line { stroke-width: 3; }
.asset-canvas .nest-toggle:hover rect { fill: var(--accent-2); }
.conduit-opts { border-top: 1px solid var(--line-2); padding-top: 8px; margin-bottom: 8px; }
