/* sysml-family diagrams (diagram-nesting.js board + SysML types) */
.sx-canvas .sx-node.selected > .sx-box, .sx-canvas .sx-node.selected > .sx-shape { stroke: var(--dg-sel) !important; stroke-width: 2.5 !important; }
.sx-canvas .sx-node.drop-ok > .sx-box, .sx-canvas .sx-node.drop-ok > .sx-shape, .sx-canvas .sx-node.drop-target > .sx-box, .sx-canvas .sx-node.drop-target > .sx-shape { fill: url(#sx-drop) !important; stroke: var(--dg-ok-strong) !important; stroke-width: 3 !important; }
.sx-canvas .sx-node.dragging { opacity: .75; }
.sx-canvas .sx-node.dragging * { pointer-events: none; }
.sx-canvas [data-row] { cursor: pointer; }
.sx-canvas [data-row]:hover > rect.row-bg { fill: var(--dg-row-hover); }
.sx-canvas [data-row].row-sel > rect.row-bg, .sx-canvas [data-row].drop-target > rect.row-bg { fill: var(--dg-row-sel); }
.sx-canvas .sx-handle { fill: var(--dg-sel); stroke: var(--dg-paper); stroke-width: 2; cursor: crosshair; }
.sx-canvas .sx-handle:hover { fill: var(--dg-ok-strong); }
.sx-canvas .sx-rubber { stroke: var(--dg-ok-strong); stroke-width: 2; stroke-dasharray: 6 4; pointer-events: none; }
.sx-canvas .sx-connect { pointer-events: none; }
.sx-canvas .sx-zone-frame { fill: none; stroke: var(--dg-ok-strong); stroke-width: 2.5; }
.sx-canvas .sx-zone-frame.refused { stroke: var(--dg-refused); stroke-dasharray: 5 3; }
.sx-canvas .sx-zone { fill: var(--dg-zone); fill-opacity: .35; stroke: var(--dg-ok-strong); stroke-dasharray: 4 3; }
.sx-canvas .sx-zone.hot { fill-opacity: .8; }
.sx-canvas .sx-zone-label { fill: var(--dg-zone-ink); font-weight: 700; }
.sx-canvas .sx-edge:hover .sx-edge-line { stroke-width: 2.4; }
.sx-canvas .sx-elabel { paint-order: stroke; stroke: var(--dg-paper); stroke-width: 3px; stroke-linejoin: round; }
.sx-canvas .sx-frame { pointer-events: none; }
.sx-ends { display: grid; gap: 4px; margin-bottom: 12px; }
.sx-legend { font-size: 11px; }
/* N2 / I2 grids */
.mx2-cell { cursor: pointer; }
.mx2-cell.drop-target > rect, .mx2-cell.hot > rect { fill: var(--dg-ok-bg) !important; stroke: var(--dg-ok-strong) !important; stroke-width: 2.5 !important; }
.mx2-io:hover { text-decoration: underline; }
.mx2-io.sel { fill: var(--dg-sel); font-weight: 700; }
/* radar */
.radar-axis { cursor: pointer; }
.radar-axis.sel { font-weight: 700; fill: var(--dg-sel); }
/* activity */
.act-flow { stroke: var(--dg-ink-2); stroke-dasharray: 5 5; fill: none; }
.act-flow-hit { stroke: transparent; stroke-width: 14; fill: none; cursor: pointer; }
.act-flow-g.drop-target .act-flow, .act-flow-g:hover .act-flow { stroke: var(--dg-ok-strong); stroke-width: 2.5; }
.act-node.sel > .act-shape { stroke: var(--dg-sel) !important; stroke-width: 2.5 !important; }
.act-lane { fill: var(--dg-lane); stroke: var(--dg-lane-line); }
/* idef0 */
.idef-box.sel > rect { stroke: var(--dg-sel) !important; stroke-width: 2.5 !important; }
.idef-arrow:hover path.line, .idef-arrow.sel path.line { stroke: var(--dg-sel); stroke-width: 2.2; }
.idef-label { cursor: move; }
/* physical io */
.pio-line.warn .sx-edge-line { stroke: var(--dg-warn); }
.pio-line.err .sx-edge-line { stroke: var(--dg-err); }
.pio-modal .pio-row { display: grid; grid-template-columns: 130px 1fr auto; gap: 8px; align-items: center; margin-bottom: 8px; }
.pio-modal .pio-val { font-size: 13px; }
.issue-list { display: grid; gap: 6px; }
.issue-list .issue { padding: 6px 8px; border-left: 3px solid var(--warn); background: var(--warn-bg); cursor: pointer; font-size: 13px; }
.issue-list .issue.err { border-left-color: var(--danger); background: var(--danger-bg); }
.issue-list .issue.ok { border-left-color: var(--ok); background: var(--ok-bg); cursor: default; }
/* idef0 (zones appear while a palette item hovers a box) */
.idef-box .idef-zones { display: none; pointer-events: none; }
.idef-box.drop-target .idef-zones { display: inline; }
.idef-label.sel { fill: var(--dg-sel); font-weight: 700; }
/* activity (diagrams-activity.js) */
.act-canvas .act-node.dragging { opacity: .7; }
.act-canvas .act-node.dragging * { pointer-events: none; }
.act-canvas .act-flow-g.drop-target .act-flow-hit { stroke: var(--dg-ok-glow); }
.act-canvas .act-pin.sel rect, .act-canvas .act-oflow:hover path:nth-child(2) { stroke-width: 2.2; }
.act-canvas .act-lane-g.drop-target .act-lane { fill: var(--dg-ok-bg); }
.act-panel .field { margin-bottom: 8px; }
.sx-panel { font-size: 13px; }
