.iot-module-interactive-matching { margin-bottom: 30px; font-size: 16px; color: #333; }
.iot-im-container { display: flex; justify-content: space-between; position: relative; margin-top: 20px; padding: 20px 0; user-select: none; }
.iot-im-svg-layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.iot-im-column { display: flex; flex-direction: column; gap: 15px; width: 45%; z-index: 2; }
.iot-im-item { display: flex; align-items: center; background: #fff; border: 2px solid #cbd5e1; border-radius: 8px; padding: 10px 15px; position: relative; box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
.iot-im-column-a .iot-im-item { padding-right: 35px; }
.iot-im-column-b .iot-im-item { padding-left: 35px; }
.iot-im-content { flex: 1; line-height: 1.5; }
.iot-im-node {
    width: 20px; height: 20px; background: #94a3b8; border-radius: 50%; border: 3px solid #fff;
    box-shadow: 0 0 0 2px #94a3b8; cursor: pointer; position: absolute; top: 50%; transform: translateY(-50%); transition: 0.2s;
}
.iot-im-node:hover, .iot-im-node.active { background: #2563EB; box-shadow: 0 0 0 2px #2563EB; transform: translateY(-50%) scale(1.2); }
.iot-im-column-a .iot-im-node { right: -10px; }
.iot-im-column-b .iot-im-node { left: -10px; }
.iot-im-item.correct { border-color: #16a34a; background: #f0fdf4; }
.iot-im-item.wrong { border-color: #dc2626; background: #fef2f2; }
.iot-im-node.inactive { pointer-events: none !important; cursor: default !important; }